Michele Orrù orru

orru запушил(а) mu/draft-v3 в SigmaProtocol/cmz

  • 4861abd581 test: derive rate-limit epoch bases with RFC 9380
  • c3a5b0fe18 feat!: derive CMZ generator A automatically Derive and memoize the auxiliary generator with RFC 9380 hash-to-group, while retaining explicit initialization as a pre-first-use compatibility override. BREAKING CHANGE: CMZ credential point types must implement the encoding and SHA-512 hash-to-group bounds captured by CMZGroup.
  • 1ab9c869ab chore: patch sigma-compiler, sigma-proofs and spongefish to their mu/draft-v3 branches
  • cc3eba13dc test: issue the credential before showing it
  • aac154912b fix: omit the client proof when the statement has no content
  • Просмотр сравнение для этих 11 коммитов »

2 недель назад

orru запушил(а) mu/draft-v3 в SigmaProtocol/sigma-compiler

  • f783ddb367 chore: patch sigma-proofs and spongefish to their mu/draft-v3 branches
  • c70bf20df3 feat: automatically reuse the canonical group generator
  • 8dce96b838 feat: emit public-scalar claims under disjunctions as constant-shape claim branches
  • 998e45dee5 fix: port the code generator to the sigma-proofs draft API
  • c1c1ed28e1 Update version to 0.2.3 Depend on sigma-proofs 0.3.2

3 недель назад

orru создал новую ветку mu/draft-v3 в SigmaProtocol/sigma-compiler

3 недель назад

orru запушил(а) mu/draft-v3 в SigmaProtocol/cmz

  • 265b4478b6 chore: patch sigma-compiler, sigma-proofs and spongefish to their mu/draft-v3 branches
  • 0d8eecf2e7 fix: omit the client proof when the statement has no content
  • 5ac5c724ce chore: patch sigma-compiler, sigma-proofs and spongefish to their mu/draft-v3 branches
  • 8a7d44d201 fix: omit the client proof when the statement has no content
  • d9752fdad1 feat: share the issuer pubkey element between show and issue scopes The issuer public key component for a given (credential type, attribute) is one value, but the show scope and the issue scope mint separate identifiers for it (`X_show_Hattr_*` and `X_iss_Hattr_*`), so a protocol that shows and issues the same credential type carried it twice -- two compressions and two 32-byte encodings per relation, for one value. The first scope to declare it now owns the element and later ones are tagged `dedup`, sharing it whenever the values agree at run time. They need not: `handle_update` gives the shown credential the caller's old public key and the issued one the server's current key, so a rotation makes them genuinely different, and then each simply keeps its own element. For a three-attribute credential shown and reissued, this is three elements per client relation, on both sides. Requires the `dedup` tag from sigma-compiler, and changes the encoded instance, hence the challenge: prover and verifier must be upgraded together.
  • Просмотр сравнение для этих 6 коммитов »

3 недель назад

orru запушил(а) mu/draft-v3 в SigmaProtocol/cmz

  • 5ac5c724ce chore: patch sigma-compiler, sigma-proofs and spongefish to their mu/draft-v3 branches
  • 8a7d44d201 fix: omit the client proof when the statement has no content
  • d9752fdad1 feat: share the issuer pubkey element between show and issue scopes The issuer public key component for a given (credential type, attribute) is one value, but the show scope and the issue scope mint separate identifiers for it (`X_show_Hattr_*` and `X_iss_Hattr_*`), so a protocol that shows and issues the same credential type carried it twice -- two compressions and two 32-byte encodings per relation, for one value. The first scope to declare it now owns the element and later ones are tagged `dedup`, sharing it whenever the values agree at run time. They need not: `handle_update` gives the shown credential the caller's old public key and the issued one the server's current key, so a rotation makes them genuinely different, and then each simply keeps its own element. For a three-attribute credential shown and reissued, this is three elements per client relation, on both sides. Requires the `dedup` tag from sigma-compiler, and changes the encoded instance, hence the challenge: prover and verifier must be upgraded together.
  • 09fd602c41 feat: declare B_generator as the group generator sigma-proofs reserves element index 0 of every instance for `G::generator()`, which it validates but never serializes. `B_generator` *is* `G::generator()` (`CMZBasepoints::init` sets it so), but it was allocated an ordinary element, so every relation cmz emits paid a point compression and 32 bytes of instance encoding for it -- on every prove and every verify, while the reserved slot sat unused. Declare it `generator` and it lands on index 0 instead. It keeps `cind`: the range-proof transform takes the first two `cind` points, sorted, as its Pedersen bases, and those are `A_generator` and `B_generator`. It stays an `Instance` field, deliberately. The generated code still assigns it, and `LinearRelation::set_element` rejects an assignment that conflicts with the generator already at index 0 -- so if `B_generator` ever stops being the generator, it fails loudly instead of silently proving a different statement. Requires the `generator` tag from sigma-compiler, and changes the encoded instance, hence the challenge: prover and verifier must be upgraded together.
  • db5a2b8552 refactor: build the basepoints only on the call that loads them `cmz_group_init` built a `CMZBasepoints` and handed it to `load_bp`, which then dropped it on the floor unless the map was empty -- and `load_bp` cloned it when it was not. Callers invoke this on every request, so take a closure and construct only on the call that actually populates the map. By itself that is a shape fix, not a measured win: `wnaf_is_constant_time` is not a default feature and nothing enables it, so `CMZBasepoints` is `{A_, B_}` and construction plus clone costs about 8ns. It matters under that feature, where construction is two WnafBase tables. The cost callers actually pay is the argument, not the call: `cmz_group_init(G::hash_from_bytes::<Sha512>(...))` evaluates the hash-to-curve eagerly, at roughly 4.7us per request, and nothing on the callee side can reach it. So `cmz_group_init_with` takes the generator as a closure too, and the hash happens once, on the call that initializes. Both sides of a round trip call this, so it is roughly 9us a round trip for a one-word change at each call site. `cmz_group_init` is unchanged.

3 недель назад

orru создал новую ветку mu/draft-v3 в SigmaProtocol/cmz

3 недель назад

orru запушил(а) mu/versions в SigmaProtocol/cmz

5 месяцев назад

orru запушил(а) mu/serialization-cleanup в SigmaProtocol/sigma-compiler

  • 77dcc35d47 chore: cargo update and bump revision version
  • 45de450cff chore(core): stop using deprecated serialization from sigma-proofs
  • d4ffcd3a3d Update version to 0.2.0 Depend on the now-published sigma-proofs 0.2.0
  • c273ad1770 Use prove_compact and verify_compact now that they're supported by sigma-proofs
  • adf7102ec6 Add support for THRESH

5 месяцев назад

orru создал новую ветку mu/serialization-cleanup в SigmaProtocol/sigma-compiler

5 месяцев назад

orru запушил(а) mu/versions в SigmaProtocol/cmz

  • 5d48807fcf chore: bump versions
  • 90abbe471e chore(dependencies): allow minor sigma-compiler revisions
  • 63c782ac51 cmz-core: deterministic attribute iteration ordering
  • d7ae7f2662 Don't serialize an 8-byte length header in front of each Scalar and Point
  • 24c3f94e64 Add a "dump" feature that passes down to sigma-compiler

5 месяцев назад

orru создал новую ветку mu/versions в SigmaProtocol/cmz

5 месяцев назад

orru запушил(а) main в SigmaProtocol/sigma-compiler

  • be8adc764c feat: workflow to update the mirror github repository. This adds a new script update-mirror that will run every day and is meant to keep the github repository in sync with the one on crysp.

11 месяцев назад

orru запушил(а) main в SigmaProtocol/cmz

  • de6781d47f feat: workflow to update the mirror github repository. This adds a new script update-mirror that will run every day and is meant to keep the github repository in sync with the one on crysp.

11 месяцев назад

orru запушил(а) main в SigmaProtocol/sigma_compiler

1 год назад

orru удалил ветку feature/ooni в SigmaProtocol/cmz

1 год назад

orru запушил(а) feature/ooni в SigmaProtocol/cmz

1 год назад

orru создал новую ветку feature/ooni в SigmaProtocol/cmz

1 год назад

orru запушил(а) main в SigmaProtocol/sigma_compiler

  • 02cc687d6c feat: integrate sigma-rs protocol implementation This commit adds complete sigma-rs integration to the compiler: - Add sigma-rs dependency and configuration - Create codegen_sigmars.rs module with sigma-rs specific implementation - Extract sigma-rs code generation logic into separate, organized module - Add comprehensive protocol tests for various proof scenarios - Update main implementation to use sigma-rs backend - Add .gitignore for Rust projects - Preserve original codegen.rs for comparison The new architecture clearly separates the original codegen approach from the sigma-rs implementation, making it easy to compare and understand the differences between the two approaches. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>

1 год назад

orru запушил(а) feature/sigma-rs в SigmaProtocol/sigma_compiler

  • 3db01cb13f refactor: update sigma_rs name for relations.

1 год назад

orru запушил(а) feature/sigma-rs в SigmaProtocol/sigma_compiler

  • bc91a9e180 rm 'Cargo.lock' for now to sync with main.

1 год назад