Witnesses in Byteball
Witnesses play a essential role on the network, but their power is very limited What the??
When some role in a system is essential, we often think that role has to have some special power over the system. But this is not the case.
Any user have the same power a witness has: posting units into database. The difference: user address is not written on units witnesses lists.
Who controls witnesses lists?
The user who post the unit, with some restrictions.
What restrictions?
Your witnesses list has to be a compatible parent, this is, your witnesses list has to be at least same 11 witnesses as the parent one.
So, I have no freedom to choose more than one witness...
Of course not. That makes no sense. If any user can choose their own witnesses, why having a common ledger then?
Any user acts as a witness for himself because when he posts a unit is declaring their view of the ledger.
He knows their view of the ledger is the real one because he checks if majority of witnesses units posted on it.
Let's back to the power of witnesses
A single witness is expected to do two things:
- Declaring their existence and their view of the ledger by posting frequently enough (they are incentivized to do so).
- Not posting on an attacker shadow chain.
If an attacker builds a shadow chain (with or without some double spend) and tries to merge with the main chain, users will reject that chain because it has not any witness unit on it.
A single witness can not do any harm to the network, even if it doesn't behaves like is expected, because it is easily replaceable. Network will continue running under those conditions.
And, and, a group of witnesses?
A group of witnesses, only if collude, could:
- Censor transactions.
- Block all attempts to remove them from witnesses list.
How is that? Could they form a cartel to block any attemps to replace them?
Yes. This is very unlikely to happen since they should care about their reputation.
Seems like an unrecoverable error...
No, this unlikely state of the ledger is contemplated on the whitepaper.
So, witnesses form a cartel because they don't want to be replaced, then what?
Schism. The protocol is ready to fork in a easy and panicless way.
Schism? Forking??
All units posted has an "alt" field. New good units would have a different "alt " field and a different witnesses list.
So users would have two coins with same balances at a certain point. Also all data until the fork will be available to both.
Then, market would decide which is the right one :)
Ok, clear. So what happen if all witnesses stop posting?
Transactions would not confirm, and nobody would know if their ledger view is the same than rest of nodes.
So witnesses choose which transactions confirm?
They could do it (because any node can choose the parent of the unit is going to post), but it would be immediately visible on the DAG, hence they would lose all trust they had.
Trust is something hard to gain but very easy to lose.
Is it all a matter of trust? I thought it was a trustless system.
Byteball is not a trustless system. However, the entity which roots the system into reality has almost no power except saying "I am here, this is what I see". Even then, could be replaced if there was another witness with more reputation and more trustable.
Consequence of this, any user can trust the witnesses list of the last confirmed unit if he does not know who to trust.
Read more: https://busy.org/@henric/byteball-misunderstood-fundamental-aspects
This has to be one of the best clarifications of witnesses' role on the Byteball network I've seen to date!
Thank you for posting this explanation, that raises and answers some of the more common questions and addresses the misconception that witnesses is just a new privileged class of users that replaces miners in PoW-based projects.
It's not a false statement that a colluded group of witnesses can:
But if they do so, they would break the network since other users would continue to take as parents the censored units. These users would never see their transactions confirmed and would have to take an action: either use a modified wallet that follows the same censorship rules, either switch to an alt network with a new set of witnesses.
Thanks for the clarification, and specially for building betting bot :)
I like the format of the article, it makes it easy for new users to get a picture about Byteball witnesses.
To me the "Byteball is not a trustless system" sounds a little harsh. Peer to peer transactions are still carried out in a trustless way: you don't have to trust the peer you deal with. You trust the Byteball network (or an external oracle), but that's the same with Bitcoin or any other crypto, you have to trust that 51% of the mining power is provided by good miners, but there they are anonymous so if they misbehave you can only guess who. In Byteball, witnesses are supposed to be public figures, so if they misbehave, their reputation is ruined. Also in Byteball users can actually chose witnesses that are geographically distributed and operate in different countries and have little interest to form a cartel to ruin the network. You can't say that about Bitcoin for example.
You are right. I will write my next article about that.
Thank you so much.
Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 5 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.
I upvoted your contribution because to my mind your post is at least 9 SBD worth and should receive 125 votes. It's now up to the lovely Steemit community to make this come true.
I am
TrufflePig
, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!Have a nice day and sincerely yours,
TrufflePig
Congratulations @barborrico! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Nice work @barborrico !
Just a little correction, if all witnesses stop to post units, user units will be validated by other users posting units. Users help each other.
In plus of validating users units as normal users, witnesses help users as milestones/lighthouses to find the path until the genesis unit. Once the witnesses' majority crossed, the last witness crossed acts like a shortcut until the genesis unit.
If witnesses stop posting, users will take a lot of time to reach the genesis unit... or the last witnesses' majority and so a shortcut to the genesis unit. The genesis unit could be really far away.
if witnesses stop posting, the stability point would not progress meaning transactions would not confirm. The DAG would still grow if new units are added but in case of double spends there would be no consensus which one to pick.
I thought without witnesses byteball is open to sybil attacks. Is it not, really?
Anyway, I try to write with general understanding in mind rather than techical accuracy. For that, you are better than me for sure.
You're better than you think @barborrico. I'm a bit drafty and @byteball.market's clarification is better than my own answer 😉
Indeed, stability point would not progress.
The user, if honest, could - theoritically - discover a partial order at the cost of a big travel back in time until last witnesses posts. This effort could keep the unit unsable a lot of time independently of new posted units by other users.
Worst, there will have no definition of rendez-vous point allowing user to synchronize/merge his path until the genesis unit with a stable chain. Result will be total chaos and systematic redefinitions of the best path will occur. By itself, the path is not deterministic and bifurcations are always possible without the witnesses.
In plus, if there are suspicious units posted that require the total order to be deemed valid, it will be the drama.
I need a coffee 😪
Thank you both !
Congratulations @barborrico! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Congratulations @barborrico! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Congratulations @barborrico! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard: