-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,9 @@ | ||
--- | ||
eip: <not-assigned-yet> | ||
eip: 7212 | ||
title: Precompiled for secp256r1 Curve Support | ||
description: Proposal to add precompiled contract that allows signature verifications in the “secp256r1” elliptic curve. | ||
author: Ulaş Erdoğan (@ulerdogan), Doğan Alpaslan (@doganalpaslan) | ||
discussions-to: https://ethereum-magicians.org/ | ||
discussions-to: https://ethereum-magicians.org/t/eip-7212-precompiled-for-secp256r1-curve-support/14789 | ||
status: Draft | ||
type: Standards Track | ||
category: Core | ||
|
@@ -123,8 +123,8 @@ No backward compatibility issues found as the precompiled contract will be added | |
|
||
Functional tests are applied for multiple cases in the [reference implementation](#Reference-Implementation) of `P256VERIFY` precompiled contract and they succeed. Benchmark tests are also applied for both `P256VERIFY` and `ECRECOVER` with some pre-calculated data and signatures in the “go-ethereum”s precompile testing structure to propose a meaningful gas cost for the “secp256r1” signature verifications by the precompiled contract implemented in the [reference implementation](#Reference-Implementation). The benchmark test results by example data in the assets can be checked: | ||
Check failure on line 124 in EIPS/eip-7212.md GitHub Actions / Markdown LinterLink fragments should be valid [Expected: #reference-implementation; Actual: #Reference-Implementation] [Context: "[reference implementation](#Reference-Implementation)"]
Check failure on line 124 in EIPS/eip-7212.md GitHub Actions / Markdown LinterLink fragments should be valid [Expected: #reference-implementation; Actual: #Reference-Implementation] [Context: "[reference implementation](#Reference-Implementation)"]
|
||
|
||
- [P256Verify Benchmark Test Results](../assets/eip-x/p256Verify_benchmark_test) | ||
- [Ecrecover Benchmark Test Results](../assets/eip-x/ecrecover_benchmark_test) | ||
- [P256Verify Benchmark Test Results](../assets/eip-7212/p256Verify_benchmark_test) | ||
- [Ecrecover Benchmark Test Results](../assets/eip-7212/ecrecover_benchmark_test) | ||
|
||
``` | ||
# results of geth benchmark tests of | ||
|
@@ -168,7 +168,7 @@ geomean 33.00 7.000 | |
|
||
## Reference Implementation | ||
|
||
Implementation of the `P256VERIFY` precompiled contract is applied to [go-ethereum](https://github.com/ethereum/go-ethereum/compare/master...ulerdogan:go-ethereum:ulerdogan-secp256r1) client to create a reference. Also, an “secp256r1” package has already been included in the [Besu Native](https://github.com/hyperledger/besu-native/tree/main/secp256r1) library which is used by [Besu](https://github.com/hyperledger/besu/blob/main/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECP256R1.java) client. | ||
Implementation of the `P256VERIFY` precompiled contract is applied to [go-ethereum](https://github.com/ethereum/go-ethereum/pull/27540) client to create a reference. Also, an “secp256r1” package has already been included in the [Besu Native](https://github.com/hyperledger/besu-native/tree/main/secp256r1) library which is used by [Besu](https://github.com/hyperledger/besu/blob/main/crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/SECP256R1.java) client. | ||
Check failure on line 171 in EIPS/eip-7212.md GitHub Actions / EIP Walidatornon-relative link or image
Check failure on line 171 in EIPS/eip-7212.md GitHub Actions / EIP Walidatornon-relative link or image
Check failure on line 171 in EIPS/eip-7212.md GitHub Actions / EIP Walidatornon-relative link or image
|
||
|
||
## Security Considerations | ||
|
||
|