Networkid
交易是否有網路 ID?
根據這篇文章,每個乙太坊錢包都有一個號碼
network id
。每筆交易都有這個
network id
嗎?如果沒有,那麼應該可以在多個網路上重放交易,不是嗎?
如果沒有,那麼應該可以在多個網路上重放交易,不是嗎?
EIP-155通過將鏈 ID 合併到
v
交易簽名的一部分中引入了重放保護。所以實際上,是的,交易確實知道它在哪個網路上。從 EIP 的規範部分:
如果
block.number >= FORK_BLKNUM
和v = CHAIN_ID * 2 + 35
或v = CHAIN_ID * 2 + 36
,那麼在計算交易的雜湊以進行簽名或恢復時,不是只對前六個元素(即 nonce、gasprice、startgas、to、value、data)進行雜湊,而是對九個元素進行雜湊,替換v
為CHAIN_ID
,r = 0
和s = 0
。目前存在的簽名方案使用v = 27
和v = 28
保持有效,並繼續按照與現在相同的規則執行。