Adds support for secp256r1
signature verification via a new precompile contract.
secp256r1
(or P-256
) is a
common elliptic curve used in signature schemes, including by
Apple’s Secure Enclave,
Webauthn,
Android Keystore,
and Passkeys.
EIP-7212/RIP-7212
adds a new P256VERIFY
precompile contract at address(0x100)
, enabling
signature verification at a cost of 3450
gas.
EIP-7212 enables transaction signing support for Passkeys and other keystores,
hardware-based signing keys, and improved UX.
FORK_TIMESTAMP
in the integrated EVM chain, add precompiled contract
P256VERIFY
for signature verifications in the “secp256r1” elliptic curve at
address PRECOMPILED_ADDRESS
in 0x100
(indicates
0x0000000000000000000000000000000000000100
).
r
and s
values are in (0, n)
(exclusive) where n
is
the order of the subgroup.(x, y)
is on the curve and that both x
and
y
are in [0, p)
(inclusive 0, exclusive p) where p
is the prime field
modulus. Note that many implementations use (0, 0)
as the reference point at
infinity, which is not on the curve and should therefore be rejected.P256VERIFY
precompiled contract is proposed with the following input and
outputs, which are big-endian values:
hash
r
component of the signatures
component of the signaturex
coordinate of the public keyy
coordinate of the public keyP256VERIFY
is 3450
gas.