Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
3046e89
update readme
succinctli Aug 26, 2025
78c7d3b
fix #88 - Field Arithmetic Bug in SepticExtension SubAssign Implement…
will-brevis Oct 2, 2025
fc24d89
fix #144 - Silent truncation in verify() causes incomplete proof veri…
will-brevis Oct 6, 2025
12ac001
fix #142 - First chunk having cpu chip is incorrectly checked in conv…
will-brevis Oct 6, 2025
b552412
fix #124,148,186,215 - Remainder is not range checked correctly in re…
will-brevis Oct 9, 2025
53ce9d1
fix #79 - Scalar multiplication reduces by 2^n instead of the group o…
will-brevis Oct 9, 2025
f62f6f9
fix #126 - Malicious prover will generate invalid proofs due to under…
will-brevis Oct 9, 2025
956959c
fix #197 - is_real never checked for boolean inside syscall chip
will-brevis Oct 10, 2025
0c01976
fix #133,137 - two completeness checks issue
kaiwei-0 Oct 31, 2025
c36ca74
fix #199,200 - Quotient domain is completely controlled by prover
will-brevis Nov 3, 2025
366bed7
fix #204 - Chip ordering is used to fetch all chips instead of prepro…
will-brevis Nov 3, 2025
9c2800a
fix #206 - No check that the lookup multiplicities do not overflow
will-brevis Nov 3, 2025
f620c30
fix #137 - completeness checks must be added to every circuit that ne…
kaiwei-0 Nov 3, 2025
becb4f0
fix #219 - op_a_0 is not constrained inside MemoryReadWriteChip
will-brevis Nov 3, 2025
28fa55c
fix #226 - Polynomial evaluations are never observed by recursive ver…
will-brevis Nov 3, 2025
2355c9b
fix #228 - ro[config.log_blowup] is not checked to be zero in recursi…
will-brevis Nov 3, 2025
e9d1613
fix #230 - Recursive verifier does not check for overflow of the look…
will-brevis Nov 3, 2025
149bf5d
fix #233 - Recursive verifier does not validate chip used for preproc…
will-brevis Nov 3, 2025
90ec0bb
fix #69 - Word range check uses unconstrained upper_all_one local var…
will-brevis Nov 3, 2025
ce9ed40
fix #108 - Inconsistent Multiplicity Increment in read_ghost_addr
will-brevis Nov 3, 2025
f3d6f85
fix #78 - wrong sign handling when x == 0 produces non-canonical / ou…
will-brevis Nov 3, 2025
e90ac03
fix #75 - Missing offset check will cause integer overflow violating …
will-brevis Nov 3, 2025
d79c321
fix #62 - read_write chip does not enforce constraints on opcode sele…
will-brevis Nov 3, 2025
26a9685
fix #128 - Malicious verifier will recover private witness values bre…
liuxiaobleach Nov 3, 2025
66fabbe
unfix #200
will-brevis Nov 9, 2025
6315d47
disable m31 and add a comment explaining why
will-brevis Nov 10, 2025
b835590
#124 - fix comment description
will-brevis Nov 20, 2025
ccf068f
#226: update Cargo.lock
will-brevis Nov 20, 2025
8ab54b7
#144 - additional input length mismatches
will-brevis Nov 20, 2025
3c37ba2
add conditional
will-brevis Nov 20, 2025
e084b2e
Merge branch 'main' into sherlock-audit-fixes
will-brevis Nov 25, 2025
8f6c7be
modify gnark tool
liuxiaobleach Nov 25, 2025
acaa905
vm/src/chips/precompiles/edwards/ed_decompress.rs (#78)
benhuang2025 Nov 27, 2025
a95ca93
fix format
Nov 27, 2025
805f6cc
fix lint
Nov 27, 2025
6ff4f47
Add onchain verifier constraints (#76)
kaiwei-0 Nov 27, 2025
85187dd
Update gnark docker image version
kaiwei-0 Nov 28, 2025
3f97c2a
Update vk_map bins
kaiwei-0 Dec 1, 2025
956e382
Update maximal_only shape_config
kaiwei-0 Dec 1, 2025
efc7f77
Update (vm_ccs, vm_pk, vm_vk) url
kaiwei-0 Dec 1, 2025
f65739a
chore: code fmt
kaiwei-0 Dec 1, 2025
4a56041
Merge remote-tracking branch 'origin/main' into sherlock-audit-fixes
Dec 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,10 @@ jobs:
- name: Cargo run examples
run: |
# M31 basic tests
RUST_LOG=info FRI_QUERIES=1 cargo run --release --example test_riscv -- --field m31
RUST_LOG=info FRI_QUERIES=1 cargo run --release --example test_riscv -- --elf precompile --field m31
RUST_LOG=info FRI_QUERIES=1 cargo run --release --example test_riscv -- --elf poseidon2 --field m31 --n 2118082624
# TODO: restart these tests once the m31 prover is actually fixed
# RUST_LOG=info FRI_QUERIES=1 cargo run --release --example test_riscv -- --field m31
# RUST_LOG=info FRI_QUERIES=1 cargo run --release --example test_riscv -- --elf precompile --field m31
# RUST_LOG=info FRI_QUERIES=1 cargo run --release --example test_riscv -- --elf poseidon2 --field m31 --n 2118082624

riscof:
if: true
Expand Down
50 changes: 25 additions & 25 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 23 additions & 23 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,33 +38,33 @@ pico-perf = { path = "perf" }
# p3

# NOTE: Pin to known a "good" commit without recent API changes
p3-air = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-field = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-commit = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-matrix = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-air = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-field = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-commit = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-matrix = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-baby-bear = { git = "https://github.com/brevis-network/Plonky3.git", features = [
"nightly-features",
], rev = "a4d376b" }
], rev = "411a80d" }
p3-koala-bear = { git = "https://github.com/brevis-network/Plonky3.git", features = [
"nightly-features",
], rev = "a4d376b" }
p3-util = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-challenger = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-dft = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-fri = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-goldilocks = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-keccak = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-keccak-air = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-blake3 = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-mds = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-merkle-tree = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-poseidon2 = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-symmetric = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-uni-stark = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-maybe-rayon = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-bn254-fr = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-mersenne-31 = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
p3-circle = { git = "https://github.com/brevis-network/Plonky3.git", rev = "a4d376b" }
], rev = "411a80d" }
p3-util = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-challenger = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-dft = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-fri = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-goldilocks = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-keccak = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-keccak-air = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-blake3 = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-mds = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-merkle-tree = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-poseidon2 = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-symmetric = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-uni-stark = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-maybe-rayon = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-bn254-fr = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-mersenne-31 = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }
p3-circle = { git = "https://github.com/brevis-network/Plonky3.git", rev = "411a80d" }

# For local debugging
# p3-air = { path = "../p3/air" }
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,6 @@ Pico draws inspiration from the following projects, each representing cutting-ed
- [Valida](https://github.com/valida-xyz/valida): Pico's implementation of cross-table lookups is inspired by Valida's pioneering work in this area.
- [RISC0](https://github.com/risc0/risc0): Pico's Rust toolchain is based on the one originally developed by RISC0.

## Audit

This branch is for auditing.
45 changes: 20 additions & 25 deletions gnark/go.mod
Original file line number Diff line number Diff line change
@@ -1,45 +1,40 @@
module github.com/brevis-network/pico/gnark

go 1.22.10
go 1.24.0

toolchain go1.24.7

require (
github.com/celer-network/goutils v0.2.0
github.com/consensys/gnark v0.10.0
github.com/consensys/gnark-crypto v0.12.2-0.20240215234832-d72fcb379d3e
github.com/consensys/gnark v0.14.0
github.com/consensys/gnark-crypto v0.19.0
github.com/ethereum/go-ethereum v1.11.5
github.com/labstack/echo v3.3.10+incompatible
github.com/labstack/gommon v0.4.2
github.com/rs/zerolog v1.30.0
golang.org/x/crypto v0.26.0
github.com/rs/zerolog v1.34.0
golang.org/x/crypto v0.41.0
)

require (
github.com/bits-and-blooms/bitset v1.10.0 // indirect
github.com/bits-and-blooms/bitset v1.24.0 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/consensys/bavard v0.1.13 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/fxamacker/cbor/v2 v2.5.0 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b // indirect
github.com/ingonyama-zk/icicle/v2 v2.0.3 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 // indirect
github.com/ingonyama-zk/icicle-gnark/v3 v3.2.2 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mmcloughlin/addchain v0.4.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/stretchr/testify v1.9.0 // indirect
github.com/ronanh/intcomp v1.1.1 // indirect
github.com/stretchr/testify v1.10.0 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
github.com/x448/float16 v0.8.4 // indirect
golang.org/x/net v0.24.0 // indirect
golang.org/x/sync v0.8.0 // indirect
golang.org/x/sys v0.23.0 // indirect
golang.org/x/text v0.17.0 // indirect
golang.org/x/net v0.42.0 // indirect
golang.org/x/sync v0.16.0 // indirect
golang.org/x/sys v0.35.0 // indirect
golang.org/x/text v0.28.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
rsc.io/tmplfunc v0.0.3 // indirect
)

replace (
github.com/OpenAssetStandards/poseidon-goldilocks-go => github.com/brevis-network/poseidon-goldilocks-go v0.0.0-20240826082508-8017eb90f413
github.com/consensys/gnark => github.com/celer-network/gnark v0.1.0
github.com/succinctlabs/gnark-plonky2-verifier => github.com/brevis-network/gnark-plonky2-verifier v0.0.0-20241008110619-a4af874609bc

)
replace github.com/OpenAssetStandards/poseidon-goldilocks-go => github.com/brevis-network/poseidon-goldilocks-go v0.0.0-20240826082508-8017eb90f413
Loading
Loading