mattlockyer / solidity-bls

BLS threshold signature verification in Solidity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

solidity-bls

Note: This repository is a WIP and will be updated frequently in the coming weeks. This is probably completely broken, please don't use this in production!


This is a library for verifying BLS signatures over bn128 in Solidity. Almost all of the code here is taken from BjornvdLaan's work and the work on ZoKrates available here.

TODO

  • Add real testing
  • See if there are any obvious optimizations
  • Add support for verification of signatures with different messages

Testing

We use Truffle for testing.

$ truffle test
Compiling ./contracts/BLS.sol...
Compiling ./contracts/BLSTest.sol...
Compiling ./contracts/Migrations.sol...
Compiling ./contracts/Pairing.sol...


  Contract: BLS
    ✓ should verify a valid signature (302ms)
    ✓ should not verify a invalid signature (59ms)
    ✓ should not verify a invalid message (291ms)

Gas Cost

The cost of verifying a signature is currently ~365,000 gas.

About

BLS threshold signature verification in Solidity

License:MIT License


Languages

Language:Solidity 65.1%Language:JavaScript 34.9%