Skip to content

Conversation

yperbasis
Copy link
Member

Currently EIP-7702 mentions that the validity of s is based on EIP-2 (s <= secp256k1n/2), but EIP-2 itself is a tweak of the pre-Homestead validity check (0 < r < secp256k1n, 0 < s < secp256k1n). See ValidateSignatureValues in geth.

@yperbasis yperbasis requested a review from eth-bot as a code owner September 5, 2024 14:18
@github-actions github-actions bot added c-update Modifies an existing proposal s-review This EIP is in Review t-core labels Sep 5, 2024
@eth-bot
Copy link
Collaborator

eth-bot commented Sep 5, 2024

File EIPS/eip-7702.md

Requires 1 more reviewers from @adietrichs, @lightclient, @SamWilsn, @vbuterin

@eth-bot eth-bot added the a-review Waiting on author to review label Sep 5, 2024
* `r`: unsigned 256-bit integer.
* `s`: unsigned 256-bit integer and value less or equal than `secp256k1n/2`, specified in [EIP-2](./eip-2.md).
* `r`: unsigned 256-bit integer and `0 < r < secp256k1n`.
* `s`: unsigned 256-bit integer and `0 < s <= secp256k1n/2`, specified in [EIP-2](./eip-2.md).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `s`: unsigned 256-bit integer and `0 < s <= secp256k1n/2`, specified in [EIP-2](./eip-2.md).
* `r`: unsigned 256-bit integer and `0 < r < n`, where `n` is the order of the base point of secp256k1 as specified by [SEC 2:](http://www.secg.org/sec2-v2.pdf).
* `s`: unsigned 256-bit integer and `0 < s <= n/2`, specified in [EIP-2](./eip-2.md).

@lightclient
Copy link
Member

I'm planning to simplify the validity checks for 7702 in this PR, so I don't think it's necessary to make this change.

somnathb1 pushed a commit to erigontech/erigon that referenced this pull request Sep 12, 2024
Check (in the txpool and in the main code) that an EIP-7702 transaction
is
[valid](https://eips.ethereum.org/EIPS/eip-7702#set-code-transaction),
namely that:

- `to != nil`
- `len(authorization_list) != 0`
- `authorization.chain_id` is `uint256`
- `authorization.nonce` is `uint64`
- `authorization.address` is `bytes20`
- `authorization.y_parity == 0 || authorization.y_parity == 1`
- `authorization.r` is `uint256`
- `authorization.s` is `uint256` and `authorization.s <= secp256k1n/2`

This PR doesn't implement ethereum/EIPs#8865 or
ethereum/EIPs#8845
somnathb1 pushed a commit to erigontech/erigon that referenced this pull request Sep 12, 2024
Check (in the txpool and in the main code) that an EIP-7702 transaction
is
[valid](https://eips.ethereum.org/EIPS/eip-7702#set-code-transaction),
namely that:

- `to != nil`
- `len(authorization_list) != 0`
- `authorization.chain_id` is `uint256`
- `authorization.nonce` is `uint64`
- `authorization.address` is `bytes20`
- `authorization.y_parity == 0 || authorization.y_parity == 1`
- `authorization.r` is `uint256`
- `authorization.s` is `uint256` and `authorization.s <= secp256k1n/2`

This PR doesn't implement ethereum/EIPs#8865 or
ethereum/EIPs#8845
@yperbasis
Copy link
Member Author

Closing in favour of #8845

@yperbasis yperbasis closed this Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-review Waiting on author to review c-update Modifies an existing proposal s-review This EIP is in Review t-core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants