Summary
We're using Arkworks at sifraitech/rust-kzg and are currently undergoing a migration to EIP-4844 by using ethereum/c-kzg-4844 as a reference. The said implementation loads trusted setups from files, e.g., trusted_setup.txt, that hold the following information:
G1Count | G2Count | [G1] | [G2]
On the contrary, Arkworks invokes the method kzg10::setup and feeds it a RngCore object to generate the setup, which is not as secure as loading the precomputed G1 and G2 points from a file.
Problem Definition
As far as I'm understanding, powers_of_g and powers_of_gamma_g are responsible for holding G1 and G2 points, respectively. But as you can see, the type of powers_of_gamma_g is BTreeMap::<usize, G1Affine>, which by definition cannot hold G2 points. We attempted to replace the values of powers_of_g with G1 points loaded from a setup file, but we are unsure of where to put the G2 points.
Proposal
Allow us to load G1 and G2 points from a file rather than relying on the setup function.
For Admin Use
Summary
We're using Arkworks at sifraitech/rust-kzg and are currently undergoing a migration to EIP-4844 by using ethereum/c-kzg-4844 as a reference. The said implementation loads trusted setups from files, e.g., trusted_setup.txt, that hold the following information:
On the contrary, Arkworks invokes the method
kzg10::setupand feeds it aRngCoreobject to generate the setup, which is not as secure as loading the precomputedG1andG2points from a file.Problem Definition
As far as I'm understanding,
powers_of_gandpowers_of_gamma_gare responsible for holdingG1andG2points, respectively. But as you can see, the type ofpowers_of_gamma_gisBTreeMap::<usize, G1Affine>, which by definition cannot holdG2points. We attempted to replace the values ofpowers_of_gwithG1points loaded from a setup file, but we are unsure of where to put theG2points.Proposal
Allow us to load
G1andG2points from a file rather than relying on the setup function.For Admin Use