您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
金融科技 正文
发私信给敖萌
发送

1

区块链研习 | 区块链中的共识机制是什么?

本文作者:敖萌 2018-04-03 15:06
导语:本篇有助于读者理解区块链中的共识机制。

雷锋网AI金融评论按:本文作者为中国信息通信研究院(工信部电信研究院)专家敖萌博士,雷锋网独家特约文章,雷锋网(公众号:雷锋网)与信通院子公司泰尔英福联合首发。未来,敖萌博士原创的区块链系列文章还将继续刊出,敬请关注! 

区块链研习 |  区块链中的共识机制是什么?

区块链是一种分布式总账技术,区块链和传统的分布式系统之间的关系,一般如下图所示:

区块链研习 |  区块链中的共识机制是什么?



传统的分布式系统是为了解决单机性能不足,某些应用中需要更大的存储、更强的计算能力而产生的技术。而区块链是为了解决各个节点互不信任,又需要协同工作而产生的。

区块链与不同分布式系统的重要区别就是——区块链之间的各节点是通过信任算法而实现相互信任,而一般的分布式系统可以通过信任一个共同的中心来实现相互信任。

区块链的基础是P2P分布式网络、加密算法和共识机制。在这些基础技术中,共识机制是至关重要的。可以说共识机制是区块链技术的核心,共识机制对于一个区块链系统来说就是它的灵魂。共识机制很大程度上决定了整个区块链系统节点间的相互信任程度,也决定了其他使用者对于区块链上数据的信任程度。

从技术上看,区块链与普通分布式系统,尤其是分布式数据库最大的区别就是“去中心化”,而正是共识机制决定了一个区块链系统“去中心化”的程度。

通常,我们把区块链分为两大类:一种是公有链,一种是非公有链。这两种区块链的核心区别在于:参与共识的节点是否是受控的

对于公有链来说,互联网上的任何计算机都可以通过运行相应的区块链程序,参与整个区块链的共识;而对于非公有链来说,通常需要获得之前区块链节点中大部分节点的同意,或者通过其他某种机制,获得参与共识的权力。 

对于公有链来说,共识机制面临的最大问题就是:根本不知道有多少个节点在整个区块链系统中。想像一下,一个团队在做一项决策时——假设需要决策去爬山还是去玩水,每个人都不知道队伍里面有多少人,每个人该怎么合理的做出自己的决策,以便让团队行动一致? 

投票确定?别逗了,你都不知道一共有多少人,怎么制作选票、发放选票、最后确定少数和多数? 

有一个办法,把所有人拴在一起。然后想爬山的就往山那边走,想玩水的就往水那边走。看看最后整体移动方向是哪儿,你就知道有可能大多数人的选择,然后跟着走就好了。 

在公有链中,我们只能通过比较力量或者类似的办法来进行决策。比较力量的共识机制,我们通常叫它PoW(Proof of Work 工作量证明机制)。 

比较力量的共识有一个的缺陷,大家的力气都耗费在了拼力量中,最后没劲儿爬山或玩水了。所以,很多人提出了PoS(Proof of Stack 权益证明机制)一类的算法,利用区块链上的Token,将Token转换为选票来投票决策。(注意,这里Token账户数量对应的是系统用户,而之前说不知道总数是不知道服务器数量。本质上,PoW是在“系统运维人员”之间进行共识而PoS一类的算法,相当于在“系统用户”之间进行共识。)这种机制,在公平性上也存在着很多争议。 

对于非公有链来说,情况简单了很多:每个节点都知道总共的节点数,我们只要简单投票就可以了。但是,谁来组织投票?谁监票谁唱票? 

PBFT算法是一个经典的解决这个问题的办法(详见本系列第八篇,拜占庭容错)。PBFT的核心方法就是:每个节点都告诉其他所有节点自己的选票是啥,这样,就不需要有人组织投票,有人监票和唱票了,每个节点都有其他节点的投票结果,于是每个节点都按照多数票的决议来执行就好了。 

人们对于PBFT算法也有关于公平性方面的争议,对于一个包含有Token的系统,投票的权力和Token无关,导致作恶成本降低,在涉及到Token的重大问题上,可能会由于经济诱惑而导致作恶节点数量超过算法限制。(也就是说,这是运维人员之间的共识,和用户关系不大。) 

而在没有拜占庭容错需求的分布式总账系统中,还有效率更高的RAFT\PAXOS等算法,但是一般我们认为,没有拜占庭容错需求的分布式总账系统不是区块链系统。因此,这些算法单独使用的话,并不能作为区块链系统的共识算法。但是,他们可以通过和DPoS等算法结合,发挥重要作用。

雷峰网原创文章,未经授权禁止转载。详情见转载须知

分享:

知情人士

工作在鹅厂的一名区块链从业者。欢迎联系我: mengao@tencent.com
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说