# Dev Update Week 5 This week I worked on my project proposal ### Project Topic enshrined Proposer Builder Separation (eip-7732) Implementation in the Nimbus Consensus Client ## Motivation Implementing proposer-builder separation (PBS) directly into the Nimbus consensus client helps prevent transaction censorship at the protocol level. This enshrines PBS, which currently occurs as a sidecar in the protocol, creating a trustless system between proposers and builders. Additionally, it supports scaling Ethereum by enabling future upgrades like Danksharding and Inclusion lists. Working on this project will further solidify my understanding of the core Ethereum protocol, advancing my knowledge from intermediate to advanced. ## Project description This project aims to integrate proposer-builder interaction, where block proposers delegate their block building rights to specialized block builders to maximize extractable value by optimally ordering transactions within the protocol. By separating block building from block proposal, the Maximal Extractable Value (MEV) is distributed across more validators, rather than being concentrated with the most effective MEV searchers. Allowing specialized block builders to operate also reduces the resource burden on individual participants, enabling more independent validators to verify the honesty of blocks. This project seeks to implement proposer-builder separation in the Nimbus Consensus client, following the specifications of the [EIP-7732](https://eips.ethereum.org/EIPS/eip-7732#abstract) document. ## Specification This specification involves decoupling the execution from consensus and the notion of splitting the slot into 2 parts All major changes will be happening in the Consesnus client as follows: - Beacon changes specs: Add new staked consensus participants called Staked Builders and new honest validators duties called payload timeliness attestations. - Fork choice specs: Modification of the fork choice for ePBS upgrade - P2P specs: Modification of Consensus layer network specifications for p2p - Honest Validator guide specs: changes and additions to the Honest validator guide included in the ePBS fork - Honest Builder spec guide: actions of a "builder" participating in the Ethereum proof-of-stake protocol - Fork logic: Implement fork choice logic such that the following features are guaranteed: unconditional payment to the proposer, Builder reveal safety, Builder withhold safety. ## Roadmap _Week 5-6_: Understand the current Nimbus-eth2 architecture with the [`storeBlock`](https://github.com/status-im/nimbus-eth2/blob/unstable/beacon_chain/gossip_processing/block_processor.nim `storeBlock`) procedure as a good entry point while getting familiar with the Nim language<br> _Week 7-8_: Implement beacon change specs and write tests <br> _Week 9-10_: Implement the fork-choice specs and write tests <br> _Week 11-12_: Implement the p2p specification changes for ePBS and write tests <br> _Week 13-14_: Implement the honest validator and builder specs with accompanying tests <br> _Week 15-17_: Research and implement ePBS compatible fork choice logic. -Week 18-19: Going through already implemented work and considering performance optimisation and improving efficiency -Week 20: Prepare final updates and presentations on work done. ## Possible challenges - Navigating a language I'm new to but love due to it's performance and minimal runtime overhead - Finding a solution for a suitable fork choice logic compatible with ePBS - Implementing a suitable solution for withdrawals and payments. As withdrawals from the beacon chain are complex in nature, involving removing funds from one layer and crediting them on another. - Compatibility with existing Nimbus componenents ## Goal of the project The goal of the project is to have a working and well-tested implementation of ePBS in the Nimbus Consensus client satisfying all security conditions. Ready or close to being merged. The project's impact will also lay the framework for building on advances on ePBS that are still been researched such as [execution tickets](https://ethresear.ch/t/execution-tickets/17944) and laying the groundwork for other advances such as [Danksharding](https://ethereum.org/en/roadmap/danksharding/) beyond the fellowship. Success will be measured by the efficiency and performance of the completed implementation and how it is able to integerate with the existing Nimbus code. **Project slide:** [presentation slides](https://www.canva.com/design/DAGKu8OLG7k/_dHQ10AJW1lgxlz1T0kA2Q/view?utm_content=DAGKu8OLG7k&utm_campaign=designshare&utm_medium=link&utm_source=editor) ### Mentor @[tersec](https://github.com/tersec) ## Resources * [eip-7732](https://eips.ethereum.org/EIPS/eip-7732#abstract) * [ePBS potuz](https://docs.google.com/presentation/d/1RHV_W5p_2LRytWAHP5o_lVq84n68Asw-EPIT-LdO1Xc/edit#slide=id.g2e2b4941164_0_68) * [Ethereum Consensus Specs](https://github.com/ethereum/consensus-specs/tree/v1.3.0/#stable-specifications) * [Nim Manual](https://nim-lang.org/docs/manual.html) * [Nimbus ETH2](https://github.com/status-im/nimbus-eth2) * [Proposer-Builder Separation](https://ethereum.org/en/roadmap/pbs/) ---