Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cryptography/bls #218

Merged
merged 35 commits into from
Apr 29, 2024
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
adaa5e0
Add basics on BLS
shyam-patel-kira Apr 19, 2024
8c1f7af
Merge branch 'main' of https://github.com/eth-protocol-fellows/protoc…
shyam-patel-kira Apr 19, 2024
59dd8a5
Math and working of BLS
shyam-patel-kira Apr 19, 2024
8238a95
Added bls setup details
shyam-patel-kira Apr 23, 2024
757a843
fix transperant background
shyam-patel-kira Apr 23, 2024
e7d87e1
Comment unrefined section for draft
shyam-patel-kira Apr 23, 2024
f6e6b1d
Added the completed Math for BLS signature with example
shyam-patel-kira Apr 24, 2024
66aa0c1
improve wording; corrected some errors after proof-reading
shyam-patel-kira Apr 24, 2024
5411eee
Added BLS in context of Ethereum; added figures for explanation
shyam-patel-kira Apr 24, 2024
4c949ef
Final updates; update resources
shyam-patel-kira Apr 24, 2024
7fa8410
Update further reading resources
shyam-patel-kira Apr 24, 2024
72cd7b0
Merge pull request #203 from shyam-patel-kira/cryptography/BLS
shyam-patel-kira Apr 24, 2024
fbbcd11
Merge branch 'main' of https://github.com/eth-protocol-fellows/protoc…
shyam-patel-kira Apr 24, 2024
ff65565
fix typos; update wordlist
shyam-patel-kira Apr 24, 2024
3fcddc7
remove format header
taxmeifyoucan Apr 25, 2024
261481f
Update proof-of-stake working
shyam-patel-kira Apr 25, 2024
48ef5c8
Add sub-point to tldr
shyam-patel-kira Apr 25, 2024
c3396d0
add account abstraction exception using BLS
shyam-patel-kira Apr 25, 2024
5ed42ce
Update docs/wiki/Cryptography/bls.md
shyam-patel-kira Apr 25, 2024
9dbf59f
Merge branch 'cryptography/BLS' of https://github.com/eth-protocol-fe…
shyam-patel-kira Apr 25, 2024
a833cd1
Update a sub-title
shyam-patel-kira Apr 25, 2024
045ff9f
Update formatting for github
shyam-patel-kira Apr 26, 2024
6ef07ed
fix LaTeX bugs
shyam-patel-kira Apr 26, 2024
70f7e94
fix github rendering bug
shyam-patel-kira Apr 26, 2024
95cd7b2
Added clarification on Randomness, nonce w.r.t BLS and other schemes
shyam-patel-kira Apr 26, 2024
8b78f2d
resolve merge conflict
shyam-patel-kira Apr 26, 2024
fd30b4d
Resolve typos from CL-architecture on main
shyam-patel-kira Apr 26, 2024
c9585cf
remove format header tag
shyam-patel-kira Apr 26, 2024
e6fd992
resolve merge conflicts
shyam-patel-kira Apr 26, 2024
f4107c0
Update grammar
shyam-patel-kira Apr 28, 2024
5290c32
update canonical reference
shyam-patel-kira Apr 28, 2024
56a8148
nit
shyam-patel-kira Apr 28, 2024
e152041
resolve merge conflicts
shyam-patel-kira Apr 28, 2024
666ece0
update wordlist
shyam-patel-kira Apr 28, 2024
c29890c
Merge branch 'main' into cryptography/BLS
taxmeifyoucan Apr 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@
- [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)
- [ECDSA](/wiki/Cryptography/ecdsa.md)
- [BLS](/wiki/Cryptography/bls.md)
- [Keccak256](/wiki/Cryptography/keccak256.md)
- BLS
- [Commitments]
- Polynomials
- Commitment schemes
Expand Down
Binary file added docs/images/elliptic-curves/bls-alice.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
916 changes: 916 additions & 0 deletions docs/images/elliptic-curves/bls-key.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
179 changes: 179 additions & 0 deletions docs/images/elliptic-curves/bls-setup.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
308 changes: 308 additions & 0 deletions docs/images/elliptic-curves/bls-signing.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
504 changes: 504 additions & 0 deletions docs/images/elliptic-curves/bls-verifying.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 7 additions & 8 deletions docs/wiki/CL/cl-clients.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

This page covers resources on all consensus client implementations, whether in production or development. It provides an overview of unique features of each client, architecture, basic guides and resources.

> Consensus clients originally used to be called _eth2.0 clients_ which is now a deprecated nomenclature but you can still find this reference in their repositories.
> Consensus clients originally used to be called _eth2.0 clients_ which is now a deprecated nomenclature but you can still find this reference in their repositories.

There are multiple Consensus Layer clients developed to participate in the Ethereum Proof-of-Stake (PoS) mechanism. The most popular, FOSS and production ready are [Lighthouse](https://lighthouse-book.sigmaprime.io/), [Lodestar](https://lodestar.chainsafe.io/), [Nimbus](https://nimbus.team/index.html), [Prysm](https://prysmaticlabs.com/) and [Teku](https://consensys.io/teku). These clients are developed in different programming languages, provide have unique features and offer different performance profiles. All clients support Ethereum mainnet out of the bo as well as currently active testnets. Variety of implementations allows the network to benefit from client diversity. If you are choosing a client to use, current client diversity should be one of the main factors.
There are multiple Consensus Layer clients developed to participate in the Ethereum Proof-of-Stake (PoS) mechanism. The most popular, FOSS and production ready are [Lighthouse](https://lighthouse-book.sigmaprime.io/), [Lodestar](https://lodestar.chainsafe.io/), [Nimbus](https://nimbus.team/index.html), [Prysm](https://prysmaticlabs.com/) and [Teku](https://consensys.io/teku). These clients are developed in different programming languages, provide have unique features and offer different performance profiles. All clients support Ethereum mainnet out of the box along with active testnets. Variety of implementations allows the network to benefit from client diversity. If you are choosing a client to use, current client diversity should be one of the main factors.

## Clients in production
## Clients in production

## LightHouse

[Lighthouse](https://lighthouse-book.sigmaprime.io/) is a client developed in the Rust programming language. It is a full-featured Ethereum consensus client that can be used as a beacon node or a validator client. It is developed by [Sigma Prime](https://sigmaprime.io/).
[Lighthouse](https://lighthouse-book.sigmaprime.io/) is a client developed in the Rust programming language. It is a full-featured Ethereum consensus client that can be used as a beacon node or a validator client. It is developed by [Sigma Prime](https://sigmaprime.io/).

### Features

Expand Down Expand Up @@ -49,7 +49,6 @@ For more frequently asked question about the client, refer to the [FAQ](https://

By ChainSafe in TypeScript


## Nimbus

By Status in Nim
Expand All @@ -58,7 +57,7 @@ By Status in Nim

[Prysm](https://docs.prylabs.network/docs/getting-started) is a client developed in the Go programming language. It is one of the most popular clients and has a large community. Using this client, validators can participate in the Ethereum PoS mechanism. Prysm can be used as a beacon node or a validator client. It can assist execution layer clients in processing transactions and blocks. When an execution client is integrated with Prysm, it first syncs the block headers with it since, as a beacon node, it has a full view of the chain. It gossips the latest block headers to the EL client. Then, the EL client can request the block bodies from its p2p network. This is mostly common in the case of all Consensus Layer clients.

Apart from Ethereum mainnet, Prysm can also be run on testnets such as Goerli, Holesky, and Pyrmont. Prysm can be integrated with different EL clients such as [Geth](https://geth.ethereum.org/), [Nethermind](https://www.nethermind.io/nethermind-client), and [Besu](https://besu.hyperledger.org/), etc. It has a web interface to monitor the beacon chain and validator performance. It also has a RESTful API to interact with the beacon chain and validator client.
Apart from Ethereum mainnet, Prysm can also be run on testnets such as Goerli, Holesky, Pyrmont. Prysm can be integrated with different EL clients such as [Geth](https://geth.ethereum.org/), [Nethermind](https://www.nethermind.io/nethermind-client), and [Besu](https://besu.hyperledger.org/), etc. It has a web interface to monitor the beacon chain and validator performance. It also has a RESTful API to interact with the beacon chain and validator client.

### Installing the client

Expand Down Expand Up @@ -162,14 +161,14 @@ Teku also provides a slashing protection mechanism, especially in the case where

## Clients in development

### Grandine
### Grandine

Originally a proprietary client in Rust, recently became open source

### LambdaClass Client

By LC in Elixir

### Additional reading
### Additional reading

[Analysis of CL clients performance, outdated](https://mirror.xyz/0x934e6B4D7eee305F8C9C42b46D6EEA09CcFd5EDc/b69LBy8p5UhcGJqUAmT22dpvdkU-Pulg2inrhoS9Mbc)
Loading
Loading