====== EIP 2930: Optional access lists ====== [[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. | Title | Optional access lists | | EIP | 2930 | | Requires | * [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2718]] * [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:eip:2929]] | | Author | * Vitalik Buterin (@vbuterin), * Martin Swende (@holiman) | | Status | final | | Created | 2020-08-29 | | Description | [[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md]] | | Specification | [[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md#Specification]] | | Category | Core |
Data sheet for Optional access lists
===== Simple Summary ===== Adds a transaction type that contains an access list, a list of addresses, and storage keys that the transaction plans to access. Accesses outside the list are possible but become more expensive. ===== Abstract ===== 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 [[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 ===== This EIP serves two functions: - 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. /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~