Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…ol-studies into cryptography/BLS
  • Loading branch information
shyam-patel-kira committed Apr 24, 2024
2 parents 72cd7b0 + 729f5a7 commit fbbcd11
Show file tree
Hide file tree
Showing 29 changed files with 1,372 additions and 88 deletions.
10 changes: 7 additions & 3 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
- [Week 8 | Research](/eps/week8-research.md)
- [Week 9 | Dev](/eps/week9-dev.md)
- [Week 9 | Research](/eps/week9-research.md)
- [Week 10 | Dev](/eps/week10-dev.md)
- [Week 10 | Research](/eps/week10-research.md)
- [Contributing](contributing.md)
- **Protocol Wiki**
- The Protocol
Expand All @@ -31,7 +33,7 @@
- [EVM](/wiki/EL/evm.md)
- [Transaction anatomy](/wiki/EL/transaction.md)
- [JSON-RPC](/wiki/EL/JSON-RPC.md)
- [Data Structures](/wiki/el/data-structures.md)
- [Data Structures](/wiki/EL/data-structures.md)
- [DevP2P]
- [Precompiled Contracts](/wiki/EL/precompiled-contracts.md)
- [Consensus Layer](/wiki/CL/overview.md)
Expand All @@ -55,7 +57,6 @@
- [Scaling](/wiki/research/scaling/scaling.md)
- [Core Changes](/wiki/research/scaling/core-changes/core-changes.md)
- [EIP-4844](/wiki/research/scaling/core-changes/eip-4844.md)
- Sharding
- Statelessness
- Purge
- [MEV](/wiki/research/PBS/mev.md)
Expand All @@ -72,6 +73,9 @@
- ASE
- EOF
- Portal Network
- Preconfirmations
- [Preconfirmations](/wiki/research/Preconfirmations/Preconfirmations.md)
- [Based Sequencing with Preconfs](/wiki/research/Preconfirmations/BasedSequencingPreconfs.md)
- [Cryptography](/wiki/Cryptography/intro.md)
- [ECDSA](/wiki/Cryptography/ecdsa.md)
- [BLS](/wiki/Cryptography/bls.md)
Expand All @@ -88,4 +92,4 @@

<form action="https://epf.wiki/#/eps/intro" target="_blank">
<input type="submit" value="Join the protocol" style="cursor: pointer;margin-top:12px;padding:8px;background-color:#FFFFFF;border:1px solid #0374B5;border-radius:.25rem;color:#0374B5;display:inline-block;text-align:center;text-decoration:none;width:250px;-webkit-text-size-adjust:none;mso-hide:all;" />
</form>
</form>
5 changes: 3 additions & 2 deletions docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Before you start with editing, please read the code of conduct, following guide

The wiki source is hosted in github repository at [github.com/eth-protocol-fellows/protocol-studies](https://github.com/eth-protocol-fellows/protocol-studies). Mirrored at //TODO

> The wiki is served from `wiki-pages` branch. When contributing, open a PR to `main` branch (repo default branch). After a while, all updates are collectively upstreamed to `wiki-pages` to update the website.
> The wiki is served from `wiki-pages` branch which is regularly updated from `main`. When contributing, open a PR to a branch related to the change or `main` for smaller quick fixes. PRs from other branches are reviewed before merging to `main` and collected updates are then pushed to update the `wiki-pages`.
You can explore existing issues or open a new one for missing content, suggest improving existing content or wiki frontend features. If you identify missing or unfinished content, feel free to open a PR.
Explore existing issues or open a new one for missing content, suggest improving existing content or wiki frontend features. If you identify missing or unfinished content, feel free to open a PR. First, check existing PRs or branches to make sure your work is not redundant.

We are not aiming to recreate other existing wikis. If the same content is well explained elsewhere, just link it and provide additional context.

Expand Down Expand Up @@ -74,6 +74,7 @@ The audience of this wiki is technical and the content should reflect that. Ther
- Consider creating tutorials and hands-on guides documenting technical steps
- Add recommended reading at the top, point to topics which are dependencies of yours
- For mathematical notations, you can use Katex
- You can use mermaid diagrams for visualizations

Goal is to produce a credible neutral text which is formal, well-structured, and maintains a clear progression of ideas. The content should be purely technical and shouldn't waste space on introducing high level/well known concepts. Introductory topics are necessary and can use comparisons, historical anecdotes, and concrete examples to make complex concepts more accessible.

Expand Down
Binary file added docs/eps/presentations/week10-research.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions docs/eps/week1.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ The invention of [asymmetric cryptography](https://www-ee.stanford.edu/~hellman/
## Ethereum Protocol Design

The actual prehistory of the protocol, early ideas and inspiration for technical decisions in Ethereum are well documented in [V's blog](https://vitalik.eth.limo/general/2017/09/14/prehistory.html).

Originally outlined in its [Whitepaper](https://ethereum.org/whitepaper#ethereum-whitepaper), Ethereum draws inspiration from Bitcoin and its background (explained above) to create a general blockchain based computation platform. The design was technically specified in [Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf) and evolved over time. Changes are tracked in the community process of [EIPs](https://eips.ethereum.org) and current specification is implemented in Python as:

- [Execution specs](https://github.com/ethereum/execution-specs)
Expand Down
34 changes: 34 additions & 0 deletions docs/eps/week10-dev.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Study Group Week 10 | Precompiles

Week 10 dev talk is diving into EVM precompiles and their integration in execution clients.

Watch the presentation by [Danno Ferrin](https://twitter.com/shemnon), on [StreamEth](https://streameth.org/65cf97e702e803dbd57d823f/epf_study_group) and [Youtube](https://www.youtube.com/watch?v=daiMhkt0XTw)

- [Presentation from the talk.](https://hackmd.io/@shemnon/precompiles)
- [Discussion thread on Discord: Week 10D: Precompiles](https://discord.com/channels/1205546645496795137/1231990093506678785).

<iframe width="560" height="315" src="https://www.youtube.com/embed/daiMhkt0XTw?si=6c4EJRi-g1G5udJH" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## Pre-reading

Before starting with the week 10 development content, make yourself familiar with resources in previous weeks, especially week 2 and week 8. You should have understanding of the execution client architecture and EVM.

The talk will use examples from Besu, a Java implementation of execution client. At least basic understanding of Java syntax is recommended.

Additionally, you can get ready by studying the following resources:
- [Exploring Precompiled Contracts on Ethereum: A Deep Dive](https://lucasmartincalderon.medium.com/exploring-precompiled-contracts-on-ethereum-a-deep-dive-4e9f9682e0aa)
- [Precompiles documentation by evm.codes](https://www.evm.codes/precompiled)

## Outline

- EVM Precompiles
- How they are integrated
- Which precompiles exist
- How L2s and L1s use them
- Challanges of creating precompiles

## Additional reading and exercises

- [EVM Precompiled and System Contract Catalog](https://github.com/shemnon/precompiles/)
- [RollCall breakout on precompiles](https://www.youtube.com/watch?v=tg01COfxi_M)
- [Custom RPCs and Precompiles for Hyperledger Besu](https://www.youtube.com/watch?v=djL5nczlYFw)
35 changes: 35 additions & 0 deletions docs/eps/week10-research.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Study Group Week 10 | The Ethereum fork-choice

Week 10 research talk will cover a variety of topics related to the fork-choice of Ethereum, its evolution and its role in future upgrades.

Watch the presentation by [Francesco](https://twitter.com/fradamt) on [StreamEth](https://streameth.org/65cf97e702e803dbd57d823f/epf_study_group) or [Youtube](https://www.youtube.com/watch?v=x-_2gAVFlw8). Presentation is [available here](https://github.com/eth-protocol-fellows/protocol-studies/blob/main/docs/eps/presentations/week10-research.pdf).

<iframe width="560" height="315" src="https://www.youtube.com/embed/x-_2gAVFlw8?si=xqMDpqrBabgiDYPb" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## Pre-reading

Before starting with the week 10 development content, make yourself familiar with resources in previous weeks, especially week 3 and week 5. You should have understanding of Beacon Chain and current consensus research topics.

Additionally, you can get ready by studying the following resources.

- All in one resource: [PoS evolution](https://github.com/ethereum/pos-evolution/blob/master/pos-evolution.md)
- Gasper: [Combining GHOST and Casper (Gasper paper)](https://arxiv.org/abs/2003.03052)
- Problems with Gasper:
- [Three attacks on PoS Ethereum](https://eprint.iacr.org/2021/1413)
- [View-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739)
- Improving Gasper with Single Slot Finality:
- [Path towards Single Slot Finality](https://notes.ethereum.org/@vbuterin/single_slot_finality)
- [A simple single slot finality](https://ethresear.ch/t/a-simple-single-slot-finality-protocol/14920)

## Outline

- Gasper recap
- Problems with Gasper and fixes
- Single Slot Finality (SSF)
- How fork-choice affects other Ethereum upgrades: PeerDAS and ePBS case studies

## Additional reading and exercises

- [Notes on SSF, Lincoln Murr](https://publish.obsidian.md/single-slot-finality/Welcome+to+My+Research!)
- [Increase the MAX_EFFECTIVE_BALANCE – a modest proposal](https://ethresear.ch/t/increase-the-max-effective-balance-a-modest-proposal/15801)
- [Reorg resilience and security in post-SSF LMD-GHOST](https://ethresear.ch/t/reorg-resilience-and-security-in-post-ssf-lmd-ghost/14164/3)
3 changes: 2 additions & 1 deletion docs/eps/week3.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Watch the presentation on overview of the CL with Alex Stokes on [StreamEth](htt

[recording](https://streameth.org/embed/?playbackId=66a30awapcuiok0z&vod=true&streamId=&playerName=Consensus+Layer+Overview+%7C+Alex+Stokes+%7C+Week+3 ':include :type=iframe width=100% height=520 frameborder="0" allow="fullscreen" allowfullscreen')

For written summary of week 2 presentation, check the [notes](https://github.com/eth-protocol-fellows/protocol-studies/files/14850973/Week.3.EPFsg.Consensus.Layer.Overview.pdf)
For written summary of week 3 presentation, check the [notes](https://github.com/eth-protocol-fellows/protocol-studies/files/14850973/Week.3.EPFsg.Consensus.Layer.Overview.pdf)

For archive of the discussion during the talk, check [this thread](https://discord.com/channels/1205546645496795137/1214219045205835776/1214219052969492541) in our Discord server.

Expand Down Expand Up @@ -40,5 +40,6 @@ Additionally, you can read and get ready by studying the following resources:
- [Slashing scenario explanation by Dankrad Feist](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html)
- [Beacon Chain design mistakes by Justin Drake](https://www.youtube.com/watch?v=10Ym34y3Eoo)
- [Casper and Consensus from Devcon 3](https://archive.devcon.org/archive/watch/3/casper-and-consensus/?tab=YouTube)
- [Anatomy of a slot](https://www.youtube.com/watch?v=EswDO0kL_O0)

After learning about both EL and CL, run a client pair. Spin a pair of one execution and consensus client, read their logs to learn how they operate.
2 changes: 1 addition & 1 deletion docs/eps/week4.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Watch the presentation on Ethereum core testing infrastracture on [Youtube](http

[recording](https://www.youtube.com/embed/PQVW5dJ8J0c?si=fv5ww4_6zInGXpjO ':include :type=iframe width=100% height=560 frameborder="0" allow="fullscreen" allowfullscreen encrypted-media gyroscope picture-in-picture web-share')

For written summary of week 2 presentation, check the [notes](https://github.com/eth-protocol-fellows/protocol-studies/files/14850974/Week.4.EPFsg.Test.Security.Overview.pdf)
For written summary of week 4 presentation, check the [notes](https://github.com/eth-protocol-fellows/protocol-studies/files/14850974/Week.4.EPFsg.Test.Security.Overview.pdf)

For archive of the discussion during the talk, check [this thread](https://discord.com/channels/1205546645496795137/1216771776810455160/1216771782040621118) in our Discord server.

Expand Down
2 changes: 1 addition & 1 deletion docs/eps/week7-research.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Before starting with the week 7 development content, make yourself familiar with

Additionally, you can read and get ready by studying the following resources:

- [Data structures in Ethereum](/wiki/protocol/data-structures.md)
- [Data structures in Ethereum](/wiki/EL/data-structures.md)
- [Guillaume Ballet - The Verge](https://www.youtube.com/watch?v=F1Ne19Vew6w)

## Outline
Expand Down
5 changes: 3 additions & 2 deletions docs/eps/week9-research.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

Week 9 research talk is focused on history expiry and dives into Portal Network, an overlay network for light clients enabling alternative access to current and historical data.

Join the presentation by [Piper Merriam](https://twitter.com/parithosh_j), on [Wednesday, April 17, 3PM UTC](https://savvytime.com/converter/utc-to-germany-berlin-united-kingdom-london-china-shanghai-ny-new-york-city-japan-tokyo-australia-sydney-india-delhi-argentina-buenos-aires/apr-17-2024/3pm).
Watch the presentation by [Piper Merriam](https://twitter.com/parithosh_j), on [StreamEth](https://streameth.org/65cf97e702e803dbd57d823f/epf_study_group) and [Youtube](https://www.youtube.com/@ethprotocolfellows/streams).

The talk will be streamed live on [StreamEth](https://streameth.org/65cf97e702e803dbd57d823f/epf_study_group) and [Youtube](https://www.youtube.com/@ethprotocolfellows/streams), links will be provided before the call in the [Discord server](https://discord.gg/addwpQbhpq). Discord also serves for the discussion and questions during the stream.
<iframe width="560" height="315" src="https://www.youtube.com/embed/GxNrGyQB-3Q?si=gRPhA35dNYPEGDeZ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## Pre-reading

Expand All @@ -13,6 +13,7 @@ Before starting with the week 9 research content, make yourself familiar with re
Additionally, you can get ready by studying the following resources:
- [Statelessness and history expiry, Ethereum.org](https://ethereum.org/en/roadmap/statelessness/)
- [Portal Network web](https://www.ethportal.net/)
- [EL Data structure](https://epf.wiki/#/wiki/EL/data-structures)

## Outline

Expand Down
34 changes: 33 additions & 1 deletion docs/wiki/CL/cl-clients.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
# Consensus Layer Implementations

Resources covering all consensus client implementations, in production or development. Overview of client unique features of each client, architecture, guides and resources.
Resources covering all consensus client implementations, in production or development. Overview of client unique features of each client, architecture, guides and resources.

## Clients in production

### Lighthouse

Developed by SigmaPrime in Rust

### Lodestar

By ChainSafe in TypeScript

### Nimbus

By Status in Nim

### Prysm

By Prysmatic Labs/ Offchain Labs in Golang

### Teku

By Consensys in Java

## Clients in development

### Grandine

Originally a proprietary client in Rust, recently became open source

### LambdaClass Client

By LC in Elixir
1 change: 1 addition & 0 deletions docs/wiki/CL/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ Ethereum uses a consensus mechanism known as Gasper that combines [Casper proof-
- Martin Kleppmann, [Distributed Systems.](https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB)
- Leslie Lamport et al., [The Byzantine Generals Problem.](https://lamport.azurewebsites.net/pubs/byz.pdf)
- Austin Griffith, [Byzantine Generals - ETH.BUILD.](https://www.youtube.com/watch?v=c7yvOlwBPoQ)
- Michael Sproul, ["Inside Ethereum"](https://www.youtube.com/watch?v=LviEOQD9e8c)
Loading

0 comments on commit fbbcd11

Please sign in to comment.