mirror of
https://github.com/logos-storage/constantine.git
synced 2026-01-02 21:23:11 +00:00
* try parallel reduction in batch add, but alas it's slower than custom chunking. Except maybe on arch with performance/efficiency cores * initial impl of parallel MSM - scaling to debug, threads not woken fast enough * improve comment [skip ci] * skip top window when c divides the number of bits * for some reason parallel-for loops scale on 5+ threads while spawn only on 2x threads. Thread wakeup issue? * Add counters and timers to audit threadpool bottlenecks * metrics and profiling fixes, (slower) latency hiding, activate tests * fix thief thread trying to wake another before canceling its own sleep * easier to sort metrics and parallel endomorphism application * selective endomorphism acceleration * some tuning * spawn can handle compile-time literals, static and type parameters. Also introduce spawnAwaitable to await void procs * improve MSM overview [skip ci] * bench cleanup
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