You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for precompiled opcode for alt_bn128 pairing calculation
Motivation
We already have support for ecadd and ecmul which perform the corresponding alt_bn128 curve operations (and which should perhaps be renamed to bn128_ecadd and bn128_ecmul), but we do not have support for bn128 pairing operations, which allows the verification of Zero-Knowledge proofs using the alt-bn128 curve, such as in zk-SNARK implementations. This would allow ZKP verifier contracts to be created in Vyper (such as the ones ZoKrates can create).
Note: might be best to add the gas cost change via #1230 ruleset switch so it tracks appropiately under both Istanbul and pre-Istanbul rules
fubuloubu
changed the title
Add support for Alt_Bn128 precompile curve operations
VIP: Add support for Alt_Bn128 precompile curve operations
Oct 27, 2019
Simple Summary
Add support for precompiled opcode for
alt_bn128
pairing calculationMotivation
We already have support for
ecadd
andecmul
which perform the correspondingalt_bn128
curve operations (and which should perhaps be renamed tobn128_ecadd
andbn128_ecmul
), but we do not have support forbn128
pairing operations, which allows the verification of Zero-Knowledge proofs using thealt-bn128
curve, such as in zk-SNARK implementations. This would allow ZKP verifier contracts to be created in Vyper (such as the ones ZoKrates can create).Specification
alt-bn128
elliptic curve pairing operations were already added as of Byzantium via EIP-197 (with gas costs to be updated in Istanbul via EIP-1108). A reference implementation is provided here: https://github.com/ethereum/py-evm/blob/master/eth/precompiles/ecpairing.pyBackwards Compatibility
No backwards incompatibilities
Dependencies
No dependencies
Copyright
Copyright and related rights waived via CC0
The text was updated successfully, but these errors were encountered: