Skip to content

Commit f90541e

Browse files
authored
Merge pull request #3 from datachainlab/risc0-v-1-3
Add risc0 v1.3 support Signed-off-by: Jun Kimura <junkxdev@gmail.com>
2 parents 376fb67 + 2d0788c commit f90541e

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
A verifier for [RISC Zero](https://github.com/risc0/risc0) SNARK proofs written in Go.
66

7+
Currently, the verifier supports RISC Zero versions v1.0 through v1.3.
8+
79
## License
810

911
This project is licensed under the Apache 2.0 License - see the [LICENSE](./LICENSE) file for details.

groth16/verifier_test.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package groth16
33
import (
44
"encoding/hex"
55
"testing"
6+
7+
"github.com/datachainlab/go-risc0-verifier/risc0"
68
)
79

8-
func TestVerifyIntegrity(t *testing.T) {
10+
func TestVerifyIntegrityV11(t *testing.T) {
911
claimDigest_, err := hex.DecodeString("9cbe0c90f193cb5e5716c6bc1a780f164ca05254b8bd50485109d9d29544ea33")
1012
if err != nil {
1113
t.Fatal(err)
@@ -25,3 +27,29 @@ func TestVerifyIntegrity(t *testing.T) {
2527
t.Fatal(err)
2628
}
2729
}
30+
31+
func TestVerifyIntegrityV13(t *testing.T) {
32+
journal, err := hex.DecodeString("0000000300000000050000001100906ed50000a1acc73eb45794fa1734f14d882e91925b6006f79d3bb2460df9d01b333d700900000000679f4f740000000067c6d52915150b07ff800e00000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000070000000000000026ae825ffce1cf9dcdf682614f4d36704e7bca087bbb5264aca9301d7824cec8000000000000000000000000000000000000000000000000000000000000000083d719e77deaca1470f6baf62a4d774303c899db69020f9c70ee1dfc08c7ce9e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ce62d98178a799a876bcb77021ee98d13071c4ab000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000e494e54454c2d53412d3030333334000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e494e54454c2d53412d3030363135000000000000000000000000000000000000")
33+
if err != nil {
34+
t.Fatal(err)
35+
}
36+
imageIdBz, err := hex.DecodeString("a8980764a673186b94ec3bd1cc90dc6553b1117014cc387905edc01e53ba0c97")
37+
if err != nil {
38+
t.Fatal(err)
39+
}
40+
var imageId [32]byte
41+
copy(imageId[:], imageIdBz)
42+
claimDigest := risc0.CalculateClaimDigest(imageId, sha256(journal))
43+
seal, err := hex.DecodeString("922fe23d2cbcd0f7dd6e2dcd125454a25bc7451e3fcfe69bc74c620afbf090685d2445d31e7cd0ea42b87264e8b3d633dcde9df5f4c5c345b07d05b08d6d9ac9e69bdc622a6872889033a687c6090a1ba689b72aac803ea644bb3119f51919339911a8f22d4e15f27a4af490d6fd2bde7b9b9b3d13ec4b547297503b20e4cac86f1f72c60d997cd0d1a79e290c1149321ac16e64b5e0889d9cdd0563329021d0816f17a82a4c50ca405fc8f4e8deeae7f5cc029823c9d7b454e2a55341e5285907c13b661e747895f55dfb2205c72fb08d1a6744a7c15291214d3c7f960ff0e4be9d311f07ddd9562c157139146fe9badd109a48ce3f1cfa0822187f4d384b99471ebe91")
44+
if err != nil {
45+
t.Fatal(err)
46+
}
47+
p, ok := GetVerifierParameters2(seal[:4])
48+
if !ok {
49+
t.Fatal("GetVerifierParameters2 failed")
50+
}
51+
err = verifyIntegrity(p, seal[4:], claimDigest)
52+
if err != nil {
53+
t.Fatal(err)
54+
}
55+
}

risc0/parameters.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ func init() {
2424
"8cdad9242664be3112aba377c5425a4df735eb1c6966472b561d2855932c0469",
2525
"c07a65145c3cb48b6101962ea607a4dd93c753bb26975cb47feb00d3666e4404",
2626
)
27+
// https://github.com/risc0/risc0/blob/v1.3.0/risc0/circuit/recursion/src/control_id.rs#L49-L55
28+
risc0VerifierParameters["1.3"] = buildVerifierParameters(
29+
"6fcbfc564e08874a235c181e75bb53547402b116957f700497bf482e08060a15",
30+
"c07a65145c3cb48b6101962ea607a4dd93c753bb26975cb47feb00d3666e4404",
31+
)
2732
}
2833

2934
type VerifierParameters struct {

0 commit comments

Comments
 (0)