From 16913e441dcfc40fc62c0cf3ee1f24bd619b3770 Mon Sep 17 00:00:00 2001 From: Nagu Thogiti Date: Wed, 8 May 2024 16:24:02 +0800 Subject: [PATCH 1/3] SSZ and Merkleization wiki pages and wordlist conflicts (#261) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * SSZ wiki page - first commit * SSZ process for basic types is added * Explained the integer serialization a bit more * added python commands for SSZ of basic types * added python commands for SSZ of basic types * added python commands for deserialization of SSZ of basic types * Vectors SS is added * Lists SSZ is added * Added mermaid flow diagrams for Lists SSZ * fixed a typo in the mermaid diagram * fixed a typo in the mermaid diagram * Bitvector SSZ section is added * Bitlist SSZ section is added * Container SSZ section and tools section are added * SSZ VS RLP Serialization section is added * New Merkleization wiki page is added * Process of Merkleization section is added * benefits of merkleization section is added * SSZ tools reordered, merkleization structure and multiproofs sections * LaTex typo fixed * packing and chunking section is added * Mixing in the Length section is added * Summaries and Expansions section is added * A full example using code of merkleization for basic types * merkleization of IndexedAttestation section is added * typos fixed * resolve conflicts - sidebar and wordlist * Update _sidebar.md * Updated for the suggestions after the review by Mario. * Fixed the sugestions from Angaz * wordlist conflicts resolved * Fixed the sidebar links, removed /docs/ * wordlist conflicts and duplicates fixed --------- Co-authored-by: Mário Havel <61149543+taxmeifyoucan@users.noreply.github.com> --- docs/wiki/CL/SSZ.md | 9 ++++++--- docs/wiki/CL/merkleization.md | 4 +++- docs/wiki/research/eODS.md | 4 ++-- docs/wiki/research/roadmap.md | 2 +- wordlist.txt | 17 ++++++----------- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/wiki/CL/SSZ.md b/docs/wiki/CL/SSZ.md index 9070a9f5..ce56df50 100644 --- a/docs/wiki/CL/SSZ.md +++ b/docs/wiki/CL/SSZ.md @@ -2,9 +2,10 @@ ## Overview -Simple Serialize (SSZ) is a serialization and [Merkleization](/docs/wiki/CL/merkleization.md) scheme designed specifically for Ethereum's Beacon Chain. SSZ replaces the [RLP serialization](/docs/wiki/EL/RLP.md) used on the execution layer (EL) everywhere across the consensus layer (CL) except the [peer discovery protocol](https://github.com/ethereum/devp2p). Its development and adoption are aimed at enhancing the efficiency, security, and scalability of Ethereum's CL. -This document is about SSZ Serialization. You can learn more about SSZ merkleization at the [merkleization wiki page](/docs/wiki/CL/merkleization.md). +Simple Serialize (SSZ) is a serialization and [Merkleization](/wiki/CL/merkleization.md) scheme designed specifically for Ethereum's Beacon Chain. SSZ replaces the [RLP serialization](/wiki/EL/RLP.md) used on the execution layer (EL) everywhere across the consensus layer (CL) except the [peer discovery protocol](https://github.com/ethereum/devp2p). Its development and adoption are aimed at enhancing the efficiency, security, and scalability of Ethereum's CL. + +This document is about SSZ Serialization. You can learn more about SSZ merkleization at the [merkleization wiki page](/wiki/CL/merkleization.md). ## SSZ Tools @@ -13,7 +14,7 @@ There are many tools available for SSZ. Here is a [full list](https://github.com - [py-ssz](https://github.com/ethereum/py-ssz) - [dafny](https://github.com/ConsenSys/eth2.0-dafny) -- [Eth2.py](https://github.com/protolambda/remerkleable) +- [remerkleable](https://github.com/protolambda/remerkleable) - [fastssz](https://github.com/ferranbt/fastssz/) - [rust-ssz](https://github.com/ralexstokes/ssz-rs) @@ -44,6 +45,8 @@ _Table: SSZ VS RLP Comparison by [Piper Merriam](https://twitter.com/pipermerria **Deterministic Serialization**: - **SSZ**: Provides deterministic serialization results, ensuring that the same data structure serializes to the exact same byte sequence every time, which is crucial for consensus reliability. +- **RLP**: RLP also provides deterministic serialization results. + For these reasons, there is a strong effort in Ethereum to completely migrate to SSZ serialization for everything and stop the usage of RLP serialization. diff --git a/docs/wiki/CL/merkleization.md b/docs/wiki/CL/merkleization.md index 1883b5a0..0125ca9e 100644 --- a/docs/wiki/CL/merkleization.md +++ b/docs/wiki/CL/merkleization.md @@ -1,6 +1,8 @@ # Merkleization and Hash Tree Roots -In Ethereum consensus mechanism, it's critical for all participating nodes to agree on the state of the system consistently and efficiently. The [Simple Serialize (SSZ)](/docs/wiki/CL/SSZ.md) framework facilitates this through Merkleization, a process that transforms serialized data into a Merkle tree structure. The goal of the Merkleization scheme is to ensure that constrained environments (light clients, execution environments, etc.) can have access to light-weight proofs which they can use to make important decisions. This wiki page discusses the intricacies of Merkleization and its importance in ensuring a shared state across nodes in a scalable and secure manner. + +In Ethereum consensus mechanism, it's critical for all participating nodes to agree on the state of the system consistently and efficiently. The [Simple Serialize (SSZ)](/wiki/CL/SSZ.md) framework facilitates this through Merkleization, a process that transforms serialized data into a Merkle tree structure. The goal of the Merkleization scheme is to ensure that constrained environments (light clients, execution environments, etc.) can have access to light-weight proofs which they can use to make important decisions. This wiki page discusses the intricacies of Merkleization and its importance in ensuring a shared state across nodes in a scalable and secure manner. + ## Terminology and Methods diff --git a/docs/wiki/research/eODS.md b/docs/wiki/research/eODS.md index 0c1b2674..2bd41fba 100644 --- a/docs/wiki/research/eODS.md +++ b/docs/wiki/research/eODS.md @@ -13,7 +13,7 @@ Principal–Agent problem of liquid staking, in which the interests of the Agent are not aligned with the interests of the Principal, is part of any capital delegation, and even more so present in today's staking ecosystem[^1]. -Since the early days of Beacon Chain, market structures enabling to provide liquidty for staking pools without running an actual validator software have emerged in Ethereum. +Since the early days of Beacon Chain, market structures enabling to provide liquidity for staking pools without running an actual validator software have emerged in Ethereum. Thus, staking has split naturally in two classes of participants, outside protocol level[^2]: | Tier | Current natural separation | Slashing risk | @@ -198,7 +198,7 @@ In order to improve delegate selection powers[^17], we can: * improve voting tools within pools - Under the current paradigm, voting within staking pools is limited to governance token-holders (not ETH holders). There are attempts of Optimistic governance, where ETH holders can veto LSP governance votes, but (paraphrasing Vitalik) token voting is not strong enough, and ultimately any form of unincentivised delegate selection is just a type of token voting. + Under the current paradigm, voting within staking pools is limited to governance token-holders (not ETH holders). There are attempts of Optimistic governance, where ETH holders can veto LSP governance votes, but (paraphrasing Vitalik) token voting is not strong enough, and ultimately any form of unincentivized delegate selection is just a type of token voting. * improve competition between pools diff --git a/docs/wiki/research/roadmap.md b/docs/wiki/research/roadmap.md index 96c3893e..23a6c80f 100644 --- a/docs/wiki/research/roadmap.md +++ b/docs/wiki/research/roadmap.md @@ -28,7 +28,7 @@ Upgrades relating to the switch from proof-of-work to proof-of-stake. The Merge **IMPLEMENTED** | Upgrade | Description | Effect | State of the art | |:------------------------------------ |:---------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------- | -| Launch the Beacon Chain | A crucial step in Ethereum's shift to a proof-of-stake consensus mechanism | Beacon Chain was launched as an independent network connected to Ethereum, bootstraping validators in preparation for the Merge. | shipped
EIP-2982[^1] | +| Launch the Beacon Chain | A crucial step in Ethereum's shift to a proof-of-stake consensus mechanism | Beacon Chain was launched as an independent network connected to Ethereum, bootstrapping validators in preparation for the Merge. | shipped
EIP-2982[^1] | | Merge Execution and Consensus Layers | Ethereum's execution layer merged with the Beacon chain (consensus layer) | Proof-of-work activities ceased and the network's consensus mechanism shifted to proof-of-stake. Validators have the role and responsibility for processing the validity of all transactions and proposing blocks | shipped | | Enable Withdrawals | The last of the three-part process of Ethereum's transition to a proof-of-stake consensus mechanism | Validators can add their withdrawal credentials and Beacon Chain sweeps all inactive ETH | shipped
EIP-4895[^2] | diff --git a/wordlist.txt b/wordlist.txt index d799d539..49047483 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -50,7 +50,6 @@ bilinear bilinearity BIP bitlist -Bitlist Bitlists bitrate bitvector @@ -63,7 +62,6 @@ blockchain's blockchains blockquote blockquotes -blockquote blocksize bloXroute bloXroute's @@ -72,7 +70,6 @@ Bogotá Boneh bool booleans -Booleans bootup borderless BPE @@ -112,6 +109,7 @@ CODECOPY codecs coinbase collateralised +collateralized COMIS commoditized Composability @@ -270,6 +268,7 @@ Francesco Frege Friedrich frontend +frontrunning fulfillments fullscreen Fullstack @@ -287,7 +286,6 @@ getPayloadV getters ghost Gilles -Goeril Goerli Golang Goldwasser @@ -316,6 +314,7 @@ homomorphic Hopinheimer Hotz Hsiao +HSP Hulsing Hyperledger Hyperplonk @@ -362,6 +361,7 @@ Kira Kleppmann Koblitz Kurtosis +Kyber KZG Lamport Lamport's @@ -380,7 +380,6 @@ lmd LMD Longrightarrow lookahead -Lookahead LSB LSM LSP @@ -402,12 +401,10 @@ Mempool Menezes merkelizing merkle -Merkle Merkleization Merkleize Merkleized Merkleizing -mev MEV mevboost Michaël @@ -478,7 +475,6 @@ PeerDAS Peeters pepc pepc's -performace performence permissionless permissionlessness @@ -504,7 +500,6 @@ preconfed preconfer preconfer's preconfers -Preconfers preconfirm preconfirmation preconfirmations @@ -544,6 +539,7 @@ Rareskills RB README referrerpolicy +remerkleable repo responder restaking @@ -648,7 +644,6 @@ TLS TODO TPS tracoor -Tracoor tradeoff tradeoffs transactional @@ -715,4 +710,4 @@ zk zkEVMs ZKSNARK ZKSNARKs -Zksync +Zksync \ No newline at end of file From 6cb7adc14108b1ccb2cd660e0902cdeb05965b3b Mon Sep 17 00:00:00 2001 From: gorondan <97026899+gorondan@users.noreply.github.com> Date: Fri, 10 May 2024 20:37:42 +0300 Subject: [PATCH 2/3] fixed small typo (#263) --- docs/wiki/epf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/epf.md b/docs/wiki/epf.md index a1008f11..1fdc5b9b 100644 --- a/docs/wiki/epf.md +++ b/docs/wiki/epf.md @@ -6,6 +6,6 @@ Because the protocol, its development and research is fully public and open, any The fellowship is fully open and permissionless, anyone can join the community to start working their area of interest. The cohort opens up with an application process and ends with EPF Day in-person event at Devcon. The most active and skilled contributors might be eligible for stipend at the start of the cohort based on their application or retrospectively. -> Upcoming EPF cohorts are announced when applications open. Follow the [mailing list, ESP discord and EF blog](/eps/intro.md#important-links) to stay informed. +> Upcoming EPF cohorts are announced when applications open. Follow the [mailing list, EPS discord and EF blog](/eps/intro.md#important-links) to stay informed. All work done within EPF cohorts can be found in [eth-protocol-fellows repositories](https://github.com/orgs/eth-protocol-fellows/repositories). Each cohort repo includes `/projects` directory with all project proposals and `dev-updates.md` document tracking weekly progress of every participant. Use these resources to learn about the protocol, fellows' work and get inspiration for your own projects. \ No newline at end of file From 6112c6e8f546fbac1145f55de6ebd878b44b3198 Mon Sep 17 00:00:00 2001 From: gorondan <97026899+gorondan@users.noreply.github.com> Date: Sun, 12 May 2024 00:19:20 +0300 Subject: [PATCH 3/3] 2 wiki fixes (#264) * fixed small typo * updated sidebar to fix eps.wiki hook on eODS page * fixed roadmap img path for eps.wiki routing --- docs/_sidebar.md | 1 + docs/wiki/research/roadmap.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 21a41fdc..df6340dd 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -69,6 +69,7 @@ - [PTC](/wiki/research/PBS/PTC.md) - [PEPC](/wiki/research/PBS/PEPC.md) - [TBHL](/wiki/research/PBS/TBHL.md) + - [eODS](/wiki/research/eODS.md) - Preconfirmations - [Preconfirmations](/wiki/research/Preconfirmations/Preconfirmations.md) - [Based Sequencing with Preconfs](/wiki/research/Preconfirmations/BasedSequencingPreconfs.md) diff --git a/docs/wiki/research/roadmap.md b/docs/wiki/research/roadmap.md index 23a6c80f..0e24362a 100644 --- a/docs/wiki/research/roadmap.md +++ b/docs/wiki/research/roadmap.md @@ -17,7 +17,7 @@ The discussion, resources and all research and development on the core protocol While there is not a single roadmap that Ethereum development follows, we can track the current R&D efforts to map what changes are happening and might happen in the future. A popular overview mapping many domains of the current core research and development is Vitalik's chart (December 2023): -![Ethereum roadmap updated by V.B. Dec2023](/wiki/research/img/full_roadmap2024_1600x1596.webp) +![Ethereum roadmap updated by V.B. Dec2023](../research/img/full_roadmap2024_1600x1596.webp) In this overview, different domains are coupled to related categories forming various 'urges'. Many of these boxes have their own page on this wiki where you can study more.