Home About John Resume/CV References Writing Research

Signature Schemes in Consensus Protocols


Both sides of the bridge need to verify what happened on the other side. To do that, the verification logic is often encapsulated inside a light client, manifested as a smart contract on the chain which the verification needs to be executed. The light client needs to follow consensus and signature verification mechanisms based on the signing algorithm and the elliptical curve used on the other side. For example, if chain A has 21 validators signing each block using ECDSA algorithm on secp256k1 curves, then chain A’s light client, executed on chain B, must extract the signatures from the block headers presented to the light client, and follow the ECDSA signature verification algorithm to verify the content of the block header indeeds produces the 21 signatures contained in the block header, given the public keys of the 21 validators.

Here, we present a reference table for these signature schemes and how they are used in the consensus protocols of different blockchains. We limit our initial scope to Ethereum, Polygon, Avalanche, BSC, Harmony, Cosmos, and Polkadot only (and their undelying technologies). Note that we are only looking at how signatures are used in consensus, not elsewhere in the blockchain stack, as all these protocols use ECDSA on secp256k1 for accounts in EVM interactions.

Algorithm Curve Protocol Code Note
ECDSA secp256k1 Polygon lib Modified Tendermint validator signature scheme
    BSC lib usage Derived from Clique, then improved
BLS BN254 Ethereum EVM Added by EIP-196,197; Mainly for use in smart contracts, such as zk-snark verification. See explainer
  BLS12-381 Ethereum prysm lighthouse See PoS design and explainer
    Harmony lib usage See design and protocol review
RSA N/A Avalanche verification generation Uses X.509 certificate which potentially allows many algorithms; Moving towards BLS12-381 and added implementations recently
EdDSA Curve25519 IBC lib usage Used by all chains in Cosmos network, including Cosmos Hub
Schnorr Curve25519 Substrate lib See also brief intro from Polkadot










Usage in ZKP