Nomos related specification and documentation
Go to file
davidrusu 2c7c483707
CL spec (#92)
* feat(cl/noir): provide an ergonomic Noir api for use within Python.

* Add a python wrapper over the bigger constraint

* Add the Bigger wrapper

* cl/noir: document the NargoConstraint wrapper api

* rewrite Bigger constraint as a dataclass

* WIP: Cl/executable spec (#93)

* wip: executable spec

* WIP: test_1_to_1_transfer

* hack: Vacous hash function

* crypto: make sure prf returns field elements, fix ECC math in pedcom

* hack(crypto): mock up a hash_to_curve implementation

* feat(cl/1to1_xfr): fungibility domain uses hash_to_curve

* cl: add type checking to InnerNote

* cl/ptx: get balance commitments working

* cl/noir: mv noir_constraint wrapper into cl/constraints/...

* cl/ptx-note-proofs: start data modelling input and outputs

* cl/ptx: 1-to-1 test is passing, but still, not quite finished

* cl: remove tx_output from 1-to-1 transfer

* cl: remove unused classes

* cl: testing the balance commitments

* wip: cl

* cl: split main.rs into crypto.rs and note.rs

* cl: split balance test

* cl: add nullifier module

* cl: partial_tx; input; output

* cl: output proof tests

* cl: partial transactions can now be built and verified

* drop python cl spec

* cl: test partial transaction balance commitment

* cl: reverse partial tx balance (inputs are neg, outputs are pos)

* cl: bundle of ptx

* cl: verify bundle isn't balanced with just one unbalanced partial tx

* cl: swap out ExtendedPoint for SubgroupPoint

* cl: integrate groth16 death constraint validation

* add risc0 zone

* refactor risc0 zone

* fix zone PoC

* Add separate bin for stark2snark conv

* cl: rename Note to NoteWitness

* cl: merkle proofs

* cl: merkle tree helper to pad elements

* cl: ptx root implemented via merkle roots over inputs and outputs

* cl: move from Commitment::from_witness to Witness::commit()

* cl: tests passing again

* cl: turn data model into library

* cl: partial tx can compute paths to inputs / outputs

* cl: begin integrating zone into cl data modal

* cl: integrate simple zone into CL data model

* cl: add missing cl patches

* cl: swap jubjub for accel k256

* cl: pre-compute balance unit point outside stark

* switch balance commitment to linear combination

* cl: pre-compute pederson blinding

* fix risc0 patching

* switch to curve25519-dalek

* cl: drop blake2; print prover time

---------

Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>

---------

Co-authored-by: Giacomo Pasini <g.pasini98@gmail.com>
2024-07-09 17:10:32 +04:00
.github/workflows Add eth-specs submodule (#60) 2024-01-31 09:53:04 +01:00
carnot Specify shuffling algorithm (#37) 2024-01-31 09:33:44 +01:00
cl CL spec (#92) 2024-07-09 17:10:32 +04:00
cryptarchia Stake Relativization Specification + Fixes (#86) 2024-03-23 05:50:00 +04:00
da Da: fk20 fixes (#96) 2024-06-26 17:27:29 +02:00
eth-specs@ae3ef6f330 Add eth-specs submodule (#60) 2024-01-31 09:53:04 +01:00
goas CL spec (#92) 2024-07-09 17:10:32 +04:00
mixnet Embed Robustness into `mixnet.py` (#61) 2024-02-08 15:39:50 +09:00
.gitignore rename LedgerState.head to LedgerState.block 2024-01-25 14:25:37 +04:00
.gitmodules Add eth-specs submodule (#60) 2024-01-31 09:53:04 +01:00
README.md Specify mock-leader-proof in message spec 2024-02-02 01:16:14 +04:00
install-arkworksbls-arch64-osx.sh Arkworks dependency utility script (#71) 2024-02-11 23:15:15 +01:00
install-eth-specs.sh Add eth-specs submodule (#60) 2024-01-31 09:53:04 +01:00
requirements.txt CL spec (#92) 2024-07-09 17:10:32 +04:00

README.md

nomos-specs

Nomos related specification and documentation

Running Tests

To run all tests, run the following from the project root

python -m unittest -v

To test a specific module

python -m unittest -v cryptarchia.test_leader

Or all test modules in a directory

python -m unittest -v cryptarchia/test_*