以太坊若分叉 NFT也會“分叉”嗎?

語言: CN / TW / HK

以太坊 PoS 轉 PoW 的過程將觸動礦工的利益,加上合併日期臨近,社群中出現不少關於分叉的話題,有一個話題引起了關注,那就是: 以太坊分叉可能會導致重入攻擊,讓使用者面臨丟失 NFT 的風險。

上圖中的這位推友就提示,如果使用者什麼也不做,可能因為重入攻擊(replay attack)導致自己的 NFT 丟失。對此,評論區下方也出現不同聲音,比如使用者什麼也不做,反倒能保護自己的資產。

兩種觀點孰是孰非?如果發生分叉,使用者的 NFT 會面臨風險嗎?應該如何保護自己的資產?Odaily 星球日報將通過分析成因,以回答上述問題。

重入攻擊與EIP-155

讓我們先複習兩個知識點,一個是重入攻擊,一個是 EIP-155。

在區塊鏈中,重入攻擊特指在網路硬分叉的過程中,使用者在原始鏈上籤署的交易可以在其他分叉鏈上被自己或者他人無許可地複製,以獲得更多的資產。

舉個例子,小明在某個 PoW 鏈上有若干個 CryptoPunk,PoW 鏈分叉出一條 PoS 鏈後,小明在兩條鏈上將擁有相同數量的 CryptoPunk 。此時小明在 PoW 鏈上簽名了一次售出若干個 CryptoPunk 的交易,理論上這筆交易可以在 B 鏈上不經過小明許可的情況下再複製一遍。如果是小明自己複製了這筆交易,小明就多得到了一筆售出 NFT 的收益(也變相藉由“增發”坑了買家);如果被他人複製了這筆交易,小明就會白白損失在 PoS 鏈上的資產。

而 EIP-155 ,是用於防止重入攻擊的一個協議,簡單理解就是如果不同的分叉網路和測試網在遵循協議共識的情況下,給自己設定了一個獨一無二的 【CHAIN_ID】,就能避免重入攻擊。

誰來保護使用者?使用者如何自我保護?

明白了重入攻擊與 EIP-155 的原理後,我們就明確瞭如果以太坊合併後發生分叉,我們應該做什麼。

首先需要收集一個資訊,以太坊的分叉鏈是否遵循了EIP-155協議?

如果分叉鏈遵循了 EIP-155 協議(取決於分叉主導者對程式碼的更改),那麼使用者在不同區塊鏈上的交易就是不可複製的, 使用者不需要做任何事

如果分叉鏈沒有遵循 EIP-155 協議(不太講究啊),那麼重入攻擊就是可行的,使用者簽名的任何交易都可能在其他分叉鏈上覆制。你要是 希望利益最大化,每進行一次交易,自己都在其他鏈上覆制一遍(最好通過自動化合約);如果選擇擁抱(正版)以太坊,就不要在分叉鏈上簽名任何交易。