Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion EIPS/eip-2242.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---

Check warning on line 1 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble is missing header(s): `description`

warning[preamble-req]: preamble is missing header(s): `description` --> EIPS/eip-2242.md | | = help: see https://ethereum.github.io/eipw/preamble-req/

Check warning on line 1 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

preamble is missing header(s): `description`

warning[preamble-req]: preamble is missing header(s): `description` --> EIPS/eip-2242.md | | = help: see https://ethereum.github.io/eipw/preamble-req/
eip: 2242
title: Transaction Postdata
author: John Adler (@adlerjohn)
Expand All @@ -8,23 +8,23 @@
category: Core
created: 2019-08-16
---

Check warning on line 11 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Security Considerations`

warning[markdown-req-section]: body is missing section(s): `Security Considerations` --> EIPS/eip-2242.md | | = help: must be at the second level (`## Heading`) = help: see https://ethereum.github.io/eipw/markdown-req-section/

Check warning on line 11 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body is missing section(s): `Security Considerations`

warning[markdown-req-section]: body is missing section(s): `Security Considerations` --> EIPS/eip-2242.md | | = help: must be at the second level (`## Heading`) = help: see https://ethereum.github.io/eipw/markdown-req-section/
## Simple Summary

Check failure on line 12 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

EIPS/eip-2242.md:12 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

Check warning on line 12 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

warning[markdown-order-section]: body has extra section(s) --> EIPS/eip-2242.md | 12 | ## Simple Summary | ::: EIPS/eip-2242.md | 56 | ## Implementation | = help: see https://ethereum.github.io/eipw/markdown-order-section/

Check warning on line 12 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

warning[markdown-order-section]: body has extra section(s) --> EIPS/eip-2242.md | 12 | ## Simple Summary | ::: EIPS/eip-2242.md | 56 | ## Implementation | = help: see https://ethereum.github.io/eipw/markdown-order-section/

Check failure on line 12 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

EIPS/eip-2242.md:12 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]
An additional, optional transaction field is added for "postdata," data that is posted on-chain but that cannot be read from the EVM.

## Abstract

Check failure on line 15 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

EIPS/eip-2242.md:15 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

Check failure on line 15 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

EIPS/eip-2242.md:15 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]
A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://notes.ethereum.org/w1Pn2iMmSTqCmVUTGV4T5A?view) (EEs), and [_stateless clients_](https://ethresear.ch/t/the-stateless-client-concept/172). This shift involves blockchains serving as a secure data availability and arbitration layer, _i.e._, they provide a globally-accepted source of available data, and process fraud/validity and data availability proofs. This same paradigm can be applied on Eth 1.x, replacing EEs with [trust-minimized side chains](https://ethresear.ch/t/building-scalable-decentralized-payment-systems-request-for-feedback/5312).

Check warning on line 16 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 16 | A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://... |

Check warning on line 16 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 16 | A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://... |

Check warning on line 16 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 16 | A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://... | = help: see https://ethereum.github.io/eipw/markdown-rel-links/

Check warning on line 16 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 16 | A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://... |

Check warning on line 16 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 16 | A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://... |

Check warning on line 16 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 16 | A paradigm shift in how blockchains are used has been seen recently in Eth 2.0, with the rise of [_Execution Environments_](https://... | = help: see https://ethereum.github.io/eipw/markdown-rel-links/

## Motivation

Check failure on line 18 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

EIPS/eip-2242.md:18 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

Check failure on line 18 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

EIPS/eip-2242.md:18 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]
While [EIP-2028](./eip-2028.md) provides a reduction in gas cost of calldata, and is a step in the right direction of encouraging use of history rather than state, the EVM does not actually need to see all data that is posted on-chain. Following the principle of "don't pay for what you don't use," a distinct way of posting data on-chain, but without actually being usable within the EVM, is needed.

For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ensure that the side chain block proposer has attested that _some_ data is available. Authentication can be performed as part of a fraud proof should that data end up invalid. Note that [trust-minimized side chains with validity proofs](https://ethresear.ch/t/on-chain-scaling-to-potentially-500-tx-sec-through-mass-tx-validation/3477) can't make use of the changes proposed in this EIP, as they required immediate authentication of the posted data. This will be [the topic of a future EIP](https://ethresear.ch/t/multi-threaded-data-availability-on-eth-1/5899).

Check warning on line 21 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 21 | For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ... |

Check warning on line 21 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 21 | For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ... |

Check warning on line 21 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 21 | For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ... |

Check warning on line 21 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 21 | For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ... |

Check warning on line 21 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 21 | For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ... |

Check warning on line 21 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 21 | For [trust-minimized side chains with fraud proofs](https://ethresear.ch/t/minimal-viable-merged-consensus/5617), we simply need to ... |

## Specification

Check failure on line 23 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Specification"]

EIPS/eip-2242.md:23 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Specification"]

Check failure on line 23 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Specification"]

EIPS/eip-2242.md:23 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Specification"]
We propose a consensus modification, beginning at `FORK_BLKNUM`:

An additional optional field, `postdata`, is added to transactions. Serialized transactions now have the format:
```

Check failure on line 27 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-2242.md:27 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]

Check failure on line 27 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-2242.md:27 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]
"from": bytes20,
"to": bytes20,
"startGas": uint256,
Expand All @@ -33,24 +33,24 @@
"data": bytes,
"nonce": uint256,
["postdata": bytes],
```

Check failure on line 36 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-2242.md:36 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]

Check failure on line 36 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Fenced code blocks should be surrounded by blank lines [Context: "```"]

EIPS/eip-2242.md:36 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"]
with witnesses signing over the [RLP encoding](https://github.com/ethereum/wiki/wiki/RLP) of the above. `postdata` is data that is posted on-chain, for later historical retrieval by layer-2 systems.
with witnesses signing over the RLP encoding of the above. `postdata` is data that is posted on-chain, for later historical retrieval by layer-2 systems.

`postdata` is an RLP-encoded twople `(version: uint64, data: bytes)`.
1. `version` is `0`.

Check failure on line 40 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Lists should be surrounded by blank lines [Context: "1. `version` is `0`."]

EIPS/eip-2242.md:40 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. `version` is `0`."]

Check failure on line 40 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Lists should be surrounded by blank lines [Context: "1. `version` is `0`."]

EIPS/eip-2242.md:40 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. `version` is `0`."]
1. `data` is an RLP-encoded list of binary data. This EIP does not interpret the data in any way, simply considering it as a binary blob, though future EIPs may introduce different interpretation schemes for different values of `version`.

The gas cost of the posted data is `1 gas per byte`. This cost is deducted from the `startGas`; if the remaining gas is non-positive the transaction immediately reverts with an out of gas exception.

## Rationale

Check failure on line 45 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Rationale"]

EIPS/eip-2242.md:45 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Rationale"]

Check failure on line 45 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Rationale"]

EIPS/eip-2242.md:45 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Rationale"]
The changes proposed are as minimal and non-disruptive to the existing EVM and transaction format as possible while also supporting possible [future extensions](https://ethresear.ch/t/multi-threaded-data-availability-on-eth-1/5899) through a version code.

Check warning on line 46 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 46 | The changes proposed are as minimal and non-disruptive to the existing EVM and transaction format as possible while also supporting ... |

Check warning on line 46 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

warning[markdown-rel-links]: non-relative link or image --> EIPS/eip-2242.md | 46 | The changes proposed are as minimal and non-disruptive to the existing EVM and transaction format as possible while also supporting ... |

## Backwards Compatibility

Check failure on line 48 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Backwards Compatibility"]

EIPS/eip-2242.md:48 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Backwards Compatibility"]

Check failure on line 48 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Backwards Compatibility"]

EIPS/eip-2242.md:48 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Backwards Compatibility"]
The new transaction format is backwards compatible, as the new `postdata` field is optionally appended to existing transactions.

The proposed changes are not forwards-compatible, and will require a hard fork.

## Test Cases

Check failure on line 53 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Test Cases"]

EIPS/eip-2242.md:53 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Test Cases"]

Check failure on line 53 in EIPS/eip-2242.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Test Cases"]

EIPS/eip-2242.md:53 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Test Cases"]
TODO

## Implementation
Expand Down
Loading