美文网首页
【区块链探索笔记十三】:重放攻击

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

作者: 悦诗LY | 来源:发表于2018-06-03 16:37 被阅读0次

    什么是重放攻击

    当网络进行硬分叉之后,区块链发生永久性分歧并产生两条历史交易、地址、私钥以及余额等完全对应的链。理论上UTXO在两条链上都可被确认以及识别,从而让不法之徒能够利用此进行恶意操作,对同一交易信息重复利用并骗取相关数字货币。 这种网络攻击被称为重放攻击(或重播攻击);可以将其理解为,使用同一付款信息多次购买商品的过程。

    重放攻击的危害在于用户不小心把本该属于自己的一种分裂币,意外发给了别人。

    比如比特币分裂成了bt1和bt2两种币。如果用户A不知道自己已经同时拥有了这两种币,还是当成是自己只有一种币。现在A将自己的币发给了另外一个人B,其实本质上他发的只是bt1,但因为重放攻击的存在,导致B既可以收到bt1,又可以收到bt2,但B只付给A bt1的钱。这样用户A就白白丢掉了一份分裂币。

    曾经的血泪史:以太坊重放攻击

    重放攻击在币圈被热谈,是以太坊硬分叉的时候。我们知道以太坊硬分叉出现了ETH和ETC两条链,两条链上的交易数据结构是完全一样的,因此一笔交易在ETH上是有效的, 那它在ETC上同样会被接受,反之亦然。 因为当时所有人都认为ETC将不会再存在,所以分叉前没人意识到两条链会产生相互重放问题。 后来还有许多矿工继续在维持ETC链时, 大家发现在ETH链上的交易拿到ETC链继续重放(广播)仍然是有效的。

    因为没经验,以太坊分叉时几乎所有交易所也都没意识到这个问题,更没有提前做ETH和ETC分离, 这时候只要有人从交易所提取ETH币,就有可能得到同等数量的ETC币。许多人利用这个漏洞,不断在交易所充币和提币(ETH), 从而获取额外的ETC。 这就是云币、BTC-e等交易所发布说自己被重放攻击了,被骗取了几乎所有ETC。“重放攻击”也就此闻名于币圈。

    为什么开发者不愿意在代码层面上修改交易格式来避免重放攻击

    其实道理很简单,如果一个比特币节点软件主动加了防重放攻击的代码,就是将自己的交易格式改的和以前不一样了,这在所有人看来就是一种主动放弃继承比特币/BTC/bitcoin的冠名权的行为。

    冠名权非常重要。加多宝和王老吉的故事都知道吧,要多少广告费也要抢到这个冠名权,没抢到就混淆视听,让消费者不知道谁是原版。

    普通用户如何防范重放攻击

    1.在潜在的分裂时间点前,最好是将币保存在自己控制私钥的钱包里。

    2.密切关注比特币是否分裂了。若比特币真分裂了,那各位之前持币的人就有两种币了,这个时候请注意你要防范重放攻击了。

    3.分裂后,不要着急发送你的币,而要先去买分裂后的币来污染你的币。如果真的出现两条链,并且在交易所已经上市,那就去交易所或找场外交易分别买一点这两种币,并且是买两个不一样的额度。然后分别将买到的币提现发送到你分裂前持有币的地址。

    4.你可以执行分离币的操作了。

    相关文章

      网友评论

          本文标题:【区块链探索笔记十三】:重放攻击

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