This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2930 [2022/05/21 14:05] nick |
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2930 [2022/05/21 15:17] (current) nick |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:start| Return to Ethereum ERCs ]] | [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:start| Return to Ethereum ERCs ]] | ||
| - | : **Note**: The following is an excerpt from the official Ethereum site. It is provided here as a convenience and is not authoritative. Refer to the original document as the authoritative reference. | + | : **Note**: The following is an excerpt from the official Ethereum site. It is provided here as a convenience and is not authoritative. Refer to the original document as the authoritative reference. |
| <table> | <table> | ||
| Line 8: | Line 8: | ||
| | Title | Optional access lists | | | Title | Optional access lists | | ||
| | EIP | 2930 | | | EIP | 2930 | | ||
| - | | Requires | 2718, 2929 | | + | | Requires | <WRAP> |
| + | * [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2718]] | ||
| + | * [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2929]] | ||
| + | </WRAP> | | ||
| | Author | <WRAP> | | Author | <WRAP> | ||
| * Vitalik Buterin (@vbuterin), | * Vitalik Buterin (@vbuterin), | ||
| Line 28: | Line 31: | ||
| We introduce a new [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2718]] transaction type, with the format **''0x01 || rlp([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS]''** ). | We introduce a new [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2718]] transaction type, with the format **''0x01 || rlp([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS]''** ). | ||
| - | The **''accessList''** specifies a list of addresses and storage keys; these addresses and storage keys are added into the accessed_addresses and accessed_storage_keys global sets (introduced in EIP-2929). A gas cost is charged, though at a discount relative to the cost of accessing outside the list. | + | The **''accessList''** specifies a list of addresses and storage keys; these addresses and storage keys are added into the accessed_addresses and accessed_storage_keys global sets (introduced in [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2929 | EIP-2929]]). A gas cost is charged, though at a discount relative to the cost of accessing outside the list. |
| ===== Motivation ===== | ===== Motivation ===== | ||
| Line 34: | Line 37: | ||
| This EIP serves two functions: | This EIP serves two functions: | ||
| - | - Mitigates contract breakage risks introduced by EIP-2929, as transactions could pre-specify and pre-pay for the accounts and storage slots that the transaction plans to access; as a result, in the actual execution, the SLOAD and EXT* opcodes would only cost 100 gas: low enough that it would not only prevent breakage due to that EIP but also "unstuck" any contracts that became stuck due to EIP 1884. | + | - Mitigates contract breakage risks introduced by [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2929 | EIP-2929]], as transactions could pre-specify and pre-pay for the accounts and storage slots that the transaction plans to access; as a result, in the actual execution, the SLOAD and EXT* opcodes would only cost 100 gas: low enough that it would not only prevent breakage due to that EIP but also "unstuck" any contracts that became stuck due to [[ dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:1884 | EIP 1884]]. |
| - Introduces the access list format and the logic for handling the format. This logic can later be repurposed for many other purposes, including block-wide witnesses, use in ReGenesis, moving toward static state access over time, and more. | - Introduces the access list format and the logic for handling the format. This logic can later be repurposed for many other purposes, including block-wide witnesses, use in ReGenesis, moving toward static state access over time, and more. | ||