blobsToProofs
Computes KZG proofs for a list of blobs and their commitments
blobsToProofs
Computes KZG proofs for a list of blobs and their commitments using a KZG implementation.
Import
import "github.com/ChefBingbong/viem-go/utils/blob"import "github.com/ChefBingbong/viem-go/utils/kzg"Usage
import "github.com/ChefBingbong/viem-go/utils/blob"import "github.com/ChefBingbong/viem-go/utils/kzg"
blobs, _ := blob.ToBlobs([]byte("hello world"))commitments, _ := blob.BlobsToCommitments(blobs, kzgImpl)
// Compute proofsproofs, err := blob.BlobsToProofs(blobs, commitments, kzgImpl)if err != nil { log.Fatal(err)}
// Get proofs as hex stringshexProofs, err := blob.BlobsToProofsHex(blobs, commitments, kzgImpl)if err != nil { log.Fatal(err)}Returns
- Type:
([][]byte, error)forBlobsToProofs,([]string, error)forBlobsToProofsHex
An array of KZG proofs, one for each blob. Each proof is 48 bytes.
Parameters
blobs (required)
- Type:
[][]byte
The blobs to compute proofs for. Must have the same length as commitments.
blobs, _ := blob.ToBlobs([]byte("hello world"))commitments, _ := blob.BlobsToCommitments(blobs, kzgImpl)proofs, _ := blob.BlobsToProofs(blobs, commitments, kzgImpl)commitments (required)
- Type:
[][]byte
The KZG commitments corresponding to the blobs. Must have the same length as blobs.
commitments, _ := blob.BlobsToCommitments(blobs, kzgImpl)proofs, _ := blob.BlobsToProofs(blobs, commitments, kzgImpl)kzgImpl (required)
- Type:
kzg.Kzg
The KZG implementation to use for computing proofs.
proofs, _ := blob.BlobsToProofs(blobs, commitments, kzgImpl)Functions
BlobsToProofs
Computes proofs from blobs and commitments:
proofs, _ := blob.BlobsToProofs(blobs, commitments, kzgImpl)
BlobsToProofsHex
Computes proofs and returns them as hex strings:
hexProofs, _ := blob.BlobsToProofsHex(blobs, commitments, kzgImpl)
BlobsHexToProofs
Computes proofs from hex-encoded blobs and commitments:
proofs, _ := blob.BlobsHexToProofs(hexBlobs, hexCommitments, kzgImpl)
BlobsHexToProofsHex
Computes hex proofs from hex blobs and commitments:
hexProofs, _ := blob.BlobsHexToProofsHex(hexBlobs, hexCommitments, kzgImpl)
Notes
- Each proof is 48 bytes (384 bits)
- Proofs are used to verify that a blob matches its commitment
- The number of proofs equals the number of blobs
blobsandcommitmentsmust have the same length