123 Commits

Author SHA1 Message Date
Daniel
71b9c6cc33 Fix test encoder combined polynomial call 2025-06-04 15:46:33 +02:00
Daniel
d18caed116 Fix prepare data 2025-06-04 15:44:15 +02:00
Daniel
6ec7ea135a More DaBlob to DaShare 2025-06-04 15:37:42 +02:00
Daniel
c3172895f4 More wrong imports 2025-06-04 15:26:57 +02:00
Daniel
85afceb5ad More wrong imports 2025-06-04 15:25:31 +02:00
Daniel
7c1b80d337 More wrong imports 2025-06-04 15:22:00 +02:00
Daniel
545ba05f34 fix wrong import on encoder 2025-06-04 15:21:04 +02:00
Daniel
8b800b0800 Add missing DaShare 2025-06-04 15:19:22 +02:00
Daniel
6e026f3a7e Refactor code and tests 2025-06-04 15:14:04 +02:00
mgonen
f735f514e6 Changes were done based on the feedback 2025-06-04 13:58:18 +03:00
megonen
c2d5272408
Update da/verifier.py
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
2025-05-27 09:44:40 +03:00
megonen
2eaff7af0e
Update da/test_encoder.py
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
2025-05-27 09:44:31 +03:00
mgonen
2a37c7f0cc Update DA encoding/verifier to v1.1 2025-05-22 14:19:34 +03:00
mgonen
a4a473f438 Merge remote-tracking branch 'origin/feature/v1.1-da-updates' into feature/v1.1-da-updates
# Conflicts:
#	da/test_encoder.py
2025-05-22 13:42:39 +03:00
mgonen
fdce70a9bb Update DA encoding/verifier to v1.1 2025-05-22 13:41:45 +03:00
megonen
cce427f161
Update da/test_encoder.py
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
2025-05-22 11:07:46 +03:00
mgonen
82e5b4da7c Update DA encoding/verifier to v1.1 2025-05-21 13:17:05 +03:00
mgonen
5cb2f9223c Update DA encoding/verifier to v1.1 2025-05-20 13:45:53 +03:00
Youngjoon Lee
2c5c3860f0
fix(sync): backfill checkpoint chain down to the genesis (#123)
* fix(sync): backfill checkpoint chain proactively

* add comment

* rename fn

* update comment
2025-04-11 09:43:40 +09:00
davidrusu
dcdb419648
Cryptarchia/drop orphan proofs (#121)
* cryptarchia: introduce Hash class

* cryptarchia: Coin renamed to Note

* cryptarchia: simplify mock leader proof

* cryptarchia: remove orphan proofs from block headers

* cryptarchia: maintain a single commitment set in ledger state

* cryptarchia: drop note evolution

* cryptarchia: drop MOCK_LEADER_VRF

* cryptarchia fix nonce contribution derivation

* cryptarchia: mk_chain only returns list now

* fixup

* cryptarchia: shorten test cases using mk_chain
2025-03-21 20:49:04 +04:00
Youngjoon Lee
f4b68f33cd
feat(cryptarchia): add cryptarchia v1 chain synchronization (#119) 2025-03-21 00:30:14 +09:00
Youngjoon Lee
4029eba8b5
build: pin python to 3.12 (not 3.13) due to outdated dependencies (#120) 2025-03-10 22:35:13 +09:00
davidrusu
5c64a0bd11
Cryptarchia: rework specification (#116)
* cryptarchia/ghost: prep for move to weight based fork choice

* cryptarchia/ghost: remove common_prefix_len helper

* cryptarchia/ghost: common_prefix_depth returns depth of both chains

* cryptarchia/ghost: fix chain density calculation

* cryptarchia/ghost: maxvalid_bg uses block ids rather than chains

* cryptarchia/ghost: unimported_orphans returns orphans w.r.t. to tip

* cryptarchia/ghost: remove redundant check

* cryptarchia/ghost: rewrite unimported_orphan w/ common_prefix_depths

* cryptarchia/ghost: validate_header w.r.t. block parent

* cryptachia/ghost: rewrite on_block to remove dependency on Chain

* cryptarchia/ghost: remove Chain abstraction

* cryptarchia/ghost: remove local / fork naming in common_prefix_depth

* cryptarchia/ghost: rewrite common_prefix_depth in terms of iter_chain

* cryptarchia/ghost: impl GHOST fork choice rule

* cryptarchia/ghost: integrate GHOST with maxvalid fork choice

* cryptarchia: remove unused imports

* cryptarchia: cleanup

* cryptarchia: cleanup

* cryptarchia: remove height from ledger state

* cryptachia/ghost: update fork choice rule comments

* cryptarchia: switch back to longest chain

* cryptarchia: update tests

* cryptarchia: remove debug log
2025-02-25 16:54:54 +04:00
Daniel Sanchez
3f3427ee9f
NomosDA spec v1 updates (#117)
* Modify and rename hash_commitment method. Now we just hash the column commitment itself.

* Fix calls

* Remove certificate from verifier

* Update verifier

* Fix tests

* Fix verifier imports

* Fix more imports

* Fix dispersal

* Fix more imports

* Fix missing parameter in dispersal

* Fix tests

* Full flow renaming

* Disperse encoded data in full flow test

* Make da verification indempotent (#118)

---------

Co-authored-by: Gusto <bacvinka@gmail.com>
Co-authored-by: gusto <bacv@users.noreply.github.com>
2025-01-29 10:42:53 +00:00
Daniel Sanchez
5434fcb315
Move eth-specs submodule to da (#111) 2024-07-22 07:44:36 +00:00
Alvatar
c9769a2b8b
Deprecate Carnot spec (#110)
Co-authored-by: Álvaro Castro-Castilla <alvatar@protonmail.com>
2024-07-19 17:12:43 +09:00
Alvatar
8917b976e6
Merge pull request #109 from logos-co/deprecate-old-mixnet
Mixnet: Deprecate old spec
2024-07-19 11:04:41 +03:00
Youngjoon Lee
0e834e0d05
revert import path changes 2024-07-19 16:26:12 +09:00
Youngjoon Lee
1b4a8609ba
use relative imports 2024-07-19 15:23:56 +09:00
Youngjoon Lee
bf41a367d0
update import paths and add __init__.py to make it testable 2024-07-19 13:37:06 +09:00
Youngjoon Lee
3bf199bd9f
Mixnet: Deprecate old spec 2024-07-19 13:13:37 +09:00
Alvatar
0f7e26d8fe
Merge pull request #108 from logos-co/drusu/move-cl-goas-to-nomos-pocs
Move cl/ and goas/ to nomos-pocs
2024-07-18 16:32:55 +03:00
David Rusu
ef07f2c75f move cl, goas to nomos-pocs 2024-07-18 14:25:53 +04:00
davidrusu
4d8a3dfb9c
CL: expand scope of nullifier proof to an "input proof" (#106)
* cl: nullifier proof -> input proof; add death_cm to input proof

* cl: add death_cm to cl::Input commitment

* cl/ledger: prove_input_nullifier -> prove_input
2024-07-16 18:34:26 +04:00
davidrusu
69c50316d6
cl/integrate risc0 (#103)
* cl: restructure cl into a workspace and integrate nullifier proof

* cl: get cl tests building again

* cl: cleanup commented out code

* cl: comment out the failing ptx tests for now.
2024-07-15 16:51:21 +04:00
davidrusu
3d2459052c
Cl: nullifier proof statement (#102)
* cl: nullifier proof

* cl: cli action to select proof type
2024-07-11 12:45:09 +04:00
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
Daniel Sanchez
84130ba58a
Da: fk20 fixes (#96)
* Simplify ranges

* Fix and beautify code
2024-06-26 17:27:29 +02:00
Daniel Sanchez
422359acd7
Da: fk20 proof generation (#95)
* Kickstart fk20

* Implement i/fft from ethspecs

* Expand test to different sizes

* Implement toeplizt

* Finish implementing fk20

* Fix roots of unity generation

* Implement fft for g1 values

* Fix fk20 and tests

* Add len assertion in test

* Fix roots computations

* Fix test

* Fix imports

* Fmt

* Docs and format
2024-06-17 09:20:11 +02:00
gusto
c9b2c7c5c5
DA domain specific tag in bls (#94) 2024-05-27 12:38:18 +03:00
Daniel Sanchez
9390d481ba
Use blake2b for 31 bytes digests (#91) 2024-04-15 12:12:50 +02:00
Daniel Sanchez
8bb5160ff2
Fix rs encoding to fit with missing points (#90) 2024-04-09 07:55:17 +02:00
Daniel Sanchez
f29869c029
Remove indexing from dablob (#89)
Verifier resolves by syncing with state public keys
2024-03-25 11:30:44 +01:00
davidrusu
d2f6ad579a
Stake Relativization Specification + Fixes (#86)
* cryptarchia/relative-stake: failing test showing lack of inference

* implement stake-relativization spec

* test total stake inference in empty epoch

* move TestNode to test_common

* fix bug in Follower re-org logic

* improve orphan proof test coverage

* force orphans to already have been in one of the existing branches

* rename initial_inferred_total_stake ==> initial_total_stake

* add simple orphan import test

* Follower.unimported_orphans: ensure no orphans from same branch

* remove unnecessary LedgerState.slot

* cryptarchia: doc fixes

* factor out total stake inference

* docs for total stake inference

* rename total_stake to total_active_stake

* replace prints in cryptarchia with logging.logger
2024-03-23 05:50:00 +04:00
gusto
53b8be7a05
DA Api Tests (#83)
* Tests for da api full flow

* Fix test issues

* Da api ext tests (#85)

* Index store links blob to cert_id

* Tests for multiple indexes pointing to the same blob

* Test multiple indexes to the same blob in the full flow

* Update bytes_per_chunk to 31 bytes

---------

Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>
2024-03-22 13:01:13 +02:00
Daniel Sanchez
8dd2dabb7d
DA: Verifier skip duplicated blobs intents (#88)
* Make verifier skip duplicated blobs intents

* Add case in where verifier data is the same but column is different
2024-03-22 10:36:00 +01:00
Youngjoon Lee
601598f814
cryptarchia: fix try_create_fork to find parent block (#84) 2024-03-21 09:55:38 +09:00
Daniel Sanchez
a0175e16f3
Chunkify up to 31byte elements (#87) 2024-03-20 11:03:39 +01:00
gusto
b1e13f79c5
Initial DA API Spec structure (#72)
* Initial da_api spec structure

* Node definition for testing different actors in da api

* Connect zone, producer and da nodes in tests

* Remove da mock module

* Add da api module with flow tests

* Comments for read and write methods in BlobStore

* Fix nitpicks (formatting and typing)

---------

Co-authored-by: Daniel Sanchez Quiros <sanchez.quiros.daniel@gmail.com>
2024-03-15 12:37:56 +02:00
Daniel Sanchez
0e142c0888
Added verification to certificate (#82)
* Added verification method to certificate

* Update da/common.py

typo short -> sort

Co-authored-by: gusto <bacv@users.noreply.github.com>

* Fix test imports

* Added verification comment

---------

Co-authored-by: gusto <bacv@users.noreply.github.com>
2024-03-15 11:34:43 +01:00