Verify BLS Signature
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Verify BLS Signature enables you to cryptographically verify BLS (Boneh-Lynn-Shacham) signatures against a public key and message using the BLS12-381 pairing-friendly curve. BLS signatures are a powerful cryptographic primitive that enables signature aggregation—multiple signatures from different parties can be combined into a single compact signature, dramatically reducing verification overhead in blockchain systems like Ethereum 2.0, Filecoin, and threshold signature schemes. The tool takes a message (text or hex), a BLS public key (G2 point), and a BLS signature (G1 point), and performs the pairing-based verification check to confirm the signature's authenticity. If the verification succeeds, the tool returns a valid result, confirming that the signature was generated by the private key corresponding to the provided public key and that the message has not been altered. This is essential for applications that require efficient multi-signature verification, validator set verification, and cross-chain proof validation.
HOW TO USE
Connect your wallet using the BGWallet connector (required for context). Select the BLS curve (currently BLS12-381, the standard for most blockchain applications). Choose the message format—"Text" for plain text messages or "Hex" for raw hex-encoded data. Enter the original message that was signed in the text area. Enter the BLS public key (G2 point) as a hex string with a 0x prefix—this is the public key that corresponds to the signer's private key. Enter the BLS signature (G1 point) as a hex string with a 0x prefix. Click "Verify BLS Signature" to run the verification. The tool displays the message, public key, signature, and the verification result: a green "Valid" checkmark if the signature is authentic and a red "Invalid" X if it fails. The result includes a detailed explanation of the outcome, making it clear whether the signature was successfully verified or not.
TECHNICAL MECHANISM
This tool implements BLS signature verification using the BLS12-381 curve and the bls12-381 JavaScript library. The verification process uses the pairing operation—a bilinear map that enables efficient signature verification. The tool first hashes the message to a point on the G2 curve using a cryptographic hash-to-curve algorithm. The verification check verifies that e(σ, G2) = e(H(m), PK), where σ is the signature in G1, G2 is the generator of the G2 group, H(m) is the hash of the message on G2, and PK is the public key in G2. The tool performs this pairing check by computing the pairings and comparing them. If the pairings match, the signature is valid; if they do not match, the signature is invalid. BLS signatures are deterministic, meaning the same private key and message always produce the same signature, enabling aggregate verification. The tool uses WebAssembly for efficient elliptic curve operations and pairing computations. All computation is performed locally in the browser, with no data sent to external servers.
WHAT IT CANNOT SEE
This tool cannot verify that the signature was generated from a trusted private key—it only verifies mathematical correctness. It does not support all BLS curve variants or schemes beyond BLS12-381. The tool cannot verify aggregate signatures from multiple messages; it only verifies a single signature against a single message and public key. It does not support verification against on-chain registered public keys; you must provide the public key manually. The tool cannot guarantee that the public key or signature formatting is correct beyond basic hex validation. It does not support verification of signatures with non-standard hash-to-curve implementations that differ from the BLS12-381 standard. The tool cannot detect if the message was altered after signing; verification will fail if the message does not match the original signed data. It does not support hardware-assisted verification; all verification is done in software. The tool cannot verify signatures without the original message and public key provided; both are required for verification.
PLEASE NOTE
This tool is designed for developers and users working with BLS signatures on the BLS12-381 curve, which is the standard curve used in Ethereum 2.0, Filecoin, and other blockchain protocols. The public key is in the G2 group and the signature is in the G1 group, following the standard BLS convention. The message must match the original message that was signed exactly—even a single character difference will cause verification to fail. The tool uses pairing-based cryptography for verification, which involves computationally intensive elliptic curve operations. The verification is performed locally using WebAssembly, ensuring that sensitive data is not transmitted to external servers. Always verify signatures from trusted sources using a reliable verification library before relying on them in production systems. The tool supports only BLS12-381, which is the most widely adopted BLS curve in blockchain applications. For aggregate signature verification or verification with custom hash-to-curve implementations, consider using a dedicated cryptographic library.