1. 链一财经首页
  2. 资讯

什么是重放和重放保护?比特币分叉期间我们该怎么做

何为重放

先说重放,重放指的是分叉过后,由于新链和旧链所运行的协议可能完全兼容,导致在旧链上发生的交易拿到新链上也是合法的。以本次的即将上演的 BTC/BTG 分叉为例:

什么是重放和重放保护?比特币分叉期间我们该怎么做

在高度 A 左右我们生成了两个新地址 a,b。 然后在高度 B 的时候,BTC 链分出了 BTG 链 (也就是三角形那条,图里忘了标了)。重放是怎么发生的呢?

假如我们现在在 BTC 链上发起交易 a -> b,由于 BTC 网络的交易是明文全网广播的,所以 b 很容易在 BTC 网络截获到这个 a -> b 交易广播,然后 b 只要把这个广播全文拿到 BTG 网络上再进行一次广播,这就达成了重放。可以说是 b 对 a 做了一次重放攻击。

同理,如果 a -> b 的交易最初是在 BTG 链上发起的,那么这次交易广播也很容易被拿来在 BTC 链上重放。这就是双向重放。

总之重放的后果是显而易见的,如果上例中 a 是你,b 是我,那么原本在另一条链上属于你的钱,就会被一并转给我。很严重。

重放保护

既然分叉可能会引发重放而且后果这么严重,那么引起分叉的一方或者双方就应当想办法避免重放,也就是重放保护。

仍以这次 BTG 分叉为例,一种可能不专业的解决方案是,BTG 定义一种新的交易广播格式,然后从高度 B+1 的区块开始,拒绝接受 BTC 的交易广播。如此一来在 BTC 上发生的交易就不能被拿到 BTG 上来重放。

但这只是解决了一个方向。另一个方向上,在 BTG 链上发生的交易,仍然可以被拿到 BTC 上重放。怎么解决呢?

一种方法是 BTC 采取和 BTG 类似的方式,拒绝接受 BTG 格式的交易广播,但是众所周知,BTC 由 core 团队维护,作为正统比特币协议,主动对分叉币做重放保护相当于是向分叉比妥协,这种事 core 是不会干的。

所以另一个方向上的重放保护还得是 BTG 来干。事实也正是如此,目前 BTG 团队正在悬赏找懂 core 代码的开发者解决双向重放保护的问题呢?

所以到底怎么做呢,我觉得可以研究一下 BTC 代码,看看它不接受什么样的交易广播格式,那我 BTG 就采用什么格式,同时 BTC 接受的广播格式,我 BTG 统统拒绝,这就解决了双向重放问题。

不过我没有看过 core 的代码,以上重放保护方案属于我的意淫,未必有效。感兴趣的话可以查一下 BCC 的重放保护方案。

持币者该怎么做

很多人建议是如果你的币在一些“可信赖”的交易所,你可以什么也不需要干。

但我的建议,最安全的建议是,从所有交易所里把币提出来放自己钱包,不要进行任何交易。直到双向重放保护被确认部署了,再进行交易。

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

邮件:kefu@lianyi.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code