前几天BIP91被锁定,大家以为比特币不会分叉了,没想到这几天杀出来一个比特现金Bitcoin Cash(前身是Bitcoin ABC),忽悠了一些矿池的算力来个硬分叉,币名也起好了BCC,已经在某些交易所上架了,还有价格,8月1日20:20开始正式交易,现在看来,比特币的分叉几乎不可避免。
以前买入BTC的朋友现在又遇到了一个新挑战:
重放攻击
。
什么是重放攻击?
重放攻击
的英文是
Replay Attack
,一句话来说,就是你在一条链上产生的交易,会被重放(replay)到另一条链上,本来你只是支付了一种币,结果却额外支付了另外一种币,感觉好像被攻击了。
先来个类比吧,假设你去欧洲旅游时带了一张双币信用卡(
欧元EUR和
人民币CNY),买了一把瑞士军刀花了10 EUR,刷卡时竟然被黑客把你的交易信息全部复制了一份,回国后,你发现竟然多了一笔10元RMB的消费记录,你只刷了10EUR,却多支付了10 CNY,你被
重放攻击
了。
当然这个类比有许多不太恰当的地方,这种情况在现实世界中几乎不可能发生,一方面欧元的交易信息和人民币的交易信息根本就不同,另一方面有银行这个中心机构来结算,没有签字的刷卡交易还可能被追回,与去中心化的区块链世界差别很大,记住这只是一个类比而已。
现在来看比特币世界里的重放攻击,如图所示,假设8月1日分叉前的币是BTC,分叉之后,出来BCC币,原来的BTC旧链为了区分方便起个新名字叫BTC1。
BTC分叉后出来的两种币
假设你总共有5个BTC,8月1日之后,你发起一笔交易,从钱包地址A向钱包地址B支付1个BTC,这笔交易被确认的实际意思就是把这条交易打包进了区块链里,以前只有一条链,一切正常。
现在出来两条链了,你把交易信息写入了BTC1这条链上,但竟然有人把这条交易信息原封不动地发送到了BCC新链上,这条交易信息还是完全合法的,这样实际上你还支付了1个BCC!
攻击
攻击这个词有点夸大了,因为你本来只有5个BTC,分叉后你仍持有这5个BTC(或者换个新名字BTC1),支付了1个BTC,如果你不知道BCC的存在,本身啥也没损失,谈不上被攻击。
但现在问题不一样了,你学会了
区块链基本原理
,不再是一个币圈小白,分叉之后,你竟然拥有了两种币,你的币被加倍(double)了。原来你只有5个BTC,现在你有5个BTC1和5个BCC。这里需要提醒一点,虽然你的币多了一倍,但交易所的行情可能会发生剧烈波动,这些币的市值可能并没有加倍,甚至还可能减少。
你现在明白了这5个BTC1和5个BCC原本都是自己的,现在
攻击
就成立了,我只想支付1个BTC1,竟然有人偷偷地从我的钱包里还拿走了1个BCC(重放Replay),你的BCC币也减少了,你感觉被人
攻击
了,这才是
重放攻击
。
以太坊分叉回顾
历史上能够借鉴的真实案例就是以太坊的分叉事件了,去年
7月,
众筹项目TheDAO被黑客攻击,偷走了大量以太币ETH,
以太坊区块链被迫进行硬分叉以挽回被盗者的损失。
以太坊核心开发者将被盗资金转移至新链(还叫ETH)地址中,原来的旧链暂时被人遗忘。没想到没过多久,当时最大的
交易平台 Poloniex (简称P网)突然宣布,旧链的
代币命名为 ETC,开始
上架交易。
这可把其它交易所弄了个措手不及,遭受了严重的重放攻击,比如云币网赔了4万枚ETC,其它交易所分别是什么情况就需要自行搜索了,这个事件也从另外一个方面考验了交易平台的信誉。
今年,交易平台都有经验了,提前进行了BCC上线前的部署工作,这几天都
被这个BCC折腾得不轻,分别
发出了相应的声明。
该如何操作?
明白了上述道理,该如何操作呢?
1)假如你的BTC放在交易平台
1a) 如果平台承诺帮你自动申领一份BCC,负责分叉期间的所有操作,并且你信任这个平台,则啥也不用管,静等着多出一种币。
1b) 交易平台只给你一种币,则你要当心了,说明了这个平台的技术实力并不过关,是否卖出或取现就看你自己了。
2)假如你的BTC放在自己的钱包中
这种情况下,你掌握了你的比特币私钥,也就是说你真正自己掌握了自己的钱。
2a) 仍没看懂我上面写的文字,握住不动,什么也不做,等尘埃落定之后,再操作。
2b) 不会自己操作,又非常信任某个交易平台,在7月31日之前充值进去。
2c) 可以参考公众号“闪电HSL”最近发出一篇文章《
安全地分离BTC和BCC
》,摘录如下: