Skip to content

code-423n4/2025-09-succinct

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Succinct audit details

  • Total Prize Pool: $112,500 in USDC
    • HM awards: up to $105,600 in USDC
      • If no valid Highs or Mediums are found, the HM pool is $0
    • QA awards: $4,400 in USDC
    • Judge awards: $2,000 in USDC
    • Scout awards: $500 in USDC
  • Read our guidelines for more details
  • Starts September 15, 2025 20:00 UTC
  • Ends October 15, 2025 20:00 UTC

âť— Important notes for wardens

  1. Judging phase risk adjustments (upgrades/downgrades):
  • High- or Medium-risk submissions downgraded by the judge to Low-risk (QA) will be ineligible for awards.
  • Upgrading a Low-risk finding from a QA report to a Medium- or High-risk finding is not supported.
  • As such, wardens are encouraged to select the appropriate risk level carefully during the submission phase.

Publicly Known Issues

Note for C4 wardens: Anything included in this Publicly Known Issues section is considered a publicly known issue and is ineligible for awards.

From the security model in the SP1 Docs, the following remains true.

Since SP1 only aims to provide proof of correct execution for the user-provided program, it is crucial for users to make sure that their programs are secure.

SP1 assumes that the program compiled into SP1 is non-malicious. This includes that the program is memory-safe and the compiled ELF binary has not been tampered with. Compiling unsafe programs with undefined behavior into SP1 could result in undefined or even malicious behavior being provable and verifiable within SP1. Therefore, developers must ensure the safety of their code and the correctness of their SP1 usage through the appropriate toolchain. Similarly, users using SP1's patched crates must ensure that their code is secure when compiled with the original crates. SP1 also has requirements for safe usage of SP1 Precompiles, which must be ensured by the developers.

We are also aware that our JALR implementation doesn't clear the least significant bit of the (rs1 + imm) value. Since this value is asserted to be a multiple of 4 in the circuit, there are no soundness issues. The only issue that may arise from this is that there might be valid execution where (rs1 + imm) value is not even, leading to a potential completeness issue. However, in usual programs compiled through the standard SP1 toolchain, this behavior will not be observed. Note that this clearing of LSB usually only happens on incorrect pointer arithmetic or an unsafe program, so this completeness issue is very minor.

We are also aware that our generate_trace function for the DivRemChip may panic on debug mode, due to the usage of abs() function over i64. Since proving is expected to be done on release mode, this issue is informational.

We are also aware that the vk_root and the merkle tree of valid recursion verification keys is not set up yet. Auditors should assume that this merkle tree will be set up correctly, and that the merkle proof verification for the vk_root will be turned on in production, asserting that only valid verification keys can be used in recursion.

We are also aware that the proof nonce is currently not a part of the encoded proof in recursion/gnark-ffi/go/sp1/utils.go. Note that the solidity verifier is not a part of the scope.

Overview

SP1

SP1 is the fastest, most-feature complete zero-knowledge virtual machine (zkVM) that can prove the execution of arbitrary Rust (or any LLVM-compiled language) programs. SP1 makes ZK accessible to any developer, by making it easy to write ZKP programs in normal Rust code.

Links


Scope

See scope.txt

Files in scope

File nSLOC
/crates/recursion/circuit/src/basefold/merkle_tree.rs 108
/crates/recursion/circuit/src/basefold/mod.rs 544
/crates/recursion/circuit/src/basefold/stacked.rs 212
/crates/recursion/circuit/src/basefold/tcs.rs 168
/crates/recursion/circuit/src/basefold/whir.rs 676
/crates/recursion/circuit/src/basefold/witness.rs 160
/crates/recursion/circuit/src/challenger.rs 583
/crates/recursion/circuit/src/dummy/jagged.rs 317
/crates/recursion/circuit/src/dummy/logup_gkr.rs 53
/crates/recursion/circuit/src/dummy/mod.rs 5
/crates/recursion/circuit/src/dummy/shard_proof.rs 79
/crates/recursion/circuit/src/dummy/sumcheck.rs 16
/crates/recursion/circuit/src/hash.rs 245
/crates/recursion/circuit/src/jagged/jagged_eval.rs 364
/crates/recursion/circuit/src/jagged/mod.rs 5
/crates/recursion/circuit/src/jagged/verifier.rs 447
/crates/recursion/circuit/src/jagged/witness.rs 87
/crates/recursion/circuit/src/lib.rs 721
/crates/recursion/circuit/src/logup_gkr.rs 256
/crates/recursion/circuit/src/machine/complete.rs 96
/crates/recursion/circuit/src/machine/compress.rs 306
/crates/recursion/circuit/src/machine/core.rs 169
/crates/recursion/circuit/src/machine/deferred.rs 189
/crates/recursion/circuit/src/machine/mod.rs 22
/crates/recursion/circuit/src/machine/public_values.rs 96
/crates/recursion/circuit/src/machine/root.rs 52
/crates/recursion/circuit/src/machine/vkey_proof.rs 139
/crates/recursion/circuit/src/machine/witness.rs 229
/crates/recursion/circuit/src/machine/wrap.rs 64
/crates/recursion/circuit/src/shard.rs 528
/crates/recursion/circuit/src/sumcheck/mod.rs 266
/crates/recursion/circuit/src/sumcheck/witness.rs 47
/crates/recursion/circuit/src/symbolic.rs 58
/crates/recursion/circuit/src/utils.rs 97
/crates/recursion/circuit/src/witness.rs 309
/crates/recursion/circuit/src/zerocheck.rs 220
/crates/recursion/gnark-ffi/go/main.go 243
/crates/recursion/gnark-ffi/go/sp1/build.go 258
/crates/recursion/gnark-ffi/go/sp1/koalabear/koalabear.go 428
/crates/recursion/gnark-ffi/go/sp1/poseidon2/constants.go 931
/crates/recursion/gnark-ffi/go/sp1/poseidon2/poseidon2.go 61
/crates/recursion/gnark-ffi/go/sp1/poseidon2/poseidon2_koalabear.go 132
/crates/recursion/gnark-ffi/go/sp1/poseidon2/utils.go 19
/crates/recursion/gnark-ffi/go/sp1/prove.go 139
/crates/recursion/gnark-ffi/go/sp1/sp1.go 237
/crates/recursion/gnark-ffi/go/sp1/utils.go 95
/crates/recursion/gnark-ffi/go/sp1/verify.go 89
/crates/recursion/machine/src/builder.rs 63
/crates/recursion/machine/src/chips/alu_base.rs 225
/crates/recursion/machine/src/chips/alu_ext.rs 235
/crates/recursion/machine/src/chips/mem/constant.rs 191
/crates/recursion/machine/src/chips/mem/mod.rs 14
/crates/recursion/machine/src/chips/mem/variable.rs 181
/crates/recursion/machine/src/chips/mod.rs 10
/crates/recursion/machine/src/chips/poseidon2_helper/convert.rs 186
/crates/recursion/machine/src/chips/poseidon2_helper/linear.rs 234
/crates/recursion/machine/src/chips/poseidon2_helper/mod.rs 3
/crates/recursion/machine/src/chips/poseidon2_helper/sbox.rs 202
/crates/recursion/machine/src/chips/poseidon2_wide/air.rs 60
/crates/recursion/machine/src/chips/poseidon2_wide/columns/mod.rs 1
/crates/recursion/machine/src/chips/poseidon2_wide/columns/preprocessed.rs 11
/crates/recursion/machine/src/chips/poseidon2_wide/mod.rs 70
/crates/recursion/machine/src/chips/poseidon2_wide/trace.rs 144
/crates/recursion/machine/src/chips/prefix_sum_checks.rs 302
/crates/recursion/machine/src/chips/public_values.rs 225
/crates/recursion/machine/src/chips/select.rs 193
/crates/recursion/machine/src/lib.rs 5
/crates/recursion/machine/src/machine.rs 237
/crates/prover/src/verify.rs 519
/crates/core/executor/src/record.rs 1048
/crates/core/machine/src/adapter/bump.rs 189
/crates/core/machine/src/adapter/mod.rs 3
/crates/core/machine/src/adapter/register/alu_type.rs 181
/crates/core/machine/src/adapter/register/i_type.rs 305
/crates/core/machine/src/adapter/register/j_type.rs 144
/crates/core/machine/src/adapter/register/mod.rs 4
/crates/core/machine/src/adapter/register/r_type.rs 201
/crates/core/machine/src/adapter/state.rs 100
/crates/core/machine/src/air/memory.rs 395
/crates/core/machine/src/air/mod.rs 42
/crates/core/machine/src/air/operation.rs 147
/crates/core/machine/src/air/program.rs 116
/crates/core/machine/src/air/word.rs 85
/crates/core/machine/src/alu/add_sub/add.rs 160
/crates/core/machine/src/alu/add_sub/addi.rs 166
/crates/core/machine/src/alu/add_sub/addw.rs 186
/crates/core/machine/src/alu/add_sub/mod.rs 5
/crates/core/machine/src/alu/add_sub/sub.rs 164
/crates/core/machine/src/alu/add_sub/subw.rs 173
/crates/core/machine/src/alu/bitwise/mod.rs 213
/crates/core/machine/src/alu/divrem/mod.rs 926
/crates/core/machine/src/alu/lt/mod.rs 211
/crates/core/machine/src/alu/mod.rs 14
/crates/core/machine/src/alu/mul/mod.rs 237
/crates/core/machine/src/alu/sll/mod.rs 356
/crates/core/machine/src/alu/sr/mod.rs 446
/crates/core/machine/src/bytes/air.rs 48
/crates/core/machine/src/bytes/columns.rs 21
/crates/core/machine/src/bytes/mod.rs 70
/crates/core/machine/src/bytes/trace.rs 65
/crates/core/machine/src/control_flow/branch/air.rs 143
/crates/core/machine/src/control_flow/branch/columns.rs 22
/crates/core/machine/src/control_flow/branch/mod.rs 12
/crates/core/machine/src/control_flow/branch/trace.rs 108
/crates/core/machine/src/control_flow/jal/air.rs 91
/crates/core/machine/src/control_flow/jal/columns.rs 16
/crates/core/machine/src/control_flow/jal/mod.rs 12
/crates/core/machine/src/control_flow/jal/trace.rs 68
/crates/core/machine/src/control_flow/jalr/air.rs 94
/crates/core/machine/src/control_flow/jalr/columns.rs 16
/crates/core/machine/src/control_flow/jalr/mod.rs 12
/crates/core/machine/src/control_flow/jalr/trace.rs 80
/crates/core/machine/src/control_flow/mod.rs 6
/crates/core/machine/src/executor.rs 376
/crates/core/machine/src/global/mod.rs 252
/crates/core/machine/src/io.rs 49
/crates/core/machine/src/lib.rs 121
/crates/core/machine/src/memory/bump.rs 167
/crates/core/machine/src/memory/consistency/columns.rs 43
/crates/core/machine/src/memory/consistency/mod.rs 3
/crates/core/machine/src/memory/consistency/trace.rs 109
/crates/core/machine/src/memory/global.rs 363
/crates/core/machine/src/memory/instructions/load/load_byte.rs 265
/crates/core/machine/src/memory/instructions/load/load_double.rs 189
/crates/core/machine/src/memory/instructions/load/load_half.rs 247
/crates/core/machine/src/memory/instructions/load/load_word.rs 239
/crates/core/machine/src/memory/instructions/load/load_x0.rs 256
/crates/core/machine/src/memory/instructions/load/mod.rs 5
/crates/core/machine/src/memory/instructions/mod.rs 2
/crates/core/machine/src/memory/instructions/store/mod.rs 4
/crates/core/machine/src/memory/instructions/store/store_byte.rs 269
/crates/core/machine/src/memory/instructions/store/store_double.rs 188
/crates/core/machine/src/memory/instructions/store/store_half.rs 223
/crates/core/machine/src/memory/instructions/store/store_word.rs 215
/crates/core/machine/src/memory/local.rs 283
/crates/core/machine/src/memory/mod.rs 21
/crates/core/machine/src/memory/page_prot.rs 306
/crates/core/machine/src/memory/page_prot_global.rs 405
/crates/core/machine/src/memory/page_prot_local.rs 237
/crates/core/machine/src/operations/add.rs 65
/crates/core/machine/src/operations/add4.rs 65
/crates/core/machine/src/operations/add5.rs 74
/crates/core/machine/src/operations/add_u32.rs 37
/crates/core/machine/src/operations/address.rs 113
/crates/core/machine/src/operations/addrs_add.rs 68
/crates/core/machine/src/operations/addw.rs 65
/crates/core/machine/src/operations/and_u32.rs 66
/crates/core/machine/src/operations/bitwise.rs 85
/crates/core/machine/src/operations/bitwise_u16.rs 100
/crates/core/machine/src/operations/clk.rs 67
/crates/core/machine/src/operations/field/field_den.rs 127
/crates/core/machine/src/operations/field/field_inner_product.rs 128
/crates/core/machine/src/operations/field/field_op.rs 423
/crates/core/machine/src/operations/field/field_sqrt.rs 93
/crates/core/machine/src/operations/field/mod.rs 6
/crates/core/machine/src/operations/field/range.rs 98
/crates/core/machine/src/operations/field/util_air.rs 19
/crates/core/machine/src/operations/fixed_rotate_right.rs 87
/crates/core/machine/src/operations/fixed_shift_right.rs 91
/crates/core/machine/src/operations/global_accumulation.rs 176
/crates/core/machine/src/operations/global_interaction.rs 177
/crates/core/machine/src/operations/is_equal_word.rs 82
/crates/core/machine/src/operations/is_zero.rs 64
/crates/core/machine/src/operations/is_zero_word.rs 84
/crates/core/machine/src/operations/mod.rs 64
/crates/core/machine/src/operations/msb.rs 70
/crates/core/machine/src/operations/mul.rs 288
/crates/core/machine/src/operations/not_u32.rs 31
/crates/core/machine/src/operations/page.rs 267
/crates/core/machine/src/operations/poseidon2/air.rs 108
/crates/core/machine/src/operations/poseidon2/mod.rs 16
/crates/core/machine/src/operations/poseidon2/permutation.rs 81
/crates/core/machine/src/operations/poseidon2/trace.rs 101
/crates/core/machine/src/operations/slt.rs 233
/crates/core/machine/src/operations/sp1_field_word.rs 63
/crates/core/machine/src/operations/sub.rs 63
/crates/core/machine/src/operations/subw.rs 67
/crates/core/machine/src/operations/syscall_addr.rs 65
/crates/core/machine/src/operations/u16_compare.rs 69
/crates/core/machine/src/operations/u16_operation.rs 86
/crates/core/machine/src/operations/u32_operation.rs 29
/crates/core/machine/src/operations/xor_u32.rs 67
/crates/core/machine/src/program/instruction.rs 43
/crates/core/machine/src/program/instruction_decode.rs 536
/crates/core/machine/src/program/instruction_fetch.rs 280
/crates/core/machine/src/program/mod.rs 8
/crates/core/machine/src/program/trusted.rs 269
/crates/core/machine/src/range/air.rs 28
/crates/core/machine/src/range/columns.rs 15
/crates/core/machine/src/range/mod.rs 45
/crates/core/machine/src/range/trace.rs 73
/crates/core/machine/src/riscv/mod.rs 1097
/crates/core/machine/src/syscall/chip.rs 288
/crates/core/machine/src/syscall/instructions/air.rs 352
/crates/core/machine/src/syscall/instructions/columns.rs 29
/crates/core/machine/src/syscall/instructions/mod.rs 12
/crates/core/machine/src/syscall/instructions/trace.rs 130
/crates/core/machine/src/syscall/mod.rs 3
/crates/core/machine/src/syscall/precompiles/edwards/ed_add.rs 400
/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs 355
/crates/core/machine/src/syscall/precompiles/edwards/mod.rs 4
/crates/core/machine/src/syscall/precompiles/fptower/fp.rs 338
/crates/core/machine/src/syscall/precompiles/fptower/fp2_addsub.rs 375
/crates/core/machine/src/syscall/precompiles/fptower/fp2_mul.rs 419
/crates/core/machine/src/syscall/precompiles/fptower/mod.rs 58
/crates/core/machine/src/syscall/precompiles/keccak256/air.rs 199
/crates/core/machine/src/syscall/precompiles/keccak256/columns.rs 14
/crates/core/machine/src/syscall/precompiles/keccak256/constants.rs 151
/crates/core/machine/src/syscall/precompiles/keccak256/controller.rs 284
/crates/core/machine/src/syscall/precompiles/keccak256/mod.rs 33
/crates/core/machine/src/syscall/precompiles/keccak256/trace.rs 125
/crates/core/machine/src/syscall/precompiles/mod.rs 10
/crates/core/machine/src/syscall/precompiles/mprotect/air.rs 173
/crates/core/machine/src/syscall/precompiles/mprotect/mod.rs 2
/crates/core/machine/src/syscall/precompiles/poseidon2/air.rs 380
/crates/core/machine/src/syscall/precompiles/poseidon2/mod.rs 2
/crates/core/machine/src/syscall/precompiles/sha256/compress/air.rs 424
/crates/core/machine/src/syscall/precompiles/sha256/compress/columns.rs 65
/crates/core/machine/src/syscall/precompiles/sha256/compress/controller.rs 238
/crates/core/machine/src/syscall/precompiles/sha256/compress/mod.rs 40
/crates/core/machine/src/syscall/precompiles/sha256/compress/trace.rs 276
/crates/core/machine/src/syscall/precompiles/sha256/extend/air.rs 252
/crates/core/machine/src/syscall/precompiles/sha256/extend/columns.rs 41
/crates/core/machine/src/syscall/precompiles/sha256/extend/controller.rs 217
/crates/core/machine/src/syscall/precompiles/sha256/extend/mod.rs 45
/crates/core/machine/src/syscall/precompiles/sha256/extend/trace.rs 149
/crates/core/machine/src/syscall/precompiles/sha256/mod.rs 4
/crates/core/machine/src/syscall/precompiles/u256x2048_mul/air.rs 503
/crates/core/machine/src/syscall/precompiles/u256x2048_mul/mod.rs 18
/crates/core/machine/src/syscall/precompiles/uint256/air.rs 356
/crates/core/machine/src/syscall/precompiles/uint256/mod.rs 23
/crates/core/machine/src/syscall/precompiles/uint256_ops/air.rs 286
/crates/core/machine/src/syscall/precompiles/uint256_ops/mod.rs 238
/crates/core/machine/src/syscall/precompiles/weierstrass/mod.rs 6
/crates/core/machine/src/syscall/precompiles/weierstrass/weierstrass_add.rs 587
/crates/core/machine/src/syscall/precompiles/weierstrass/weierstrass_decompress.rs 611
/crates/core/machine/src/syscall/precompiles/weierstrass/weierstrass_double.rs 520
/crates/core/machine/src/utils/concurrency.rs 94
/crates/core/machine/src/utils/logger.rs 61
/crates/core/machine/src/utils/mod.rs 136
/crates/core/machine/src/utils/span.rs 99
/crates/core/machine/src/utype/mod.rs 182
Total 42043

Files out of scope

See out_of_scope.txt

File
./crates/build/src/build.rs
./crates/build/src/command/docker.rs
./crates/build/src/command/local.rs
./crates/build/src/command/mod.rs
./crates/build/src/command/utils.rs
./crates/build/src/lib.rs
./crates/build/src/utils.rs
./crates/cli/build.rs
./crates/cli/src/bin/cargo-prove.rs
./crates/cli/src/commands/build.rs
./crates/cli/src/commands/install_toolchain.rs
./crates/cli/src/commands/mod.rs
./crates/cli/src/commands/new.rs
./crates/cli/src/commands/vkey.rs
./crates/cli/src/lib.rs
./crates/core/compiler/src/ir/ast.rs
./crates/core/compiler/src/ir/builder.rs
./crates/core/compiler/src/main.rs
./crates/core/executor/src/air.rs
./crates/core/executor/src/context.rs
./crates/core/executor/src/cost.rs
./crates/core/executor/src/disassembler/elf.rs
./crates/core/executor/src/disassembler/mod.rs
./crates/core/executor/src/disassembler/rrs.rs
./crates/core/executor/src/estimator.rs
./crates/core/executor/src/events/byte.rs
./crates/core/executor/src/events/global.rs
./crates/core/executor/src/events/instr.rs
./crates/core/executor/src/events/memory.rs
./crates/core/executor/src/events/mod.rs
./crates/core/executor/src/events/precompiles/ec.rs
./crates/core/executor/src/events/precompiles/edwards.rs
./crates/core/executor/src/events/precompiles/fptower.rs
./crates/core/executor/src/events/precompiles/keccak256_permute.rs
./crates/core/executor/src/events/precompiles/mod.rs
./crates/core/executor/src/events/precompiles/mprotect.rs
./crates/core/executor/src/events/precompiles/poseidon2.rs
./crates/core/executor/src/events/precompiles/sha256_compress.rs
./crates/core/executor/src/events/precompiles/sha256_extend.rs
./crates/core/executor/src/events/precompiles/u256x2048_mul.rs
./crates/core/executor/src/events/precompiles/uint256.rs
./crates/core/executor/src/events/precompiles/uint256_ops.rs
./crates/core/executor/src/events/syscall.rs
./crates/core/executor/src/events/utils.rs
./crates/core/executor/src/executor.rs
./crates/core/executor/src/hook.rs
./crates/core/executor/src/instruction.rs
./crates/core/executor/src/io.rs
./crates/core/executor/src/lib.rs
./crates/core/executor/src/memory.rs
./crates/core/executor/src/opcode.rs
./crates/core/executor/src/opts.rs
./crates/core/executor/src/profiler.rs
./crates/core/executor/src/program.rs
./crates/core/executor/src/recursion.rs
./crates/core/executor/src/register.rs
./crates/core/executor/src/report.rs
./crates/core/executor/src/retain.rs
./crates/core/executor/src/state.rs
./crates/core/executor/src/subproof.rs
./crates/core/executor/src/syscalls/code.rs
./crates/core/executor/src/syscalls/commit.rs
./crates/core/executor/src/syscalls/context.rs
./crates/core/executor/src/syscalls/deferred.rs
./crates/core/executor/src/syscalls/halt.rs
./crates/core/executor/src/syscalls/hint.rs
./crates/core/executor/src/syscalls/mod.rs
./crates/core/executor/src/syscalls/mprotect.rs
./crates/core/executor/src/syscalls/precompiles/edwards/add.rs
./crates/core/executor/src/syscalls/precompiles/edwards/decompress.rs
./crates/core/executor/src/syscalls/precompiles/edwards/mod.rs
./crates/core/executor/src/syscalls/precompiles/fptower/fp.rs
./crates/core/executor/src/syscalls/precompiles/fptower/fp2_addsub.rs
./crates/core/executor/src/syscalls/precompiles/fptower/fp2_mul.rs
./crates/core/executor/src/syscalls/precompiles/fptower/mod.rs
./crates/core/executor/src/syscalls/precompiles/keccak256/mod.rs
./crates/core/executor/src/syscalls/precompiles/keccak256/permute.rs
./crates/core/executor/src/syscalls/precompiles/mod.rs
./crates/core/executor/src/syscalls/precompiles/poseidon2.rs
./crates/core/executor/src/syscalls/precompiles/sha256/compress.rs
./crates/core/executor/src/syscalls/precompiles/sha256/extend.rs
./crates/core/executor/src/syscalls/precompiles/sha256/mod.rs
./crates/core/executor/src/syscalls/precompiles/u256x2048_mul.rs
./crates/core/executor/src/syscalls/precompiles/uint256.rs
./crates/core/executor/src/syscalls/precompiles/uint256_ops.rs
./crates/core/executor/src/syscalls/precompiles/weierstrass/add.rs
./crates/core/executor/src/syscalls/precompiles/weierstrass/decompress.rs
./crates/core/executor/src/syscalls/precompiles/weierstrass/double.rs
./crates/core/executor/src/syscalls/precompiles/weierstrass/mod.rs
./crates/core/executor/src/syscalls/unconstrained.rs
./crates/core/executor/src/syscalls/verify.rs
./crates/core/executor/src/syscalls/write.rs
./crates/core/executor/src/utils.rs
./crates/core/machine/src/utils/prove.rs
./crates/core/machine/src/utils/test.rs
./crates/core/machine/src/utils/zerocheck_unit_test.rs
./crates/cuda/src/api.rs
./crates/cuda/src/client.rs
./crates/cuda/src/error.rs
./crates/cuda/src/lib.rs
./crates/cuda/src/pk.rs
./crates/cuda/src/server.rs
./crates/curves/src/edwards/ed25519.rs
./crates/curves/src/edwards/mod.rs
./crates/curves/src/lib.rs
./crates/curves/src/params.rs
./crates/curves/src/polynomial.rs
./crates/curves/src/scalar_mul.rs
./crates/curves/src/uint256.rs
./crates/curves/src/utils.rs
./crates/curves/src/weierstrass/bls12_381.rs
./crates/curves/src/weierstrass/bn254.rs
./crates/curves/src/weierstrass/mod.rs
./crates/curves/src/weierstrass/secp256k1.rs
./crates/curves/src/weierstrass/secp256r1.rs
./crates/derive/src/input_expr.rs
./crates/derive/src/input_params.rs
./crates/derive/src/into_shape.rs
./crates/derive/src/lib.rs
./crates/derive/src/sp1_operation_builder.rs
./crates/eval/src/lib.rs
./crates/eval/src/main.rs
./crates/eval/src/program.rs
./crates/helper/src/lib.rs
./crates/hypercube/src/air/builder.rs
./crates/hypercube/src/air/extension.rs
./crates/hypercube/src/air/interaction.rs
./crates/hypercube/src/air/machine.rs
./crates/hypercube/src/air/mod.rs
./crates/hypercube/src/air/public_values.rs
./crates/hypercube/src/air/sub_builder.rs
./crates/hypercube/src/chip.rs
./crates/hypercube/src/debug.rs
./crates/hypercube/src/folder.rs
./crates/hypercube/src/ir/ast.rs
./crates/hypercube/src/ir/compiler.rs
./crates/hypercube/src/ir/conversions.rs
./crates/hypercube/src/ir/expr.rs
./crates/hypercube/src/ir/expr_impl.rs
./crates/hypercube/src/ir/func.rs
./crates/hypercube/src/ir/lean.rs
./crates/hypercube/src/ir/mod.rs
./crates/hypercube/src/ir/op.rs
./crates/hypercube/src/ir/output.rs
./crates/hypercube/src/ir/shape.rs
./crates/hypercube/src/ir/var.rs
./crates/hypercube/src/lib.rs
./crates/hypercube/src/logup_gkr/cpu.rs
./crates/hypercube/src/logup_gkr/execution.rs
./crates/hypercube/src/logup_gkr/logup_poly.rs
./crates/hypercube/src/logup_gkr/mod.rs
./crates/hypercube/src/logup_gkr/proof.rs
./crates/hypercube/src/logup_gkr/prover.rs
./crates/hypercube/src/logup_gkr/verifier.rs
./crates/hypercube/src/lookup/builder.rs
./crates/hypercube/src/lookup/debug.rs
./crates/hypercube/src/lookup/interaction.rs
./crates/hypercube/src/lookup/mod.rs
./crates/hypercube/src/machine.rs
./crates/hypercube/src/prover/cpu.rs
./crates/hypercube/src/prover/machine.rs
./crates/hypercube/src/prover/memory_permit.rs
./crates/hypercube/src/prover/mod.rs
./crates/hypercube/src/prover/permits.rs
./crates/hypercube/src/prover/shard.rs
./crates/hypercube/src/prover/trace.rs
./crates/hypercube/src/prover/zerocheck/fix_last_variable.rs
./crates/hypercube/src/prover/zerocheck/mod.rs
./crates/hypercube/src/prover/zerocheck/sum_as_poly.rs
./crates/hypercube/src/record.rs
./crates/hypercube/src/septic_curve.rs
./crates/hypercube/src/septic_digest.rs
./crates/hypercube/src/septic_extension.rs
./crates/hypercube/src/shape/cluster.rs
./crates/hypercube/src/shape/mod.rs
./crates/hypercube/src/shape/ordered.rs
./crates/hypercube/src/util.rs
./crates/hypercube/src/verifier/config.rs
./crates/hypercube/src/verifier/machine.rs
./crates/hypercube/src/verifier/mod.rs
./crates/hypercube/src/verifier/proof.rs
./crates/hypercube/src/verifier/shard.rs
./crates/hypercube/src/word.rs
./crates/perf/src/executor.rs
./crates/perf/src/main.rs
./crates/primitives/src/consts.rs
./crates/primitives/src/io.rs
./crates/primitives/src/lib.rs
./crates/primitives/src/polynomial.rs
./crates/primitives/src/types.rs
./crates/prover/build.rs
./crates/prover/scripts/build_compress_vks.rs
./crates/prover/scripts/build_groth16_bn254.rs
./crates/prover/scripts/build_plonk_bn254.rs
./crates/prover/scripts/build_recursion_vks.rs
./crates/prover/scripts/fibonacci_groth16.rs
./crates/prover/scripts/fibonacci_sweep.rs
./crates/prover/scripts/find_maximal_shapes.rs
./crates/prover/scripts/find_oom_shapes.rs
./crates/prover/scripts/find_recursion_shape.rs
./crates/prover/scripts/find_small_shapes.rs
./crates/prover/scripts/post_trusted_setup.rs
./crates/prover/scripts/tendermint_sweep.rs
./crates/prover/scripts/test_shape_fixing.rs
./crates/prover/src/build.rs
./crates/prover/src/components.rs
./crates/prover/src/core.rs
./crates/prover/src/error.rs
./crates/prover/src/gas/mod.rs
./crates/prover/src/gas/model.rs
./crates/prover/src/lib.rs
./crates/prover/src/local.rs
./crates/prover/src/recursion/components.rs
./crates/prover/src/recursion.rs
./crates/prover/src/shapes.rs
./crates/prover/src/types.rs
./crates/prover/src/utils.rs
./crates/recursion/compiler/src/circuit/builder.rs
./crates/recursion/compiler/src/circuit/compiler.rs
./crates/recursion/compiler/src/circuit/config.rs
./crates/recursion/compiler/src/circuit/mod.rs
./crates/recursion/compiler/src/config.rs
./crates/recursion/compiler/src/constraints/mod.rs
./crates/recursion/compiler/src/constraints/opcodes.rs
./crates/recursion/compiler/src/ir/arithmetic.rs
./crates/recursion/compiler/src/ir/bits.rs
./crates/recursion/compiler/src/ir/builder.rs
./crates/recursion/compiler/src/ir/collections.rs
./crates/recursion/compiler/src/ir/instructions.rs
./crates/recursion/compiler/src/ir/iter.rs
./crates/recursion/compiler/src/ir/mod.rs
./crates/recursion/compiler/src/ir/poseidon.rs
./crates/recursion/compiler/src/ir/ptr.rs
./crates/recursion/compiler/src/ir/symbolic.rs
./crates/recursion/compiler/src/ir/types.rs
./crates/recursion/compiler/src/ir/utils.rs
./crates/recursion/compiler/src/ir/var.rs
./crates/recursion/compiler/src/lib.rs
./crates/recursion/derive/src/lib.rs
./crates/recursion/executor/src/analyzed.rs
./crates/recursion/executor/src/block.rs
./crates/recursion/executor/src/instruction.rs
./crates/recursion/executor/src/lib.rs
./crates/recursion/executor/src/memory.rs
./crates/recursion/executor/src/opcode.rs
./crates/recursion/executor/src/program.rs
./crates/recursion/executor/src/public_values.rs
./crates/recursion/executor/src/record.rs
./crates/recursion/executor/src/shape.rs
./crates/recursion/gnark-cli/src/main.rs
./crates/recursion/gnark-ffi/build.rs
./crates/recursion/gnark-ffi/go/main_test.go
./crates/recursion/gnark-ffi/go/sp1/poseidon2/poseidon2_test.go
./crates/recursion/gnark-ffi/go/sp1/test.go
./crates/recursion/gnark-ffi/go/sp1/trusted_setup/trusted_setup.go
./crates/recursion/gnark-ffi/src/ffi/docker.rs
./crates/recursion/gnark-ffi/src/ffi/mod.rs
./crates/recursion/gnark-ffi/src/ffi/native.rs
./crates/recursion/gnark-ffi/src/groth16_bn254.rs
./crates/recursion/gnark-ffi/src/koalabear.rs
./crates/recursion/gnark-ffi/src/lib.rs
./crates/recursion/gnark-ffi/src/plonk_bn254.rs
./crates/recursion/gnark-ffi/src/proof.rs
./crates/recursion/gnark-ffi/src/witness.rs
./crates/recursion/machine/src/chips/test_fixtures.rs
./crates/recursion/machine/src/test.rs
./crates/sdk/src/artifacts.rs
./crates/sdk/src/client.rs
./crates/sdk/src/cpu/builder.rs
./crates/sdk/src/cpu/mod.rs
./crates/sdk/src/cpu/prove.rs
./crates/sdk/src/cuda/builder.rs
./crates/sdk/src/cuda/mod.rs
./crates/sdk/src/cuda/prove.rs
./crates/sdk/src/env/mod.rs
./crates/sdk/src/env/pk.rs
./crates/sdk/src/env/prove.rs
./crates/sdk/src/install.rs
./crates/sdk/src/lib.rs
./crates/sdk/src/mock.rs
./crates/sdk/src/network/builder.rs
./crates/sdk/src/network/client.rs
./crates/sdk/src/network/error.rs
./crates/sdk/src/network/grpc.rs
./crates/sdk/src/network/mod.rs
./crates/sdk/src/network/proto/artifact.rs
./crates/sdk/src/network/proto/base/network.rs
./crates/sdk/src/network/proto/base/types.rs
./crates/sdk/src/network/proto/mod.rs
./crates/sdk/src/network/proto/sepolia/network.rs
./crates/sdk/src/network/proto/sepolia/types.rs
./crates/sdk/src/network/prove.rs
./crates/sdk/src/network/prover.rs
./crates/sdk/src/network/retry.rs
./crates/sdk/src/network/tee/api.rs
./crates/sdk/src/network/tee/client.rs
./crates/sdk/src/network/tee/mod.rs
./crates/sdk/src/network/utils.rs
./crates/sdk/src/proof.rs
./crates/sdk/src/prover/execute.rs
./crates/sdk/src/prover/prove.rs
./crates/sdk/src/prover.rs
./crates/sdk/src/utils.rs
./crates/test-artifacts/build.rs
./crates/test-artifacts/programs/bls12381-add/src/main.rs
./crates/test-artifacts/programs/bls12381-decompress/src/main.rs
./crates/test-artifacts/programs/bls12381-double/src/main.rs
./crates/test-artifacts/programs/bls12381-fp/src/main.rs
./crates/test-artifacts/programs/bls12381-fp2-addsub/src/main.rs
./crates/test-artifacts/programs/bls12381-fp2-mul/src/main.rs
./crates/test-artifacts/programs/bls12381-mul/src/main.rs
./crates/test-artifacts/programs/bn254-add/src/main.rs
./crates/test-artifacts/programs/bn254-double/src/main.rs
./crates/test-artifacts/programs/bn254-fp/src/main.rs
./crates/test-artifacts/programs/bn254-fp2-addsub/src/main.rs
./crates/test-artifacts/programs/bn254-fp2-mul/src/main.rs
./crates/test-artifacts/programs/bn254-mul/src/main.rs
./crates/test-artifacts/programs/common/src/lib.rs
./crates/test-artifacts/programs/common/src/weierstrass_add.rs
./crates/test-artifacts/programs/cycle-tracker/src/main.rs
./crates/test-artifacts/programs/ed-add/src/main.rs
./crates/test-artifacts/programs/ed-decompress/src/main.rs
./crates/test-artifacts/programs/ed25519/src/main.rs
./crates/test-artifacts/programs/fibonacci/src/main.rs
./crates/test-artifacts/programs/fibonacci-blake3/src/main.rs
./crates/test-artifacts/programs/hello-world/src/main.rs
./crates/test-artifacts/programs/hint-io/src/main.rs
./crates/test-artifacts/programs/keccak-permute/src/main.rs
./crates/test-artifacts/programs/keccak256/src/main.rs
./crates/test-artifacts/programs/panic/src/main.rs
./crates/test-artifacts/programs/rand/src/main.rs
./crates/test-artifacts/programs/secp256k1-add/src/main.rs
./crates/test-artifacts/programs/secp256k1-decompress/src/main.rs
./crates/test-artifacts/programs/secp256k1-double/src/main.rs
./crates/test-artifacts/programs/secp256k1-mul/src/main.rs
./crates/test-artifacts/programs/secp256r1-add/src/main.rs
./crates/test-artifacts/programs/secp256r1-decompress/src/main.rs
./crates/test-artifacts/programs/secp256r1-double/src/main.rs
./crates/test-artifacts/programs/sha-compress/src/main.rs
./crates/test-artifacts/programs/sha-extend/src/main.rs
./crates/test-artifacts/programs/sha2/src/main.rs
./crates/test-artifacts/programs/ssz-withdrawals/src/beacon/hints.rs
./crates/test-artifacts/programs/ssz-withdrawals/src/beacon/mod.rs
./crates/test-artifacts/programs/ssz-withdrawals/src/beacon/prove.rs
./crates/test-artifacts/programs/ssz-withdrawals/src/beacon/types.rs
./crates/test-artifacts/programs/ssz-withdrawals/src/beacon/utils.rs
./crates/test-artifacts/programs/ssz-withdrawals/src/main.rs
./crates/test-artifacts/programs/tendermint-benchmark/src/main.rs
./crates/test-artifacts/programs/u256x2048-mul/src/main.rs
./crates/test-artifacts/programs/uint256-arith/src/main.rs
./crates/test-artifacts/programs/uint256-mul/src/main.rs
./crates/test-artifacts/programs/verify-proof/src/main.rs
./crates/test-artifacts/src/lib.rs
./crates/verifier/guest-verify-programs/src/groth16_verify.rs
./crates/verifier/guest-verify-programs/src/plonk_verify.rs
./crates/verifier/src/constants.rs
./crates/verifier/src/converter.rs
./crates/verifier/src/error.rs
./crates/verifier/src/groth16/ark_converter.rs
./crates/verifier/src/groth16/converter.rs
./crates/verifier/src/groth16/error.rs
./crates/verifier/src/groth16/mod.rs
./crates/verifier/src/groth16/verify.rs
./crates/verifier/src/lib.rs
./crates/verifier/src/plonk/converter.rs
./crates/verifier/src/plonk/error.rs
./crates/verifier/src/plonk/hash_to_field.rs
./crates/verifier/src/plonk/kzg.rs
./crates/verifier/src/plonk/mod.rs
./crates/verifier/src/plonk/proof.rs
./crates/verifier/src/plonk/transcript.rs
./crates/verifier/src/plonk/verify.rs
./crates/verifier/src/tests.rs
./crates/verifier/src/utils.rs
./crates/zkvm/entrypoint/src/allocators/bump.rs
./crates/zkvm/entrypoint/src/allocators/embedded.rs
./crates/zkvm/entrypoint/src/allocators/mod.rs
./crates/zkvm/entrypoint/src/lib.rs
./crates/zkvm/entrypoint/src/libm.rs
./crates/zkvm/entrypoint/src/syscalls/bigint.rs
./crates/zkvm/entrypoint/src/syscalls/bls12381.rs
./crates/zkvm/entrypoint/src/syscalls/bn254.rs
./crates/zkvm/entrypoint/src/syscalls/ed25519.rs
./crates/zkvm/entrypoint/src/syscalls/fptower.rs
./crates/zkvm/entrypoint/src/syscalls/halt.rs
./crates/zkvm/entrypoint/src/syscalls/io.rs
./crates/zkvm/entrypoint/src/syscalls/keccak_permute.rs
./crates/zkvm/entrypoint/src/syscalls/memory.rs
./crates/zkvm/entrypoint/src/syscalls/mod.rs
./crates/zkvm/entrypoint/src/syscalls/mprotect.rs
./crates/zkvm/entrypoint/src/syscalls/poseidon2.rs
./crates/zkvm/entrypoint/src/syscalls/secp256k1.rs
./crates/zkvm/entrypoint/src/syscalls/secp256r1.rs
./crates/zkvm/entrypoint/src/syscalls/sha_compress.rs
./crates/zkvm/entrypoint/src/syscalls/sha_extend.rs
./crates/zkvm/entrypoint/src/syscalls/sys.rs
./crates/zkvm/entrypoint/src/syscalls/u256x2048_mul.rs
./crates/zkvm/entrypoint/src/syscalls/uint256_mul.rs
./crates/zkvm/entrypoint/src/syscalls/uint256_ops.rs
./crates/zkvm/entrypoint/src/syscalls/unconstrained.rs
./crates/zkvm/entrypoint/src/syscalls/verify.rs
./crates/zkvm/lib/src/bls12381.rs
./crates/zkvm/lib/src/bn254.rs
./crates/zkvm/lib/src/ecdsa/affine.rs
./crates/zkvm/lib/src/ecdsa/projective.rs
./crates/zkvm/lib/src/ecdsa.rs
./crates/zkvm/lib/src/ed25519.rs
./crates/zkvm/lib/src/io.rs
./crates/zkvm/lib/src/lib.rs
./crates/zkvm/lib/src/mprotect.rs
./crates/zkvm/lib/src/secp256k1.rs
./crates/zkvm/lib/src/secp256r1.rs
./crates/zkvm/lib/src/unconstrained.rs
./crates/zkvm/lib/src/utils.rs
./crates/zkvm/lib/src/verify.rs
./examples/aggregation/program/src/main.rs
./examples/aggregation/script/build.rs
./examples/aggregation/script/src/main.rs
./examples/bls12381/program/src/main.rs
./examples/bls12381/script/build.rs
./examples/bls12381/script/src/main.rs
./examples/bn254/program/src/main.rs
./examples/bn254/script/build.rs
./examples/bn254/script/src/main.rs
./examples/chess/program/src/main.rs
./examples/chess/script/build.rs
./examples/chess/script/src/main.rs
./examples/cycle-tracking/program/bin/normal.rs
./examples/cycle-tracking/program/bin/report.rs
./examples/cycle-tracking/script/build.rs
./examples/cycle-tracking/script/src/main.rs
./examples/ed-add/program/src/main.rs
./examples/ed-add/script/build.rs
./examples/ed-add/script/src/main.rs
./examples/fibonacci/program/src/main.rs
./examples/fibonacci/script/bin/compressed.rs
./examples/fibonacci/script/bin/core_u64.rs
./examples/fibonacci/script/bin/execute.rs
./examples/fibonacci/script/bin/groth16_bn254.rs
./examples/fibonacci/script/bin/network.rs
./examples/fibonacci/script/bin/plonk_bn254.rs
./examples/fibonacci/script/build.rs
./examples/fibonacci/script/src/main.rs
./examples/fibonacci-cuda/program/src/main.rs
./examples/fibonacci-cuda/script/build.rs
./examples/fibonacci-cuda/script/src/main.rs
./examples/fp2/program/src/main.rs
./examples/fp2/script/build.rs
./examples/fp2/script/src/main.rs
./examples/fptower/program/src/main.rs
./examples/fptower/script/build.rs
./examples/fptower/script/src/main.rs
./examples/groth16/program/src/main.rs
./examples/groth16/script/build.rs
./examples/groth16/script/src/main.rs
./examples/io/program/src/main.rs
./examples/io/script/build.rs
./examples/io/script/src/main.rs
./examples/is-prime/program/src/main.rs
./examples/is-prime/script/build.rs
./examples/is-prime/script/src/main.rs
./examples/json/lib/src/lib.rs
./examples/json/program/src/main.rs
./examples/json/script/build.rs
./examples/json/script/src/main.rs
./examples/keccak/program/src/main.rs
./examples/keccak/script/build.rs
./examples/keccak/script/src/main.rs
./examples/mprotect/program/src/main.rs
./examples/mprotect/script/bin/core_u64.rs
./examples/mprotect/script/build.rs
./examples/mprotect/script/src/main.rs
./examples/poseidon2/program/src/main.rs
./examples/poseidon2/script/build.rs
./examples/poseidon2/script/src/main.rs
./examples/regex/program/src/main.rs
./examples/regex/script/build.rs
./examples/regex/script/src/main.rs
./examples/rsa/program/src/main.rs
./examples/rsa/script/build.rs
./examples/rsa/script/src/main.rs
./examples/rsp/program/src/main.rs
./examples/rsp/script/bin/core_u64.rs
./examples/rsp/script/build.rs
./examples/rsp/script/src/main.rs
./examples/secp256k1/program/src/main.rs
./examples/secp256k1/script/build.rs
./examples/secp256k1/script/src/main.rs
./examples/sha/program/src/main.rs
./examples/sha/script/build.rs
./examples/sha/script/src/main.rs
./examples/ssz-withdrawals/program/src/beacon/hints.rs
./examples/ssz-withdrawals/program/src/beacon/mod.rs
./examples/ssz-withdrawals/program/src/beacon/prove.rs
./examples/ssz-withdrawals/program/src/beacon/types.rs
./examples/ssz-withdrawals/program/src/beacon/utils.rs
./examples/ssz-withdrawals/program/src/main.rs
./examples/ssz-withdrawals/script/bin/core_u64.rs
./examples/ssz-withdrawals/script/build.rs
./examples/ssz-withdrawals/script/src/main.rs
./examples/tendermint/program/src/main.rs
./examples/tendermint/script/bin/core_u64.rs
./examples/tendermint/script/build.rs
./examples/tendermint/script/src/lib.rs
./examples/tendermint/script/src/main.rs
./examples/tendermint/script/src/util.rs
./examples/u256x2048-mul/program/src/main.rs
./examples/u256x2048-mul/script/build.rs
./examples/u256x2048-mul/script/src/main.rs
./examples/uint256/program/src/main.rs
./examples/uint256/script/build.rs
./examples/uint256/script/src/main.rs
./examples/untrusted_program/jit-program/src/lui_example.rs
./examples/untrusted_program/jit-program/src/main.rs
./examples/untrusted_program/jit-program/src/seven_instruction_example.rs
./examples/untrusted_program/program/src/main.rs
./examples/untrusted_program/script/build.rs
./examples/untrusted_program/script/src/main.rs
./patch-testing/RustCrypto-rsa/build.rs
./patch-testing/RustCrypto-rsa/program/bin/verify_pkcs.rs
./patch-testing/RustCrypto-rsa/src/lib.rs
./patch-testing/bls12-381/build.rs
./patch-testing/bls12-381/program/bin/test_bls_add.rs
./patch-testing/bls12-381/program/bin/test_bls_double.rs
./patch-testing/bls12-381/program/bin/test_inverse.rs
./patch-testing/bls12-381/program/bin/test_inverse_fp2.rs
./patch-testing/bls12-381/program/bin/test_sqrt.rs
./patch-testing/bls12-381/program/bin/test_sqrt_fp2.rs
./patch-testing/bls12-381/src/lib.rs
./patch-testing/bn/build.rs
./patch-testing/bn/program/bin/test_fq_inverse.rs
./patch-testing/bn/program/bin/test_fq_sqrt.rs
./patch-testing/bn/program/bin/test_fr_inverse.rs
./patch-testing/bn/program/bin/test_g1_add.rs
./patch-testing/bn/program/bin/test_g1_double.rs
./patch-testing/bn/src/lib.rs
./patch-testing/build-host/src/main.rs
./patch-testing/curve25519-dalek/build.rs
./patch-testing/curve25519-dalek/program/bin/add_then_multiply.rs
./patch-testing/curve25519-dalek/program/bin/decompress.rs
./patch-testing/curve25519-dalek/program/bin/verify.rs
./patch-testing/curve25519-dalek/program/bin/zero_msm.rs
./patch-testing/curve25519-dalek/program/bin/zero_mul.rs
./patch-testing/curve25519-dalek/src/lib.rs
./patch-testing/curve25519-dalek-ng/build.rs
./patch-testing/curve25519-dalek-ng/program/bin/add_then_multiply.rs
./patch-testing/curve25519-dalek-ng/program/bin/decompress.rs
./patch-testing/curve25519-dalek-ng/program/bin/zero_msm.rs
./patch-testing/curve25519-dalek-ng/program/bin/zero_mul.rs
./patch-testing/curve25519-dalek-ng/src/lib.rs
./patch-testing/k256/build.rs
./patch-testing/k256/program/bin/recover.rs
./patch-testing/k256/program/bin/schnorr_verify.rs
./patch-testing/k256/program/bin/verify.rs
./patch-testing/k256/src/lib.rs
./patch-testing/keccak/build.rs
./patch-testing/keccak/program/src/main.rs
./patch-testing/keccak/src/lib.rs
./patch-testing/p256/build.rs
./patch-testing/p256/program/bin/recover.rs
./patch-testing/p256/program/bin/verify.rs
./patch-testing/p256/src/lib.rs
./patch-testing/rustcrypto-bigint/build.rs
./patch-testing/rustcrypto-bigint/program/bin/mul_add_residue.rs
./patch-testing/rustcrypto-bigint/program/bin/mul_mod_special.rs
./patch-testing/rustcrypto-bigint/src/lib.rs
./patch-testing/secp256k1/build.rs
./patch-testing/secp256k1/program-v0.29.1/bin/recover.rs
./patch-testing/secp256k1/program-v0.29.1/bin/verify.rs
./patch-testing/secp256k1/program-v0.30.0/bin/recover.rs
./patch-testing/secp256k1/program-v0.30.0/bin/verify.rs
./patch-testing/secp256k1/src/lib.rs
./patch-testing/sha/build.rs
./patch-testing/sha/program/bin/sha2.rs
./patch-testing/sha/program/bin/sha3.rs
./patch-testing/sha/src/lib.rs
./patch-testing/sp1-test/bin/post_to_github.rs
./patch-testing/sp1-test/src/lib.rs
./patch-testing/sp1-test/src/utils.rs
./patch-testing/sp1-test-macro/src/attr.rs
./patch-testing/sp1-test-macro/src/lib.rs
./slop/crates/adapter-prover/src/lib.rs
./slop/crates/air/src/lib.rs
./slop/crates/algebra/src/lib.rs
./slop/crates/algebra/src/univariate.rs
./slop/crates/alloc/src/allocator.rs
./slop/crates/alloc/src/backend/cpu.rs
./slop/crates/alloc/src/backend/io.rs
./slop/crates/alloc/src/backend/mod.rs
./slop/crates/alloc/src/backend_challenger.rs
./slop/crates/alloc/src/buffer.rs
./slop/crates/alloc/src/init.rs
./slop/crates/alloc/src/lib.rs
./slop/crates/alloc/src/mem.rs
./slop/crates/alloc/src/raw_buffer.rs
./slop/crates/alloc/src/slice.rs
./slop/crates/baby-bear/src/baby_bear_poseidon2.rs
./slop/crates/baby-bear/src/lib.rs
./slop/crates/basefold/src/code.rs
./slop/crates/basefold/src/config.rs
./slop/crates/basefold/src/lib.rs
./slop/crates/basefold/src/verifier.rs
./slop/crates/basefold-prover/src/configs.rs
./slop/crates/basefold-prover/src/encoder.rs
./slop/crates/basefold-prover/src/fri.rs
./slop/crates/basefold-prover/src/lib.rs
./slop/crates/basefold-prover/src/pow.rs
./slop/crates/basefold-prover/src/prover.rs
./slop/crates/bn254/src/lib.rs
./slop/crates/challenger/src/lib.rs
./slop/crates/challenger/src/synchronize.rs
./slop/crates/commit/src/lib.rs
./slop/crates/commit/src/message.rs
./slop/crates/commit/src/rounds.rs
./slop/crates/dft/src/lib.rs
./slop/crates/dft/src/p3.rs
./slop/crates/fri/src/lib.rs
./slop/crates/futures/src/handle.rs
./slop/crates/futures/src/lib.rs
./slop/crates/futures/src/queue.rs
./slop/crates/futures/src/rayon.rs
./slop/crates/futures/src/scope.rs
./slop/crates/futures/src/values.rs
./slop/crates/jagged/src/basefold.rs
./slop/crates/jagged/src/config.rs
./slop/crates/jagged/src/hadamard.rs
./slop/crates/jagged/src/jagged_eval/eval_sumcheck_prover.rs
./slop/crates/jagged/src/jagged_eval/mod.rs
./slop/crates/jagged/src/jagged_eval/sumcheck_eval.rs
./slop/crates/jagged/src/jagged_eval/sumcheck_poly.rs
./slop/crates/jagged/src/jagged_eval/sumcheck_sum_as_poly.rs
./slop/crates/jagged/src/lib.rs
./slop/crates/jagged/src/long.rs
./slop/crates/jagged/src/multi_to_uni.rs
./slop/crates/jagged/src/poly.rs
./slop/crates/jagged/src/populate.rs
./slop/crates/jagged/src/prover.rs
./slop/crates/jagged/src/sumcheck.rs
./slop/crates/jagged/src/verifier.rs
./slop/crates/keccak-air/src/lib.rs
./slop/crates/koala-bear/src/koala_bear_poseidon2.rs
./slop/crates/koala-bear/src/lib.rs
./slop/crates/matrix/src/lib.rs
./slop/crates/maybe-rayon/src/lib.rs
./slop/crates/merkle-tree/src/bn254fr_poseidon2.rs
./slop/crates/merkle-tree/src/lib.rs
./slop/crates/merkle-tree/src/p3.rs
./slop/crates/merkle-tree/src/tcs.rs
./slop/crates/multilinear/src/base.rs
./slop/crates/multilinear/src/eval.rs
./slop/crates/multilinear/src/fold.rs
./slop/crates/multilinear/src/lagrange.rs
./slop/crates/multilinear/src/lib.rs
./slop/crates/multilinear/src/mle.rs
./slop/crates/multilinear/src/padded.rs
./slop/crates/multilinear/src/pcs.rs
./slop/crates/multilinear/src/point.rs
./slop/crates/multilinear/src/restrict.rs
./slop/crates/multilinear/src/virtual_geq.rs
./slop/crates/multivariate-adapter/src/air_types.rs
./slop/crates/multivariate-adapter/src/folder.rs
./slop/crates/multivariate-adapter/src/lib.rs
./slop/crates/multivariate-adapter/src/types.rs
./slop/crates/multivariate-adapter/src/verifier.rs
./slop/crates/pcs-bench/src/lib.rs
./slop/crates/pgspcs/src/lib.rs
./slop/crates/pgspcs/src/prover.rs
./slop/crates/pgspcs/src/sparse_poly.rs
./slop/crates/pgspcs/src/sumcheck_polynomials.rs
./slop/crates/pgspcs/src/utils.rs
./slop/crates/pgspcs/src/verifier.rs
./slop/crates/poseidon2/src/lib.rs
./slop/crates/slop/src/lib.rs
./slop/crates/spartan/src/batched_lincheck_poly.rs
./slop/crates/spartan/src/lib.rs
./slop/crates/spartan/src/lincheck_poly.rs
./slop/crates/spartan/src/prodcheck_poly.rs
./slop/crates/spartan/src/proof.rs
./slop/crates/spartan/src/prover.rs
./slop/crates/spartan/src/r1cs.rs
./slop/crates/spartan/src/sparse_matrix.rs
./slop/crates/spartan/src/verifier.rs
./slop/crates/stacked/src/fixed_rate.rs
./slop/crates/stacked/src/greedy.rs
./slop/crates/stacked/src/interleave.rs
./slop/crates/stacked/src/lib.rs
./slop/crates/stacked/src/prover.rs
./slop/crates/stacked/src/verifier.rs
./slop/crates/sumcheck/src/backend.rs
./slop/crates/sumcheck/src/lib.rs
./slop/crates/sumcheck/src/mle.rs
./slop/crates/sumcheck/src/poly.rs
./slop/crates/sumcheck/src/proof.rs
./slop/crates/sumcheck/src/prover.rs
./slop/crates/sumcheck/src/verifier.rs
./slop/crates/symmetric/src/lib.rs
./slop/crates/tensor/src/dimensions.rs
./slop/crates/tensor/src/dot.rs
./slop/crates/tensor/src/inner.rs
./slop/crates/tensor/src/lib.rs
./slop/crates/tensor/src/reduce.rs
./slop/crates/tensor/src/sum.rs
./slop/crates/tensor/src/transpose.rs
./slop/crates/uni-stark/src/lib.rs
./slop/crates/utils/src/lib.rs
./slop/crates/utils/src/logger.rs
./slop/crates/whir/src/config.rs
./slop/crates/whir/src/lib.rs
./slop/crates/whir/src/prover.rs
./slop/crates/whir/src/verifier.rs
Totals: 721

Additional context

Areas of concern (where to focus for bugs)

  • A valid execution being unprovable (i.e. completeness issues), where the ELF at hand is derived from the given SP1 toolchain with a memory safe Rust program.
  • An invalid execution being provable (i.e. soundness issues).
  • Refer to the HackMD documentation for more areas of concern and explanations.

Main invariants

These invariants hold inductively throughout the core proof.

  • All memory states and registers states are u64 of four u16 limbs.
  • The clk_high, clk_low values at each RISC-V instruction chip and precompile chips, as well as initial & final states of a shard are valid 24-bit values.
  • The clk value of the state (which is clk_low + clk_high * 2^24) is always 1 (mod 8).
  • The timestamp values used for register/memory/permissions access arguments are always two valid 24-bit limbs. The pc values are always three valid 16-bit limbs.
  • All interactions that do not come from a "trusted source" (either from a preprocessed trace, or other main trace that is entirely constrained to be correct, i.e. ProgramChip, ByteChip, RangeChip, InstructionDecodeChip) have boolean multiplicity always.
  • x0 is hard-wired to zero.

These are assumptions you can make about the user program.

  • The user program ends with a call to the syscall_halt function.

All trusted roles in the protocol

N/A

Running tests

git clone  https://github.com/code-423n4/2025-09-succinct.git
# Install toolchain from repo
cargo run -p sp1-cli --no-default-features -- prove install-toolchain
# Run test
cargo test --release --workspace --exclude sp1-verifier --exclude sp1-sdk --features native-gnark --features unsound

Miscellaneous

Employees of Succinct Labs and employees' family members are ineligible to participate in this audit.

Code4rena's rules cannot be overridden by the contents of this README. In case of doubt, please check with C4 staff.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages