? 上周BCH進(jìn)行了硬分叉,分叉成了兩條鏈:BCH和BCHSV,對于分叉后的BCH如何進(jìn)行交易呢?錢包是否有相關(guān)的危險因素?

由于分叉后的兩條鏈沒做重放保護(hù),可能導(dǎo)致一條鏈上發(fā)起的交易,在另一條鏈上做重放攻擊,造成相關(guān)對象的財產(chǎn)損失(依實際攻擊場景而定)。
在無重放保護(hù)的情況下,分離這兩種鏈上資產(chǎn)的方法,目前社區(qū)的解決方法主要有如下兩個:
1.input污染法
原理是引入了一筆非法交易的輸出作為輸入,那么這筆非法交易的輸入將會使得這筆交易也會變?yōu)榉欠?。例如:一筆交易廣播到了BCHSV鏈中,引用了非法交易(在
BCH 合法,在 BCHSV 非法)的 UTXO 作為輸入,那么這筆交易相當(dāng)于被污染了,不會被 BCHSV
鏈承認(rèn),那么這筆交易就被重放免疫了;對應(yīng)的,一筆交易廣播到了 BCH 鏈中,引用了非法交易(在 BCHSV 合法,在 BCH 非法)的 UTXO
作為輸入,那么這筆交易相當(dāng)于被污染了,不會被 BCH 鏈承認(rèn),那么這筆交易就被重放免疫了。
2.構(gòu)造特有操作碼交易
兩條鏈的共識是有差別的,如果出構(gòu)造一個本鏈合法,對方鏈上不合法的交易也可以進(jìn)行分離,本次分叉雙方的共識差別也體現(xiàn)在操作碼上,可以在BCH鏈中,構(gòu)造含有
OP_CHECKDATASIG 的輸出,那么該筆交易在 BCH 上是合法的,但在 BCHSV 上是不合法的;同理在 BCHSV 鏈中,構(gòu)造含有 OP_MUL
的輸出,那么該筆交易在 BCHSV 上是合法的,但在 BCH 上是不合法的。結(jié)合社區(qū)的方式及交易所相關(guān)工程實踐經(jīng)驗,我們推薦使用第 1 種 input
污染法,但這需要有分叉后的 BCH 或 BCHSV 的 coinbase 交易(創(chuàng)幣交易) UTXO 作為污染源,從這個 coinbase
交易中可以劃分大量的小額 output,在用戶提現(xiàn)時,可以將這些小額的 output 作為新交易的 input
之一來構(gòu)建提現(xiàn)交易,從而較方便地完成分離。
另外,從工程實踐上,我們也建議充提幣的確認(rèn)數(shù)可以適當(dāng)提高,雖然目前來看兩條分叉鏈未發(fā)生明顯的攻擊情況。
對于普通用戶來說,等著先,不著急。
作者:慢霧安全團(tuán)隊