Skip to content

feat: split C2 with wrapper [skip-line-limit]#1400

Merged
0xjei merged 27 commits into
mainfrom
circuits/split-c2-wrapper
Mar 17, 2026
Merged

feat: split C2 with wrapper [skip-line-limit]#1400
0xjei merged 27 commits into
mainfrom
circuits/split-c2-wrapper

Conversation

@0xjei

@0xjei 0xjei commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

This PR splits DKG C2 (share_computation) circuit in two separate circuits:

  • base: base circuit for C2 (SecretKeyShareComputation and SmudgingNoiseShareComputation). verifies secret commitment and consistency, and outputs chunk and party commitments to bind the chunk circuits and provide share commitments for downstream C3/C4.
  • chunk: verifies y_chunk is consistent with chunk_commitment from base circuit, range bounds and parity check with the matrix.

tasks

Summary by CodeRabbit

  • New Features

    • Added chunked share computation processing with multi-level proof aggregation.
    • Introduced base circuit variants for key-share and smudging-noise computations.
  • Bug Fixes

    • Adjusted threshold share collection timeout from 1200s to 800s for faster failure detection.
    • Fixed directory creation timing in proof generation workflow.
  • Chores

    • Reorganized circuit dependencies and structure for improved modularity.
    • Updated CI constraints for ZK prover test execution.

@0xjei 0xjei self-assigned this Mar 9, 2026
@vercel

vercel Bot commented Mar 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
crisp Ready Ready Preview, Comment Mar 17, 2026 11:42am
enclave-docs Ready Ready Preview, Comment Mar 17, 2026 11:42am

Request Review

@0xjei 0xjei added this to the PHASE 3: PROD PARAMS milestone Mar 9, 2026
@coderabbitai

coderabbitai Bot commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • ✅ Review completed - (🔄 Check again to review again)
📝 Walkthrough

Walkthrough

Refactors DKG share-computation into base and chunk circuits with chunking configs and commitments, removes monolithic circuits, adds inner→outer wrapper proof flow, updates workspace manifests and Noir binaries, and propagates changes through zk-helpers, zk-prover, events, multithread, and tests.

Changes

Cohort / File(s) Summary
Workspace Manifests
circuits/bin/dkg/Nargo.toml, circuits/bin/recursive_aggregation/wrapper/dkg/Nargo.toml
Replaced monolithic workspace members with *_base, share_computation_chunk, and added share_computation_inner.
Removed Circuits
circuits/bin/dkg/sk_share_computation/..., circuits/bin/dkg/e_sm_share_computation/...
Deleted legacy Nargo manifests, README lines, and Noir main.nr entrypoints for SK and ESM share-computation.
New Base & Chunk Binaries
circuits/bin/dkg/sk_share_computation_base/..., circuits/bin/dkg/e_sm_share_computation_base/..., circuits/bin/dkg/share_computation_chunk/...
Added manifests and Noir main.nr entrypoints implementing base and chunk share-computation binaries.
Core DKG Refactor
circuits/lib/src/core/dkg/...
Removed monolithic share_computation.nr; added mod.nr, base.nr, and chunk.nr with new Configs and circuit structs (Base and Chunk) and their execute flows.
Configs & Commitments
circuits/lib/src/configs/..., circuits/lib/src/math/commitments.nr
Split share-computation configs into base/chunk groups, added SHARE_COMPUTATION_CHUNK_SIZE/N_CHUNKS, and new chunk commitment domain + compute function.
Wrapper & Recursive Aggregation
crates/zk-prover/src/circuits/recursive_aggregation/..., circuits/bin/recursive_aggregation/wrapper/dkg/share_computation_inner/...
Added inner wrapper manifest and inner-wrapper logic to verify base + chunk proofs, extract commitments, and integrate with outer wrapper proving flow; added helper to load VKs from relative dirs.
ZK Helpers / Circuits
crates/zk-helpers/src/circuits/dkg/share_computation/*, crates/zk-helpers/src/bin/zk_cli.rs
Introduced ShareComputationBaseCircuit and ShareComputationChunkCircuit, ChunkInputs, updated codegen to emit base/chunk TOML, added CLI chunk_idx and chunk data paths.
ZK Prover Integration
crates/zk-prover/src/*
Added generate_share_computation_wrapper_proof (inner→outer), artifact-level proof generation helpers, async artifact staging utilities, and switched prover args to use CircuitVariant.bb_profile_args.
Events / Multithread / Proving Flow
crates/events/src/enclave_event/proof.rs, crates/multithread/src/multithread.rs
Added CircuitName variants (SkShareComputationBase, ESmShareComputationBase, ShareComputationChunk), updated profile-args API and wrapper path resolution, and refactored multithread to produce base + chunk proofs and assemble wrapper proof.
Tests & Test Utils
crates/zk-prover/src/test_utils.rs, crates/zk-prover/tests/*, crates/tests/tests/integration.rs
Added async staging helper stage_compiled_circuit_artifacts, updated tests to stage/compile base/chunk/inner/outer artifacts, and refactored integration/e2e tests to generate and verify wrapper proofs.
Tooling / Docs / Misc
crates/zk-helpers/README.md, crates/zk-helpers/src/circuits/commitments.rs, .github/workflows/ci.yml, packages/enclave-mcp/*
Docs/CLI examples updated for base/chunk, added chunk commitment helpers in helper crates (duplicate implementation observed), CI artifact paths extended, minor formatting tweaks.

Sequence Diagram(s)

sequenceDiagram
    participant CLI
    participant BaseGen as "Base Generator"
    participant ChunkGen as "Chunk Generator"
    participant InnerWrap as "Inner Wrapper"
    participant OuterWrap as "Outer Wrapper"
    participant Prover

    CLI->>BaseGen: prepare base inputs
    BaseGen->>Prover: prove base circuit
    Prover-->>BaseGen: base_proof

    CLI->>ChunkGen: prepare y chunks
    ChunkGen->>Prover: prove chunk circuits (per chunk)
    Prover-->>ChunkGen: chunk_proofs[]

    CLI->>InnerWrap: call generate_share_computation_wrapper_proof(base_proof, chunk_proofs)
    InnerWrap->>InnerWrap: verify base & chunk proofs, extract commitments
    InnerWrap->>Prover: prove inner wrapper
    Prover-->>InnerWrap: inner_proof

    InnerWrap->>OuterWrap: assemble outer input (inner_proof)
    OuterWrap->>Prover: prove outer wrapper
    Prover-->>OuterWrap: final_wrapper_proof

    OuterWrap-->>CLI: deliver final wrapper proof
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Suggested reviewers

  • cedoor
  • ctrlc03

Poem

🐰 I hopped through circuits, split in two,

base and chunk now stitched anew.
Proofs stack up, wrappers dance,
tiny hops advance the trance.
A rabbit patched the DKG glue!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: splitting the C2 (share_computation) circuit with a wrapper-based proving flow. It is concise and specific enough for a developer scanning history to understand the primary objective.
Docstring Coverage ✅ Passed Docstring coverage is 95.77% which is sufficient. The required threshold is 80.00%.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch circuits/split-c2-wrapper
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]

This comment was marked as outdated.

coderabbitai[bot]

This comment was marked as outdated.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (8)
packages/enclave-contracts/test/Slashing/SlashingManager.spec.ts (1)

62-65: Optional: Remove unused _mockVerifier parameter from setupPolicies.

The _mockVerifier parameter is declared but never referenced within the function body. The proofVerifier field is always set to ethers.ZeroAddress in all three policies. If this parameter was intended for future use, consider removing it until needed to reduce confusion.

♻️ Suggested cleanup
 async function setupPolicies(
   slashingManager: SlashingManager,
-  _mockVerifier?: MockCircuitVerifier,
 ) {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/enclave-contracts/test/Slashing/SlashingManager.spec.ts` around
lines 62 - 65, The _mockVerifier parameter in the setupPolicies function is
unused; remove the unused parameter declaration (_mockVerifier?:
MockCircuitVerifier) from the setupPolicies signature and update any calls to
setupPolicies accordingly, keeping the function body as-is (it already sets
proofVerifier to ethers.ZeroAddress for each policy); if you intended to use a
mock verifier later, leave a TODO comment instead of an unused parameter to
avoid confusion.
circuits/bin/dkg/share_computation_chunk_batch/Nargo.toml (1)

8-8: Consider pinning bb_proof_verification with commit SHA for stronger supply-chain guarantees.

While tag-based pinning is the established convention across Nargo.toml files in this repository, using rev with the commit SHA provides immutability guarantees that tags cannot provide. This aligns with your stated preference for reproducible builds and is particularly valuable for external dependencies.

The current tag = "v3.0.0-nightly.20260102" pinning is functional and consistent with other dependencies in the codebase; this is an optional improvement rather than a breaking concern.

Suggested change
-bb_proof_verification = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v3.0.0-nightly.20260102", directory = "barretenberg/noir/bb_proof_verification" }
+bb_proof_verification = { git = "https://github.com/AztecProtocol/aztec-packages/", rev = "<commit_sha_for_v3.0.0-nightly.20260102>", directory = "barretenberg/noir/bb_proof_verification" }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@circuits/bin/dkg/share_computation_chunk_batch/Nargo.toml` at line 8, Update
the bb_proof_verification dependency entry in Nargo.toml to pin it by commit SHA
instead of the tag; locate the bb_proof_verification line and replace the tag =
"v3.0.0-nightly.20260102" attribute with rev = "<commit-sha>" (using the precise
commit SHA for that release) so the dependency is immutable and reproducible
while keeping the same git URL and directory values.
circuits/bin/dkg/share_computation/Nargo.toml (2)

4-4: Replace placeholder author metadata.

authors = [""] is empty metadata; use a real value (or remove the field if your tooling permits).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@circuits/bin/dkg/share_computation/Nargo.toml` at line 4, The authors
metadata in Nargo.toml currently contains an empty placeholder (`authors =
[""]`); update the authors field to include a real author name or organization
(e.g., replace the empty string with a valid identifier) or remove the authors
line entirely if your build/tooling supports omitting it; locate the `authors`
entry in Nargo.toml and replace or delete it accordingly to provide valid
metadata.

8-8: Replace tag with the immutable commit hash of v3.0.0-nightly.20260102.

Named tags like v3.0.0-nightly.20260102 can be retagged or moved, making them less tamper-resistant. Nargo supports any string in the tag field, including commit hashes. Replace the tag with the full commit SHA of that release for immutable pinning.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@circuits/bin/dkg/share_computation/Nargo.toml` at line 8, The dependency
entry bb_proof_verification uses a mutable tag string; replace the tag value
("v3.0.0-nightly.20260102") with the full immutable commit SHA for that release
so the git reference is pinned; update the bb_proof_verification entry in
Nargo.toml to set tag = "<full-commit-sha>" (the 40-char SHA) ensuring the git,
directory, and other keys remain unchanged.
crates/zk-helpers/src/circuits/dkg/share_computation/circuit.rs (1)

17-17: Track TODO debt with an issue reference before merge.

These TODOs are understandable, but adding an issue/ID in the comments will make follow-up explicit and prevent drift.

Also applies to: 49-50

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/zk-helpers/src/circuits/dkg/share_computation/circuit.rs` at line 17,
The inline TODO comments ("todo: remove this (keep it until we update
zk-prover)" and the other TODOs around lines 49-50) must be annotated with a
tracking issue reference so the technical debt is explicit; update those TODO
comments to include a short issue ID or URL (e.g. "TODO: remove this — tracked
in ISSUE-XXXX / https://...") and ensure all matching TODO occurrences in this
module/circuit (the comments containing "todo: remove this" and the ones at
49-50) are updated consistently with the same issue identifier.
crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs (1)

32-33: Centralize chunk geometry and forbid short last chunks.

SHARE_COMPUTATION_CHUNK_SIZE, compute_chunks_per_batch(), and the ceil-based compute_n_chunks() are helper-local copies of values that already live in circuits/lib/src/configs/insecure/dkg.nr and circuits/lib/src/configs/secure/dkg.nr. Combined with split_into_chunks() using min(...), a future config change will silently produce a shorter final y_chunk, even though the Noir chunk circuit still expects a fixed-size array (crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs:270-274 checks for 512 today). Please source the geometry from one place, or at least match exhaustively on supported presets and assert divisibility/pad explicitly.

Also applies to: 153-172, 317-337

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs` around
lines 32 - 33, The hard-coded SHARE_COMPUTATION_CHUNK_SIZE and local helpers
compute_chunks_per_batch() and compute_n_chunks() can diverge from the Noir
circuit presets and allow a short final y_chunk; replace these local copies by
sourcing the chunk geometry from the central config (the same presets in
circuits/lib/src/configs/{insecure,secure}/dkg.nr) or exhaustively match the
supported presets inside
crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs, and add an
explicit assert/validation that total_size % chunk_size == 0 (or pad
deterministically) before calling split_into_chunks(); update any callers and
ensure the array size expectations checked in
crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs (the fixed-size
array check around lines ~270-274) are satisfied.
crates/zk-prover/tests/local_e2e_tests.rs (1)

541-555: These “commitment consistency” tests no longer check commitments.

After the wrapper split, both tests only assert a 160-byte public-signal blob and that one field is non-zero. That would still pass if the final wrapper exported the wrong batch tuple or ignored later batches, so it no longer protects the contract implied by the test names. Please compare the final public outputs against the expected values derived from the assembled base/chunk/batch pipeline.

Also applies to: 613-627

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/zk-prover/tests/local_e2e_tests.rs` around lines 541 - 555, The test
currently only checks size and non-zeroness of proof.public_signals (converted
via public_signals_to_fields), but must assert that the final wrapper's public
outputs match the expected batch tuple derived from the assembled
base/chunk/batch pipeline; update the test that uses
proof.public_signals/public_signals_to_fields (and the similar block at the
other location) to compute the expected 5 field values from the assembled
pipeline (using the same functions/values used to build base/chunk/batch
commitments) and then assert equality field-by-field (e.g., compare
expected_fields[i] == fields[i] for all 5 fields) instead of only length and
non-zero checks so the final wrapper's exports are verified exactly.
crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs (1)

112-114: Consider removing unused parameter _n_batches.

The _n_batches parameter is passed to generate_configs but never used, as N_BATCHES is computed in the generated Noir code from N_CHUNKS / CHUNKS_PER_BATCH. Consider removing this parameter to reduce confusion, or add a consistency assertion if validation is intended.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs` around lines
112 - 114, The _n_batches parameter is unused in generate_configs; either remove
the _n_batches parameter from generate_configs' signature and all call sites, or
keep it but add a consistency check inside generate_configs (e.g., assert that
_n_batches == chunk_size / chunks_per_batch) and propagate any mismatch as an
error; reference the generate_configs function and the _n_batches symbol and
ensure the generated Noir constant N_BATCHES remains computed from N_CHUNKS /
CHUNKS_PER_BATCH or is validated against the provided _n_batches for
consistency.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@circuits/bin/dkg/share_computation/src/main.nr`:
- Around line 11-13: The code currently exposes batch_public_inputs[0] (from
share_computation_chunk_batch) which hardcodes batch 0 and drops
aggregated_commitment values from later batches; instead, change the top-level
proof to fold all per-batch aggregated_commitment values into a single final
public output (e.g., hash/commit/aggregate the vector of aggregated_commitment)
and include that folded value as the public C2 output (instead of
batch_public_inputs[0]); additionally, add assertions in the top-level circuit
that shared fields (base_key_hash, chunk_key_hash and any other shared public
slots defined by BATCH_WRAPPER_PUBLIC_INPUTS) are identical across every entry
in batch_public_inputs and that batch_idx values are consistent/ordered as
required before performing the fold so the final public output is bound to the
whole computation.

In `@crates/events/src/enclave_event/signed_proof.rs`:
- Around line 58-59: The current mapping makes ProofType::C2aSkShareComputation
and ProofType::C2bESmShareComputation both map to CircuitName::ShareComputation,
so add an explicit semantic check in the verification path (e.g., in
SignedProof::verify or the verify_proof routine that consumes public signals)
that inspects the public signals' dkg_input_type and asserts it matches the
expected value for each ProofType (SK vs ESm); implement: parse the
dkg_input_type from the public signals, compare against the expected
enum/constant for ProofType::C2aSkShareComputation and
ProofType::C2bESmShareComputation, and return a verification error when they
differ, leaving the CircuitName mapping unchanged.

In `@crates/multithread/src/multithread.rs`:
- Around line 779-786: The loop that calls generate_chunk_batch_proof currently
slices chunk_proofs[start..end] without bounds checks, which can panic; before
creating start/end compute and validate that start < chunk_proofs.len() and end
<= chunk_proofs.len() (or clamp end = usize::min(end, chunk_proofs.len())) and
handle the mismatched case by returning an Err or skipping the batch with a
clear log; use safe indexing (e.g., chunk_proofs.get(start..end)) and propagate
or convert the error from the surrounding function so generate_chunk_batch_proof
never receives an out-of-bounds slice.

---

Nitpick comments:
In `@circuits/bin/dkg/share_computation_chunk_batch/Nargo.toml`:
- Line 8: Update the bb_proof_verification dependency entry in Nargo.toml to pin
it by commit SHA instead of the tag; locate the bb_proof_verification line and
replace the tag = "v3.0.0-nightly.20260102" attribute with rev = "<commit-sha>"
(using the precise commit SHA for that release) so the dependency is immutable
and reproducible while keeping the same git URL and directory values.

In `@circuits/bin/dkg/share_computation/Nargo.toml`:
- Line 4: The authors metadata in Nargo.toml currently contains an empty
placeholder (`authors = [""]`); update the authors field to include a real
author name or organization (e.g., replace the empty string with a valid
identifier) or remove the authors line entirely if your build/tooling supports
omitting it; locate the `authors` entry in Nargo.toml and replace or delete it
accordingly to provide valid metadata.
- Line 8: The dependency entry bb_proof_verification uses a mutable tag string;
replace the tag value ("v3.0.0-nightly.20260102") with the full immutable commit
SHA for that release so the git reference is pinned; update the
bb_proof_verification entry in Nargo.toml to set tag = "<full-commit-sha>" (the
40-char SHA) ensuring the git, directory, and other keys remain unchanged.

In `@crates/zk-helpers/src/circuits/dkg/share_computation/circuit.rs`:
- Line 17: The inline TODO comments ("todo: remove this (keep it until we update
zk-prover)" and the other TODOs around lines 49-50) must be annotated with a
tracking issue reference so the technical debt is explicit; update those TODO
comments to include a short issue ID or URL (e.g. "TODO: remove this — tracked
in ISSUE-XXXX / https://...") and ensure all matching TODO occurrences in this
module/circuit (the comments containing "todo: remove this" and the ones at
49-50) are updated consistently with the same issue identifier.

In `@crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs`:
- Around line 112-114: The _n_batches parameter is unused in generate_configs;
either remove the _n_batches parameter from generate_configs' signature and all
call sites, or keep it but add a consistency check inside generate_configs
(e.g., assert that _n_batches == chunk_size / chunks_per_batch) and propagate
any mismatch as an error; reference the generate_configs function and the
_n_batches symbol and ensure the generated Noir constant N_BATCHES remains
computed from N_CHUNKS / CHUNKS_PER_BATCH or is validated against the provided
_n_batches for consistency.

In `@crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs`:
- Around line 32-33: The hard-coded SHARE_COMPUTATION_CHUNK_SIZE and local
helpers compute_chunks_per_batch() and compute_n_chunks() can diverge from the
Noir circuit presets and allow a short final y_chunk; replace these local copies
by sourcing the chunk geometry from the central config (the same presets in
circuits/lib/src/configs/{insecure,secure}/dkg.nr) or exhaustively match the
supported presets inside
crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs, and add an
explicit assert/validation that total_size % chunk_size == 0 (or pad
deterministically) before calling split_into_chunks(); update any callers and
ensure the array size expectations checked in
crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs (the fixed-size
array check around lines ~270-274) are satisfied.

In `@crates/zk-prover/tests/local_e2e_tests.rs`:
- Around line 541-555: The test currently only checks size and non-zeroness of
proof.public_signals (converted via public_signals_to_fields), but must assert
that the final wrapper's public outputs match the expected batch tuple derived
from the assembled base/chunk/batch pipeline; update the test that uses
proof.public_signals/public_signals_to_fields (and the similar block at the
other location) to compute the expected 5 field values from the assembled
pipeline (using the same functions/values used to build base/chunk/batch
commitments) and then assert equality field-by-field (e.g., compare
expected_fields[i] == fields[i] for all 5 fields) instead of only length and
non-zero checks so the final wrapper's exports are verified exactly.

In `@packages/enclave-contracts/test/Slashing/SlashingManager.spec.ts`:
- Around line 62-65: The _mockVerifier parameter in the setupPolicies function
is unused; remove the unused parameter declaration (_mockVerifier?:
MockCircuitVerifier) from the setupPolicies signature and update any calls to
setupPolicies accordingly, keeping the function body as-is (it already sets
proofVerifier to ethers.ZeroAddress for each policy); if you intended to use a
mock verifier later, leave a TODO comment instead of an unused parameter to
avoid confusion.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c5fe538c-129e-4aaf-a725-c7ada5c84e1e

📥 Commits

Reviewing files that changed from the base of the PR and between d7b7592 and ef2ca25.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (48)
  • .github/workflows/ci.yml
  • circuits/bin/dkg/Nargo.toml
  • circuits/bin/dkg/e_sm_share_computation/Nargo.toml
  • circuits/bin/dkg/e_sm_share_computation/README.md
  • circuits/bin/dkg/e_sm_share_computation/src/main.nr
  • circuits/bin/dkg/e_sm_share_computation_base/Nargo.toml
  • circuits/bin/dkg/e_sm_share_computation_base/src/main.nr
  • circuits/bin/dkg/share_computation/Nargo.toml
  • circuits/bin/dkg/share_computation/src/main.nr
  • circuits/bin/dkg/share_computation_chunk/Nargo.toml
  • circuits/bin/dkg/share_computation_chunk/src/main.nr
  • circuits/bin/dkg/share_computation_chunk_batch/Nargo.toml
  • circuits/bin/dkg/share_computation_chunk_batch/src/main.nr
  • circuits/bin/dkg/sk_share_computation/README.md
  • circuits/bin/dkg/sk_share_computation/src/main.nr
  • circuits/bin/dkg/sk_share_computation_base/Nargo.toml
  • circuits/bin/dkg/sk_share_computation_base/src/main.nr
  • circuits/bin/recursive_aggregation/wrapper/dkg/share_computation/src/main.nr
  • circuits/lib/src/configs/insecure/dkg.nr
  • circuits/lib/src/configs/secure/dkg.nr
  • circuits/lib/src/core/dkg/share_computation.nr
  • circuits/lib/src/core/dkg/share_computation/base.nr
  • circuits/lib/src/core/dkg/share_computation/chunk.nr
  • circuits/lib/src/core/dkg/share_computation/mod.nr
  • crates/events/src/enclave_event/proof.rs
  • crates/events/src/enclave_event/signed_proof.rs
  • crates/keyshare/src/threshold_share_collector.rs
  • crates/multithread/src/multithread.rs
  • crates/tests/tests/integration.rs
  • crates/zk-helpers/README.md
  • crates/zk-helpers/src/bin/zk_cli.rs
  • crates/zk-helpers/src/circuits/dkg/share_computation/circuit.rs
  • crates/zk-helpers/src/circuits/dkg/share_computation/codegen.rs
  • crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs
  • crates/zk-helpers/src/circuits/dkg/share_computation/mod.rs
  • crates/zk-prover/Cargo.toml
  • crates/zk-prover/src/circuits/dkg/mod.rs
  • crates/zk-prover/src/circuits/dkg/share_computation.rs
  • crates/zk-prover/src/circuits/mod.rs
  • crates/zk-prover/src/circuits/recursive_aggregation/mod.rs
  • crates/zk-prover/src/circuits/recursive_aggregation/utils.rs
  • crates/zk-prover/src/circuits/utils.rs
  • crates/zk-prover/src/circuits/vk.rs
  • crates/zk-prover/src/lib.rs
  • crates/zk-prover/src/prover.rs
  • crates/zk-prover/tests/local_e2e_tests.rs
  • package.json
  • packages/enclave-contracts/test/Slashing/SlashingManager.spec.ts
💤 Files with no reviewable changes (7)
  • circuits/bin/dkg/e_sm_share_computation/README.md
  • crates/zk-prover/src/circuits/recursive_aggregation/utils.rs
  • circuits/lib/src/core/dkg/share_computation.nr
  • circuits/bin/dkg/e_sm_share_computation/src/main.nr
  • circuits/bin/dkg/sk_share_computation/README.md
  • circuits/bin/dkg/sk_share_computation/src/main.nr
  • circuits/bin/dkg/e_sm_share_computation/Nargo.toml
🚧 Files skipped from review as they are similar to previous changes (11)
  • circuits/lib/src/core/dkg/share_computation/mod.nr
  • crates/tests/tests/integration.rs
  • crates/zk-prover/src/circuits/recursive_aggregation/mod.rs
  • circuits/bin/dkg/share_computation_chunk/Nargo.toml
  • circuits/bin/dkg/Nargo.toml
  • circuits/bin/dkg/e_sm_share_computation_base/Nargo.toml
  • circuits/bin/dkg/sk_share_computation_base/Nargo.toml
  • circuits/lib/src/core/dkg/share_computation/base.nr
  • crates/zk-prover/src/prover.rs
  • circuits/bin/dkg/sk_share_computation_base/src/main.nr
  • circuits/bin/dkg/e_sm_share_computation_base/src/main.nr

Comment thread circuits/bin/dkg/share_computation/src/main.nr
Comment thread crates/events/src/enclave_event/signed_proof.rs
Comment thread crates/multithread/src/multithread.rs
Comment thread circuits/bin/dkg/share_computation/src/main.nr
Comment thread circuits/bin/dkg/share_computation/src/main.nr Outdated
Comment thread circuits/bin/dkg/share_computation/src/main.nr
Comment thread .github/workflows/ci.yml
Comment thread circuits/bin/dkg/share_computation/src/main.nr
Comment thread circuits/bin/dkg/share_computation/src/main.nr
Comment thread crates/zk-helpers/src/circuits/dkg/share_computation/computation.rs
Comment thread crates/events/src/enclave_event/signed_proof.rs
Comment thread crates/zk-prover/src/prover.rs
cedoor
cedoor previously approved these changes Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

break down C2 break down circuits to reduce size

4 participants