美文网首页比特币&区块链研究
重放攻击原理和防范措施——如何安全分离BCH的分裂币

重放攻击原理和防范措施——如何安全分离BCH的分裂币

作者: 1a8661c5a646 | 来源:发表于2018-11-18 15:44 被阅读12次

    第0章 引言

    即将面临的比特币分裂,如何保证你的币在分裂后肯定留下两种币?一个重点要防范的风险就是重放攻击。

    第1章 重放攻击原理

    首先讲明白,重放攻击其实根本就不是攻击。目前币圈流传的各种关于重放攻击的言论有点过于危言耸听了

    重放攻击,这里的“攻击”根本就不是别人对你发起的某种侵略或偷盗行为。而是因为比特币区块链分裂后的两个分支链,都有相同的地址、私钥和交易格式。你在分裂点前的币,自动会被分裂后的两条链都承认。

    如果你使用分裂点前的币发起一笔交易,在两条链上这笔交易都会有效。这就是显得你发了两笔交易,这里的另外一笔,就是“重放”。

    我打个比方来解释这个,在国军退守台湾后,蒋公将大陆的很多机构都照样在台湾复制了一遍。比如在台湾也建了清华大学。而在大陆的北京,也是有一个清华大学。

    如果你在美国给清华大学写一封信,就是用纸,让邮递员送的那种信。但收件地址上只写了“中国清华大学XXX收”

    这个收件地址即可以解读为是北京的清华大学,也可以解读为台湾的清华大学。这下邮递员麻烦了,他干脆将你的信复印一遍,送到两个大学去。

    这就是重放攻击。因为本来你只想寄给台湾的清华大学,但现在却被重放到了北京的清华大学。

    所谓的防范重放攻击,就是想办法让你发的交易,只在一条链上有效,在另一条链上无效。从而可以避免“重放”。


    第2章 领取分裂币

    BCH分裂前用户需要注意的最重要的知识点有两个,第一个是掌握私钥。第二个是做好重防保护。

    不过我们还是要面对现实,比特币确实很难用,对很多用户来说,可能真的搞不清楚私钥是个啥玩意。第一推荐真的自己去搞清楚来,如果实在是搞不清楚,那就存放在讲信用的交易所吧。

    分裂后,用户如何领取分裂币呢?

    领取分裂币的过程其实非常简单,只要用户将私钥导入到分裂币钱包,就完成了领取。

    分裂后,第一步需要做的就是确认你有多少分裂币。这个一般使用区块链浏览器就可以查询的到。一般一个区块链币诞生后,一定会有一个区块链浏览器的,你只需要将你分裂前的收币地址复制到区块链浏览器去查看一下,就可以知道自己有多少分裂币了。

    现在Bitcoin abc是有区块浏览器的

    https://bch.btc.com

    Bitcoin sv暂时还没有找到可用的区块浏览器。

    第二步是安装分裂后的钱包。分裂后,去下载最新的钱包。一般来说下载一个开发者做的完整节点钱包是最为安全的。但因为要下载整个区块链,所以也是最麻烦的。只要你知道如何导出和导入私钥,使用SPV轻钱包也是一样的,安全性上也是足够的。

    bitcoin abc在这里下载钱包:

    https://download.bitcoinabc.org/0.18.4/

    bitcoin sv在这里下载钱包,目前没有windows版本的

    https://github.com/bitcoin-sv/bitcoin-sv/releases

    鉴于目前生态比较混乱,不建议使用轻钱包。

    第三步就是导入私钥进钱包。

    如果用户使用的是完整节点做钱包,比特币都保护在wallet.dat文件里。当分裂后,用户只需要重新下载分裂币的完整节点钱包,并且将wallet.dat文件导入进去就可以完成分裂币的领取了。

    如果用户使用的是轻钱包,则需要你想办法将原来的私钥明文导出,并导入到分裂币的轻钱包中。但鉴于目前生态比较混乱,不建议使用轻钱包。   

    请注意,上述领取分裂币的过程根本就没有发生任何的发币过程。


    第3章 用户主动设计防重放保护

    1.在分裂前,请将自己的币存在自己控制私钥的地址上。

    2.为了保险起见,建议一定要存一个只有小余额(比如0.01BCH)的地址,这个地址里的币就是用来测试用的。

    3.分裂后,下载新的分裂后的两个BCH钱包,将私钥导入到BCH钱包。

    4.分裂后,等一天,到矿池(如果交易所提供提现,就从交易所买)买0.011BCH-abc,和0.012BCH-sv,都往你的地址上发,发就对了。注意一定要带不一样的小数尾数。

    这一步需要强调一下,为什么要等一天?因为比特币的区块奖励成熟度是100个区块,即比特币挖矿的Coinbase奖励在100个区块后才能花。这里说的从交易所里买币,最根本有效的应该是从矿池买分裂后100个区块的发出来的coinbase币。因为分裂后的coinbase币绝对是只可能在一条链上有效,在另一条链上是无效的。但为什么我们觉得从交易所买币也可能有用呢?是因为绝大多数交易所都会做好币的防重放保护,否则他们不敢打开提现功能。

    5.然后你将你的钱包同步区块,你就会发现,在BCH-abc钱包只能收到0.011BCH,而BCH-sv钱包只能收到0.012BCH。这两笔交易是不能被重放的,因为它们是来自分裂后的区块。这样你的币就被污染了,就不可能被重放了。

    6.将你污染的币,全部(注意一定是全部)发到另一个你自己控制私钥的地址上。这样操作,哪怕是这笔交易被重放了,因为目标地址的私钥是你自己控制的,所以哪怕是被重放也是重放到你自己的地址上。

    7.记得先使用你分裂前做好的0.01BCH的那个钱包来完成测试。然后再将你的大额钱包做分离。

    最后,放轻松。重放不是攻击,没多大事,只要小心一点,就OK。

    第4章 分叉知识

    下面是广告。我写了一个详细的分叉知识教程,系统性讲解区块链分叉,

    请点击 购买链接 即可,或者关注我的微信公众号(闪电HSL)购买。

    第5章 结束语

    无论怎么样,现在bch是最受人瞩目的了。


    作者:黄世亮

    欢迎关注微信公众号:闪电HSL

    相关文章

      网友评论

        本文标题:重放攻击原理和防范措施——如何安全分离BCH的分裂币

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