Skip to content

Commit

Permalink
Update EIP-6404: SignedTransaction --> Transaction rename
Browse files Browse the repository at this point in the history
Merged by EIP-Bot.
  • Loading branch information
etan-status authored May 16, 2024
1 parent 209cd37 commit a0990a2
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions EIPS/eip-6404.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ This EIP defines a migration process of existing Merkle-Patricia Trie (MPT) comm

While the consensus `ExecutionPayloadHeader` and the execution block header map to each other conceptually, they are encoded differently. This EIP aims to align the encoding of the `transactions_root`, taking advantage of the more modern SSZ format. This brings several advantages:

1. **Transaction inclusion proofs:** Changing the transaction representation to [EIP-6493 `SignedTransaction`](./eip-6493.md) commits to the transaction root hash on-chain, allowing verification of the list of all transaction hashes within a block, and allowing compact transaction inclusion proofs.
1. **Transaction inclusion proofs:** Changing the transaction representation to [EIP-6493 `Transaction`](./eip-6493.md) commits to the transaction root hash on-chain, allowing verification of the list of all transaction hashes within a block, and allowing compact transaction inclusion proofs.

2. **Reducing complexity:** The proposed design reduces the number of use cases that require support for Merkle-Patricia Trie (MPT), RLP encoding, keccak hashing, and secp256k1 public key recovery.

Expand All @@ -31,7 +31,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S

### Consensus `ExecutionPayload` changes

When building a consensus `ExecutionPayload`, the [`transactions`](https://github.com/ethereum/consensus-specs/blob/ef434e87165e9a4c82a99f54ffd4974ae113f732/specs/capella/beacon-chain.md#executionpayload) list is now based on the [`SignedTransaction`](./eip-6493.md) SSZ container. [EIP-6493](./eip-6493.md) defines how RLP transactions can be converted to SSZ.
When building a consensus `ExecutionPayload`, the [`transactions`](https://github.com/ethereum/consensus-specs/blob/ef434e87165e9a4c82a99f54ffd4974ae113f732/specs/capella/beacon-chain.md#executionpayload) list is now based on the [`Transaction`](./eip-6493.md) SSZ container. [EIP-6493](./eip-6493.md) defines how RLP transactions can be converted to SSZ.

| Name | Value |
| - | - |
Expand All @@ -40,7 +40,7 @@ When building a consensus `ExecutionPayload`, the [`transactions`](https://githu
```python
class ExecutionPayload(Container):
...
transactions: List[SignedTransaction, MAX_TRANSACTIONS_PER_PAYLOAD]
transactions: List[Transaction, MAX_TRANSACTIONS_PER_PAYLOAD]
...
```

Expand All @@ -61,7 +61,7 @@ The [execution block header's `txs-root`](https://github.com/ethereum/devp2p/blo
While a unique transaction identifier `tx_hash` is defined for each transaction, there is no on-chain commitment to this identifier for RLP transactions. Instead, transactions are ["summarized"](https://github.com/ethereum/consensus-specs/blob/ef434e87165e9a4c82a99f54ffd4974ae113f732/ssz/simple-serialize.md#summaries-and-expansions) by their [`hash_tree_root`](https://github.com/ethereum/consensus-specs/blob/ef434e87165e9a4c82a99f54ffd4974ae113f732/ssz/simple-serialize.md#merkleization).

```python
def compute_tx_root(tx: SignedTransaction) -> Root:
def compute_tx_root(tx: Transaction) -> Root:
return tx.hash_tree_root()
```

Expand Down

0 comments on commit a0990a2

Please sign in to comment.