以太坊?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 协议(不太讲究啊),那么重入攻击就是可行的,用户签名的任何交易都可能在其他分叉链上复制。你要是希望利益最大化,每进行一次交易,自己都在其他链上复制一遍(最好通过自动化合约);如果选择拥抱(正版)以太坊,就不要在分叉链上签名任何交易。
?
|