Kzg.Kate_amortizedtype public_parameters = {max_polynomial_length : int;shard_length : int;srs_g1 : Kzg.Bls.Srs_g1.t;number_of_shards : int;}Public_parameters are needed for commit, preprocess, prove & verify Notably the type is the same for both prover & verifier, but the needed SRS size is shorter for the verifier (= max_polynomial_length - shard_length) than for the prover (= max_polynomial_length)
val preprocess_encoding : preprocess Data_encoding.ttype shard_proof = Commitment.Single_G1.ttype commitment = Commitment.Single_G1.tval preprocess_equal : preprocess -> preprocess -> boolComparison function for preprocess, used for test purposes
val commit : public_parameters -> Kzg.Bls.Poly.t -> commitmentval preprocess_multiple_multi_reveals : public_parameters -> preprocessval multiple_multi_reveals :
public_parameters ->
preprocess:preprocess ->
coefficients:Octez_bls12_381_polynomial.scalar array ->
shard_proof arrayval verify :
public_parameters ->
commitment:commitment ->
srs_point:Bls.G2.t ->
domain:Bls.Domain.t ->
root:Octez_bls12_381_polynomial.scalar ->
evaluations:Octez_bls12_381_polynomial.scalar array ->
proof:shard_proof ->
boolval verify_multi :
public_parameters ->
commitment:commitment ->
srs_point:Bls.G2.t ->
domain:Bls.Domain.t ->
root_list:Octez_bls12_381_polynomial.scalar list ->
evaluations_list:Octez_bls12_381_polynomial.scalar array list ->
proof_list:shard_proof list ->
boolVerifies shard proofs in a batch : compared to using verify several times, this reduces the time spend to commit (only one commit for all proofs) and the time in pairing (only one pairing for all proofs).