因为之前介绍了很多关于区块链的现状以及与实际应用的相结合, 其中经常会提到共识机制这一词, 可能大家对于这个有些困惑, 今天就抽出点时间介绍一下什么是共识机制.
什么是共识机制?
说到区块链的共识机制简单点理解就是不相干的一部分群体对于某一方面达成一致意见, 专业点的解释是通过特殊节点的投票, 在很短的时间内完成对交易的验证和确认; 对一笔交易, 如果利益不相干的若干个节点能够达成共识, 我们就可以认为全网对此也能够达成共识. 举个简单的例子, 有甲, 乙, 丙和丁四个人来自不同地方, 这四个人之间互不相识, 他们一致认为你是一个好人, 那么基本可以断定你这个人不坏.
区块链的共识机制有什么用?
我们知道区块链是一个分布式分类账, 这个账单是由区块链上的各个节点参与储存的, 如何让各个节点相互协作共同参与存储处理区块链上的数据? 就需要共识机制让各个不同的节点达成共识, 才能使区块链上的数据按照一定的顺序记录在账本上. 举个很简单的例子, 一个和尚挑水喝, 这个时候根本不需要什么共识机制, 一个人挑水都是自己喝, 喜欢什么时候挑水都可以; 但是如果是两个以上和尚呢? 这个时候就制定一个规则来约束和尚挑水, 如果大家都能够认可这个规则, 那么就达成了共识, 所以区块链中如果缺少共识机制, 那么这个区块链根本没有存在的价值, 共识机制是区块链的灵魂.
区块链共识机制的分类
目前区块链的主流共识机制有三种: POW,POS 和 DPOS.
POW (Proof of Work) 工作量证明
比特币就是采用的 POW 共识机制, 这种机制是节点通过计算随机哈希数值来争取记账权, 这种计算能力的标准是矿工拥有的算力大小, 这种共识机制的有点是完全去中心化, 安全系数较高, 但是由于算力是依靠计算机来实现, 所以耗能比较大.
POS (Proof of Stake) 权益证明
权益证明机制根据每个节点拥有代币的比例和时间, 依据算法等比例地降低节点的挖矿难度, 从而加快了寻找随机数的速度. 这种共识机制可以缩短达成共识所需的时间, 但本质上仍然需要网络中的节点进行挖矿运算. 这种机制解决了 POW 的资源浪费的问题, 更加灵活运用在各商业领域.
股份授权证明机制 (DPoS)
DPOS 这种共识机制是在 POS 的基础上进行的修改, POW 和 POS 这两种共识机制会随着节点的增多, 效率越来越低, 因为节点越多, 共识越难, 而 DPOS 是将全体节点投票选举出一定数量的节点代表, 由他们来代理全体节点确认区块, 维持系统有序运行. 同时, 区块链中的全体节点具有随时罢免和任命代表的权力. 如果必要, 全体节点可以通过投票让现任节点代表失去代表资格, 重新选举新的代表, 实现实时的民主. 那么 DPOS 这种模式可以大大缩小参与验证和记账节点的数量, 从而达到秒级的共识验证.
以上三个是目前主流的共识机制, 但是都各有利弊, 有人仿照 CAP 的不可能三角, 提出了区块链共识的不可能三角:: 环保节能, 安全, 去中心化, 三者不可能同时满足. 比如说设计一个既环保又安全的共识机制, 那么它必然是弱中心化的, DPOS 也是舍弃了众多节点导致了弱中心化. 目前根据不同项目的需要, 开发团队根据主流共识机制的修改或者根据其他技术的启发也创造出了新兴的共识机制, 比如 NEO 的 dBFT(拜占庭容错机制),dBFT 虽然和 DPOS 同样是选取超级节点的模式, 但不同的是 dBFT 是每轮共识都要投票选举, DBFT 在 NEO 中的实际实现使用迭代共识方法来保证达成共识. 算法的性能取决于系统中诚实节点的分数, 随不诚实节点数量迭代. 还有以太坊的下一代 POS 共识机制 Casper,Casper 又叫投注共识, 简单点理解就是验证人投注时候需要抵押保证金, 如果这个验证人作恶, 那么按照协议会失去保证金. 目前还有一个比较新颖得共识机制叫 DAG, 有向无环图, 这种共识机制是参考传统的计算机技术, 简单点理解就是用户通过确认每个新交易的先前交易来确认彼此的交易, 目前采用这种共识机制的项目有 IOTA 和 Byteball, 这种共识机制比较适用于物联网领域. 虽然共识机制层出不穷, 但是大多数共识机制中都采用 token 激励机制, 但是针对一些具有潜力的场景例如政务应用方面不需要 token 共识机制还是空白, 因此区块链应用领域前景广泛, 未来发展仍任重道远.
来源: http://www.jianshu.com/p/9418ccd7a33a