mirror of
https://github.com/logos-storage/constantine.git
synced 2026-01-02 21:23:11 +00:00
* First draft at bindings generation
* finite field bindings PoC
* support openarray, export NimMain
* PoC extension fields and elliptic curve bindings
* Pasta
* expose more bindings, remove nimZeroMem, remove tracer when unused, codegen name_mangling`gensym issue
* workaround bad C gensym codegen with {.inline.} pragma in non-dirty template nested in generic proc instantiated by template
Constantine-backed protocols
This folder stores protocol implemented on top of Constantine.
Ethereum Virtual Machine
Constantine implements precompiles primitives for the Ethereum virtual machine
- ECADD on BN254_Snarks (called
alt_bn128in Ethereum), address 0x6, spec EIP-196 and pricing EIP-1108 - ECMUL on BN254_Snarks (called
alt_bn128in Ethereum), address 0x7, spec EIP-196 and pricing EIP-1108 - ECPAIRING on BN254_Snarks (called
alt_bn128in Ethereum), address 0x8, spec EIP-197 and pricing EIP-1108
Their main use-case is for use zero-knowledge proofs and zkRollups and be compatible with work on Zcash
- Succinct Non-Interactive Zero Knowledge
for a von Neumann Architecture
Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza
https://eprint.iacr.org/2013/879.pdf