| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add property tests and fix serialization and RPX stack errors (#3976) * test: serialization round-trip coverage for workspace types Add proptest-based serialization round-trip coverage across the workspace, gated on the `arbitrary` feature (enabled for air, processor, field, midenc-hir-type via this change; air's `testing` feature now pulls it in). Every type implementing both `Serializable` and `Deserializable` now either carries the shared `serialization_test` macro with a sound `Arbitrary` strategy, or is covered by an equivalent custom property. Highlights: - Boundary-biased `Felt` generator (canonical/non-canonical adapters) that reaches 0, 1, the 2^32 seam, ORDER-1 and framework-reserved tags, which uniform sampling misses. - Round-trips for mast, advice, deferred, program, operations, field, debug-types, crypto (merkle/SMT/MMR), mast-package, midenc-hir-type and processor types. - Custom properties where the macro's exact-equality oracle is the wrong contract (e.g. Package drops debug sections on untrusted read). - Committed proptest regression seeds. Test-only; no production behavior changes. * test: migrate manual randomness to proptests with shrinking Replace hand-rolled random sampling in test code with property tests where the relation generalizes, and with fixed fixtures where it does not. - miden-crypto: u32/u64 ops, keccak, sha2, blake, rescue, ies, aead, ecdh and rand types. - miden-lib/core (tests): blake3, sha256, falcon, circuit evaluation, u64 modulo. - precompiles-prover: uint/ec/eval/keccak/poseidon2 suites migrated to generated inputs and shared strategies; cost-prohibitive full-session builds and challenge-pair plumbing determinized to fixed fixtures. - miden-vm integration: u32 and field operation tests migrated, keeping the explicit boundary cases (0, MAX, overflow, immediate operands, stack preservation) visible. Crypto known-answer tests and protocol vectors remain deterministic. Test-only; no production behavior changes. * test(fuzz): semantic oracles and corpus seeds for the fuzz targets Upgrade the cargo-fuzz targets from crash-only to semantic oracles: - value-level stability (decode == re-encode == decode) where the target type has Eq, byte-level stability otherwise; - accessor-consistency and revalidation-outcome oracles; - untagged-variant stability for untagged enums; - a workspace-inheritance ground-truth oracle for project_load and a wire-stability oracle for project_assemble. Seed the corpora with writer-produced inputs and add the seed-generation helper, so campaigns exercise the decode paths rather than returning vacuously on random bytes. Test/tooling only; no production behavior changes. * Reject reversed source spans Check span bounds in constructors and decoders. Preserve valid clipped spans and empty locations at the end of a file. * Reject invalid UniqueNodes encodings Reject duplicate or unordered entries and overlapping leaf maps. Check leaf-map state before writing and keep generated inputs valid. * Keep RPX debug rounds within the thread stack Use separate round frames in debug builds. Add a 2 MiB stack test and run it in AVX2 CI. * Use consistent keys for recursive group order Use materialized types as keys for closed subtypes. Test exact round trips with tied names and nested references to completed types. * Document lazy digest validation in MAST wire views State that in-range digest access can return a decode error. Check that both digest accessors report the same error. * Document debug string control character preservation State that debug strings are stored verbatim and consumers decide their validity. Keep exact round-trip assertions. * Use the Arbitrary implementation for proof strategies * Generate continuation stacks directly and test source tracking * Bound expensive u32 property tests to 64 cases Keep explicit equality boundaries in stack and immediate forms. * Avoid repeated setup in generated equality and padding tests Sample comparison operations and reuse the fixed empty-store traces. * Use a shared 64-case budget for u32 VM properties Keep fixed boundary tests and generated stack-preservation checks. * Link the property-testing changelog entries to PR 3976 * Bump the package format to version 8 * Enable processor serialization properties in CI * Restore documentation on FunctionType and Type * Run HIR serialization properties in standard CI * Adapt property tests and fuzz seeds to next * Restore RNG imports for the Keccak soundness regression * Keep generated padding cases distinct after deduplication * Remove stale Keccak test documentation * Adapt inline-call properties to the latest next branch Generate ordered start and end indices for upstream's inline-call range. Refresh package fuzz seeds for debug-info version 4 and remove the duplicate PR 3981 changelog entry introduced during replay. | 9 天前 | |
Add EcGFp5 key agreement and IES support (#4036) | 3 天前 | |
Close MRUPDATE and REPEAT constraint gaps (#4002) | 8 天前 | |
refactor: rename module and kernel descriptors (#3356) * refactor: rename module and kernel descriptors * chore: Changelog * refactor: address descriptor review feedback * fix: update fuzz targets for kernel descriptor rename | 3 个月前 | |
[Tracking] Eidos integration (#3879) * vm: switch native hashing and proof transcripts to Eidos Make Eidos the VM-native hash across program, MAST, package, Merkle, advice-map, kernel, signature, AEAD, deferred-node, and proof-transcript commitments. Replace HPERM with COMPRESS and implement Eidos compression AEAD stream execution throughout assembly, the processor, trace generation, AIR, proving, verification, and recursive verification. Split the proof statement into the Core, Chiplets, EidosCompression, and And8Lookup components, with the fixed And8 table also serving range checks. Migrate deferred precompile nodes and the PVM to registered four-slot Eidos framing. Bind each chain head to its selector, payload length, two arguments, and reserved zero lane. * refactor: tighten Eidos VM integration Make the shared MVM/PVM compression structure easier to audit by centralizing narrow lookup-slot metadata and adding differential coverage for their common constraints. Nest AEAD stream flags under the bitwise selector interface, clarify trace matrix cloning, and remove redundant hasher forwarding layers. Pin the fixed Eidos preprocessed commitment to its canonical PCS blowup and strengthen adjacent validation, documentation, and MMR error tests. * chore: fix failing CI * chore: fix lint * chore: resolve remaining lints * feat: align the Eidos VM cutover with typed domains * refactor(air): simplify Eidos constraint definitions Consolidate AEAD phase, equality, XOR, and packing logic, and align bitwise layout names with the byte-oriented trace. * feat: complete the Eidos native-hash cutover Replace Poseidon2-based native hashing with Eidos across the VM, deferred computation, signatures, AEAD, and proof transcripts. Introduce checked EidosFrame framing and a CV-only deferred event ABI, bind PVM compression chains by head and tail, optimize generated MASM, and regenerate the affected AIR, verifier, proof, and fixture artifacts. * docs: clean up and improve structure of docs and comments * docs: align VM design documentation * fix: resolve Eidos stack integration lints * chore: fix failing examples * fix(core): align typed MASM interfaces * refactor(air): reuse the Eidos odd-lane mask * fix: adapt the Eidos cutover to next * fix(eidos): validate memory ranges and streaming inputs * fix(eidos): require payload validation and correct MASM contracts * refactor: standardize PVM LogUp on centered residues * verifier: derive recursive geometry from AIR layouts * perf(pvm): cache proof-order auxiliary pointers * air: narrow And8 lookup auxiliary trace to five columns Pair the ten And8, rotation, and range-table interactions into five two-fraction LogUp columns. This narrows the standalone And8 auxiliary trace from 10 to 5 columns and the PVM BytePairAnd8 composite from 12 to 7 while preserving typed buses and independent residues. * air: narrow MVM Core main trace to 48 columns Replace the decoder's three operation-batch flags with a full-batch flag and compact short-batch code. * precompiles: narrow KeccakRound auxiliary trace to 12 columns Use the committed raw B bytes in BytePairLut messages and batch the byte and Range16 interactions four per LogUp column. This reduces the KeccakRound auxiliary trace from 20 to 12 extension columns while preserving degree 5 and log quotient degree 2. * precompiles: narrow UintStoreMul auxiliary trace to 27 columns * precompiles: narrow ChunkNodeSponge main trace to 99 columns * precompiles: narrow ChunkNodeSponge auxiliary trace to 24 columns * precompiles: narrow EcMsm auxiliary trace from 15 to 14 columns * precompiles: narrow EcMsm main trace from 46 to 41 columns * precompiles: narrow TranscriptEval auxiliary trace from 14 to 12 columns * air: reconcile width reductions with production guards * refactor: migrate PVM AIRs to shared LogUp implementation * refactor: unify PVM byte-pair lookups * air: narrow VM and PVM byte-pair tables to 7/5/4 * air: reconcile width reductions and regenerate verifier artifacts * chore: fix lints * bench: add reusable Eidos composition scaling campaign * air: reduce the Eidos lookup interface to two columns Pack EidosBlock and FullCv into one degree-three LogUp column while retaining the head-aware Init/Out boundary column. Pin the inactive packed witness and move frame-derived CV construction to transcript ownership. * test: isolate Eidos support helpers * bench: harden Eidos comparison provenance checks * docs: align documentation with current contracts * air: narrow transcript flags and EC ordering witnesses * air: share Keccak sponge XOR lookup columns * update docs * docs(precompiles): minor clean ups * refactor(air): share the Eidos compression core * refactor(air): share Eidos byte-pair rotation logic * refactor(air): share Eidos compression trace generation * perf(prover): parallelize PVM Eidos trace generation * fix(bench): require manual host setup * fix(air): tighten width-reduction invariants and trace generation * refactor: share Eidos footer constraint sequencing * fix: refresh the Eidos benchmark baseline * docs: restore changelog section spacing * feat(ace-codegen): add canonical multi-AIR ACE circuit builder Adds a layout, pipeline, and air-crate wrapper for a single order-invariant multi-AIR circuit shared by every proof order. Per-AIR fold coefficients are staged as beta^(N-1-pos(k)), computed from the height-sorted proof position, instead of read from a per-order registry entry. * feat(vm): evaluate the canonical ACE circuit in the recursive verifier Replaces the VM recursive verifier's per-proof-order registry lookup with evaluation of the single canonical circuit. Out-of-domain row segments and aux-bus boundary sums are scattered to their canonical addresses via dynexec at ingest time, the VM relation digest is re-minted against the canonical circuit digest, and the ACE circuit registry is deleted. * feat(pvm): evaluate the canonical ACE circuit in the recursive verifier Mirrors the VM cutover for the precompiles VM: builds the canonical recursive-verifier ACE circuit, scatters OOD segments and boundary values to canonical addresses, gates the evaluator on ingest being order-invariant, and deletes the factored per-order circuit machinery and proof-order tag storage. * docs(ace): describe the order-invariant cutover and drop stale registry references Documents the verifier ABI, proof-order handling, and PVM crate layout as they now stand; records the breaking change in CHANGELOG.md; deletes the dead order-tag derivation and the remaining stale registry references left over from the cutover. * fix(ace-codegen): double-word align MASM ACE read regions LayoutPolicy::masm() previously end-aligned READ regions to two EF variables (four base felts). adv_pipe moves eight felts, so layouts ending at the half-block boundary produced a misaligned circuit-stream base. Align to four EF variables and regenerate the VM/PVM circuits, protocol constants, verifier roots, generated docs, and pinned PVM proof fixture against final PR3. * docs: align canonical ACE contracts and harden scatter routing * fix(pvm): reconcile canonical ACE artifacts after width reductions * perf(ace): derive proof-order maps once per proof * fix(pvm): make constant regeneration rustfmt-safe * fix(ace): harden artifact regeneration * fix(ace): align order-map feature gates and documentation * refactor: simplify order-invariant ACE generation * fix(ace): correct test feature gate and verifier documentation * perf(ace): share one Lagrange basis across periodic columns of a period * fix columns accounting * docs(ace): clarify shared periodic basis evaluation * fix(eidos): account for restricted Fiat-Shamir challenges Use Eidos's 126-bit challenge sampling support in native and recursive MVM/PVM security estimates, with independent regression tests. * fix(eidos): preserve wire and storage compatibility * refactor(precompiles-prover): remove unused code * test(eidos): correct batch proof security expectation * perf(vm): reuse And8 trace and precompute its commitments * docs(air): align table columns across AIR documentation * refactor(air): group AEAD and Merkle lookup interactions * feat(lmcs): construct typed batch proofs directly from trees * refactor(crypto): simplify Eidos random-coin sampling * chore: clean up documentation and formatting after rebase * chore: resolve CI failures * fix(lifted-stark): support quotient domains smaller than SIMD packs * docs(changelog): restore Eidos notes and document LMCS changes * chore: eemove dead code * chore: fix ci * fix(serialization): version Merkle state and precompile witnesses --------- Co-authored-by: Robin Salen <salenrobin@gmail.com> | 17 天前 | |
[Tracking] Eidos integration (#3879) * vm: switch native hashing and proof transcripts to Eidos Make Eidos the VM-native hash across program, MAST, package, Merkle, advice-map, kernel, signature, AEAD, deferred-node, and proof-transcript commitments. Replace HPERM with COMPRESS and implement Eidos compression AEAD stream execution throughout assembly, the processor, trace generation, AIR, proving, verification, and recursive verification. Split the proof statement into the Core, Chiplets, EidosCompression, and And8Lookup components, with the fixed And8 table also serving range checks. Migrate deferred precompile nodes and the PVM to registered four-slot Eidos framing. Bind each chain head to its selector, payload length, two arguments, and reserved zero lane. * refactor: tighten Eidos VM integration Make the shared MVM/PVM compression structure easier to audit by centralizing narrow lookup-slot metadata and adding differential coverage for their common constraints. Nest AEAD stream flags under the bitwise selector interface, clarify trace matrix cloning, and remove redundant hasher forwarding layers. Pin the fixed Eidos preprocessed commitment to its canonical PCS blowup and strengthen adjacent validation, documentation, and MMR error tests. * chore: fix failing CI * chore: fix lint * chore: resolve remaining lints * feat: align the Eidos VM cutover with typed domains * refactor(air): simplify Eidos constraint definitions Consolidate AEAD phase, equality, XOR, and packing logic, and align bitwise layout names with the byte-oriented trace. * feat: complete the Eidos native-hash cutover Replace Poseidon2-based native hashing with Eidos across the VM, deferred computation, signatures, AEAD, and proof transcripts. Introduce checked EidosFrame framing and a CV-only deferred event ABI, bind PVM compression chains by head and tail, optimize generated MASM, and regenerate the affected AIR, verifier, proof, and fixture artifacts. * docs: clean up and improve structure of docs and comments * docs: align VM design documentation * fix: resolve Eidos stack integration lints * chore: fix failing examples * fix(core): align typed MASM interfaces * refactor(air): reuse the Eidos odd-lane mask * fix: adapt the Eidos cutover to next * fix(eidos): validate memory ranges and streaming inputs * fix(eidos): require payload validation and correct MASM contracts * refactor: standardize PVM LogUp on centered residues * verifier: derive recursive geometry from AIR layouts * perf(pvm): cache proof-order auxiliary pointers * air: narrow And8 lookup auxiliary trace to five columns Pair the ten And8, rotation, and range-table interactions into five two-fraction LogUp columns. This narrows the standalone And8 auxiliary trace from 10 to 5 columns and the PVM BytePairAnd8 composite from 12 to 7 while preserving typed buses and independent residues. * air: narrow MVM Core main trace to 48 columns Replace the decoder's three operation-batch flags with a full-batch flag and compact short-batch code. * precompiles: narrow KeccakRound auxiliary trace to 12 columns Use the committed raw B bytes in BytePairLut messages and batch the byte and Range16 interactions four per LogUp column. This reduces the KeccakRound auxiliary trace from 20 to 12 extension columns while preserving degree 5 and log quotient degree 2. * precompiles: narrow UintStoreMul auxiliary trace to 27 columns * precompiles: narrow ChunkNodeSponge main trace to 99 columns * precompiles: narrow ChunkNodeSponge auxiliary trace to 24 columns * precompiles: narrow EcMsm auxiliary trace from 15 to 14 columns * precompiles: narrow EcMsm main trace from 46 to 41 columns * precompiles: narrow TranscriptEval auxiliary trace from 14 to 12 columns * air: reconcile width reductions with production guards * refactor: migrate PVM AIRs to shared LogUp implementation * refactor: unify PVM byte-pair lookups * air: narrow VM and PVM byte-pair tables to 7/5/4 * air: reconcile width reductions and regenerate verifier artifacts * chore: fix lints * bench: add reusable Eidos composition scaling campaign * air: reduce the Eidos lookup interface to two columns Pack EidosBlock and FullCv into one degree-three LogUp column while retaining the head-aware Init/Out boundary column. Pin the inactive packed witness and move frame-derived CV construction to transcript ownership. * test: isolate Eidos support helpers * bench: harden Eidos comparison provenance checks * docs: align documentation with current contracts * air: narrow transcript flags and EC ordering witnesses * air: share Keccak sponge XOR lookup columns * update docs * docs(precompiles): minor clean ups * refactor(air): share the Eidos compression core * refactor(air): share Eidos byte-pair rotation logic * refactor(air): share Eidos compression trace generation * perf(prover): parallelize PVM Eidos trace generation * fix(bench): require manual host setup * fix(air): tighten width-reduction invariants and trace generation * refactor: share Eidos footer constraint sequencing * fix: refresh the Eidos benchmark baseline * docs: restore changelog section spacing * feat(ace-codegen): add canonical multi-AIR ACE circuit builder Adds a layout, pipeline, and air-crate wrapper for a single order-invariant multi-AIR circuit shared by every proof order. Per-AIR fold coefficients are staged as beta^(N-1-pos(k)), computed from the height-sorted proof position, instead of read from a per-order registry entry. * feat(vm): evaluate the canonical ACE circuit in the recursive verifier Replaces the VM recursive verifier's per-proof-order registry lookup with evaluation of the single canonical circuit. Out-of-domain row segments and aux-bus boundary sums are scattered to their canonical addresses via dynexec at ingest time, the VM relation digest is re-minted against the canonical circuit digest, and the ACE circuit registry is deleted. * feat(pvm): evaluate the canonical ACE circuit in the recursive verifier Mirrors the VM cutover for the precompiles VM: builds the canonical recursive-verifier ACE circuit, scatters OOD segments and boundary values to canonical addresses, gates the evaluator on ingest being order-invariant, and deletes the factored per-order circuit machinery and proof-order tag storage. * docs(ace): describe the order-invariant cutover and drop stale registry references Documents the verifier ABI, proof-order handling, and PVM crate layout as they now stand; records the breaking change in CHANGELOG.md; deletes the dead order-tag derivation and the remaining stale registry references left over from the cutover. * fix(ace-codegen): double-word align MASM ACE read regions LayoutPolicy::masm() previously end-aligned READ regions to two EF variables (four base felts). adv_pipe moves eight felts, so layouts ending at the half-block boundary produced a misaligned circuit-stream base. Align to four EF variables and regenerate the VM/PVM circuits, protocol constants, verifier roots, generated docs, and pinned PVM proof fixture against final PR3. * docs: align canonical ACE contracts and harden scatter routing * fix(pvm): reconcile canonical ACE artifacts after width reductions * perf(ace): derive proof-order maps once per proof * fix(pvm): make constant regeneration rustfmt-safe * fix(ace): harden artifact regeneration * fix(ace): align order-map feature gates and documentation * refactor: simplify order-invariant ACE generation * fix(ace): correct test feature gate and verifier documentation * perf(ace): share one Lagrange basis across periodic columns of a period * fix columns accounting * docs(ace): clarify shared periodic basis evaluation * fix(eidos): account for restricted Fiat-Shamir challenges Use Eidos's 126-bit challenge sampling support in native and recursive MVM/PVM security estimates, with independent regression tests. * fix(eidos): preserve wire and storage compatibility * refactor(precompiles-prover): remove unused code * test(eidos): correct batch proof security expectation * perf(vm): reuse And8 trace and precompute its commitments * docs(air): align table columns across AIR documentation * refactor(air): group AEAD and Merkle lookup interactions * feat(lmcs): construct typed batch proofs directly from trees * refactor(crypto): simplify Eidos random-coin sampling * chore: clean up documentation and formatting after rebase * chore: resolve CI failures * fix(lifted-stark): support quotient domains smaller than SIMD packs * docs(changelog): restore Eidos notes and document LMCS changes * chore: eemove dead code * chore: fix ci * fix(serialization): version Merkle state and precompile witnesses --------- Co-authored-by: Robin Salen <salenrobin@gmail.com> | 17 天前 | |
[Tracking] Eidos integration (#3879) * vm: switch native hashing and proof transcripts to Eidos Make Eidos the VM-native hash across program, MAST, package, Merkle, advice-map, kernel, signature, AEAD, deferred-node, and proof-transcript commitments. Replace HPERM with COMPRESS and implement Eidos compression AEAD stream execution throughout assembly, the processor, trace generation, AIR, proving, verification, and recursive verification. Split the proof statement into the Core, Chiplets, EidosCompression, and And8Lookup components, with the fixed And8 table also serving range checks. Migrate deferred precompile nodes and the PVM to registered four-slot Eidos framing. Bind each chain head to its selector, payload length, two arguments, and reserved zero lane. * refactor: tighten Eidos VM integration Make the shared MVM/PVM compression structure easier to audit by centralizing narrow lookup-slot metadata and adding differential coverage for their common constraints. Nest AEAD stream flags under the bitwise selector interface, clarify trace matrix cloning, and remove redundant hasher forwarding layers. Pin the fixed Eidos preprocessed commitment to its canonical PCS blowup and strengthen adjacent validation, documentation, and MMR error tests. * chore: fix failing CI * chore: fix lint * chore: resolve remaining lints * feat: align the Eidos VM cutover with typed domains * refactor(air): simplify Eidos constraint definitions Consolidate AEAD phase, equality, XOR, and packing logic, and align bitwise layout names with the byte-oriented trace. * feat: complete the Eidos native-hash cutover Replace Poseidon2-based native hashing with Eidos across the VM, deferred computation, signatures, AEAD, and proof transcripts. Introduce checked EidosFrame framing and a CV-only deferred event ABI, bind PVM compression chains by head and tail, optimize generated MASM, and regenerate the affected AIR, verifier, proof, and fixture artifacts. * docs: clean up and improve structure of docs and comments * docs: align VM design documentation * fix: resolve Eidos stack integration lints * chore: fix failing examples * fix(core): align typed MASM interfaces * refactor(air): reuse the Eidos odd-lane mask * fix: adapt the Eidos cutover to next * fix(eidos): validate memory ranges and streaming inputs * fix(eidos): require payload validation and correct MASM contracts * refactor: standardize PVM LogUp on centered residues * verifier: derive recursive geometry from AIR layouts * perf(pvm): cache proof-order auxiliary pointers * air: narrow And8 lookup auxiliary trace to five columns Pair the ten And8, rotation, and range-table interactions into five two-fraction LogUp columns. This narrows the standalone And8 auxiliary trace from 10 to 5 columns and the PVM BytePairAnd8 composite from 12 to 7 while preserving typed buses and independent residues. * air: narrow MVM Core main trace to 48 columns Replace the decoder's three operation-batch flags with a full-batch flag and compact short-batch code. * precompiles: narrow KeccakRound auxiliary trace to 12 columns Use the committed raw B bytes in BytePairLut messages and batch the byte and Range16 interactions four per LogUp column. This reduces the KeccakRound auxiliary trace from 20 to 12 extension columns while preserving degree 5 and log quotient degree 2. * precompiles: narrow UintStoreMul auxiliary trace to 27 columns * precompiles: narrow ChunkNodeSponge main trace to 99 columns * precompiles: narrow ChunkNodeSponge auxiliary trace to 24 columns * precompiles: narrow EcMsm auxiliary trace from 15 to 14 columns * precompiles: narrow EcMsm main trace from 46 to 41 columns * precompiles: narrow TranscriptEval auxiliary trace from 14 to 12 columns * air: reconcile width reductions with production guards * refactor: migrate PVM AIRs to shared LogUp implementation * refactor: unify PVM byte-pair lookups * air: narrow VM and PVM byte-pair tables to 7/5/4 * air: reconcile width reductions and regenerate verifier artifacts * chore: fix lints * bench: add reusable Eidos composition scaling campaign * air: reduce the Eidos lookup interface to two columns Pack EidosBlock and FullCv into one degree-three LogUp column while retaining the head-aware Init/Out boundary column. Pin the inactive packed witness and move frame-derived CV construction to transcript ownership. * test: isolate Eidos support helpers * bench: harden Eidos comparison provenance checks * docs: align documentation with current contracts * air: narrow transcript flags and EC ordering witnesses * air: share Keccak sponge XOR lookup columns * update docs * docs(precompiles): minor clean ups * refactor(air): share the Eidos compression core * refactor(air): share Eidos byte-pair rotation logic * refactor(air): share Eidos compression trace generation * perf(prover): parallelize PVM Eidos trace generation * fix(bench): require manual host setup * fix(air): tighten width-reduction invariants and trace generation * refactor: share Eidos footer constraint sequencing * fix: refresh the Eidos benchmark baseline * docs: restore changelog section spacing * feat(ace-codegen): add canonical multi-AIR ACE circuit builder Adds a layout, pipeline, and air-crate wrapper for a single order-invariant multi-AIR circuit shared by every proof order. Per-AIR fold coefficients are staged as beta^(N-1-pos(k)), computed from the height-sorted proof position, instead of read from a per-order registry entry. * feat(vm): evaluate the canonical ACE circuit in the recursive verifier Replaces the VM recursive verifier's per-proof-order registry lookup with evaluation of the single canonical circuit. Out-of-domain row segments and aux-bus boundary sums are scattered to their canonical addresses via dynexec at ingest time, the VM relation digest is re-minted against the canonical circuit digest, and the ACE circuit registry is deleted. * feat(pvm): evaluate the canonical ACE circuit in the recursive verifier Mirrors the VM cutover for the precompiles VM: builds the canonical recursive-verifier ACE circuit, scatters OOD segments and boundary values to canonical addresses, gates the evaluator on ingest being order-invariant, and deletes the factored per-order circuit machinery and proof-order tag storage. * docs(ace): describe the order-invariant cutover and drop stale registry references Documents the verifier ABI, proof-order handling, and PVM crate layout as they now stand; records the breaking change in CHANGELOG.md; deletes the dead order-tag derivation and the remaining stale registry references left over from the cutover. * fix(ace-codegen): double-word align MASM ACE read regions LayoutPolicy::masm() previously end-aligned READ regions to two EF variables (four base felts). adv_pipe moves eight felts, so layouts ending at the half-block boundary produced a misaligned circuit-stream base. Align to four EF variables and regenerate the VM/PVM circuits, protocol constants, verifier roots, generated docs, and pinned PVM proof fixture against final PR3. * docs: align canonical ACE contracts and harden scatter routing * fix(pvm): reconcile canonical ACE artifacts after width reductions * perf(ace): derive proof-order maps once per proof * fix(pvm): make constant regeneration rustfmt-safe * fix(ace): harden artifact regeneration * fix(ace): align order-map feature gates and documentation * refactor: simplify order-invariant ACE generation * fix(ace): correct test feature gate and verifier documentation * perf(ace): share one Lagrange basis across periodic columns of a period * fix columns accounting * docs(ace): clarify shared periodic basis evaluation * fix(eidos): account for restricted Fiat-Shamir challenges Use Eidos's 126-bit challenge sampling support in native and recursive MVM/PVM security estimates, with independent regression tests. * fix(eidos): preserve wire and storage compatibility * refactor(precompiles-prover): remove unused code * test(eidos): correct batch proof security expectation * perf(vm): reuse And8 trace and precompute its commitments * docs(air): align table columns across AIR documentation * refactor(air): group AEAD and Merkle lookup interactions * feat(lmcs): construct typed batch proofs directly from trees * refactor(crypto): simplify Eidos random-coin sampling * chore: clean up documentation and formatting after rebase * chore: resolve CI failures * fix(lifted-stark): support quotient domains smaller than SIMD packs * docs(changelog): restore Eidos notes and document LMCS changes * chore: eemove dead code * chore: fix ci * fix(serialization): version Merkle state and precompile witnesses --------- Co-authored-by: Robin Salen <salenrobin@gmail.com> | 17 天前 |