Skip to content

Commit

Permalink
fix git actions
Browse files Browse the repository at this point in the history
  • Loading branch information
olga24912 committed Aug 14, 2023
1 parent 3ad07e5 commit 9c50765
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions neps/nep-0488.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ A pre-compiled NEAR runtime functions for operations on BLS12-381 curve. It is a

## Motivation

The BLS12-381[^1][^11][^52] is a wildly
used[^2][^3][^4][^5][^6][^7] elliptic curve with 120+ bits of security[^8] which support **the *pairing* operation*.* It is a good alternative for bn254 elliptic curve[^9][^12], which also supports the aggregation, and is currently implemented as NEAR precompiles[^10]. Recent research shows that it contains only <100 bits of security[^13] and we can see the tendency of switching from bn254 to bls12-381(ZCash[^14], Ethereum[^15], Tezos[^16]).
The BLS12-381([^1],[^11],[^52]) is a wildly
used([^2],[^3],[^4],[^5],[^6],[^7]) elliptic curve with 120+ bits of security[^8] which support **the *pairing* operation*.* It is a good alternative for bn254 elliptic curve([^9], [^12]), which also supports the aggregation, and is currently implemented as NEAR precompiles[^10]. Recent research shows that it contains only <100 bits of security[^13] and we can see the tendency of switching from bn254 to bls12-381(ZCash[^14], Ethereum[^15], Tezos[^16]).

The implementation of BLS12-381 curve operations from this NEP as a precompile will allows effective verify the BLS-signature and zkSNARKs. At the moment, BLS signature verification for BLS12-381 is impossible due to the limitation of the gas in 300 TGas for one transaction.

Effective BLS-signature verification based on BLS12-381 elliptic curve will be useful for cross-chain interactions. Some of the blockchains use the BLS signature in the protocols. If we want to implement the clients for this blockchain on-chain in NEAR, we should be able to effectively verify the BLS signature. We can want to have a client for a specific blockchain on Near for creating a bridge to verify the transaction from another blockchain and use it in Near. Examples of blockchains that use BLS signature based on BLS12-381: Eth2.0[^3], Filecoin[^6] and Tezos[^5]. Especially, it is necessary for Rainbow Bridge[^17] to make trustless transfers from Ethereum 2.0 to Near.

zkSNARKs is useful for working with user's private information[^18][^19]. Zeropool[^20] is a project who implements zkSNARKs verifier on Near and is currently based on alt-bn128. Implementation of the precompiles for BLS12-381 can make the projects like that more secure. zkSNARKs is also used in Roll Ups[^21][^22][^23] scaling solutions.
zkSNARKs is useful for working with user's private information([^18],[^19]). Zeropool[^20] is a project who implements zkSNARKs verifier on Near and is currently based on alt-bn128. Implementation of the precompiles for BLS12-381 can make the projects like that more secure. zkSNARKs is also used in Roll Ups([^21], [^22], [^23]) scaling solutions.

This proposal is based on a similar proposal for Ethereum: EIP-2537[^15].

Expand Down Expand Up @@ -482,7 +482,7 @@ Here you can find benchmark test vectors for EIP-2537[^46]. It doesn’t contain

***Tests References:***

We can use all the tests for addition for Ethereum[^47][^48] to check the case with k = 2. Also, we can reuse the `error` points. Can use the vectors for multiexp functions if separately perform multiplication.
We can use all the tests for addition for Ethereum([^47], [^48]) to check the case with k = 2. Also, we can reuse the `error` points. Can use the vectors for multiexp functions if separately perform multiplication.

***Error cases:***

Expand Down

0 comments on commit 9c50765

Please sign in to comment.