EIP-155:简单重放攻击保护

参数:
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。

资料来源:https://eips.ethereum.org/EIPS/eip-155

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值