1.

不过,在谈重放保护之前,我们需要先了解一下重放攻击(又称重播攻击、回放攻击)。实际上,重放攻击在互联网行业里就有过出现,也是计算机世界黑客最常用的攻击方式之一,它是指攻击者发送一个目的主机已接收过的数据包,来达到欺骗系统的目的。重放攻击在任何网络中都可能发生,在区块链上,重放攻击并不是指身份欺诈,而是发生在区块链硬分叉之时一种独特的现象。由于硬分叉的两条链,他们的地址和私钥生产的算法相同,交易格式也完全相同,因此导致在其中一条链上的交易在另一条链上很可能是完全合法的。所以当你在其中一条链上发起的交易,也可以到另一条链上去重新广播,并且极有可能得到确认,这就是“重放攻击”。

重放保护是指在分叉后的两条区块链之间加了一重保护,此时如果你在其中一条链上发起的交易,在另一条链上重复广播就会被判为无效。这样用户就可以放心地在两条链上分别持有资产,但同时也意味着两条链完全无关了。

事实上,卡尔文·艾雅最先表示CoinGeek希望通过启动重放保护,这样就能与Bitcoin ABC彻底分开。而且为了实现这一目标,卡尔文·艾雅甚至表示愿意放弃Bitcoin Cash的代币符号。不过Money Button首席执行官瑞安·X·查尔斯则强调自己非常反对实施重放保护,因为此举对比特币现金网络具有非常大的破坏性。此外他还指出,Bitcoin SV的关键价值主张其实就是“一个稳定的协议”,即使它和原生比特币协议有些区别,但其实是最接近比特币的分叉币,因此如果被重放保护破坏其实是得不偿失。

2.

重放保护,就是让交易只在当前链中有效,并且在其它链中无效。通常在一条链分裂成两条链时,为了让两条链的交易互不影响,需要在生成交易信息的时候,加入不同的标识或者使用不同的交易结构,这样,另一条链的矿工就会验证该交易无效,从而不打包该交易。

众所周知,算力大战的起因是,2018年11月15日,BitcoinCash从版本0.17硬分叉升级到0.18时候,出现了另外一个与0.18不兼容的版本BitcoinSV,SV并没有加重放保护,双方互不想让,于是吴比特与澳比特之间的算力战争就爆发了。

此后,BCH上的重放交易数一度超过了100万,11月18日,PeckShield态势感知平台信息显示,同时存在于ABC链SV上的重放交易数已高达1,115,114次,达到了百万级,共涉及4,583.98个BCH,其中可能包含重放攻击,安全问题堪忧。

为什么双方最初不添加重放保护的一方?

从过去的历史来看,添加重放保护的一方,是处于劣势的,因为该举动意味着放弃了另一方的所有生态。2017年8月1号BCH从BTC分叉出来时,主动添加重放保护,只能重新建立自己的相关应用,从0开始。

但是,添加重放保护,是能上交易所的基本条件。虽然不添加重放保护,交易所也可以把两种分离,但是交易所要花费很多精力和技术去做这些事。技术差的交易所,会因为账务混乱,无法支持。除非这种币有很大的用户群,否则交易所不愿意花费高成本去支持这种币。因此我们看到在火币上目前BCH和BSV都是无法充提的,原因就在于此。

02 添加重放保护的一方,是处于劣势的

BCH/BCHABC/BCHSV分叉后重放机制小结的更多相关文章

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

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

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

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

  3. 说说API的防重放机制

    说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果 ...

  4. API防重放机制

    说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果 ...

  5. 说说API的重放机制

    API的重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重放攻击是什么呢?就是把你的请求原封不动地再发送一次,两次...n次,一般正常的请求都会通过验证进入到正常逻辑中,如果这个正 ...

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

    重放攻击原理和防范措施——如何安全分离BCH的分来源:巴比特018-11-18 16:49:37 热度 12390 第0章 引言 即将面临的比特币分裂,如何保证你的币在分裂后肯定留下两种币?一个重点要 ...

  7. BCHABC/BCHSV的矛盾所在

    BCHABC: 将BCH以后发展智能合约: 消息方面: 吴忌寒:BCH分叉不可避免 未来可能继续分叉 近日,吴忌寒在北大光华管理学院的区块链培训课程上发表演讲表示,在这种言论自由地环境下,我认为分裂就 ...

  8. Nodejs:Node.js模块机制小结

    今天读了<深入浅出Nodejs>的第二章:模块机制.现在做一个简单的小结. 序:模块机制大致从这几个部分来讲:JS模块机制的由来.CommonJS AMD CMD.Node模块机制和包和n ...

  9. Oracle Redo Log 机制 小结(转载)

    Oracle 的Redo 机制DB的一个重要机制,理解这个机制对DBA来说也是非常重要,之前的Blog里也林林散散的写了一些,前些日子看老白日记里也有说明,所以结合老白日记里的内容,对oracle 的 ...

随机推荐

  1. Haskell语言学习笔记(90)Default

    安装 data-default-class $ cabal install data-default-class Installed data-default-class-0.1.2.0 Prelud ...

  2. mac shortcut

    在Windows系统中,如果你想跳到行首.行尾直接点击home.end键就可以了,但MacBook的相关快捷键就有些区别了,相关快捷键如下: Ctrl+A:到行首(达到Home键的效果) .fn键+左 ...

  3. Android中查看SQLite中字段数据的两种方式

    方式一:ADB Pull 通过adb pull导出*.db文件到PC的文件夹中,通过可视化工具 SQLiteExpertPers 进行查看.编辑: adb pull /data/data/com.jo ...

  4. 中文转码器的工作原理_delphi教程

    最近在做Delphi下的简体与繁体转换, 发现Windows2000自带的工具"中文转码器"很好用, 不仅可以转内码(BIG5-->GBK), 还可以将繁体字转为简体字(如: ...

  5. 我理解的BFC(块级格式化上下文)

    BFC(Block formatting context) 直译为"块级格式化上下文". BFC它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Bl ...

  6. Swift字符串常用方法

    1.0 比较两个字符串是否相等 判断字符串相等的方法是: ==. var str1 = "Hello world" var str2 = "Hello world&quo ...

  7. 连接mysql连接不上遇到的问题

    连接不上mysql ,启动mysqld进程,发现可以启动成功,但几秒后进程立马关闭了,后来发现主要原因是因为磁盘空间满了. 报错: Can't connect to local MySQL serve ...

  8. 环境变量之path的一点理解

    最初安装java环境时一直不明白为什么要配置环境变量,百度了一下还是理解不透彻. 后来安装python时也要配置环境变量.. 在经过未配置和配置的操作后,才有些理解path的含义. 1.未配置环境变量 ...

  9. php urldecode 与rawdecode

    php urldecode 解码给出的已编码字符串中的任何 %##. 加号('+')被解码成一个空格字符 php rawurldecode 返回字符串,此字符串中百分号(%)后跟两位十六进制数的序列都 ...

  10. 2.2、CDH 搭建Hadoop在安装(安装Java Development Kit)

    第2步:安装Java Development Kit 要安装Oracle JDK,您可以使用Cloudera Manager安装Cloudera提供的版本,也可以直接安装Oracle的其他版本. 继续 ...