conflux仍然采用 pow 共识机制,链上数据结构采用新颖的 dag 结构。下面介绍一下 conflux 与 btc 和 eth 的最重要的区别。
最重链规则
在上图这个链中,最长的链是 G->B->F->J->I->K->New,但是区块链最终采用的枢轴链为 G->A->C->E->H->New,因为A这个区块相比于B,有更多的子树,(假设各个区块都是普通区块),所以A树有着更大的权重。最重链规则是寻找区块链中权重更大的区块,所以认为 G->A->C->E->H->New 为枢轴链。
GHAST 协议
GHAST 机制的核心可以概括为以下几点:
1.同样采取最重链规则,但是区块有三种不同的权重:0, 1, X。其中 X 是一个比较大的数,例如 X=1000(先不讨论涉及挖矿难度调整的情形)。
2.网络中有两种区块:普通区块和特殊区块。普通区块的权重永远为1;特殊区块的权重根据区块的难度值(Difficulty)确定——有 1/X 的特殊区块权重为 X, 其余为 0。挖出一个普通区块和挖出一个特殊区块的难度是一样的。
3.区块的类型由区块的“历史树图结构”决定, 区块的生成者不能随意指定区块类型。
4.在没有攻击的情况下,所有新生成的诚实区块都应当是普通区块;在攻击者进行任何一种“存活性攻击”,并且持续足够长的时间后,所有新生成的诚实区块都应当是特殊区块。
如何判断一个新生成区块是普通块还是特殊快 Conflux最早采用的规则是:对于一个主链区块B: ret = (b 的子树权重)/ (所有区块 - b 的父亲区块的祖先区块) 当 ret > 0.6时,说明在所有生成时间可能晚于 b 的父亲区块中,多数区块都在 b 的子树中。如果本身分母也比较大的话,就足以保证 b 的子树权重优势足够大,很难被它的兄弟区块超过了。此时B就为普通区块,反之为特殊区块。
总结 GHAST 机制的规则就是当区块链没有受到攻击时,区块的生成速度非常快,以便给区块链各个节点及公链使用者较好的使用参与体验。当区块链检测到攻击时,此时调大难度系数,增大区块出块时间,便于各个节点尽快达成共识,维护区块链安全性与稳定性。
参考文章: conflux 中文社区相关文章
|