在解释分散式帐本系统(DLT)中,常常听到这样的解释,「你在网络上发布一笔交易,其他人便会把这笔交易纪录在自己的帐本中」,但是这只是简单的说法,如果让全网参与者同时在自己的帐本做纪录的话,会发生诸多问题,例如:
- 全网帐本无法保持一致性
- 无法确定交易是否达成最终性
- 有可能出现女巫攻击
此外,如果有攻击者在网络上同时广播多笔交易,会因为资讯传递时的时间差问题,导致全网出现不同版本的帐本,这时就会产生所谓的「双花问题」。因此我们必须要有一种共识机制,从众多的人中,公平的选出一个人记帐,并制定赏善罚恶的制度,才能抵抗女巫攻击,让全网矿工能够对帐本与交易结果达成共识。
共识机制
共识机制如同参与区块链记帐的游戏规则,目的就是要让公共区块链网络中的参与者,在彼此不相互信任且无中央权威机构存在的网络中,也能达成共识,共同维护区块链,进而解决双花问题。
在去中心化的体制下,区块链帐本的维护需仰赖网络上各个矿工,由于帐本存在于网络上各个节点之中,因此,必须让节点之间的帐本达成共识,才能保证帐本的一致性与交易的最终性。
当然,成为矿工不是做善事无私奉献,为了吸引人们成为矿工共同维护帐本,需要一套赏善罚恶的机制,让矿工花费成本竞争记帐权,完成记帐的矿工就能获得加密货币作为报酬,而作恶或尝试进行女巫攻击的攻击者,就会因为浪费成本造成亏损,而争取记帐权的过程就是大家常听到的「挖矿」。
注:节点可以选择只纪录帐本不争取记帐权,因此矿工一定是节点,但节点不一定是矿工。
共识演算法就是网络上矿工的挖矿规则,透过算力或持币权重等条件,选出记帐者,交由其他矿工验证,进而达成全体共识,维护全网安全。
不同种类的共识机制
共识机制的最终目的都是为了选出谁能拥有区块的「记帐权」,因为记帐可以获得奖励,大家会努力来争取「记帐权」,保证帐本的一致性与交易的最终性,并同时让大家在过程中花费成本,提高女巫攻击的门槛,否则如果有人控制大量矿工,就有机会可以做坏事。随着技术发展,开发者为了提升区块链达成共识的速度,衍伸出各种类型的共识来解决区块链的效能问题。
目前公有链较常见的共识机制为PoS、PoW与DPoS,三者谁好谁坏目前并没有定论,PoW保证网络的安全性但却有能源与效能问题,PoS解决了能源问题但也衍生出了其他问题,例如大者恒大,DPoS拥有高效率但却又有中心化的疑虑。
原创文章,作者:惊蛰财经,如若转载,请注明出处:http://www.xmlm.net/bi/31895.html