The address 0x8 contains bn256Pairing pre-compiled contract on Byzantium release. I have the following questions :
- If I have G_1 = G_2, i.e., a symmetric pairing, is it possible to check e(a_1, b_1) ?= e(a_2, b_2) ? If yes, how do I pass the arguments because the specification uses a representation like ai+b.
- What is the exact encoding of the elements to be used? Is there a sample code or test case reference available? I'm trying to use assembly calls inside Solidity contracts.
In case it is not possible to use the pre-compiled contracts, can I edit the geth source code and test it on a private network? If yes, where can I add the relevant functions inside the source?