-
Notifications
You must be signed in to change notification settings - Fork 2
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
feat: introduces BLS signature verification precompile #52
Conversation
If the example use case is just in the PR description, it will get lost when merging. Maybe worth putting this somehwere in a readme? |
return params.BlsSignVerifyGas | ||
} | ||
|
||
func (c *bls12381SignatureVerification) Run(input []byte) ([]byte, error) { |
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.
Specify what output format is.
@@ -23,6 +23,7 @@ import ( | |||
"fmt" | |||
"math/big" | |||
|
|||
"github.com/cloudflare/circl/sign/bls" |
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.
This is not available for me. Do they implement actual BLS verifcation on top of precompiles? Is this documented somewhere?
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.
The precompile is implemented by us. They simply implement BLS signatures.
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.
take a look here: https://pkg.go.dev/github.com/cloudflare/circl/sign/bls
Introduction of BLS Signature Verification Precompile
This PR introduces a new precompiled contract for BLS signature verification using the BLS12-381 curve. The
bls12381SignatureVerification
struct enables Ethereum smart contracts to efficiently verify BLS signatures (e.g validate a message was signed by a target public key). This will be useful in the context of ensuring that builders who register have access to the BLS key they sign up with.Details for usage
Note: We assume the public key is a point on the G1 curve.
Example Usage: Solidity Contract
The following example demonstrates how to interact with the BLS signature verification precompile via a smartcontract:
The video demo can be seen here