在区块链的世界里,硬分叉往往伴随着社区的分裂与两条独立链的诞生,以太坊经典(Ethereum Classic, ETC)正是源于2016年以太坊社区因“The DAO”事件而进行的硬分叉,这次分叉也埋下了一个安全隐患——重放攻击(Replay Attack),理解并防范重放攻击,对于保障ETC及其相关生态系统的安全至关重要。

什么是重放攻击?

重放攻击是一种网络攻击手段,攻击者通过截获并重新发送有效的交易数据,使该交易在目标系统中被重复执行,从而达到恶意目的,在区块链领域,这意味着一笔已经在一条链上确认的交易,被攻击者“重放”到另一条链上,可能导致资产被盗、状态混乱等严重后果。

以太坊经典重放攻击的根源

以太坊经典重放攻击的直接根源在于2016年以太坊与以太坊经典的分裂。

  1. 共同的交易格式:分叉前后的以太坊(ETH)和以太坊经典(ETC)在交易结构、签名算法(secp256k1)等方面保持了高度一致性,一笔交易数据本身并不包含明确的“目标链”标识信息。
  2. 账户状态独立:分叉后,ETH和ETC成为两条独立的区块链,拥有各自的账本和账户状态,一个地址在ETH链上有一定的ETH余额,在ETC链上也有对应的ETC余额(通常是按1:1比例映射或后续通过其他方式获得)。
  3. 交易的可重放性:由于交易格式相同,当一笔交易在ETH链上被广播并执行后,其交易数据(包括签名)可以被攻击者截获,然后稍作修改(如果需要)或不修改,直接广播到ETC链上,如果ETC链没有相应的机制来识别和拒绝这笔已经在另一条链上执行过的交易,那么这笔交易就可能在ETC链上被再次执行。

重放攻击如何运作?

以一个简单的场景为例:

假设用户Alice在ETH链上有10个ETH,同时在ETC链上有100个ETC,她决定在ETH链上发送一笔交易,将5个ETH转给Bob。

随机配图