EIPs icon indicating copy to clipboard operation
EIPs copied to clipboard

How should we pick EIP numbers?

Open SamWilsn opened this issue 3 years ago • 17 comments

In light of recent events, the discussion on how to assign numbers has come up again. This issue is solely for discussing assigning EIP numbers, and other topics will be deleted.

I'll try to summarize the proposals here, in preparation for the next EIPIP meeting. I'm going to give each proposal a short-name for easy reference.

Slug Description
status-quo No change; editors continue to assign EIP numbers arbitrarily, loosely based on the Pull Request number.
seq-bot A bot assigns an EIP number N in the commit when merging a Pull Request, where N is exactly one more than the largest existing EIP number.
rand-bot A bot assigns an EIP number N in the commit when merging a Pull Request, where N is equal to: R plus the lowest unassigned EIP number and R is a random number such that 0 <= R < 100; rerolling if N is an existing EIP.
seq-rand-bot A bot assigns an EIP number N in the commit when merging a Pull Request, where N is equal to: the largest existing EIP number plus a random integer R, where 0 < R < 11.
deny-list Create a known list of vanity numbers that are skipped, otherwise the same as status-quo.

SamWilsn avatar Jul 19 '22 17:07 SamWilsn

This is a competing proposal, if not, at least relevant to #5082

xinbenlv avatar Jul 19 '22 18:07 xinbenlv

Would like to add the following:

Slug Description
eip-number-nft An EIP Number NFT must be burned and linked to the Pull Request. 100 un-owned EIP numbers are assigned to each EIP editor at all times, and a transaction can be submitted that randomly burns one of those and gives a new number to the editor.
eip-number-nft-on-layer2 Identical to eip-number-nft, except on a Layer 2 network (since we don't need all of the security that Ethereum provides). The smart contract would support meta-transactions with OpenGSN, and the editors would be responsible for ensuring that the fees are always paid. A GitHub action could also be added that automatically assigns a random EIP number using its own pool of NFTs. Again, EIP authors get some freedom to pick their numbers.

EDIT: Prototype done (https://github.com/Pandapip1/EIPNumberNFT)

Pandapip1 avatar Jul 19 '22 19:07 Pandapip1

The perception is that "insiders" get treated differently rather than a consistent approach. Random numbers would remove this perception around EIP numbers.

PR/4444 didn't have its number changed even though PR/4439, PR/4440, PR/4441, PR/4442, PR/4443, were all opened within a minute of each other, in possible attempt to farm a number. https://github.com/ethereum/EIPs/pull/4444#discussion_r746638232

PR/4844 didn't have its number changed even though PR/4843 was missing for unknown reasons. (GitHub can remove spam issues/PRs) https://github.com/ethereum/EIPs/pull/4844#issuecomment-1051648685

PR/4888 number was changed to a non-PR number for a manually created PR for a too early draft https://github.com/ethereum/EIPs/pull/4888#discussion_r823565852

PR/5000 was requested to change its number for a bot created PR with spam issues prior and another editor merged the PR later without a number change https://github.com/ethereum/EIPs/pull/5000#discussion_r850655921

PR/5222 number was changed to a non-PR number https://github.com/ethereum/EIPs/pull/5222#discussion_r918475494


My vote is for rand-bot as it is less gameable and removes EIP editors from assigning numbers and any perception of fairness.

This doesn't preclude eip-number-nft on Layer 2 (not a sidechain) to offer low numbers to EIP authors if they prefer, with the potential to provide funding to make EIP editing sustainable.

rand-bot should start at a higher number, say 6000 to leave plenty of room for eip-number-nft

abcoathup avatar Jul 20 '22 02:07 abcoathup

@abcoathup while I 100% agree with your standpoint to make it less gamable and fairer, I don't think it would be trivial to maintain rand-bot to ensure such mechanism.

xinbenlv avatar Jul 20 '22 02:07 xinbenlv

I, unfortunately, have volunteered to write and maintain whatever bot we agree on.

SamWilsn avatar Jul 20 '22 03:07 SamWilsn

@SamWilsn of course, huge respect! What I tried to say is that rand-bot is hard to maintain a fair randomness that's resistant to tempering.

xinbenlv avatar Jul 20 '22 03:07 xinbenlv

@Pandapip1 Was there a reason you didn't include a trustless/permissionless NFT sale option? I don't see any reason why editors should have privileged access when we could build the system to be 100% autonomous/permissionless.

MicahZoltu avatar Jul 20 '22 05:07 MicahZoltu

I'm generally against requiring all authors buy an NFT, so I think even if we did auction off old unused numbers we still would need a mechanism for number selection for people who didn't buy an NFT. For that problem, I like rand-bot. @SamWilsn Didn't you have two versions of the rand bot, one that guarantees larger numbers are newer and the other which guarantees that all numbers are eventually used (no holes)?

MicahZoltu avatar Jul 20 '22 06:07 MicahZoltu

@Pandapip1 Was there a reason you didn't include a trustless/permissionless NFT sale option? I don't see any reason why editors should have privileged access when we could build the system to be 100% autonomous/permissionless.

I thought that was implied. I'll make it explicit.

Pandapip1 avatar Jul 20 '22 11:07 Pandapip1

@SamWilsn of course, huge respect! What I tried to say is that rand-bot is hard to maintain a fair randomness that's resistant to tempering.

It doesn't have to be perfectly resistant to tampering. It has to be more resistant to tampering that the current system which is clearly not resistant to tampering.

tjayrush avatar Jul 20 '22 11:07 tjayrush

Edited the EIP Number NFT option to include a better option (IMO).

Pandapip1 avatar Jul 20 '22 17:07 Pandapip1

@SamWilsn Didn't you have two versions of the rand bot, one that guarantees larger numbers are newer and the other which guarantees that all numbers are eventually used (no holes)?

Yep, I forgot to write it down. I've added seq-rand-bot to cover that case.

SamWilsn avatar Jul 20 '22 17:07 SamWilsn

we still would need a mechanism for number selection for people who didn't buy an NFT

The previous iteration did have a method to allow this, but I've had a better idea. Edited to include this better idea.

Pandapip1 avatar Jul 20 '22 17:07 Pandapip1

I'm against creating a ban list as it arguably won't work as number aestetic perception is subjective. E.g. the folks at Gnosis somehow got a palindrome 5005 while 5222 was argued away for being "too nice".

As design criteria, I'd aim for making the number assignment as little arbitrary (no human decides) and as little human controllable (no human can hack) as possible. If beautiful numbers arise from this process and we can all agree it was just luck, that's good.

TimDaub avatar Jul 24 '22 09:07 TimDaub

There has been no activity on this issue for 1 week. It will be closed after 3 months of inactivity.

github-actions[bot] avatar Aug 26 '22 00:08 github-actions[bot]

I think we've selected seq-rand-bot

Pandapip1 avatar Aug 26 '22 16:08 Pandapip1

@SamWilsn just double checking this is the case?

Pandapip1 avatar Aug 26 '22 16:08 Pandapip1

There has been no activity on this issue for 1 week. It will be closed after 3 months of inactivity.

github-actions[bot] avatar Sep 03 '22 00:09 github-actions[bot]

There has been no activity on this issue for 1 week. It will be closed after 3 months of inactivity.

github-actions[bot] avatar Sep 18 '22 00:09 github-actions[bot]

This is in progress.

Pandapip1 avatar Sep 18 '22 16:09 Pandapip1

There has been no activity on this issue for 1 week. It will be closed after 3 months of inactivity.

github-actions[bot] avatar Sep 26 '22 00:09 github-actions[bot]

This issue was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback.

github-actions[bot] avatar Nov 15 '22 00:11 github-actions[bot]