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

学习区块链,你必须要知道的神秘武器-共识机制!

昳寒的第63篇原创文章

上个礼拜天晚上,和一个在硅谷的区块链创业者聊一些品牌PR的合作事宜,其中有聊到区块链共识机制的问题,受益颇深,今天就来和大家一起分享一下。

那什么是共识机制呢?我给大家举个例子。

春节到了,大家马上都要回家过年了,过年这段时间同学聚会肯定是少不了的,那么问题来了,同学聚会的城市选择在哪里呢?吃饭的地方又选择在哪里呢?这些都需要大家一起讨论来达成一个共识。

假设没有班干部,也没有同学去牵头组织, 没有具体的标准,那么要达成上面2个问题是非常困难的,因为每个人的想法都不一样。

一般来说,达成共识越分散的过程,其效率就越低,但满意度越高,因此也越稳定;相反,达成共识越集中的过程,效率越高,也越容易出现独裁和腐败现象。

在区块链的世界中,因为是完成去中心化的,节点中的每一位成员都有权利表达意见,所以达成一件事情,必须要达成共识,不然社区将出现混乱,项目也将没有办法进行下去。

那现在主流的共识机制有哪些?各自又有什么样的优缺点呢?

目前主流的一些共识机制主要包括:PoW、PoS、DPoS三种,下面来逐分析一下。

1、PoW即工作量证明

优点:

1)算法简单,容易实现;

2)节点间无需交换额外的信息即可达成共识;

3)破坏系统需要投入极大的成本;

缺点:

1)浪费能源;

2)区块的确认时间难以缩短;

3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;

4)容易产生分叉,需要等待多个确认;

5)永远没有最终性,需要检查点机制来弥补最终性;

注解:这里想特别跟大家分享一下,如果使用POW这种共识算法的话,破坏系统需要投入极大的成本,黑客进行攻击的难度很大,从而保障了安全性,为什么呢?

这是区块链世界里面最长链机制决定的,所有的矿工都会认为最长的链是正确的,共识最终目的是保证比特币不停的在工作量最大的区块链上运转,工作量最大的区块链就是权威的公共总帐本。

技术层面很难做到:如果说黑客想要进行攻击,那么他就得拥有全网51%以上的算力去参与竞争记账,这个就算全世界最大的矿池也很难做到的,更别说个人了。

经济利益层面:如果黑客要实现51%的算力,那么他需要采购几万台矿机,现在每天矿机的成本都很高,合计的成本在40--60亿左右,如果不是为了上100亿的利益,这生意是划不来的。

2、PoS即权益证明

它将PoW中的算力改为系统权益,拥有权益越大则成为下一个记账人的概率越大。

优点:

不像Pow那么费电,可以节省能源。

缺点:

1)没有专业化,拥有权益的参与者未必希望参与记账;

2)容易产生分叉,需要等待多个确认;

3)永远没有最终性,需要检查点机制来弥补最终性;

注解大家可能会问,如果我买入大量的币,是不是就能获得话语权呢?当然这不是,因为还需要考量“币龄”。

那什么是币龄呢?你可以把他理解为币的年龄。

在比特币世界里,UTXO所位于区块的高度与当前最长链高度之间的差值决定着该笔Unspent的币龄的大小,差值越大,币龄越大,差值越小,币龄越小。如果你花费了这个UTXO,也就代表着这个币龄被消耗了。(区块高度就是区块主链的个数)

目前以太坊就是采用的POS共识机制,2016年在以太坊上进行开发的项目 The DAO遭受黑客攻击,后来通过以太坊团队通过分叉的方式把资产从黑客手中夺回来了。

当时社区意见不一致,有的人坚持不分叉,因为他们觉得这样分叉毁掉了区块链的不可篡改性;有的支持分叉,这部分大都是投资者,想挽回损失。所以才会出现ETC和CTH。

3、DPos股份授权证明机制

DPoS在PoS的基础上,将记账人的角色专业化,先通过权益来选出记账人,然后记账人之间再轮流记账。这种方式依然没有解决最终性问题。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。

缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

注解:通过专业化记账的方式,DPOS这样的共识机制在一定程度解决了区块链世界效率特别低的问题,这种代理记账的方式有点我们选举人带代表去开会一样,我个人是比较偏向这种共识算法的。

当然还有其它的一些共识机制,比如NEO项目使用的dBFT共识机制。今天暂不做分享,每一种共识机制都有自己的优缺点,相对来说我更偏向有DPOS的这种共识算法,因为这个在一定程度上解决了区块链世界中的效率问题,你更倾向于哪一种呢?欢迎留言!

欢迎对区块链项目分析和投资感兴趣的朋友,扫描下面的二维码,加我的个人微信。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券