上周BCH进行了硬分叉,分叉成了两条链:BCH和BCHSV,对于分叉后的BCH如何进行交易呢?钱包是否有相关的危险因素?

  由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。

  在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个:

  1.input污染法

  原理是引入了一笔非法交易的输出作为输入,那么这笔非法交易的输入将会使得这笔交易也会变为非法。 例如: 一笔交易广播到了 BCHSV 链中,引用了非法交易(在 BCH 合法,在 BCHSV 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCHSV 链承认,那么这笔交易就被重放免疫了;对应的,一笔交易广播到了 BCH 链中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO 作为输入,那么这笔交易相当于被污染了,不会被 BCH 链承认,那么这笔交易就被重放免疫了。

  2. 构造特有操作码交易

  两条链的共识是有差别的,如果出构造一个本链合法,对方链上不合法的交易也可以进行分离,本次分叉双方的共识差别也体现在操作码上,可以在 BCH 链中,构造含有 OP_CHECKDATASIG 的输出,那么该笔交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 链中,构造含有 OP_MUL 的输出,那么该笔交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。结合社区的方式及交易所相关工程实践经验,我们推荐使用第 1 种 input 污染法,但这需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(创币交易) UTXO 作为污染源,从这个 coinbase 交易中可以划分大量的小额 output,在用户提现时,可以将这些小额的 output 作为新交易的 input 之一来构建提现交易,从而较方便地完成分离。

  另外,从工程实践上,我们也建议充提币的确认数可以适当提高,虽然目前来看两条分叉链未发生明显的攻击情况。

  对于普通用户来说,等着先,不着急。

  作者:慢雾安全团队

  千氪链接:https://www.kg.com/article/513691712565153792

硬分叉后,BCH的钱包解决方案的更多相关文章

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

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

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

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

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

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

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

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

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

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

  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. 转 Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案

    今早刚上班.客户打电话过来说系统访问不了,输入用户名.用户号不能加载出来!听到这个问题,第一时间想到的是不是服务器重新启动了,Oracle数据库的相关服务没有启动的原因.查看服务的时候,发现相关的服务 ...

  9. g++编译后中文显示乱码解决方案(c++)

    g++编译后中文显示乱码解决方案   环境:Windows 10 专业版 GCC版本:5.3.0 测试代码: 1 #include <iostream> 2 using namespace ...

随机推荐

  1. go语言学习之路六:接口详解

    Go语言没有类和继承的概念,但是接口的存在使得它可以实现很多面向对象的特性.接口定义了一些方法,但是这些方法不包含实现的代码.也就是说这些代码没有被实现(抽象的方法).同时接口里面也不包含变量. 看一 ...

  2. new子类会先运行父类的构造函数

    发现子类构造函数运行时,先运行了父类的构造函数.为什么呢? 原因:子类的所有构造函数中的第一行,其实都有一条隐身的语句super(); super(): 表示父类的构造函数,并会调用于参数相对应的父类 ...

  3. 泽熙学到的 z

    叶展,原泽熙投资总经理助理,现任齐鲁证券资产管理公司总裁助理,齐鲁星空.星汉等集合理财投资经理. 导读:三年前,我加入了泽熙投资,正式成为一名职业投资者.做职业投资者一直是我的理想.在股市中用眼光和头 ...

  4. ylb:了解存储过程

    ylbtech-SQL Server:SQL Server-了解存储过程 了解存储过程 ylb:了解存储过程 返回顶部 存储过程 2.2.1 主要的编程结构: 变量 数据类型 输入/输出变量 返回值 ...

  5. 如何从底层调试docker

    How the docker container creation process works (from docker run to runc) Over the past few months I ...

  6. ehcache缓存刷新问题

    ehcache可以设置时间来定时刷新缓存,但是这个只是清空值,key依旧保存着. 只有你第一次利用key获取值,key才会释放.

  7. Vue避免 v-if 和 v-for 用在一起

    永远不要把 v-if 和 v-for 同时用在同一个元素上. 一般我们在两种常见的情况下会倾向于这样做: 为了过滤一个列表中的项目 (比如 v-for="user in users" ...

  8. [LeetCode] Decode Ways 解码方法个数、动态规划

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  9. GroupBox与Panel控件

    1.GroupBox控件常常用于逻辑地组合一组控件,如RadioButton 及 CheckBox控件,显示一个框架,其上有一个标题. 2.Panel 可以包含多个控件,以便将这些控件编为一组,以便方 ...

  10. 如何查看selenium api文档

    参考文章:https://www.cnblogs.com/yoyoketang/p/6189740.html 环境:windows + python3 + selenium3 打开cmd,执行命令:p ...