售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
“以太网创始人God V在推特上介绍了以太网信标链第一个硬叉(暂定名为“HF1”)的升级方案。”以太网创始人God V在推特上介绍了以太网信标链第一个硬叉(暂定名为“HF1”)的升级方案。按照V神的说法,HF1增加了轻客户端支持,简化了规范,提高了效率,引入了惩罚力度较小的不活跃惩罚机制。根据文件,硬叉将使开发者能够对最近发布的信标链进行一些关键升级,这也将是对未来进行更深入更改的一个有用的测试。其中,轻量级客户端支持需要资源最少、可以在移动设备上运行的节点。这将允许“最小化信任钱包”验证区块链本身,而不是依赖外部服务提供商。“HF1是Ethereum信标链第一次硬叉升级的暂定代号(这个硬叉的长期命名思路见此处)。HF1的主要目标是:
添加轻量级客户端支持
修正信标链中的一些弱点。这些漏洞发现得太晚,在创建信标链时无法修复。
在小改动升级环境下测试信标链的硬叉升级机制,以便以后做更大的改动。
HF1中提议的一致变更包括:
在每个时间段(大约27小时),随机选择1024个验证者作为同步委员会的成员。同步委员会中的验证者节点将向当前负责人发出签名证明。这些签名将作为LightClientUpdate对象的一部分进行广播,这可以帮助LightClientUpdate找到这个头,并将被包含在信标链中以获得奖励。
更多内容:https://github.com/ethereum/eth2.0-specs/pull/2130
具体参考:https://github.com/ethereum/eth2.0-specs/pull/2176
此外,我们对不作为惩罚的工作方法做了两个改变:
对于每个验证者,不活动惩罚将变成二次的。也就是说,如果有不活动的惩罚,在此期间完全离线的验证者将损失大约10%的余额,而在此期间90%时间在线的验证者现在将仅损失大约0.1%的余额(相对于1%)。这试图将惩罚集中在真正行为不端的节点上,并减少由于网络连接问题而离线的诚实节点。
更多的讨论可以在这里找到:https://github.com/ethereum/eth2.0-specs/issues/2098
验证者的不活动惩罚在确定后逐渐减缓,而不是停止。这保证了一旦达到最终状态,离线节点会持续失去平衡一段时间,从而保证验证者的在线时间百分比显著高于2/3,而不是仅仅略高于阈值。
具体参考:https://github.com/ethereum/eth2.0-specs/pull/2192
https://github.com/ethereum/eth2.0-specs/pull/2194
值得庆祝的一件事是,通过削弱验证者的罚款,我们可能会稍微走出困境(尽管不是完全)。我们将改变常数:
不活动_惩罚_配额ENT:从2**26 (=67,108,864)减少到3 * 2**24 (=50,331,648)
比例_斜线_乘数:从1增加到2
ENT:从2**7 (=128)降到2**6 (=64)
目前,如果在最新的槽中没有块被发布,则它将被认为是证明者支持的链中的最新块,用于槽期间的LMD GHOST证明。例如,在下图中,BLANK上的校样被视为a上的校样:
然而,这为34%的攻击打开了大门。假设每个槽分配m个校验器,恶意攻击者控制0.34 * m,攻击者也有权利为槽n ^ 1发布块b。攻击过程如下:攻击者不发布B,也不发布它的任何证明。所有诚实的证人都会投票支持他们在第n个槽中看到A块而在第n个槽中什么也没看到的说法。目前这个计数被认为是对a的投票,在第n个槽中,一个诚实的提议者会在a上构建一个C块,此时恶意的提议者会向槽n ^ 1和n ^ 2宣布B及其证明。上叉有0.68 * m的验证器支持,上叉只有0.66 * m的支持,下叉胜出。
这篇文章的第3.1章更详细地描述了这次攻击:https://econcs.pku.edu.cn/wine2020/wine2020/workshop/gtib20 _纸_ paper。
提出的解决方案是改变分叉选择的工作模式,使其在(槽)对树而不是块树上运行。所以在上图中,槽n ^ 1中的诚实票会被计为(BLANK,n ^ 1)的票,所以会被正确地计为支持上述分叉,所以上述分叉得到1.32 * m的支持,从而战胜了攻击。
更多内容:https://github.com/ethereum/eth2.0-specs/pull/2197
提出的解决方案是通过授权下一个槽的支持者对分叉选择产生暂时但显著的影响来“打破对称性”,从而决定性地将所有验证者的支持方向转移到一边或另一边。
更多内容:https://notes.ethereum.org/@vbuterin/lmd_ghost_mitigation
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!