I have found available precompiled contracts in solidity. For example, this answer enter link description here points out a precompiled contract that can verify BLS signature. However, looking to the given code in the answer, I found that the bilinear pairings are based on elliptic curves.
My Question, by looking in the image attached, a smart contract is required to verify pairing equality given in step (5), Could someone suggest a way or even an existing available precompiled contract so I can call it with the given arguments so it can verify step (5)?
Note that, I wrote the protocol follow and attached an image since it is not allowed to write math equations here.
Is this doable in solidity?
- Is this doable in any other programming language? The answer is Yes of course, so please post your general programmatic solution in your language of choice (or even pseudo code would do), and then users here will be able to assist you with porting it to the Ethereum ecosystem (and to Solidity in particular). Otherwise, it seems like you are asking the whole lot to be done for you. – goodvibration Jun 12 '19 at 4:34function verifyBLSTest() returns (bool) { bytes memory message = hex"7b0.. G1Point memory signature = G1Point(11., 63...); G2Point memory v = G2Point([185........., 57..], [38.., 67..] }
– Heba Mohsen Jun 12 '19 at 7:19