Commit Graph

65 Commits

Author SHA1 Message Date
David Rusu 1fd4c6bd64 goas: move nonce into note 2024-08-27 15:57:19 +04:00
David Rusu cffd687e50 goas: rename DeathConstraint to Constraint 2024-08-27 15:56:41 +04:00
Giacomo Pasini 23df7331c8
Use efficient comm for balances (#38)
* Use efficient comm for balances

At the moment we're using merkle trees even though we don't need
inclusion proofs, which means we're calculating more hashes than
necessary and limiting the account set size to 256.
This change is a temporary solution that chooses a more efficient
way to calculate a commitment to the account balances, while we
wait for something more scalable like a Verkle Tree.

* remove leftover constants
2024-08-26 19:29:49 +02:00
davidrusu 75930a5ac8
Merge pull request #37 from logos-co/goas/mmr-in-zone-state
goas: MMR for the zone transaction log
2024-08-23 16:18:23 +04:00
David Rusu 30354a08bd goas: remove found flag from balance insert helpers 2024-08-23 13:39:36 +04:00
David Rusu 5151438d3f goas: reduce the width of the MMR height field 2024-08-23 13:05:33 +04:00
David Rusu 226da49440 remove old implementation 2024-08-23 03:09:40 +04:00
David Rusu 362749b1b6 goas: MMR for the zone transaction log 2024-08-23 03:06:15 +04:00
David Rusu 7a706583dc goas: switch balance commitments to hash based commitments 2024-08-21 22:00:49 +04:00
David Rusu 7488dea9d1 goas: move balance blinding to ptx level 2024-08-21 13:00:35 +04:00
David Rusu edd69d63bd goas: remove input/output proofs 2024-08-21 00:03:41 +04:00
David Rusu 310932818a goas: replace input/output proofs with ptx proof 2024-08-20 23:58:38 +04:00
Giacomo Pasini ff0afeebd7
Provide state roots instead of whole state (#33) 2024-08-20 19:12:10 +02:00
davidrusu 5fd3c299c1
Merge pull request #32 from logos-co/goas/isolated_proof_tests
goas: isolated executor proof tests
2024-08-19 21:53:35 +04:00
David Rusu e38b76e020 goas: don't expose nullifier nonce/commitment bytes 2024-08-19 21:52:33 +04:00
Giacomo Pasini 8870a32cbe
Use basepoint as the blinding point (#31) 2024-08-19 19:18:42 +02:00
David Rusu 6862f291ef goas: isolated test for user atomic transfer proof 2024-08-19 21:11:50 +04:00
David Rusu a4e52b75aa goas: add isolated test for zone fund constraint 2024-08-19 20:46:48 +04:00
David Rusu 341c8b44d3 goas: isolated test for zone stf proof 2024-08-19 19:29:43 +04:00
David Rusu ed4bfca90e goas: in zone tx signing/verifying 2024-08-17 20:45:56 +04:00
David Rusu 213be6ccd7 goas: more robust nonce evolution strategy 2024-08-17 16:58:13 +04:00
David Rusu 75ff879770 goas: nullifier does not need to re-commit to nonce
since it's included in note commitment
2024-08-17 15:17:09 +04:00
David Rusu c0aa2b0e08 goas: make nullifier is collision resistant 2024-08-17 10:52:29 +04:00
David Rusu 733b316815 goas: clippy + print proof cycles 2024-08-11 23:17:37 +04:00
David Rusu 034fe8eda5 goas: reuse ZoneNotes struct in the deposit/withdrawal scenarios 2024-08-11 23:08:40 +04:00
David Rusu d73508a43c goas: atomic transfer scenario 2024-08-10 21:09:36 +04:00
David Rusu 847e253f10 goas: user intent constraint 2024-08-09 20:20:18 +04:00
David Rusu 0e278d9284 goas: remove state from alice's deposit note 2024-08-09 20:14:34 +04:00
David Rusu 7a7bea3931 goas: factor out common zone config to executor lib 2024-08-09 20:00:31 +04:00
David Rusu 72e198eeb5 goas: bind the deposit tx to the deposit note 2024-08-09 19:46:36 +04:00
David Rusu aa4e03b567 aat: deposit ptx test 2024-08-09 19:41:34 +04:00
Giacomo Pasini 1aa7a7f81f
bind proofs (#22)
* bind proofs

* refactor to remove cycle
2024-08-09 17:33:01 +02:00
Giacomo Pasini 85a3e941b9
add zone tx inclusion proof (#20)
* add zone tx inclusion proof

* rename input to tx
2024-08-09 11:52:42 +02:00
Giacomo Pasini 5d3f3ab9fb
Refactor zone auth (#19)
* Refactor zone auth

* remove redundant check
2024-08-08 17:50:28 +02:00
davidrusu a320c20d25
Integrate zone withdrawal with CL (#17)
* aat: integrate withdraw with CL

* aat: withdrawal passes!

* aat: cleanup withdrawals a bit

* aat: move Ptx{Input|Output|Private to cl::partial_tx

* aat: zone_state zone transition validation coded w.r.t. metadata

* aat: rename meta to in_meta in zone transition validation
2024-08-07 21:37:21 +02:00
Giacomo Pasini 5b03e070b5
Add evolved nonce 2024-08-02 17:57:19 +02:00
Giacomo Pasini ca2c141d91
use NullifierNonce::evolve 2024-08-02 17:44:03 +02:00
Giacomo Pasini ca42d3ed4f
simply merkle root calc 2024-08-02 17:43:53 +02:00
Giacomo Pasini 584f814465
check zone id in zone funds auth 2024-08-02 15:06:40 +02:00
Giacomo Pasini e7ba67d09b
add death constraints to metadata 2024-08-02 14:42:13 +02:00
Giacomo Pasini 4cf93c4ef1
validate zone input/output notes 2024-08-02 00:10:17 +02:00
David Rusu 2c32905112 aat: scaffolding for the user ptx 2024-08-01 16:57:20 +04:00
David Rusu 7ab248646c cl: rename goas/zone to goas/atomic_asset_transfer 2024-08-01 16:45:08 +04:00
Giacomo Pasini 7e67014042
Deposit (#8)
* Add native zone deposits

* check note unit and death constraints

* fix deposit logic

* fix ptx merkle root derivation

* restrict ptx inputs/outputs

* re-org directories
2024-08-01 12:46:17 +02:00
David Rusu 4abd98b951 cl: ban zero valued outputs 2024-07-30 18:22:39 +04:00
David Rusu 762fdcc980 cl: typo 2024-07-29 14:52:45 +04:00
David Rusu 1d16f40a4c cl: add death constraints to simple transfer scenario 2024-07-27 18:55:43 +04:00
David Rusu 884232b2d3 pol: risc0 implementation of the PoL zk statemetn 2024-07-25 02:19:03 +04:00
David Rusu c5bcf3ebe7 cl: InputWitness does not need utxo_balance_blinding 2024-07-23 13:47:27 +04:00
David Rusu 247f3f042b cl: give a name to the balance unit point in zero commitment 2024-07-22 19:02:30 +04:00