Cointime

Download App
iOS & Android

Inclusion List (EIP-7547) End to End Workflow

From Resear.ch by terence

Inclusion List Variation: Inclusion List summary of slot n is committed to Beacon Block of slot n

This document details a version of the inclusion list (EIP-7547) where the current slot inclusion list summary is committed within a block. The inclusion list transaction is broadcasted out of the band as a side car. The document is divided into multiple sections, each supplemented by diagrams. These sections cover the processes of receiving and verifying the block and the inclusion list and proposing the block and inclusion list. A special note highlights the splitting scenario where manual requests for the inclusion list as a disadvantage of this version.

Thank you @Potuz for identifying some initial errors and providing feedback.

Components

We first examine the various components required to make the inclusion list work.

Screenshot 2024-02-26 at 3.22.48 PM1020×463 20.7 KB

  • Consensus layer (CL) clients: Lodestar, Nimbus, Teku, Lighthouse, and Prysm
  • Validator client: The same team implements both CL and validator clients. A validator client could interop with a different pair of CL clients.
  • Execution layer (EL) client: Geth, Nethermind, Besu, Erigon, and Reth
  • Relayer: Ultrasound, Bloxroute, Flashbots, Agnostic Gnosis and moreMEV-boost is omitted. For now, assume a direct connection from the CL client to the relayer
  • MEV-boost is omitted. For now, assume a direct connection from the CL client to the relayer
  • Consensus P2P: A P2P gossip mesh where consensus objects, such as beacon blocks, attestations, and exits, are gossiped. For this post, a node can get block and IL(s) at different time.
  • Execution API: An API that defines the interaction between the CL client and the EL client.
  • Validator API: An API that defines the interaction between the CL client and the validator client.
  • Builder API: An API that defines the interaction between the CL client and the relayers.
  • Execution Mempool: The source of the inclusion list transactions. How they are selected in implementation detail.

Validating a Consensus Layer Inclusion List at Slot n

First, we look at what happens when a CL client receives an inclusion list over the network.

Screenshot 2024-02-26 at 3.30.27 PM939×351 41.3 KB

  1. Signed inclusion list(s) are received over the wire from the inclusion list gossip network. A proposer may send multiple inclusion lists.
  2. After an inclusion list passes gossip validations (slot, proposer index, and signature), it is re-gossiped to peers. Clients should only gossip one inclusion list max. Clients should only import one inclusion list max. The proposer can distribute different inclusion lists to various peers, deliberately obscuring which one you receive, knowing that peers will only gossip back and import at most one list.
  3. The CL client forwards the inclusion list to the EL client for validation using the Execution-API’s newInclusionList.
  4. The EL client verifies that the inclusion list is valid for slot n and has sufficient gas limit for validation in slot n+1.

Validating a Consensus Layer Block at Slot n

Second, we look at what happens when a CL client receives a beacon block over the network.

Screenshot 2024-02-26 at 3.30.59 PM981×358 48.1 KB

  1. Signed block is received over the wire from beacon block gossip net.
  2. Once the block passes gossip validations, it is re-gossiped to its peers.
  3. For consensus validation, the block payload’s previous IL summary should match the one from the parent beacon state, ensuring alignment across blocks.
  4. The block’s current IL summary root is cached in the beacon state for slot n+1 consensus validation.
  5. The CL client forwards the payload to the EL client for validation via Execution-API’s newPayload.
  6. For execution validation, assuming the EL client has stored previous IL transactions and historical execution blocks, it verifies that the current payload’s previous IL summary aligns with previous IL transactions.
  7. The EL client checks that current payload transactions satisfy all IL transactions (7a), ensuring transactions not satisfied in the current slot were satisfied in slot n-1 (7b).

Determining a Head for a Block at Slot n

Third, how does a node determine the canonical head that is different than today?

Screenshot 2024-02-26 at 3.32.06 PM702×249 13.7 KB

  • Today, the client verifies consensus and execution in parallel for beacon blocks.
  • Post Dencun: the client will not import the beacon block into the fork choice store until the blob is available.
  • We extend the previous assumption hold until the inclusion list is available. This implies the block can not be the head until the corresponding inclusion list is available and verified.
  • The CL client can verify the inclusion list and block in parallel. One of the inclusion lists must match the one specified by the summary in the block. The EL client must verify the inclusion list conforms to the summary for the slot
  • The CL client can also verify consensus and execution in parallel for the inclusion list.

Proposing an Inclusion List at Slot n

As a proposer, let’s first look at how to construct and broadcast an inclusion list for an assigned slot n.

Screenshot 2024-02-26 at 3.32.39 PM777×383 27.4 KB

  1. At the start of slot n, the CL client requests a new inclusion list from the EL client via the Execution-API’s newInclusionList.
  2. This inclusion list is then passed to the validator client for signing.
  3. The CL client records the inclusion list, which will be used in block proposal, and then broadcasts the signed inclusion list to the inclusion list gossip network.

Proposing a Beacon Block at Slot n using mev-boost

Second, let’s look at what changed with block construction using builder API and relayer network for an assigned slot n.

Screenshot 2024-02-26 at 3.31.29 PM870×545 46.7 KB

  1. At the start of slot n, the CL client requests a new local payload from the EL client via the Execution-API’s getPayload.
  2. The CL client gets builder header from relayers, mev-boost selects the best header for the client.
  3. The CL client then chooses between the local payload and builder header to pass to the validator client for signing. The CL client also inserts the previously cached inclusion list summary to the block.
  4. If the local payload was chosen, the CL client can directly broadcast the block to the block gossip network. If the builder header is selected, the CL client needs to return the signed blind block along with the inclusion list to the relayer.
  5. The relayer verifies that the inclusion list matches the summary in the block and then gossips both the block and the inclusion list to its P2P gossip networks.
  • Without mev-boost, this interaction is more straightforward, skip steps 2, 4a, and 5.

Scenario: block with different inclusion list summary

If a block misses its inclusion list, the CL client must manually request it via a P2P RPC request using the summary’s root as the RPC handler. Evaluating the risk of a split-view attack is crucial. Including the IL summary in the block ensures commitment at the time of the block proposal. Otherwise, proposers could exploit MEV opportunities during their slot and sell an IL to the next block builder.

Verifying IL availability becomes complex as every node and current slot attesters must confirm a valid IL that matches the summary committed in the block. A concerning scenario arises when validators receive an IL, retain it, and then receive a block with a differing summary. This discrepancy forces validators to manually request missing IL from peers, potentially leading to delays in block imports due to the absence of a valid IL. This scenario was feared in EIP4844 and triggered a late change to include block inclusion in the blob sidecar. Alternatively, not committing to a summary allows for the gossiping of the summary and IL as a sidecar, enabling builders to select any summary for their blocks. This method simplifies verification and offers market benefits by preventing proposers from selling access to their IL but this introduced a greater risk of proposers negotiating off-band with future builders.

If the split view attack is deemed more dangerous, solutions could include broadcasting the IL with the block or refraining from committing the summary in the block, each with its own challenges and considerations.

Comments

All Comments

Recommended for you

  • Whale Transfers 1,133 BTC to Coinbase Prime, Valued at $71.48 Million

    According to Onchain Lens monitoring, a whale transferred 1,133 BTC from Coinbase to Coinbase Prime through an intermediary wallet, valued at $71.48 million.

  • U.S. AI Chip Stocks Decline Before Market Open, Intel Falls Over 3%

    On July 7, U.S. AI chip stocks experienced widespread declines before the market opened. Intel dropped over 3%, while AMD, Qualcomm, and NXP fell more than 2%. TSMC, Broadcom, and Tesla decreased by over 1%, and NVIDIA declined by 0.7%.

  • China's Central Bank Increases Gold Reserves for the 20th Consecutive Month

    As of the end of June, China's gold reserves stood at 75.44 million ounces (approximately 2,346.446 tons), an increase of 480,000 ounces (about 14.93 tons) from the end of May, which reported 74.96 million ounces (approximately 2,331.52 tons). This marks the 20th consecutive month of gold accumulation.

  • China's Foreign Exchange Reserves in June at $341.6262 Billion

    On July 7, China's foreign exchange reserves for June stood at $341.6262 billion, a decrease of $26 billion from the end of May, representing a decline of 0.75%, with expectations set at $343.2 billion.

  • U.S. Storage Stocks Drop Pre-Market, SanDisk and Micron Down Over 4%

    On July 7, U.S. storage concept stocks collectively fell in pre-market trading. Western Digital dropped over 5%, SanDisk and Micron Technology fell over 4%, Seagate Technology declined over 3%, Rambus fell over 2%, and SMI fell over 1%.

  • U.S. Stocks in Optical Communication Sector Drop Pre-Market

    On July 7, stocks in the optical communication sector of the U.S. market collectively fell pre-market. Astera Labs dropped over 4%, while Marvell Technology, Credo Technology, and AXT Inc. fell more than 3%. Tower Semiconductor, MaxLinear, Corning, Applied Optoelectronics, GlobalFoundries, Lumentum, and Qorvo all declined by more than 2%. Coherent, Nokia, Amphenol, and Broadcom dropped over 1%.

  • Pre-market Decline in U.S. Storage Stocks

    In pre-market trading, U.S. storage concept stocks experienced a widespread decline, with Micron Technology falling by 4.8%, SanDisk dropping over 4%, Corning down more than 2%, and Intel decreasing by over 3%.

  • Two Departments: Support for Reinsurance Institutions to Increase Capital and Issue Supplementary Capital Tools

    On July 7, the National Financial Supervision and Administration Bureau and the Shanghai Municipal Government released several measures to accelerate the construction of the Shanghai International Reinsurance Center. Among these measures, they proposed to enhance the quality and efficiency of the reinsurance industry, support reinsurance institutions in increasing capital and expanding shares, and issuing supplementary capital tools to improve the capacity for internal capital accumulation and external capital supplementation, thereby strengthening the reinsurance industry's capabilities. The initiative aims to guide the insurance industry to focus on major national projects, strategic emerging industries, and livelihood security, consolidating insurance and reinsurance underwriting capabilities to enhance risk protection levels. It also supports reinsurance institutions in leveraging their professional technical advantages to assist the insurance industry in reducing risk.

  • Sources: Saudi Arabia Plans to Expand Oil Pipeline to Red Sea, Increasing Capacity by 2 Million Barrels Daily to Bypass Strait of Hormuz

    On July 7, five informed sources revealed that Saudi Arabia is considering expanding the crude oil pipeline capacity to its western coast on the Red Sea, allowing Saudi Arabia and its neighbors to transport more oil without passing through the Strait of Hormuz. This east-west pipeline, built in the early 1980s, has gained strategic importance since the outbreak of the Iran war in February and the disruption of shipping in the Strait of Hormuz. The pipeline can deliver up to 7 million barrels of crude oil per day to the Red Sea port. The CEO of Saudi Aramco stated in May that approximately 2 million barrels are supplied to west coast refineries, while about 5 million barrels are for export. Sources indicate that Saudi Arabia is in preliminary discussions with some neighboring countries regarding the pipeline expansion, aiming to add about 2 million barrels of pipeline capacity per day. It remains unclear whether Aramco's planned expansion involves upgrading existing infrastructure or constructing new pipelines. One source mentioned that the expansion plan also includes a smaller refined oil pipeline. Two sources indicated that the expansion scale could range from 1 million to 2 million barrels per day, with refined oil also being considered. Another source stated that the project would take several years and cost billions of dollars, requiring adjustments to Saudi crude pricing mechanisms.