区块链 重放攻击 简介

什么是重放攻击

当网络进行硬分叉之后,区块链发生永久性分歧并产生两条历史交易、地址、私钥以及余额等完全对应的链。理论上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.你可以执行分离币的操作了。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值