A critique of our article on BIP 16 and 17 was its characterisation as a vote (the other being the article was not technical enough!).
<someone> genjix: The reason for the coinbase tags is _NOT_ to conduct a vote (if it were, I suppose the software would also tally the result) but simply because there needs to be a hash power measurement because the new rules are only safe if the majority of all future hashpower enforces them.
The position is understandable. But I strongly disagree. The decision is exactly and correctly characterised as an election. Each unit of mining power is a vote. Satoshi called it one-CPU-one-vote.
If the fundamentals of bitcoin changed too radically in a disagreeable manner, users could use their mining power to veto the change. This power is the bulwark against corruption and bitcoin’s vox populi. This power is bitcoin’s system of checks and balances. This power keeps bitcoin democratic.
We are standing at a critical juncture. Decisions are mired in technical baggage. The way forwards is unclear, and great care should be taken. Some developers argue that with the issues being highly complex, that users have no say in the system’s core development. Better to trust us, they say. Better we make the choice, they say. I could not disagree more. Far better that core changes are decided in a highly public and visible manner. If it costs the developers precious time sharing their nous in excruciating detail to a glib audience, then so be it. That’s the cost of an incorruptible system.
Free and opensource software is more than: here is the software and goodbye. More than throwing source-code to the dogs. It is a process of community building. A philosophy of outreach and educating your users. That’s how users become contributors and eventually developers. There are no shortcuts on an epochal journey.
Personally I feel perhaps this slow process may have been rushed. Mistakes were made circumventing the conventions. But this was the community’s first large decision. With the lessons learnt, new conventions are being established and new paths are being forged.
From where I’m standing, the future looks positive. How then to resolve an issue when the voters are uninformed? Certainly efforts to inform are positive. It’s a good step. But one step of many.
An interesting proposal
We could ask the voters to place their trust in a decision committee. I really like this idea. It is incorruptible as the voters voluntarily relinquish their choice to representatives. And the committee will be sufficiently informed to make an adequate decision. The issue would be decided by people very familiar with the protocol and proposals.
Michael Marquardt (theymos) proposed this idea. I am a strong supporter of Michael’s idea. It solves the transparency problem through a public process, and allows people to make an informed decision by willingly allowing others to choose for them.
Michael suggests compiling a list of everyone intimate with the bitcoin protocol to invite to a two-week email discussion. After those two-weeks a vote is taken. It will be the job of the champions of each idea (BIP 16, BIP 17 and no change) to win over the committee into supporting them.
For an idea to gain a strong foot-hold, it must gain strong developer support. More than two-thirds in favour. If an idea has necessary support, bitcoin clients will be programmed to apply the new rules for 3 months in the future. Miners will be forced to comply otherwise their blocks will be rejected by new clients. Without enough support, ideas are simply shelved with the option for future re-introduction.
To prevent strategic voting, votes should be anonymous. A good property of a voting system is when people vote based on their true thoughts for their favourite candidates, rather than thinking strategically. This is why Anglo-style voting systems lead to two-party states biased towards large groups whereas the more common proportional representation leads to proliferation of parties and allows smaller groups fair representation. Anglo-style systems lead to strategic votes that do not reflect voter sentiment. The vote should be 1-person 1-vote and anonymous.
Voters should have the ability to abstain. If one does not have a strong opinion, they should be able to defer their vote. Deferring differs from voting to table a motion. Deferring is asking to have your vote not placed in the pool to be counted. If ones vote is not placed in the pool, then it will not affect the final proportions of people in favour of various viewpoints.
The people with the mining power (the users and pool operators) voluntarily give up their vote. The developers cannot blatantly exclude viable developers from the process based upon that person’s persuasion. This is the check against their corruption.
In order to keep that process viable, we need to design it to be open and transparent from the beginning. It must be engineered with the spirit of good intentions, and carried along with pensive respect. The selection process must be highly public and visible. Even community-led.
I propose Michael Marquardt (theymos), the idea’s originator, as the organiser. We meed a trusted organiser. They will be entrusted with running the system to take the votes. They will organise the platforms and structure the discussions to promote neutrality.
Michael Marquardt (theymos) is a trusted long-term member of the community. Michael’s running of blockexplorer qualifies him technically; he is intimate with the code and issues. He has demonstrated a neutral objective character as the moderator of the bitcointalk forums. I vouch for his good character.