• 移动端
    访问手机端
    官微
    访问官微

    搜索
    取消
    温馨提示:
    敬爱的用户,您的浏览器版本过低,会导致页面浏览异常,建议您升级浏览器版本或更换其他浏览器打开。

    区块链中的共识机制是什么

    敖萌 来源:雷锋网 2018-09-11 09:02:20 区块链 共识机制 区块链
    敖萌     来源:雷锋网     2018-09-11 09:02:20

    核心提示本篇有助于读者理解区块链中的共识机制。

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

    区块链中的共识机制是什么

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       转自雷锋网,本文作者为中国信息通信研究院(工信部电信研究院)专家敖萌博士。

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

    责任编辑:王超

    免责声明:

    中国电子银行网发布的专栏、投稿以及征文相关文章,其文字、图片、视频均来源于作者投稿或转载自相关作品方;如涉及未经许可使用作品的问题,请您优先联系我们(联系邮箱:cebnet@cfca.com.cn,电话:400-880-9888),我们会第一时间核实,谢谢配合。

    为你推荐

    猜你喜欢

    收藏成功

    确定