10

My friend doesn't listen to his head of engineering and doesn't fully understand how decentralized consensus based systems like Bitcoin really work. He seems to think a new untested/buggy implementation with conflicting consensus rules can be made to work with the existing implementations that follow existing consensus rules.

What advice can I give to him?

2
  • 4
    To your friend: "listen to your engineers or they'll quit"; To his engineers: "FYI: there are other crypto jobs where you'd be listened to" ¯_(ツ)_/¯
    – meeDamian
    Mar 19, 2017 at 7:17
  • come on... can you keep the political attacks on other channels - this isn't even a technical question so much as it's rehashing what you do on twitter :( Mar 21, 2017 at 18:54

3 Answers 3

5

He should listen to his engineer. I think that's just about it.

1

You may be approaching this from the wrong angle, if you want to directly jump to giving your friend advice.

It is my experience that conversations addressing strong convictions that aren't based on evidence can easily make people feel patronized or even antagonized. You'd have to find time with your friend to really share opinions in a non-confrontational way. This works best in a private setting and with a small group.

Try to create an open-minded atmosphere. You must be willing to listen to your friend, in order to find out what his understanding of the situation is and what he hopes to achieve. You may need to allow them to discover for themselves that they don't have a full understanding of the situation. Only when they actually question their conviction, there is a chance to introduce some new thoughts without them being dismissed. This is when you offer them a few points or question to think about, but don't ambush them with a compendium of information.

Alternatively, if your friend has very little time, you could get someone to compile a succinct yet encompassing report with presenting a balanced overview of all important aspects of the situation.

Alas, it may be that your friend will not be convinced by your effort. He may already assessed the available evidence and come to a different conclusion, or perhaps have different priorities in this situation than you. At that point you might find it expedient to agree to disagree, and let them make their own decisions. Perhaps they turn out to be right, or they'll have a chance to learn from their mistake.

0

People regularly confuse definitions of the word 'consensus'. Consensus, the word generally used in conversation, can be construed as agreement reached after negotiation. The term consensus in computer science applies multi-agent systems, and is everyone agreeing on something before all enforcing it. You don't 'reach consensus' in computer science consensus, you enforce it.

Knowing this, the ability to change consensus rules in multi-agent systems is therefore difficult. In order to change consensus rules, you even need to have a consensus mechanism for how you change. There are two main ways you change consensus in a multi-agent system. The easy way when there is no damage to be caused by stopping and starting the system, is to simply stop all agents, and replace all of the consensus rules with new consensus rules, and re-start the system. In practice, however, with a consensus system like bitcoin, you don't have any control over the agent software (i.e. the client) that people are using. They might, or might not, agree to your consensus change. The second way is to have a consensus changing mechanism that allows the agents to change their rules over time, and only after an agreed time or agent version (again, consensus), and start enforcing the new consensus rules.

If you don't follow either of these processes, you will have agents that do not agree to your new consensus rules. Whether you stop and re-start with the new rules (hard fork) or roll the changes out over time (can be soft or hard fork), if the agents in your system don't agree to the new consensus rules you're applying, you will never be sure that validation is occurring consistently. In the case of bitcoin, where validation leads to blocks being added to the blockchain, if these validation rules are not consistently followed, nodes with different consensus rules will reject changes being applied by other agents, and start building on alternate blockchains. This leads to a fork of the chains, where the different consensus systems only build on blocks that meet an agents consensus rules are considered valid. There could be multiple chains caused in this eventuality.

In order to make a consensus change in a multi-agent system, you have to actually get agreement with the agents of your system (tough work) before you implement the change, and then hope that the agents agree with your consensus changes and change them in their agent software (i.e. their client). So you need to ensure that your consensus changes are rigorously tested, because once they're out in the wild, it's very difficult to change them, even if there is a critical fault.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.