newsence
來源篩選

EIP-XXXX: eth/71 - Block Access List Exchange

Ethereum Magicians

Discussion topic for EIP-XXXX: eth/71 - Block Access List Exchange PR: TBD 1 post - 1 participant Read full topic

newsence

EIP-XXXX:eth/71 - 區塊訪問列表交換

Ethereum Magicians
16 天前

AI 生成摘要

這是關於 EIP-XXXX,具體為 eth/71 的討論主題,涉及區塊訪問列表交換。以太坊魔法師社群參與了這個網路和提案。

EIP-XXXX: eth/71 - 區塊存取列表交換 - EIPs 網路 - 以太坊魔法師團體

Simple Summary

A new sub-protocol eth/71 for exchanging block access lists.

Abstract

This EIP introduces a new sub-protocol eth/71 for the eth protocol family. It allows nodes to exchange block access lists, which are compact representations of the transactions included in a block. This can be used to improve the efficiency of block propagation and validation, especially in light client scenarios.

Motivation

Currently, light clients rely on block headers and Merkle proofs to verify the state of the Ethereum blockchain. However, this approach requires downloading a significant amount of data, especially when verifying transactions that involve multiple accounts.

Block access lists provide a more efficient way to verify transactions. They contain a list of the accounts and storage slots that are accessed by the transactions in a block. By exchanging block access lists, light clients can quickly determine whether a transaction is relevant to their interests without having to download the entire block.

This EIP aims to improve the efficiency of light client synchronization by introducing a new sub-protocol for exchanging block access lists.

Specification

Protocol Name

eth/71

Messages

The following messages are defined for the eth/71 sub-protocol:

  • GetBlockAccessLists(request_id: u64, block_hashes: List[Hash]) - Requests the access lists for the specified blocks.
  • BlockAccessLists(request_id: u64, access_lists: List[List[AccessList]]) - Returns the access lists for the requested blocks.

Data Structures

  • Hash: A 32-byte hash value.
  • AccessList: A list of AccessTuples.
  • AccessTuple: A tuple containing an address and a list of storage keys.

Protocol Flow

  1. A node that wants to retrieve the access lists for a set of blocks sends a GetBlockAccessLists message to its peers.
  2. The peers that have the requested access lists respond with a BlockAccessLists message.
  3. The node that requested the access lists can then use them to verify transactions or update its local state.

Rationale

The design of the eth/71 sub-protocol is based on the following principles:

  • Simplicity: The protocol is designed to be as simple as possible, to minimize the implementation complexity.
  • Efficiency: The protocol is designed to be efficient, to minimize the bandwidth and computational overhead.
  • Flexibility: The protocol is designed to be flexible, to allow for future extensions and improvements.

Backwards Compatibility

This EIP introduces a new sub-protocol, so it does not affect the existing eth sub-protocols. Nodes that do not support eth/71 will simply ignore the new messages.

Security Considerations

The eth/71 sub-protocol does not introduce any new security risks. However, it is important to ensure that the access lists are correctly generated and verified, to prevent malicious nodes from providing incorrect information.

Copyright

Copyright and related rights waived via .