区块链 共识机制

为什么需要有共识机制?在一个中心化的结构体系里面,系统的共识是由这个中心来决定的,参与的各方只需要服从中心下达的命令就可以了。因此,中心化的体系里面,共识建立是极为高效的。这也就是为什么中心化的机构要比去中心化的机构相对而言效率更高的缘故。

比如上一所大学,什么时间之前要交多少人民币的学费,要打到哪个账号里,要到哪栋楼报到,基本上都是由学校规定的,你服从就好了。如果不按照学校规定的时间、地点、方式报到,就有可能损失自己上学的机会,从而没有资格加入这个中心化的体系里面。所以,一定要按照中心提出的要求来进行报到。这种中心化的方式也会让入学报名这项工作变得井井有条,变得快速,并且能够快速完成。

而在一个去中心化的结构体系中,由于各个参与方的地位是平等的,当出现分歧的时候,如何达成共识就成了问题。试想一下,如果你和学校,老师之间的地位是平等的,那么在办理入学这件事情上会出现什么情况呢?是不是很有意思,在报名环节里面,你和同学、老师、校长最有可能商议出来的是,谁年纪最大就听谁的,这样的一种协商之后达成的规则统一,其实也是一种共识机制。

之前我们了解过中本聪在创建比特币之前有很多虚拟货币的尝试,其中有一位叫戴伟的密码学家,发明了匿名的、分布式的电子加密货币系统B-money,实现了点对点的交易和不可更改的交易记录,但是为什么B-money最后没有成功呢?就是因为在B-money体系里面,每个节点分别记录自己的账本,这不避免的会带来各节点之间的不一致。戴伟为了解决这个问题,设计了非常复杂的奖惩机制,最后还是没有从根本上去解决。

由此可见,一个设计精妙、实际操作起来简单的共识机制是一个分布式体系能够顺利自运转下去的关键所在。简而言之,共识机制就是达成共识的依据,也是区块链接的核心之一,它使得去中心化的体系能够共同维护同一个账本。目前比较知名的共识机制有工作量证明(POW)和权益证明(POS)。

早期的大部分区块链项目都是模仿比特币的,实行的都是工作量证明(POW)。英国的密码学专家亚当贝克在1997年发现了哈希现金(Hashcash) ,就是用的工作量证明系统,这个方法解决了互联网垃圾邮件的问题。它要求计算机在获得发送信息权限之前,要做一定量的计算工作。这个对于正常的信息传播来说,几乎很难察觉,但是对于全网大量散步垃圾邮件的计算机来说,就形成了巨大的工作量和负担。在比特币之前,哈希现金被用于过滤垃圾邮件,也曾经被微软用于hotmail,outlook等产品过程当中。

工作量证明(Proof Of Work,简称POW),简单来说就是一份证明,用来确认你做过一定量的工作。举个例子:你拿到了大学的毕业证,就能够客观证明你进行过大学四年的学习,具备一个大学生的学习能力。监测工作的整个过程通常很低效的,而对工作的结果来进行认证,去验证你是否完成了相应的工作量,这样的方式是一种高效的方式。

一般的区块链网络为了长久的发展下去,会要求所有节点遵守一个公式:所有保存到本地的区块链,都必须是被本地节点验证通过的最长链。由于区块链的每个区块必须引用它的上一个区块,所以,最长链也是最难被推翻的。

怎样去保证最长链呢?理论上,矿工是可以在任意一个区块的基础上,开始去计算下一个区块的,但是只有最长的那个区块链的区块,才能够获得系统的承认,并得到挖矿的奖励,打包区块的奖励只有在该区块上被增加之后才能够被使用。也就是说,如果你是矿工,你挖出来的新的区块,获得新生的比特币奖励,只有往后延伸99个区块之后,才能动用这笔区块奖励,这也是保证区块链不发生分裂的重要机制。

虽然工作量证明很公平,但是,它消耗大量的能源。因为节点进行算力竞赛是需要消耗电力的,所以,就出现了另外一种共识机制权益证明(POS)。

权益证明是和工作量证明相对应的另外一种共识机制。权益证明根据你在网络里拥有的币的数量去竞争记账的权利,简单的说,如果你持有的币越多,你获得记账权利的概率就越大。这种证明机制在一定程度上能够缩短共识达成的时间,也不再需要消耗大量的能源。

在这个共识机制下,是不是买入网络里大量的币就可以获得网络里的话语权呢?这就涉及到币龄的概念,即数字货币的年龄。UTXO是躺在你地址里还没有花出去的币,在比特币的世界里面,UTXO位于区块的高度和当前最长链区块的高度差值,决定着这笔UTXO的币龄,差值越大,币龄越大,反之,则币龄越小,如果你花费了这个UTXO也就代表这个币龄被消耗。举个例子:你的朋友之前转给你一枚比特币,这笔交易被矿工在420000这个高度的区块上打包。目前,区块的高度是480000,而到目前为止,你还没有把这个比特币花出去,那你手上拥有的这枚比特币的币龄是60000,你的权益很有可能是60000*1枚等于60000枚。假设全网的UTXO加起来的币乘以币龄是1000亿,那么你进行记账并获得奖励的概率就是1000万分之六。在Pos机制里拥有币和币龄越高的节点,拥有着越高的产生新区块的概率的权利。简单来说,你拥有的币越多,币龄越久,你就有比别人更大的获得记账的概率。

由于工作量证明带来的能源消耗和其他缺陷,越来越多的区块链项目开始抛弃原来的单一工作量证明,开始实施工作量证明+权益证明混合的共识机制。在以太坊的设计里面,后期,也会由工作量证明转换为权益证明。而真正的权益证明共识机制运行起来的区块链早在2012年就诞生了,中文名点点币,英文名PPCoin。它是一个叫做Sunny King的匿名开发者开发出来的。

除了工作量证明和权益证明外,其他的共识机制还有股份授权证明机制(DPOS),它类似于董事会投票,持币者投出一定数量的票,代理他们进行验证和记账。另外还有燃烧证明(POB)、沉淀证明(POD)、能力证明(POC)、消逝时间证明(POET)等方案。但这些方案目前还不够成熟。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180602A0954D00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券