我今天偶尔看了一下,号称自己很厉害的Avalanche共识协议介绍,看了一遍感觉啥都没说
应该也是基于DAG结构的算法
从Conflux的树图再谈DAG
Avalanche本质上是一个基于 DAG 的联盟链算法,论文讲的还是比较细致的。对安全性什么的也有比较细致的考虑也分析。
但是 Avalanche 的 DAG 中,矿工如何选区块作为父亲区块,是一个不好设计的规则。如果像Conflux一样引用所有看到的区块,在Avalanche中会有问题。
就是说我 新出的区块可以去引用 创世节点?
激励是一方面 我这边主要还是关注作恶者或者对于激励不敏感的矿工
这个叶子区块很难定义 毕竟每个矿工的视角不一样 所以我比较关心可以引用多少层
我就假装,我现在只看到创世节点,没看到其余节点,然后引用了创世节点。
其余节点应该如何确认,你是一种恶意引用的行为?
当然 如果我引用的节点之间有拓扑关系 这个肯定是比较容易排查的
我说的这种情况是 如果我引用的节点之间没有拓扑关系 是不是其中一部分节点可以很老 一部分很新
或者所有都很老
我觉得,我们可能理解错了,创世节点应该只能被认做父节点,而不能被引用
如果你引用的是pivot上的非创世节点,其实也可以引出同样的问题
辰星同学也提到了 以太。以太是做了限制的 我记得应该是不能引用超过8层之前的节点
但是辰星又说conflux没有做限制 是处于安全考虑 但从我的观点来看 这个如果可以限制最好 毕竟去确认老的节点 对于网络安全没有好处
@Regulus_YG 谢谢杨老师 看样子主要是靠激励了
”Avalanche本质上是一个基于 DAG 的联盟链算法“ 这个不太理解 应该是个公链的协议
我到感觉跟SPECTRE有点像 少数服从多数 快速收敛 Avalanche的问题 我个人感觉倒是可能有女巫攻击的风险
Avalanche 本身没有涉及如何抵抗女巫攻击。所以对于参与者的资格比较容易实现的方案是采用类似联盟链那样的准入机制。如果采用pos的方式也行,需要另外搭配相应的pos选举协议。
@Dahai 我来再解释一下这两个问题
- 关于深度控制。
相信你也了解过 Phantom, Phantom 通过共识将区块标成红色和蓝色两种区块。红色区块没有权重,类似于一个无效区块。Phantom 在证明中,直接假设一个好人生成的区块高概率是蓝色区块,然而这是不对的,我们也找到了这个假设的反例。
所以为了避免这种情况,Conflux 在“将区块标为无效,将区块权重置为 0 ”这件事情上,是非常谨慎的。避免我们的理论分析过程中,陷入循环论证的错误。
但是,在共识上面不标为无效,不意味着在激励机制方面没有作为。杨光刚才也提到了,主要通过激励机制惩罚这种行为。区块权重有效,但是没有收益。