vyperlang/vyper

VIP: Add support for Alt_Bn128 precompile curve operations

Open

#1 650 ouverte le 24 oct. 2019

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)Python (849 forks)batch import
VIP: Approvedenhancementhelp wanted

Métriques du dépôt

Stars
 (4 710 stars)
Métriques de merge PR
 (Merge moyen 10j 21h) (34 PRs mergées en 30 j)

Description

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

Guide contributeur