前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >比特币分叉在即,你会被重放攻击吗?

比特币分叉在即,你会被重放攻击吗?

作者头像
申龙斌
发布2018-03-06 11:29:18
1.4K0
发布2018-03-06 11:29:18
举报
文章被收录于专栏:申龙斌的程序人生

前几天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》,摘录如下:

  • 分裂前,用钱包软件导出私钥
  • 最好存一个只有0.01BTC的地址,用来测试
  • 到 https://www.bitcoincash.org/ 下载 一个比特现金(BCC)钱包,将上述私钥导入这个钱包。(这个步骤可以在分裂后做,也可以分裂前做。)
  • 分裂后,到交易所买0.011BTC和0.012BBC,都往你的地址上发
  • 在两个钱包软件中同步区块,污染你的币
  • 分别将你污染的币发到另一个你自己控制私钥的地址上
  • 先用分裂前做好的0.01BTC的那个钱包来完成测试,然后再将你的大额钱包做分离

小结:

  • 分叉并不可怕,还多了一种币
  • 重放攻击就是一条链的交易重放到另一条链上
  • 不会操作就握住不动,静等尘埃落定
  • 自己掌握私钥的话,就分离出一种币,祝你好运
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 申龙斌的程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档