Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional access lists #2930

Merged
merged 11 commits into from
Sep 2, 2020
Merged

Optional access lists #2930

merged 11 commits into from
Sep 2, 2020

Conversation

vbuterin
Copy link
Contributor

@vbuterin vbuterin commented Sep 1, 2020

Adds a transaction type which 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. Intended as a mitigation to contract breakage risks introduced by EIP 2929 and simultaneously a stepping stone toward broader use of access lists in other contexts.

Copy link
Contributor

@MicahZoltu MicahZoltu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Required for draft merge:

  • discussion-to URL
  • required header field formatting
  • EIP link formatting

The rest of the comments are optional for a draft EIP, but I recommend considering integrating them none the less.

eip-2930.md Outdated Show resolved Hide resolved
eip-2930.md Outdated
eip: 2930
title: Optional access lists
author: Vitalik Buterin (@vbuterin), Martin Swende (@holiman)
discussions-to: TBD
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need this before we merge.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think just pointing it to the same place as EIP 2929 discussions is ok? The two EIPs are closely intertwined so talking about them together might be reasonable?

eip-2930.md Outdated Show resolved Hide resolved
eip-2930.md Outdated

## Abstract

We introduce a new [EIP-2718](https://github.com/ethereum/EIPs/pull/2718) transaction type, with the format `rlp([3, [nonce, gasPrice, gasLimit, to, value, data, access_list, senderV, senderR, senderS]])`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is currently a debate on whether internal EIP links should be [EIP-2718](./eip-2718.md) or [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718). What you have here isn't either so is definitely not in line with the current "standard". 😄

eip-2930.md Outdated

We introduce a new [EIP-2718](https://github.com/ethereum/EIPs/pull/2718) transaction type, with the format `rlp([3, [nonce, gasPrice, gasLimit, to, value, data, access_list, senderV, senderR, senderS]])`.

The `access_list` 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 https://notes.ethereum.org/@vbuterin/BkrNbeAfD). A gas cost is charged, though at a discount relative to the cost of accessing outside the list.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend against linking out to external documents whenever possible. The links will likely eventually 404, at which point the EIP becomes harder to understand. Where possible, either inline the content or add it as an asset in ../assets/eip-2930/...

Copy link
Member

@lightclient lightclient left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like the file eip-2930.md is in the root directory, instead of in the EIPS directory: https://github.com/ethereum/EIPs/blob/vbuterin-patch-3/eip-2930.md

eip-2930.md Outdated Show resolved Hide resolved
eip-2930.md Outdated Show resolved Hide resolved
eip-2930.md Outdated Show resolved Hide resolved
eip-2930.md Outdated Show resolved Hide resolved
vbuterin and others added 10 commits September 2, 2020 09:46
Adds a transaction type which 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. Intended as a mitigation to contract breakage risks introduced by EIP 2929 and simultaneously a stepping stone toward broader use of access lists in other contexts.
Co-authored-by: Micah Zoltu <micah@zoltu.net>
Co-authored-by: Micah Zoltu <micah@zoltu.net>
@eip-automerger
Copy link

Hi! I'm a bot, and I wanted to automerge your PR, but couldn't because of the following issue(s):

  • Contains new file EIPS/eip-2930.md

@MicahZoltu MicahZoltu merged commit c506f8e into master Sep 2, 2020
@MicahZoltu MicahZoltu deleted the vbuterin-patch-3 branch September 3, 2020 06:58
tkstanczak pushed a commit to tkstanczak/EIPs that referenced this pull request Nov 7, 2020
Adds a transaction type which 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. Intended as a mitigation to contract breakage risks introduced by EIP 2929 and simultaneously a stepping stone toward broader use of access lists in other contexts.
Arachnid pushed a commit to Arachnid/EIPs that referenced this pull request Mar 6, 2021
Adds a transaction type which 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. Intended as a mitigation to contract breakage risks introduced by EIP 2929 and simultaneously a stepping stone toward broader use of access lists in other contexts.
@ethereum ethereum deleted a comment Dec 1, 2021
@emlautarom1
Copy link

According to the document, access lists support duplicates "because it maximizes simplicity, avoiding questions of what to prevent duplication against". If duplicates are allowed, then are the following examples of access lists semantically equivalent?

A

[
  {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "storageKeys": [
      "0x510e81dc21f9d12ece3d833248460825e23f3d1c83a95b3bbd97d46d8116d207",
      "0x67b8f4b3f7634a068794dc582fe78971f7839d32fdaaa6d65130b975c100c4b2",
      "0xe134c27de4a88ed171063a52dcc1b9256efa9a36f2492471429d20385ae9a215"
    ]
  }
]

B

[
  {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "storageKeys": [
      "0x510e81dc21f9d12ece3d833248460825e23f3d1c83a95b3bbd97d46d8116d207",
      "0x510e81dc21f9d12ece3d833248460825e23f3d1c83a95b3bbd97d46d8116d207",
      "0x67b8f4b3f7634a068794dc582fe78971f7839d32fdaaa6d65130b975c100c4b2",
      "0xe134c27de4a88ed171063a52dcc1b9256efa9a36f2492471429d20385ae9a215"
    ]
  }
]

C

[
  {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "storageKeys": [
      "0x510e81dc21f9d12ece3d833248460825e23f3d1c83a95b3bbd97d46d8116d207",
      "0x67b8f4b3f7634a068794dc582fe78971f7839d32fdaaa6d65130b975c100c4b2"
    ]
  },
  {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "storageKeys": [
      "0xe134c27de4a88ed171063a52dcc1b9256efa9a36f2492471429d20385ae9a215"
    ]
  }
]

D

[
  {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "storageKeys": [
      "0x510e81dc21f9d12ece3d833248460825e23f3d1c83a95b3bbd97d46d8116d207",
      "0x67b8f4b3f7634a068794dc582fe78971f7839d32fdaaa6d65130b975c100c4b2"
    ]
  },
  {
    "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "storageKeys": [
      "0x510e81dc21f9d12ece3d833248460825e23f3d1c83a95b3bbd97d46d8116d207",
      "0xe134c27de4a88ed171063a52dcc1b9256efa9a36f2492471429d20385ae9a215"
    ]
  }
]

@ghost
Copy link

ghost commented Oct 2, 2023 via email

Copy link

@Myahr208 Myahr208 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hold platforms responsible platforms put up developer fees but collect higher return from the coins in the transaction build trust is what needs to be addressed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants