vyperlang/vyper

VIP: Add support for Alt_Bn128 precompile curve operations

Open

#1.650 geöffnet am 24. Okt. 2019

Auf GitHub ansehen
 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)Python (849 Forks)batch import
VIP: Approvedenhancementhelp wanted

Repository-Metriken

Stars
 (4.710 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 10T 21h) (34 gemergte PRs in 30 T)

Beschreibung

Simple Summary

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).

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.py

Backwards Compatibility

No backwards incompatibilities

Dependencies

No dependencies

Copyright

Copyright and related rights waived via CC0

Contributor Guide