You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both shielded multisig presets accepted any signature: verification was
a `stubVerifySignature` circuit that returned true unconditionally.
Toolchain 0.34.0 ships `secp256k1EcdsaVerify`, so the fold callback now
performs a real check and the stub is gone from both files.
Signer commitments hash the public-key coordinates rather than an opaque
`Bytes<64>` key, because `Secp256k1Point` reaches the hash only through
the `secp256k1PointX`/`Y` accessors. Existing deployments would need
their commitments recomputed.
The primitives are only bound under ZKIR v3, so `compile:multisig`
passes `--feature-zkir-v3`.
`secp256k1EcdsaVerify` accepts high-s signatures and Compact has no
ordering on `Secp256k1Scalar`, so low-s is not enforced in circuit. Every
digest is nonce-bound and no signature is stored, which makes malleability
inert here.
Refs: #826
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
10
10
### Changed
11
11
12
+
- Verify `ShieldedMultiSigV2` and `ShieldedMultiSigV3` approvals with the `secp256k1EcdsaVerify` standard-library primitive, removing `stubVerifySignature` from both presets. `execute` / `mint` / `burn` now take `Vector<2, Secp256k1Point>` public keys and `Vector<2, Secp256k1EcdsaSignature>` signatures, and signer commitments hash the public-key coordinates (`pkX`, `pkY`) instead of a `Bytes<64>` key. These primitives require ZKIR v3, so `compile:multisig` now passes `--feature-zkir-v3`. (#826)
12
13
- Upgrade the Compact toolchain and Midnight dependencies: compiler `0.31.0` → `0.34.0`, `@midnight-ntwrk/compact-runtime``0.16.0` → `0.19.0`, `@midnight-ntwrk/ledger-v8``8.1.0` → `@midnightntwrk/ledger-v9``1.0.0-rc.3`, `@midnight-ntwrk/compact-js``2.5.1` → `2.5.5-rc.8`, the `midnight-js` packages `4.1.1` → `5.0.0-beta.7`, and `@openzeppelin/compact-simulator``^0.3.1` → `^0.4.0`. Contract `pragma language_version` raised `>= 0.23.0` → `>= 0.26.0` (the language version shipped with compiler 0.34.0). (#841)
0 commit comments