diff --git a/EIPS/eip-7212.md b/EIPS/eip-7212.md index 4dd8b758997a78..810beb99b94739 100644 --- a/EIPS/eip-7212.md +++ b/EIPS/eip-7212.md @@ -105,7 +105,7 @@ The `P256VERIFY` precompiled contract is proposed with the following input and o ### Precompiled Contract Gas Usage -The use of signature verification cost by `P256VERIFY` is `3450` gas. Following reasons and calculations are provided in the [Rationale](#Rationale) and [Test Cases](#Test-Cases) sections. +The use of signature verification cost by `P256VERIFY` is `3450` gas. Following reasons and calculations are provided in the [Rationale](#rationale) and [Test Cases](#test-cases) sections. ## Rationale @@ -113,7 +113,7 @@ The "secp256r1" elliptic curve signatures consists of `v`, `r`, `s` components. The signature values in `r` - `s` and the public key coordinates in the `x`- `y` provides direct computations in signing and verification part, so these formats are chose in the input data format which are 32 bytes. -The gas cost has proposed by comparing the performances of the `P256VERIFY` and the `ECRECOVER` which is implemented in the EVM at `0x01` address. It is seen that “secp256r1” signature verification by `P256VERIFY` is ~15% slower (elaborated in the [test cases](#Test-Cases) part) than “secp256k1” signature recovery by `ECRECOVER`, so `3450` gas is proposed by comparison which causes similar “mgas/op” values in both precompiles. +The gas cost has proposed by comparing the performances of the `P256VERIFY` and the `ECRECOVER` which is implemented in the EVM at `0x01` address. It is seen that “secp256r1” signature verification by `P256VERIFY` is ~15% slower (elaborated in the [test cases](#test-cases) part) than “secp256k1” signature recovery by `ECRECOVER`, so `3450` gas is proposed by comparison which causes similar “mgas/op” values in both precompiles. ## Backwards Compatibility @@ -121,7 +121,7 @@ No backward compatibility issues found as the precompiled contract will be added ## Test Cases -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: +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: - [P256Verify Benchmark Test Results](../assets/eip-7212/p256Verify_benchmark_test) - [Ecrecover Benchmark Test Results](../assets/eip-7212/ecrecover_benchmark_test)