重放攻击原理和防范措施——如何安全分离BCH的分来源:巴比特018-11-18 16:49:37 热度 12390

第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。

在BCH硬分叉后防止重放攻击-2的更多相关文章

  1. 在BCH硬分叉后防止重放攻击-1

    导致新加密货币的硬分叉为加密交换运营商带来了独特的机遇和挑战.Poloniex在最近的Bitcoin Cash硬叉之后面临的一个挑战是保护我们的客户免受重播攻击.由于SV链后面的开发团队选择在分叉后近 ...

  2. BCH硬分叉,BitcoinABC强势逆袭BitcoinSV

        最近币圈讨论最多的就是BCH的硬分叉,今天凌晨BCH硬分叉在众多币圈大佬关注下落下帷幕,此次分叉大站BitcoinABC强势完胜BitcoinSV.吴忌寒在推特上表示:祝贺!在这个新的区块之后 ...

  3. 硬分叉后,BCH的钱包解决方案

    上周BCH进行了硬分叉,分叉成了两条链:BCH和BCHSV,对于分叉后的BCH如何进行交易呢?钱包是否有相关的危险因素? 由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放 ...

  4. BCH硬分叉在即,Bitcoin ABC和NChain两大阵营PK

    混迹币圈,我们都知道,BTC分叉有了BCH,而近期BCH也将面临分叉,这次分叉将是Bitcoin ABC和NChain两大阵营的较量,最后谁能成为主导,我们拭目以待. 比特币现金(BCH)的价格自上周 ...

  5. BCH/BCHABC/BCHSV分叉后重放机制小结

    1. 不过,在谈重放保护之前,我们需要先了解一下重放攻击(又称重播攻击.回放攻击).实际上,重放攻击在互联网行业里就有过出现,也是计算机世界黑客最常用的攻击方式之一,它是指攻击者发送一个目的主机已接收 ...

  6. what??|诞生才一年的BCH竟面临硬分叉的抉择

    BCH才刚过一周岁生日一个星期,BCH社区的主力之一Bitcoin ABC(BCH全网接近三分之二节点运行的软件系统由Bitcoin ABC开发)就搅动了社区的涟漪.8月8号,Bitcoin ABC公 ...

  7. pre-fork 分叉 软分叉 硬分叉 前叉实现 pre-fork implementation

    https://mp.weixin.qq.com/s/wIDTs2J1ZkLkAEHqQnkYnw 什么是分叉?为何对区块链发展至关重要? Uselink公有链 Uselink公有链 2018-12- ...

  8. ethereum/EIPs-607 Hardfork Meta: Spurious Dragon硬分叉相关

    eip title author type status created requires 607 Hardfork Meta: Spurious Dragon Alex Beregszaszi Me ...

  9. 正本清源区块链——Caoz

    正本清源区块链 说明:以下内容整理自Caoz的<正本清源区块链>,如有不妥,请联系我修改或删除. 简介 不讨论炒币!不讨论炒币!不讨论炒币! 本课程内容分为两部分: 第一部分,烧脑篇,介绍 ...

随机推荐

  1. C#调用Delphi接口(ITest = interface)

    首先创建一个delphi的DLL工程 library testintfdll; { Important note about DLL memory management: ShareMem must ...

  2. 8.mysql-基础.md

    目录 数据库管理 查看当前软件中的数据库 工具 创建数据库 删除数据 查看字符集 修改数据库 表管理 进入数据库 查看表 创建表 查看表结构 删除表 修改表 添加字段 删除字段 修改字段名称 修改字段 ...

  3. 生产者消费者 wait()。 notify()

    public class ThreadDemo3 { public static void main(String[] args){ MyList list = new MyList(); Produ ...

  4. C# 图像处理:记录图像处理时间的一个类

    class HiPerTimer { [DllImport("user32.dll")] static extern bool GetLastInputInfo(ref LASTI ...

  5. 2.1、CDH 搭建Hadoop在安装(为Cloudera Manager配置存储库)

    步骤1:为Cloudera Manager配置存储库 使用包管理工具安装Cloudera Manager yum 对于RHEL兼容系统, zypper对于SLES,和 apt-get对于Ubuntu. ...

  6. sql语句中的不等于 <>

    建议最好使用 <> 表示不等于 原因:!=在sql2000不表示不等于

  7. 破解webstorm

    补丁下载链接:http://idea.lanyus.com/ 第一步:将补丁复制到安装目录的bin目录下 第二步:修改同目录下的 WebStorm.exe.vmoptions 和WebStorm64. ...

  8. 使用git或TortoiseGit推送项目至gitlab

    一.Wins安装Git+Trtoisegit工具实现版本克隆与推送 Git:         https://git-scm.com/ Tortoisegit: https://tortoisegit ...

  9. django 导入数据库

    python manage .py makemigrations appname python manage.py migrate

  10. 无法加载DLL"***.dll":找不到指定的模块

    加载dll的路径不对. 绝对路径不合适,可以换成相对路径. 比如: 把dll放入bin目录下的debug或者release下,然后就可以直接“test.dll”了.不用加路径了. 注意:路径必须与发布 ...