参数:
FORK_BLKNUM: 2675000
CHAIN_ID: 1(主网)
规范:
如果区块高度number >= FORK_BLKNUM同时CHAIN_ID是可用的,那么当为了签名而计算交易的哈希值时,你应该哈希9个RLP编码的元素(nonce, gasprice, startgas, to, value, data, chainid, 0,0),而不是仅仅哈希6个rlp编码的元素(nonce, gasprice, startgas, to, value, data)。而且签名的v必须设置为{0,1}+ CHAIN_ID * 2 + 35,其中{0,1}是secp256k1签名过程中r为x值的曲线点y值的奇偶性校验。如果您选择只散列6个值,则v继续像旧版本一样被设置为{0,1}+ 27。
如果区块高度block.number>=FORK_BLKNUM同时v=CHAIN_ID2+35或v=CHAIN_ID2+36,那么当为了恢复而计算交易的哈希值时,是要计算哈希9个RLP编码的元素。
目前使用v = 27和v = 28的签名方案仍然有效,并在与以前相同的规则下继续运行。
(v=27,28是旧版本,编码六个元素,但还能用。v=CHAIN_ID*2+35 / 36则是新版本,编码九个元素)
Example::
①signing data:
0xec098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a764000080018080
②signing hash:
0xdaf5a779ae972f972197303d7b574746c7ef83eadac0f2791ad23db92e4c8e53
③如果事务使用私钥0x4646464646464646464646464646464646464646464646464646446进行签名,则v,r,s值变为: (注意:此处v=37↓)
(37,
“18515461264373351373200002665853028612451056578545711640558177340181847433846”,
“46948507304638947509940763649030358759909902576025900602547168820602576006531”)
④注意这里用了37而不是27。the signed tx将变成:
0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83
意义:
这将提供一种在以太坊上发送交易的方法,而无需在ETC或测试网上工作。ETC被鼓励采用这个EIP,但用不同的值替换CHAIN_ID,并鼓励所有已有的/未来的测试网、联盟链和alt-etherea采用这个EIP,并用特定的值替换CHAIN_ID。