mirror of https://github.com/status-im/EIPs.git
copy EIP-155 from issues
This commit is contained in:
parent
fb5f06ac2b
commit
a0bd241619
|
@ -0,0 +1,38 @@
|
|||
EDITOR NOTE: below is a copy of the EIP 155 https://github.com/ethereum/EIPs/issues/155#issue-183002027 raw text fetched on 2017-05-02.
|
||||
|
||||
### Parameters
|
||||
- `FORK_BLKNUM`: TBA
|
||||
- `CHAIN_ID`: 1
|
||||
### Specification
|
||||
|
||||
If `block.number >= FORK_BLKNUM` and `v = CHAIN_ID * 2 + 35` or `v = CHAIN_ID * 2 + 36`, then when computing the hash of a transaction for purposes of signing or recovering, instead of hashing only the first six elements (ie. nonce, gasprice, startgas, to, value, data), hash nine elements, with `v` replaced by `CHAIN_ID`, `r = 0` and `s = 0`. The currently existing signature scheme using `v = 27` and `v = 28` remains valid and continues to operate under the same rules as it does now.
|
||||
### Example
|
||||
|
||||
Consider a transaction with `nonce = 9`, `gasprice = 20 * 10**9`, `startgas = 21000`, `to = 0x3535353535353535353535353535353535353535`, `value = 10**18`, `data=''` (empty).
|
||||
|
||||
The "signing data" becomes:
|
||||
|
||||
```
|
||||
0xec098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a764000080018080
|
||||
```
|
||||
|
||||
The "signing hash" becomes:
|
||||
|
||||
```
|
||||
0x2691916f9e6e5b304f135496c08f632040f02d78e36ae5bbbb38f919730c8fa0
|
||||
```
|
||||
|
||||
If the transaction is signed with the private key `0x4646464646464646464646464646464646464646464646464646464646464646`, then the v,r,s values become:
|
||||
|
||||
```
|
||||
(37, 11298168949998536842419725113857172427648002808790045841403298480749678639159, 26113561835810707062310182368620287328545641189938585203131842552044123671646)
|
||||
```
|
||||
|
||||
Notice the use of 37 instead of 27. The signed tx would become:
|
||||
|
||||
```
|
||||
0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83
|
||||
```
|
||||
### Rationale
|
||||
|
||||
This would provide a way to send transactions that work on ethereum without working on ETC or the Morden testnet. ETC is encouraged to adopt this EIP but replacing `CHAIN_ID` with a different value, and all future testnets, consortium chains and alt-etherea are encouraged to adopt this EIP replacing `CHAIN_ID` with a unique value.
|
Loading…
Reference in New Issue