首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

共识 PoW vs PoS

前几天我写的一篇关于比特币的小历史(Digital Gold)的文章中讲到,比特币让我觉得最伟大的地方是它的激励机制:在危机(Bug)发生时,矿工会选择为了整个系统的利益而暂时地牺牲自己的利益。

当然,一个系统的运转不能依赖于good nature,还是需要有合理的机制来引导和约束人的行为。于是共识机制(Consensus Algorithm)的设定就应运而生,可以说,这是mining的过程中最为重要的部分。

为什么叫Consensus Algorithm?

这是因为这一套系统的根本目的是决定新挖出来的区块谁有资格被链接到主链上,也就是说,要得到全部已经存在的区块的认可(所谓“共识”)。

共识的体系,目前最常见的是两种,PoW(Proof of work)和PoS(Proof of stake),还有一些其他的,不过一没有成气候,二相关理论的支持不是很严密,故暂时不表。

PoW (Proof of work)

Proof of work的思想可以说是Bitcoin的精华之一,Bitcoin的白皮书中也是重点阐述了这样做的意义。

在挖比特币的过程中,重要的一点就是寻找对应的哈希值(可以理解为用枚举的方法解一道数学题),这个过程的一大特点就是需要耗费很大的时间和能源来找这个值(需要做很多很多的工作),但是相对于整个系统来说,验证这个值的过程确很简单*。于是第一个找到这个值的矿工就可以把这个区块加到主链上去,并且获得挖矿奖励。

*感兴趣的人可以去了解一下,精髓是就是超级大的分解质因数

总结一下PoW特点:

1/ 消耗外部资源

2/ 有挖矿奖励(Block Reward)

PoW的缺点就是我们常说的51%原则(Monopoly Problem),也就是说如果有人控制住了整个系统51%的运算能力,就可以强制整个系统按照自己的意志运转(很困难,但是理论上讲依然是有可能的)。

Bitcoin和Ethereum之前用的都是PoW,但是Ethereum在酝酿一个新的叫做Casper的计划,转换为PoS,那么PoS有什么好处呢?

PoS (Proof of stake)

简单说呢,PoS有点像打牌的时候的下注(Betting)。Blockchain会记录所有有下注资格的人(Validator,其实就是持有该blockchain的基础货币的人,比如Ethereum的Ether)。你只要转出一笔钱,作为定金就eligible。

接下来就是PoS这种Consensus Algorithm闪亮登场的时候。

现在PoS主要有两种实现形式:

1/ Chain-Based PoS

这个很简单,就是每隔一段时间从所有的validator里面随机抽取一个,这个被选中的人建立一个Block,再把这个block链接到主链上去。

2/ BFT-Style PoS**

这个方法比较复杂一点,是说,每一个Validator都有提议新Block的权利,但是具体决定哪一个Block有资格被链接到主链上去要由大家投票决定。

PoS 的逻辑:

1/ 不需要消耗大量的电了

2/ 因为没有挖矿奖励,所以也不需要不停地发新币

3/ 有更多可以应用博弈论改变激励的空间

4/ 大大提高了占有51%的成本:如果你发动这样一个叛变的话,相当于你购买的ASIC机器(挖矿设备)要全部被销毁掉=> 理解一下,因为这里你的投入=stake=coin,totally aligned

5/ 现在的一些PoS算法还设计了惩罚措施(举个例子的话,像email就是一种没有惩罚措施的protocol,于是我们看见每个人都有用不完的email账号,并且会收到数不清的垃圾邮件)

**插一句这个BFT是Byzantine Fault Tolerance的缩写,感兴趣的人可以去看一下“拜占庭将军问题”,这是一个在去中心化的系统中怎么处理随机出现的局部失误的问题。

今天就写到这里,这个话题有很多可以深挖的地方,感兴趣的人可以看看下面的两个链接

友情提醒:很好看!!但是有点难懂(对我这种学渣来说),这两天的心情就是paralysis by analysis吧TT

https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ

https://blog.ethereum.org/2016/05/09/on-settlement-finality/

EMANON.TAN

#Nomandic#

#Techno Addict#

#Cosmopolitan#

#Liquid Girl#

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180222G01WFX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券