币圈子-打造专业区块链媒体平台

硬分叉之后如何保证资产安全?硬分叉后BCH的钱包解决方案

2019-05-25 00:24:38 | 来源:互联网 | 3588人阅读 | 作者:币圈子
全文导读
硬分叉之后如何保证资产安全?硬分叉后BCH的钱包解决方案 ,BCH分叉为两条链:BCH和BCHSV,我们持续做着相关风险监测,也注意到相关交易所/钱包暂停了充提。由于分叉后的两条链没做重放保护,可能导致一条链上发起的交易,在另一条链上做重放攻击,造成相关对象的财产损失(依实际攻击场景而定)。在无重放保护的情况下,分离这两种链上资产的方法,目前社区的解决方法主要有如下两个

硬分叉之后如何保证资产安全?硬分叉后BCH的钱包解决方案 ,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://bch.club/index.php?app=team mod=Forum act=detail topic_id=685 team_id=1

哥白尼团队提供的开源工具,有效分离 BCH 和 BCHSV 两条链: https://github.com/copernet/tools/tree/master/hardfork

温馨提示:文章不代表币圈子立场,不构成任何投资建议,谨防风险!本文来源于币圈子网站,转载请注明出处!侵权必究!
相关阅读
扩展阅读