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

Add functionality to wallets that makes adoption of new witnesses on the network easier #175

Closed
thedavidmeister opened this issue Jul 9, 2017 · 8 comments

Comments

@thedavidmeister
Copy link

Currently the wallet lets you configure your own witnesses, but as there is a 1-change rule on witnesses you can only change 1 witness through the UI.

Given that:

  • The user of the wallet cannot easily see/understand the DAG holistically, as a human
  • The user has no idea what witnesses other people are voting for
  • A default set of witnesses is being pushed by the hub, but hubs have no more ability than users here

It seems unlikely that the set of witnesses can change organically away from the current highly centralised (literally all run by tony) default set.

I thought of two things that could change at the wallet level to increase the ability for the network to adopt now witnesses:

  • Let users set desired witnesses and then let the wallet calculate the optimum witness list for each transaction from this
  • Don't ship with a hardcoded list of witnesses, let the wallet match the current popular vote by default

So, the idea is that if you have a list of desired witnesses there should be a deterministic algorithm for any wallet that allows it to diff the currently accepted witness list and the desired witness list and compare this to the votes other wallets are casting on the DAG for new witnesses and then vote accordingly for all new transactions to maximise the likelihood of 1 witness changing to one of the witnesses on the desired list.

@ByteFan
Copy link
Contributor

ByteFan commented Jul 9, 2017

I fully agree there can't be no real adoption by end users in the witness list due to the fact that they are shipped harcoded and that, in any way, end users have only one single slot to express their vote: due to the 1 mutation rule all end users have to change the same witness (from the default list) in their wallet or some of their units may not find a suitable parent on the DAG.

As a result no independant witness will never emerge because all independant witnesses can only substitute the same one in default witness (currently the one starting with JED...).

At the moment there is no way to introduce a new witness. Even Tonych himself can not change the default list now without causing troubles to part of the end users, thoses who have already voted on the JED... slot (1 mutation rule again). The system is fully locked.

However, I am not sure end users have any desire for any witness anyway. They just have the desire to feel confident with the network and its technology. So I think a random system, selecting n witnesses among a pool of m, for each post would be much more efficient and secure (an attacker may not be easyly cheat randomness).

@thedavidmeister
Copy link
Author

@ByteFan makes sense to me, then your witness list that appears in the wallet would be the m that n is selected from i assume.

worth noting that my suggestion is just a better UI for the wallet, whereas your proposal is a low level change to the protocol itself.

@ByteFan
Copy link
Contributor

ByteFan commented Jul 9, 2017

True. I don't think end users really wishe to interact with the witness list (but maybe I am wrong).

@thedavidmeister
Copy link
Author

@ByteFan cashback witness is a perfect example of why a user might want to interact with the list

or, alternatively, a witness might be able to demonstrate superior reliability, such as through the development of dedicated hardware or exceptional uptime over a long period of time.

consider the rough analogy of Google's 8.8.8.8 for DNS that are commonly entered manually by people when other options fail

@thedavidmeister
Copy link
Author

@ByteFan also you may be interested in byteball/ocore#38

@ByteFan
Copy link
Contributor

ByteFan commented Jul 9, 2017

There can be a extremum point where the 12 witnesses would be 12 differents cashback witnesses ranked by cashback decreasing return yes.

@thedavidmeister
Copy link
Author

This process cannot be safely automated, for example if most users start autoupdating their witness lists to match the lists of most recently observed units, just to be compatible, this can be easily exploited by an attacker who floods the network with his own units that gradually change the predominant witness list to something of the attacker’s choosing. While the maximalist recommendation could be “only edit witness lists manually”, which is too burdensome for most users, a more practical approach to witness list management is tracking and somehow averaging the witness lists of a few “captains of industry” who either have interest in caring for the network health or who have earned a good reputation in activities not necessarily connected with Byteball. Some of them may be acting witnesses themselves. Unlike witness lists, the lists of captains of industry don’t have to be compatible, and failing to update the list frequently enough doesn’t have any immediate negative implications such as being unable to find compatible parents and post a new unit.

I think that a pre-shipped list of default witnesses is totally missing the mark of the intention behind "somehow averaging the witness lists" and floating some ideas for how we can move towards a better averaging algorithm in the standard wallet software.

@tonyofbyteball
Copy link
Member

Since a few versions ago, it's easy to change the list by accepting the offers sent from the hub.

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