Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eip-0038 Partial Voting #81

Open
wants to merge 33 commits into
base: master
Choose a base branch
from

Conversation

WilfordGrimley
Copy link

No description provided.

@nitram147
Copy link
Contributor

I just ran over your proposal (mainly over it's first part) by eyes, so I'm not going to comment on any implementation-specific details but will leave there my overall point of view.

Idea in general is good (motivation section), but I don't see a reason for any type of forking for achieving the results that you had outlined as the goal of your proposal in it's motivation section.

Here's my way of achieving nearly the same results without the need for any type of forking:

To my knowledge, the miner's voting data is part of a blockheader. Currently, mining pool send blockheader data together with probably some range of nonces to be tried [ I don't have any deep implementation details knowledge about the working of Stratum protocol ] to each of it's individual miners. Each of the miners tries all of the nonces from the specified range, and in case he find some "good enough" solutions (less difficult then required by consensus but still hard to find), he then send those so-called "shares" back to mining pool in order for pool to be able to deduce his hashrate without need to trust the miner.

Currently, when the mining pool is validating shares received from some of it's miners, pool checks whether these shares were calculated over the correct blockheader and whether miner tried nonces from the range he obtained from the mining pool via the stratum protocol.

If you want to empower individual miners mining in the mining pool with ability to vote for themself, there's only one simple thing which need to be changed - mining pool should allow miner's to send shares calculated for "almost the same" blockheader with only different value entered in it's votes section - this way would be almost more trust less because if miner find some block (where the coinbase transaction rewards go to pool address) it's in the pool best interest to relay this transaction into network (and in case the pool refuse, individual miner can do it itself). Mining pool which would refuse to accept shares with different setting in "votes" section than the pool's owner attitude would loose it's miners because they will just move to another pool which will accept their shares. So via introduction of this simply change in the shares validity verification procedure on the mining pool server part and small addition for ability to override blockheader votes section on miner's stratum client part we can achieve similar results as you've outlined in the motivation part without need for any type of forking.

Statistically speaking, any individual miner preference will be take into account overtime - yeah if single miner mining for some small pool will have be the only one trying to vote for yes, it would be with high probability not taken into account at all - but even if it was taken (in case of your hardfork solution) it would change nothing about the voting outcome. When there is a small but not negligible minority of miners voting for something, it would be based on static, surely be taken into account.

Using the solution I outlined in the lines above, there's no more need for any inner pool offchain voting - which would also be not trust less at all and will require mining pool to code some interface with solution for that inner pool voting...

Copy link
Contributor

@nitram147 nitram147 left a comment

Choose a reason for hiding this comment

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

Please read my comment above and think about the requirement for forking when the same good idea which you've outlined in the motivation section of this proposal could be achieved without the need for any type of forking at all.

@WilfordGrimley
Copy link
Author

WilfordGrimley commented Oct 17, 2022 via email

updated date
Rewording for clarity
spelling, rewording for clarity
spelling, rewording
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants