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

前几天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的那个钱包来完成测试,然后再将你的大额钱包做分离

小结:

  • 分叉并不可怕,还多了一种币
  • 重放攻击就是一条链的交易重放到另一条链上
  • 不会操作就握住不动,静等尘埃落定
  • 自己掌握私钥的话,就分离出一种币,祝你好运

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链资讯

又一方案实现发行Token的功能,BCH平台Token即将迎来大爆发

前段时间BCH社区中提出了多种智能合约方案,如虫洞Wormhole,Bitprim的Keoken,Cryptonize.it推出的彩色币协议,另一个是由Jona...

841
来自专栏大数据文摘

Blockchange丨老矿工的区块链5000字终极指南

971
来自专栏区块链入门

第十七课 【ERC721实践】迷恋猫从玩耍到开发

玩迷恋猫游戏,玩家需要在以太坊区块链上下载到这款游戏的APP,游戏开始系统会赠送玩家一只喵。刚推出时是送猫的,现在只有活动时才赠送。它让你沉迷于吸猫,然后当你无...

1054
来自专栏极客编程

以太坊智能合约Demo

智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例子深入浅出智能合约开发,体会以太坊构建去...

1092
来自专栏企鹅号快讯

用最简单的图文带你看懂区块链

用最简单的图文带你看懂区块链 匿名用户- 保密 保密 昨天 14:46 除非过着与世隔绝的生活,否则你或多或少有听说过比特币和区块链,毕竟,这可是当下媒体...

20510
来自专栏Python私房菜

最爱你的人,会让你不费脑细胞的理解区块链

区块链是一个近期非常火的概念,随便走进一个写字楼的电梯,都会听到有人谈论区块链,或者炒币: ) 希望通过这篇文章,能让你对区块链的概念有一个整体的认识,在理解概...

772
来自专栏申龙斌的程序人生

创世区块 | 区块链生存训练

比特币的底层是区块链(blockchain)技术,区块链是由一些区块(block)链接而成的,区块中记录着比特币交易信息。 2009年1月3日 18:15:05...

3269
来自专栏北京马哥教育

看完此文再不懂区块链算我输:手把手教你用Python从零开始创建区块链

来源:51CTO技术栈 ID:blog51cto “三点钟区块链”无疑成为了大家春节期间焦虑的根源,而“区块链”注定是 2018 年被持续讨论、关注的行业性热...

3698
来自专栏区块链技术指北

理解智能合约

这是「区块链技术指北」的第 22 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」。同时我会...

3976
来自专栏申龙斌的程序人生

解密Coin.Dance【区块链生存训练】

在比特币分叉时期,关注区块链动向的网站有很多,CoinDance网站 (https://coin.dance)就是非常有名的一个,里面提供了包括市值、价格、节点...

3476

扫码关注云+社区