vyperlang/vyper

VIP: Add support for Alt_Bn128 precompile curve operations

Open

#1.650 aberto em 24 de out. de 2019

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)Python (849 forks)batch import
VIP: Approvedenhancementhelp wanted

Métricas do repositório

Stars
 (4.710 stars)
Métricas de merge de PR
 (Mesclagem média 10d 21h) (34 fundiu PRs em 30d)

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

Guia do colaborador