上证指数 3342.01 -0.24%
|
深证成指 10365.73 -1.40%
|
恒生指数 22818.7 -1.65%
|
纳斯达克 17601.05 0.87%
|
日经225指数 34735.93 -2.77%
|
Aries 站内编辑
251 文章
109825 阅读
首页  >  要闻 >  区块链 >  正文
申请成为签约作者 >
每日科普:长程攻击(下)
2019年10月12日 07:30    
收藏  

本文建议的分叉选择规则步骤是:从创世区块开始,针对每个区块通过以下规则选择其子块作为下一个合法区块:

  1. 当前区块被主链采用后,对状态进行快照。

  2. 列出当前时刻,持有代币的所有账户,并做成对照表(公钥 → 持有金额)。

  3. 对于每个候选子块,根据对照表,找出子块及其各自子树(子块后面接着的区块)中签署过至少一笔交易的公钥,并验证之。

  4. (验证)算出每个候选子块及其各自子树中,签署过至少一笔交易的公钥所转移的代币总量;选择转移代币总量最多的子块作为合法的下一个区块。

从图中的例子来说,当前区块是 B ,候选子块是 C1 和 C2 ;C1 的子树是所有合规主链上的区块, 而 C2 的子树是攻击者创建的。

从 B 块状态快照开始,计算签署过至少一笔交易的公钥所转移的代币总量(包含代币转移和质押代币交易),作为主链(C1 )的得分;攻击者创建的链( C2 )得分计算方式相同,但是因为存在重放保护,所有 C2 及其子树中的交易都是由攻击者创建的。

从 B 块状态快照开始,假设在主链( C1 )上,计算签署过一次及以上交易的公钥所转移代币总量为 p ;而攻击者创建的链( C2 )上,只存在攻击者买到的密钥所创建的交易,这些公钥所转移代币总量为 q ,则 q < p 永远成立。

如果攻击者创建的链希望获得更高的分数,则从 B 块状态快照开始计算, C2 及其子树中的交易总额必须大于 p ,所以攻击者还需要取得账户中总额大于 (p - q) 的密钥(而且这些密钥在主链 C1 及其子树中还不能签署过交易)(不然这些额度就计入了 p)。但攻击者这时候就头疼了,因为这些密钥持有人还没有在主链进行任何交易,所以他们的账户在快照状态时还有资金,所以攻击者无法用低于快照状态中的金额来取得这些密钥。

分寸规则

因此,即使攻击者以低价取得了截至 B 块为止,8 成的 “至少在主链发起过一笔交易的账户”,攻击者仍至少要付出 0.2p 的作恶成本。

请注意,要让主链具备抗分叉性,需要积累大量有效交易后这种分叉选择规则才有效,所以该选择规则仅适用于面临长程攻击的分叉选择。该分叉选择规则可以结合经典解决方案,先用拜占庭容错型确定性工具(BFT finality gadget)所敲定的区块形成一个区块链的子集,并在这个子链上执行上述分叉选择规则;然后基于上述规则选出的最终区块,再使用其他更合适的分叉选择规则(如,LMD GHOST)。

上述分叉选择规则为预防长程攻击提供了额外举措;虽然这种规则具有一些有趣的特性,但是在投入实际应用前,还有许多研究要做。举例来说,目前还不清楚该规则是否能够提供经济确定性;一切都需要更多长远的分析。

目前,我们正在积极研究防御长程攻击的方法,并即将发布更多资料,敬请期待。
点击关注币海启行微信公众号,了解更多。

币海启行微信公众号

声明: 本文由入驻币海编者上传,观点仅代表编者本人,不代表币海财经赞同其观点或证实其描述,请自行判断。
延伸阅读
4月11日晚间 财经圈动态消息10条
   超财鲸        2024/04/11 13:00
3月28日晚间 财经圈动态消息10条
   超财鲸        2024/03/28 12:55
2月7日晚间 财经圈动态消息10条
   超财鲸        2024/02/06 14:35
密钥备份升级惹众怒 冷钱包Ledger宣布推迟升级并公布开源代码
   杜牧白        2023/05/24 07:54
什么是BRC-20?它的优势和局限在哪里?
   鲁克        2023/05/10 07:55
V神PoS新书发布的当日,以太币暴跌7%
   鲁克        2022/09/28 08:26
每日科普:长程攻击(上)
   Aries        2019/10/12 06:27
BCH网络遭遇大量交易,或为了提高整体数据
   币海独步者        2019/09/02 04:28
Facebook加密货币项目Libra白皮书正式发布
   币海独步者        2019/06/18 10:00