Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/crate-crypto/verkle-trie-ref


https://github.com/crate-crypto/verkle-trie-ref

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

## WIP

## Terminology

- commitment_to_field: This is converting a commitment to a scalar. Rename this to "commitment_to_scalar" to emphasise the fact that it is not the base field. (Even though the base field is not exposed)

- Hash of a node: node_commitment.commitment_to_field(). The fact that it does commitment_to_field is an implementation detail. It could do sha256 of all elements.

- Commitment to a node: commitment(node); Rename to node_commitment. Note, the fact that we use group elements could probably be abstracted. We only care about the fact that its a commitment to a node.
-
- trie root: commitment(trie.root_node); We define the trie root as the commitment to the root node. We could define it as the node hash, there is no particular safety reason to choose either.

### Run tests

Example: `python -m verkle.verkle_test`

### Cryptography Modules

(In order of what you should implement first)

- ECC : contains all of the Elliptic curve arithmetic needed

- Polynomial : contains all of the polynomial arithmetic needed for polynomials in lagrange basis

- CRS : contains the common reference string which will be used to create proofs

- IPA : Proof algorithm that allows you to create an opening proof for one polynomial in lagrange form

- Multiproof : Proof algorithm that allows you to reduce an opening proof for multiple polynomials into an opening proof for one polynomial. We then call IPA to create a proof of the one _reduced_ polynomial.