美文网首页Nervos Fans
跨链重放攻击

跨链重放攻击

作者: 526ba0512193 | 来源:发表于2018-07-25 17:23 被阅读0次

以太坊硬分叉后,出现了两条链。 所谓跨链重放攻击,说的是把合约中的交易从一条链挪到另条链再来一次。

这个话题开始是在社交媒体上唠起来的,有位叫Peter Vessenes的盆友在自己的博文

Hard Fork And Replay Concerns​vessenes.com

中愉快的讨论了诸如重放攻击、跨链交易所爱出毛病的地方还有跨链玩耍时随机数的玩法等topic。

但是,这位盆友似乎是没掐住要点。


跳链的合约输入(Chain Hopping Contract Inputs)

跨链攻击最大的问题涉及智能合约。

好比,A链上正进行着一场正经的多人纸牌游戏。 分叉后,A链上的每个动作在B链上也视为合法,那么同样的动作序列可以在B链上实例化并重放。就是说,每个玩家的动作只能按顺序进行。说白了,既不能重新排列单个玩家的交易; 也不能为玩家编出个虚假交易来。但是,由玩家挨个提交输入的回合制游戏中,攻击者在B链上按顺序的方式重放这些输入时,自己的反应是可以变的。

这种游戏中,结果依赖于玩家的动作顺序,那么,鸡贼点的A链玩家可以根据A链的结果,设计出某种交易(顺序),然后在B链上舞弊获胜。

照这么说,啥游戏也不安全了?

也不是,井字棋这种,舞弊真就有点low惹。

这里关注的终点不是游戏,而是:像多玩家扑克这种,若编写时允许漏掉玩家输入,黑起来可能比较容易。


攻击后果

一种后果是:跳链肯定会让参与者以后很难从A链转到B链。 A链上得来的coin可能B链上就是没有。这一点实际上也算正常:A链上的交易历史没必有在B链上完整重放,因为交易往往取决于区块编号。 所以问题没有看起来那么可怕,因为没有修改到隐式合约。

另一种严重点的后果是:生事者可能从一条链中窃取价值。 跨链重放攻击者能够选择性的重放事件,借此从B链上获利,好比建了个泵,在A链上发现交易,然后在B链上榨取价值,直到榨干这些可重放交易中的(分叉前就有的)ETH。也就是说持有大量分叉前coin的场所一般是攻击者偏爱的宝地。

实际后果

跨链重放攻击下,人们要么主动防御,要么选择一条链一直走到黑。意思是建议被动防御的盆友们,只跟自己认为是多数链(也就是说经济量比较多)上的智能合约交互。 虽说少数链易受跳链的影响是真的,但是反过来也为迅速生成一条统一的新链提供了(群众)基础。这种聚少成多并非坏事,也就是所谓的“谢林点”,为众人的行为提供了一个焦点(focal point)。

最简单的重放攻击防御是执行依赖区块哈希的分叉,能将自己的coins发送至两条链上的不同钱包。 这里,有些代码能把coins随机分给两条链上的不同钱包地址,进而阻止后续重放(注意:有鉴于这个方案是概率性的,调用需谨慎,并确保两条链上的结果不同)。


分叉后,改主意了,换地方行不?

理论上说可以,想去哪条链真是个人选择,只要不参与那些易受跨链攻击分叉上的活动,其实okay的。 若采用分发coins到两条链的方案,相当于给自己以后换地方留了条后路。 但是,但是,切换链也意味着将一些东西(交易)留在身后。

然而。

考虑下这个问题:分叉是围城么?

没看爽的盆友,推荐这篇文章:

以太坊重放攻击 - CSDN博客​blog.csdn.net

Cross-Chain Replay Attacks​hackingdistributed.com

相关文章

  • 跨链重放攻击

    以太坊硬分叉后,出现了两条链。 所谓跨链重放攻击,说的是把合约中的交易从一条链挪到另条链再来一次。 这个话题开始是...

  • 2018-08-14

    重放攻击

  • 重放攻击

      最近系统上线之前需要做安全测试,安全测试人员指出了系统存在重放攻击,由于之前项目没有遇到过这样的问题,在这里就...

  • 防止重放机制

    一、API重放攻击 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击。重放攻击是什么呢?就是把你的请求原封...

  • 说说API的防重放机制

    说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击。重放攻击是什么呢?就是把你的请求...

  • 16;重放攻击

    黑客把已发送给服务器的信息重新又发送了一遍,有时候这样可以骗取服务器的多次响应。 比如游戏里领金币:不断地跟服务器...

  • 防重放攻击

    使用时间戳方式在请求参数中添加时间戳参数,服务器端首先验证时间戳timestamp是否有效,比如是服务器时间戳5分...

  • 【区块链探索笔记十三】:重放攻击

    什么是重放攻击 当网络进行硬分叉之后,区块链发生永久性分歧并产生两条历史交易、地址、私钥以及余额等完全对应的链。理...

  • 业务安全分析

    我们测试的时候可以分为以下几种测试场景进行测试: 一.重放攻击 重放攻击是指攻击者发送一个目的主机已接收过的包,来...

  • 20【通俗易懂区块链】重放攻击

    摘要:大部分公链都存在重放攻击的问题,以太零在这个问题上的处理方法值得大家参考。 原创声明 本文作者:Minlu ...

网友评论

    本文标题:跨链重放攻击

    本文链接:https://www.haomeiwen.com/subject/jtojmftx.html