-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CertVerifier updates #1207
base: master
Are you sure you want to change the base?
CertVerifier updates #1207
Changes from all commits
531be14
ac3d33b
ca5fa9d
1067a70
325d9bd
9ee648b
f89d714
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -32,11 +32,13 @@ interface IEigenDACertVerifier is IEigenDAThresholdRegistry { | |
* @param batchHeader The batch header of the blob | ||
* @param blobInclusionInfo The inclusion proof for the blob cert | ||
* @param nonSignerStakesAndSignature The nonSignerStakesAndSignature to verify the blob cert against | ||
* @param signedQuorumNumbers The signed quorum numbers corresponding to the nonSignerStakesAndSignature | ||
*/ | ||
function verifyDACertV2( | ||
BatchHeaderV2 calldata batchHeader, | ||
BlobInclusionInfo calldata blobInclusionInfo, | ||
NonSignerStakesAndSignature calldata nonSignerStakesAndSignature | ||
NonSignerStakesAndSignature calldata nonSignerStakesAndSignature, | ||
bytes memory signedQuorumNumbers | ||
) external view; | ||
|
||
/** | ||
|
@@ -49,13 +51,29 @@ interface IEigenDACertVerifier is IEigenDAThresholdRegistry { | |
BlobInclusionInfo calldata blobInclusionInfo | ||
) external view; | ||
|
||
/** | ||
* @notice Thin try/catch wrapper around verifyDACertV2 that returns false instead of panicing | ||
* @dev The Steel library (https://github.com/risc0/risc0-ethereum/tree/main/crates/steel) | ||
* currently has a limitation that it can only create zk proofs for functions that return a value | ||
* @param batchHeader The batch header of the blob | ||
* @param blobInclusionInfo The inclusion proof for the blob cert | ||
* @param nonSignerStakesAndSignature The nonSignerStakesAndSignature to verify the blob cert against | ||
* @param signedQuorumNumbers The signed quorum numbers corresponding to the nonSignerStakesAndSignature | ||
*/ | ||
function verifyDACertV2ForZKProof( | ||
BatchHeaderV2 calldata batchHeader, | ||
BlobInclusionInfo calldata blobInclusionInfo, | ||
NonSignerStakesAndSignature calldata nonSignerStakesAndSignature, | ||
bytes memory signedQuorumNumbers | ||
) external view returns (bool); | ||
|
||
/** | ||
* @notice Returns the nonSignerStakesAndSignature for a given blob cert and signed batch | ||
* @param signedBatch The signed batch to get the nonSignerStakesAndSignature for | ||
*/ | ||
function getNonSignerStakesAndSignature( | ||
SignedBatch calldata signedBatch | ||
) external view returns (NonSignerStakesAndSignature memory); | ||
) external view returns (NonSignerStakesAndSignature memory, bytes memory); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can you document what the second bytes param is being returned is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ideally by giving it a name here (can we do this?) |
||
|
||
/** | ||
* @notice Verifies the security parameters for a blob cert | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
intention is to let proxy to set those value for now, and later pulled from rollup config?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like it is not the case, the signedQuorumNumbers is actually the all quorum for all blobs a batch, I think it makes sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's what it currently is, but it doesn't NEED to be. As we discussed with Robert the GetBlobStatus endpoint could eventually be optimized to return a different signature for each blob request. I vote to rename
signedQuorumNumbers
tosigmaQuorumNumbers
so that the sigma name matches the sigma inside the NonSignerStakesAndSignature (sigma = signature)