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

suggestion for the protocol - make 12 the minimum number of witnesses rather than the exact number #38

Open
thedavidmeister opened this issue Jul 9, 2017 · 4 comments

Comments

@thedavidmeister
Copy link
Contributor

The whitepaper explains that the choice of 12 witnesses is somewhat arbitrary.

The above means that each unit must list its witnesses so that they can be compared. We require that the number of witnesses is exactly 12. This number 12 was selected because:

it is sufficiently large to protect against the occasional failures of a few witnesses (they might prove dishonest, or be hacked, or go offline for a long time, or lose their private keys and go offline forever);

it is sufficiently small that humans can keep track of all the witnesses to know who is who and change the list when necessary;

the one allowed mutation is sufficiently small compared with the 11 unchanged witnesses.

So, the reasons for it being large are to protect the overall reliability of the network, the reasons to keep it small are to make it easier for humans to understand and come to a consensus on who the witnesses should be.

It seems that 12 is already deemed an acceptable minimum for network reliability, and can be a minimum enforced by the protocol.
Why not let the maximum be set by humans?

@tonyofbyteball
Copy link
Member

First, what's the point?
Second, how would it look like? what would the 1-mutation rule be like? how the majority would be defined?
No doubt, more flexibility means more complexity, greater attack surface. It must be justified.

@thedavidmeister
Copy link
Contributor Author

@tonyofbyteball yes that's fair.

the point is to try and make the system of witnesses naturally more decentralised by making the pool of witnesses larger.

personally i think a lot of the difficulty changing witnesses currently comes from the wallet UI rather than the protocol (see linked issue), but this issue is a summary of discussions that have been happening in slack.

@SY-MEDIA
Copy link

As I understand it... This at first may sound like a way to allow a wallet to improve protection as needed, but it could actually also allow for a detrimental concentration of poorly selected witnesses along a particular chain. Seeing as the network as a whole allows an unlimited number of witness, having this 12+1 limit per wallet keeps things flexible and evolving, yet modulated; so witness influence (or possible collusion) is kept consistently inconsequential across the network. The current witness and finality rules are simple, elegant and deliver mutually safe chains.

@thedavidmeister
Copy link
Contributor Author

@SY-MEDIA you are correct in theory, but please also see byteball/obyte-gui-wallet#175

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

No branches or pull requests

3 participants