【区块链】以太坊交易中的R、S、V字段

最近在做区块链钱包,想让自己的钱包适配小狐狸插件,在小狐狸插件中余额显示、私钥导入都正常,但是在交易发送时出现错误,交易详情如下

{"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x949f40920a86f281daccbe8e30dd60a366b22ff270647815f6bfc0402ff38e42","blockNumber":"0xce3","from":"0x047347096a6dc73f8626afb520c383a02efda314","gas":"0x15f90","gasPrice":"0x4a817c800","hash":"0x70a7552c8ab8d2621c80c8a1c149012d10a823c4619cc82235cbdfad0553310b","input":"0x021df6f4000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20776f726c642100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20776f726c642100000000000000000000000000000000000000","nonce":"0x178","to":"0xe2412bb63a0a25d7b8973fc6764fd246ebe62c7a","transactionIndex":"0x0","value":"0x0","v":"0x1b","r":"0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c042","s":"0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b354"}}

通过抓包,确定问题在发送sendRawTransaction请求时出现错误,问题可能出在对交易签名的过程中。R,S,V就是交易签名后的数值。在Ethereum JSON-RPC文档eth_getTransactionByHash接口中,有对R,S,V字段描述

v: QUANTITY - ECDSA recovery id
r: DATA, 32 Bytes - ECDSA signature r
s: DATA, 32 Bytes - ECDSA signature s

r,s,v是交易签名后的值,它们可以被用来生成签名者的公钥;R,S是ECDSA椭圆加密算法的输出值,V是用于恢复结果的ID;比特币RSV的作用描述也适用于以太坊,为了避免重放攻击,以太坊在EIP 155中做了更多的调整。

更详细信息请参考链接

https://cordate.github.io/2018/03/27/blockchain/关于以太坊的签名/

https://ethereum.stackexchange.com/questions/15766/what-does-v-r-s-in-eth-gettransactionbyhash-mean

你可能感兴趣的:(区块链,以太坊,交易签名,RSV,区块链)