Skip to content

Commit dc3a228

Browse files
authored
Merge pull request #840 from gzliudan/kzg4844_blob_ref
crypto/kz4844: pass blobs by ref
2 parents 35e70fb + 77ad10c commit dc3a228

File tree

7 files changed

+36
-36
lines changed

7 files changed

+36
-36
lines changed

crypto/kzg4844/kzg4844.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func UseCKZG(use bool) error {
105105
}
106106

107107
// BlobToCommitment creates a small commitment out of a data blob.
108-
func BlobToCommitment(blob Blob) (Commitment, error) {
108+
func BlobToCommitment(blob *Blob) (Commitment, error) {
109109
if useCKZG.Load() {
110110
return ckzgBlobToCommitment(blob)
111111
}
@@ -114,7 +114,7 @@ func BlobToCommitment(blob Blob) (Commitment, error) {
114114

115115
// ComputeProof computes the KZG proof at the given point for the polynomial
116116
// represented by the blob.
117-
func ComputeProof(blob Blob, point Point) (Proof, Claim, error) {
117+
func ComputeProof(blob *Blob, point Point) (Proof, Claim, error) {
118118
if useCKZG.Load() {
119119
return ckzgComputeProof(blob, point)
120120
}
@@ -134,15 +134,15 @@ func VerifyProof(commitment Commitment, point Point, claim Claim, proof Proof) e
134134
// the commitment.
135135
//
136136
// This method does not verify that the commitment is correct with respect to blob.
137-
func ComputeBlobProof(blob Blob, commitment Commitment) (Proof, error) {
137+
func ComputeBlobProof(blob *Blob, commitment Commitment) (Proof, error) {
138138
if useCKZG.Load() {
139139
return ckzgComputeBlobProof(blob, commitment)
140140
}
141141
return gokzgComputeBlobProof(blob, commitment)
142142
}
143143

144144
// VerifyBlobProof verifies that the blob data corresponds to the provided commitment.
145-
func VerifyBlobProof(blob Blob, commitment Commitment, proof Proof) error {
145+
func VerifyBlobProof(blob *Blob, commitment Commitment, proof Proof) error {
146146
if useCKZG.Load() {
147147
return ckzgVerifyBlobProof(blob, commitment, proof)
148148
}

crypto/kzg4844/kzg4844_ckzg_cgo.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ func ckzgInit() {
6161
}
6262

6363
// ckzgBlobToCommitment creates a small commitment out of a data blob.
64-
func ckzgBlobToCommitment(blob Blob) (Commitment, error) {
64+
func ckzgBlobToCommitment(blob *Blob) (Commitment, error) {
6565
ckzgIniter.Do(ckzgInit)
6666

67-
commitment, err := ckzg4844.BlobToKZGCommitment((ckzg4844.Blob)(blob))
67+
commitment, err := ckzg4844.BlobToKZGCommitment((*ckzg4844.Blob)(blob))
6868
if err != nil {
6969
return Commitment{}, err
7070
}
@@ -73,10 +73,10 @@ func ckzgBlobToCommitment(blob Blob) (Commitment, error) {
7373

7474
// ckzgComputeProof computes the KZG proof at the given point for the polynomial
7575
// represented by the blob.
76-
func ckzgComputeProof(blob Blob, point Point) (Proof, Claim, error) {
76+
func ckzgComputeProof(blob *Blob, point Point) (Proof, Claim, error) {
7777
ckzgIniter.Do(ckzgInit)
7878

79-
proof, claim, err := ckzg4844.ComputeKZGProof((ckzg4844.Blob)(blob), (ckzg4844.Bytes32)(point))
79+
proof, claim, err := ckzg4844.ComputeKZGProof((*ckzg4844.Blob)(blob), (ckzg4844.Bytes32)(point))
8080
if err != nil {
8181
return Proof{}, Claim{}, err
8282
}
@@ -102,21 +102,21 @@ func ckzgVerifyProof(commitment Commitment, point Point, claim Claim, proof Proo
102102
// the commitment.
103103
//
104104
// This method does not verify that the commitment is correct with respect to blob.
105-
func ckzgComputeBlobProof(blob Blob, commitment Commitment) (Proof, error) {
105+
func ckzgComputeBlobProof(blob *Blob, commitment Commitment) (Proof, error) {
106106
ckzgIniter.Do(ckzgInit)
107107

108-
proof, err := ckzg4844.ComputeBlobKZGProof((ckzg4844.Blob)(blob), (ckzg4844.Bytes48)(commitment))
108+
proof, err := ckzg4844.ComputeBlobKZGProof((*ckzg4844.Blob)(blob), (ckzg4844.Bytes48)(commitment))
109109
if err != nil {
110110
return Proof{}, err
111111
}
112112
return (Proof)(proof), nil
113113
}
114114

115115
// ckzgVerifyBlobProof verifies that the blob data corresponds to the provided commitment.
116-
func ckzgVerifyBlobProof(blob Blob, commitment Commitment, proof Proof) error {
116+
func ckzgVerifyBlobProof(blob *Blob, commitment Commitment, proof Proof) error {
117117
ckzgIniter.Do(ckzgInit)
118118

119-
valid, err := ckzg4844.VerifyBlobKZGProof((ckzg4844.Blob)(blob), (ckzg4844.Bytes48)(commitment), (ckzg4844.Bytes48)(proof))
119+
valid, err := ckzg4844.VerifyBlobKZGProof((*ckzg4844.Blob)(blob), (ckzg4844.Bytes48)(commitment), (ckzg4844.Bytes48)(proof))
120120
if err != nil {
121121
return err
122122
}

crypto/kzg4844/kzg4844_ckzg_nocgo.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ func ckzgInit() {
3232
}
3333

3434
// ckzgBlobToCommitment creates a small commitment out of a data blob.
35-
func ckzgBlobToCommitment(blob Blob) (Commitment, error) {
35+
func ckzgBlobToCommitment(blob *Blob) (Commitment, error) {
3636
panic("unsupported platform")
3737
}
3838

3939
// ckzgComputeProof computes the KZG proof at the given point for the polynomial
4040
// represented by the blob.
41-
func ckzgComputeProof(blob Blob, point Point) (Proof, Claim, error) {
41+
func ckzgComputeProof(blob *Blob, point Point) (Proof, Claim, error) {
4242
panic("unsupported platform")
4343
}
4444

@@ -52,11 +52,11 @@ func ckzgVerifyProof(commitment Commitment, point Point, claim Claim, proof Proo
5252
// the commitment.
5353
//
5454
// This method does not verify that the commitment is correct with respect to blob.
55-
func ckzgComputeBlobProof(blob Blob, commitment Commitment) (Proof, error) {
55+
func ckzgComputeBlobProof(blob *Blob, commitment Commitment) (Proof, error) {
5656
panic("unsupported platform")
5757
}
5858

5959
// ckzgVerifyBlobProof verifies that the blob data corresponds to the provided commitment.
60-
func ckzgVerifyBlobProof(blob Blob, commitment Commitment, proof Proof) error {
60+
func ckzgVerifyBlobProof(blob *Blob, commitment Commitment, proof Proof) error {
6161
panic("unsupported platform")
6262
}

crypto/kzg4844/kzg4844_gokzg.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ func gokzgInit() {
4646
}
4747

4848
// gokzgBlobToCommitment creates a small commitment out of a data blob.
49-
func gokzgBlobToCommitment(blob Blob) (Commitment, error) {
49+
func gokzgBlobToCommitment(blob *Blob) (Commitment, error) {
5050
gokzgIniter.Do(gokzgInit)
5151

52-
commitment, err := context.BlobToKZGCommitment((gokzg4844.Blob)(blob), 0)
52+
commitment, err := context.BlobToKZGCommitment((*gokzg4844.Blob)(blob), 0)
5353
if err != nil {
5454
return Commitment{}, err
5555
}
@@ -58,10 +58,10 @@ func gokzgBlobToCommitment(blob Blob) (Commitment, error) {
5858

5959
// gokzgComputeProof computes the KZG proof at the given point for the polynomial
6060
// represented by the blob.
61-
func gokzgComputeProof(blob Blob, point Point) (Proof, Claim, error) {
61+
func gokzgComputeProof(blob *Blob, point Point) (Proof, Claim, error) {
6262
gokzgIniter.Do(gokzgInit)
6363

64-
proof, claim, err := context.ComputeKZGProof((gokzg4844.Blob)(blob), (gokzg4844.Scalar)(point), 0)
64+
proof, claim, err := context.ComputeKZGProof((*gokzg4844.Blob)(blob), (gokzg4844.Scalar)(point), 0)
6565
if err != nil {
6666
return Proof{}, Claim{}, err
6767
}
@@ -80,19 +80,19 @@ func gokzgVerifyProof(commitment Commitment, point Point, claim Claim, proof Pro
8080
// the commitment.
8181
//
8282
// This method does not verify that the commitment is correct with respect to blob.
83-
func gokzgComputeBlobProof(blob Blob, commitment Commitment) (Proof, error) {
83+
func gokzgComputeBlobProof(blob *Blob, commitment Commitment) (Proof, error) {
8484
gokzgIniter.Do(gokzgInit)
8585

86-
proof, err := context.ComputeBlobKZGProof((gokzg4844.Blob)(blob), (gokzg4844.KZGCommitment)(commitment), 0)
86+
proof, err := context.ComputeBlobKZGProof((*gokzg4844.Blob)(blob), (gokzg4844.KZGCommitment)(commitment), 0)
8787
if err != nil {
8888
return Proof{}, err
8989
}
9090
return (Proof)(proof), nil
9191
}
9292

9393
// gokzgVerifyBlobProof verifies that the blob data corresponds to the provided commitment.
94-
func gokzgVerifyBlobProof(blob Blob, commitment Commitment, proof Proof) error {
94+
func gokzgVerifyBlobProof(blob *Blob, commitment Commitment, proof Proof) error {
9595
gokzgIniter.Do(gokzgInit)
9696

97-
return context.VerifyBlobKZGProof((gokzg4844.Blob)(blob), (gokzg4844.KZGCommitment)(commitment), (gokzg4844.KZGProof)(proof))
97+
return context.VerifyBlobKZGProof((*gokzg4844.Blob)(blob), (gokzg4844.KZGCommitment)(commitment), (gokzg4844.KZGProof)(proof))
9898
}

crypto/kzg4844/kzg4844_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ func randFieldElement() [32]byte {
3636
return gokzg4844.SerializeScalar(r)
3737
}
3838

39-
func randBlob() Blob {
39+
func randBlob() *Blob {
4040
var blob Blob
4141
for i := 0; i < len(blob); i += gokzg4844.SerializedScalarSize {
4242
fieldElementBytes := randFieldElement()
4343
copy(blob[i:i+gokzg4844.SerializedScalarSize], fieldElementBytes[:])
4444
}
45-
return blob
45+
return &blob
4646
}
4747

4848
func TestCKZGWithPoint(t *testing.T) { testKZGWithPoint(t, true) }

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ require (
4040

4141
require (
4242
github.com/consensys/gnark-crypto v0.10.0
43-
github.com/crate-crypto/go-kzg-4844 v0.7.0
43+
github.com/crate-crypto/go-kzg-4844 v1.0.0
4444
github.com/deckarep/golang-set/v2 v2.7.0
4545
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1
4646
github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498
47-
github.com/ethereum/c-kzg-4844 v0.4.0
47+
github.com/ethereum/c-kzg-4844 v1.0.0
4848
github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e
4949
github.com/fsnotify/fsnotify v1.8.0
5050
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08

go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ github.com/consensys/gnark-crypto v0.10.0 h1:zRh22SR7o4K35SoNqouS9J/TKHTyU2QWaj5
1919
github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU=
2020
github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc=
2121
github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
22-
github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA=
23-
github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc=
22+
github.com/crate-crypto/go-kzg-4844 v1.0.0 h1:TsSgHwrkTKecKJ4kadtHi4b3xHW5dCFUDFnUp1TsawI=
23+
github.com/crate-crypto/go-kzg-4844 v1.0.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc=
2424
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
2525
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
2626
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -43,18 +43,18 @@ github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498 h1:Y9vTBSsV4hSwPSj4bac
4343
github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA=
4444
github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=
4545
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
46-
github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY=
47-
github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
46+
github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA=
47+
github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
4848
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
4949
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
5050
github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e h1:bBLctRc7kr01YGvaDfgLbTwjFNW5jdp5y5rj8XXBHfY=
5151
github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY=
5252
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
5353
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
54-
github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgxrzK5E1fW7RQGeDwE8F/ZZnUYc=
55-
github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8=
5654
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
5755
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
56+
github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61 h1:IZqZOB2fydHte3kUgxrzK5E1fW7RQGeDwE8F/ZZnUYc=
57+
github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8=
5858
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays=
5959
github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww=
6060
github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
@@ -111,10 +111,10 @@ github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7Bd
111111
github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
112112
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
113113
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
114-
github.com/kevinburke/go-bindata v3.23.0+incompatible h1:rqNOXZlqrYhMVVAsQx8wuc+LaA73YcfbQ407wAykyS8=
115-
github.com/kevinburke/go-bindata v3.23.0+incompatible/go.mod h1:/pEEZ72flUW2p0yi30bslSp9YqD9pysLxunQDdb2CPM=
116114
github.com/karalabe/hid v1.0.1-0.20240306101548-573246063e52 h1:msKODTL1m0wigztaqILOtla9HeW1ciscYG4xjLtvk5I=
117115
github.com/karalabe/hid v1.0.1-0.20240306101548-573246063e52/go.mod h1:qk1sX/IBgppQNcGCRoj90u6EGC056EBoIc1oEjCWla8=
116+
github.com/kevinburke/go-bindata v3.23.0+incompatible h1:rqNOXZlqrYhMVVAsQx8wuc+LaA73YcfbQ407wAykyS8=
117+
github.com/kevinburke/go-bindata v3.23.0+incompatible/go.mod h1:/pEEZ72flUW2p0yi30bslSp9YqD9pysLxunQDdb2CPM=
118118
github.com/kilic/bls12-381 v0.1.0 h1:encrdjqKMEvabVQ7qYOKu1OvhqpK4s47wDYtNiPtlp4=
119119
github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig=
120120
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=

0 commit comments

Comments
 (0)