pod2/book/src
brian6l 5b04b2a360
New Native Operation PublicKeyOf (#355)
* wrote some initial code

* added way to input private key into circuit

* TypedValue::SecretKey hashed as 10 32-bit limbs

* Check PublicKeyOf in Frontend and Middleware

* Diff review

* PR review

* Finish utest

* Fix bounds check

* added giving secret key witness to circuit

* Test & doc improvements

* added private key comparison to circuit and added test cases

* cargo fmt

* Add frontend tests for PublicKeyOf

* Add public_key_of and hash_of to op! macro

* Add ownership check to ticket example

* Group order checking in tests

* More negative test cases at circuit level

* Cleanups after self review

* clippy fixes

* Fixes after merge.  Temporarily remove plonky2 commit hash

* Add a nullifier to the ticket test example

* Test PublicKeyOf with a real prover (not mock)

* plonky-u32 dependency

* feat: optimize operation checks

Skip the circuits that verify operation checks other than None, Copy or
NewEntry for the public statements.  This works because public
statements are created by copying private statements, so we never use
the other operation checks in those slots.

---------

Co-authored-by: Andrew Twyman <artwyman@gmail.com>
Co-authored-by: Eduard S. <eduardsanou@posteo.net>
2025-07-28 15:53:01 -07:00
..
img docs: add initial docs of Introduction PODs section, with some diagrams (#285) 2025-06-13 11:26:12 +02:00
anchoredkeys.md First iteration of circuits naming convention 2025-07-15 17:49:29 +02:00
architecture.md feat: add architecture doc (#73) 2025-02-18 16:31:39 +01:00
backendtypes.md Organize docs: front and back end; custom predicates. (#96) 2025-03-03 02:26:29 +10:00
custom.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
custom2.md Aard custom (#49) 2025-02-24 09:05:30 -08:00
customexample.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
customhash.md Organize docs: front and back end; custom predicates. (#96) 2025-03-03 02:26:29 +10:00
custompred.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
deductions.md feat: move code here (#11) 2025-01-31 16:20:57 +01:00
examples.md fix anchored keys syntax (#283) 2025-06-12 18:15:02 +02:00
front_and_back.md Organize docs: front and back end; custom predicates. (#96) 2025-03-03 02:26:29 +10:00
introduction.md feat: move code here (#11) 2025-01-31 16:20:57 +01:00
introductionpods.md docs: add initial docs of Introduction PODs section, with some diagrams (#285) 2025-06-13 11:26:12 +02:00
mainpod.md feat: move code here (#11) 2025-01-31 16:20:57 +01:00
merklestatements.md expose some interfaces for external usage (from introduction-pods) (#256) 2025-06-05 11:37:43 +02:00
merkletree.md Merkleproof verify circuit (#143) 2025-03-18 19:34:01 +01:00
operations.md New Native Operation PublicKeyOf (#355) 2025-07-28 15:53:01 -07:00
podtypes.md Merge changes to docs (#41) 2025-02-10 19:06:45 +01:00
signature.md add signature documentation page (#123) 2025-03-11 19:49:12 +01:00
signedpod.md add signature documentation page (#123) 2025-03-11 19:49:12 +01:00
simpleexample.md update docs to use pod lang v1 (#268) 2025-06-10 15:08:45 +02:00
statements.md New Native Operation PublicKeyOf (#355) 2025-07-28 15:53:01 -07:00
SUMMARY.md docs: add initial docs of Introduction PODs section, with some diagrams (#285) 2025-06-13 11:26:12 +02:00
values.md Desugar statement templates (#226) 2025-05-09 05:48:18 -07:00