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.


Actually, to eliminate the problem of strategic voting, in votes where there are more than two choices, you need to employ a system of voting like the Condorcet method. In the Condorcet method you rank the choices in order of preference. So, a vote on this issue might be “BIPx, no change, BIPy” to reflect the most desirable outcome being BIPx and the least desirable BIPy. The voter is also expressing their position “no change” is better than BIPy.
Seconded.
Here is a website that lets you create and administer voting using the condorcet method (with a choice of various completion rules): http://www.cs.cornell.edu/w8/~andru/civs/
This website even supports proportional representation outcomes. Perhaps a system could be devised that would allow miners to elect a committee in proportion to their proven hashing power. Then that committee would study the topic and take a vote on a direction (also using the condorcet method).
Looks excellent.
I’m strongly against any kind of centralization of power. Once there is a small group of people that holds a lot of power that can be auctioned off, the actions are surely and inevitably to follow. That’s how the government in the real world became so big and so corrupt.
If we don’t want the same inevitable end result with Bitcoin we have to do everything to prevent any centralization of power. At least not without explicit consent by everyone affected (good luck getting that with Bitcoin) and in written contracts through which people in power can be held accountable.
So our solution to the problem of the US Federal Reserve having too much consolidated power is to create a World Federal Reserve?
I mean, what is ultimately to stop a BIP 45 sometime in December of this year or BIP 450 in ten years from saying, “Oh, and by the way, instead of halving the reward this time around, we decided we’re not going to halve it anymore. But you can just keep using the old client if you want it to be that way.”
I realize no one is in favor of the above statement, but that is RIGHT NOW. Who knows who will own and mine Bitcoin in the future and what kind of influence they will have ten years from now. I can definitely see miners wanting the ability to inflate the currency in the future to combat those of us that were “early adopters” who are guilty of possessing enough intelligence to realize Bitcoin is the world’s future currency.
I’m conflicted here, because I don’t think it’s fair (or even a good idea) to make miners and mining pools have to vote on adoption or not, but I also don’t like the idea of a technological coterie that makes overarching decisions for “the good of all”.
I miss the old Bitcoin. Back when miners just mined and developers merely developed and issues like this weren’t spread from development to the mining forums. I have to place some blame on Luke for it, which is why I left Eligius today. As much as I don’t like what Gavin did, Luke got the miners involved in this process, and frankly, I don’t want to be.
I didn’t care when he used my hashing power to attack alternate chains, because they are all scams, IMHO, but putting Gavin in a position where he has to defend his development decision to miners? Making this a public issue where people now have to make decisions based on which “cult of personality” they best prefer among developers? This is silly nonsense. This is what politicians and lobbyists do.
Anyway, I’d prefer the developers do whatever voting they have to, then make the results public and the miners will adopt based on that. Don’t put messages in your forum signatures telling us that we have to vote or play politics with the other miners. That is embarrassing.
I can’t speak for the other miners, but I started using Bitcoin to avoid politics, not embrace it.
Agreed…
How can you compare Gavin, Luke, other developers with regular people on the forum… It’s irrational… Developers see miles ahead of Bitcoin future and 95% people on this forum barely know what is the difference between sha256 and md5 (including myself).. You want to bestow these people with voting power..
Trust me… you never want to live in a country that is run by people… In our case it will mean chain reset every other month by voting and etc…
The only way we, Bitcoiners, can survive – is to follow the brightest mind(s). It’s better that there are several of them who can see the path in the fog of unknown…
We as, human race, face the same problem…
I never got this democracy bubble… Did you ever see this working…
All democracy boils down to “Me and you have same voting power, in spite of me being idiot and you being wise”
I don’t want to live in democracy, I want to trust competent people… like doctors…
It was **Gavin** who “got the miners involved”. With BIP16 he chose a “trick” that would let us avoid upgrading all the clients, but at the expense of leaving the decision up to the miners.
BIP16 is specifically designed to transfer validation authority from clients to miners:
http://bitcoin.stackexchange.com/questions/2751/why-are-p2sh-and-chv-forward-compatible-but-not-backward-compatible
This is a huge change that most people aren’t aware of. Previously, the only role of the miners was to notorize transactions in order to prevent double-spending. BIP16 actually EXPANDS the role of the miners, making them the judge of the VALIDITY of certain transactions for the first time ever.
genjix,
Can you link to theymos’ proposal?
I don’t understand something. You wrote
1. “voters voluntarily relinquish their choice to representatives”
2. “Miners will be forced to comply otherwise their blocks will be rejected by new clients”
How are these two statements not a contradiction? If you’re trying to force miners, you will effectively split the blockchain, because some miners will resist your forcing efforts. The only viable solution will be when miners vote (either directly or indirectly).
One could argue that even today, most miners are voting via representatives (pools). Some miners have switched to pools that match their desired votes. I am in favor of direct democracy, and don’t see the creation of this “council of Bitcoin elders” as a good thing.
The developers have to convince miners to vote for their respective ideas, and the ultimate decision should be left to miners. This is how Bitcoin works … don’t try to centralize it.
If I misunderstood something about the proposal and my comment is way off, please correct me.
He doesn’t add anything I didn’t say in the post:
https://bitcointalk.org/index.php?topic=61922.msg722833#msg722833
Miners support the proposal. Users agree to the miners supporting it.
If miners decide not to use it, then the users can revolt and switch to a new client to shun their blocks.
The whole process depends on highly visible, vocal and transparent system of checks and balances. I now see it as various groups emerging:
- satoshi bitcoin, multibit, … all the various bitcoin client groups.
- BIP editor
- process organiser (theymos)
As BIP editor I try not to prefer any bitcoin development group and remain neutral to them. Sometimes I have a conflict of interest, but I try to act in a neutral/balanced way and recognise my flaws (BIP proposed by me or BIP affecting my bitcoin implementation in some way). For that I have some objective rules of thumb… I’ll write an article on this sometime.
theymos would have to have the same thing. I’d also like it if we engineered it in some way that he has an adversial relationship with me, and some oversight to the BIP editor (to make sure I’m being fair as a regulatory person). He would also need some way to not have close contact or favour any one group (to keep elections fair). For that there would need to be some way for him to punish me, and I’d need a way to monitor him.
http://en.wikipedia.org/wiki/Checks_and_balances
Anyway I think if the original people are good, with good intentions and professionalism, we can decide as we go along seeing what works and doesn’t. For this I’m totally sure of theymos and trusting him.
I just have to say that the politics of it all is fascinating. Your suggestion of “an adversial relationship” reminds me of stuff from Ender’s Game with Peter and Valentine pretending to be Locke and Demosthenes.
Also, I found this post by Luke-jr interesting: https://bitcointalk.org/index.php?topic=61922.msg723520#msg723520
“Also, the ability for Gavin + tcatm (who controls bitcoin.org more or less) to effectively trick 90% of the users into switching to a new network is a flaw we should be trying to overcome, not a weapon to be wielded against objections”
BTW, there isn’t currently a way to get notifications when someone replies to my comments on your blog, right?
BTW, see this question I just posted:
http://bitcoin.stackexchange.com/questions/2807/which-bitcoin-developers-are-referred-to-as-saying-that-users-have-no-say-in-th
The bottom line is that non-technical people should have no say in an issue that is purely technical. This is technocratic democracy and it’s simply the best way. All technical people should be invited to the discussion and then they can vote amongst themselves, simple as that. Then the results are made public and the miners will upgrade based on that, if the team decided to go forward with either BIP. There should of course be a vote for “neither”.
If people are afraid that this technical team can misuse their power either now or in the future, it’s important to remember that the miners have the ultimate decision in the end. In most cases they should support the decision that the devs made but if there is reason to believe that they are doing something very suspicious, they can always refuse to upgrade.
If this issue is handled in any other way, I will seriously lose confidence in Bitcoin. The public debates need to end, they are not helping to solve the issue, instead they are just adding doubt in people’s minds.
Democracy-p2p bitcoin community is much better than a rushed vote from a forum.
I like the paragraph-
“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.”
Democracy usually means one person = one vote, and the majority imposing the decission upon everybody.
This is not how Bitcoin works. To define Bitcoin as democratic you have to strech and deform the definition of democracy, basically in two ways:
1. You need to change the idea that one person one vote, to one cpu power unit = one vote, but one person can own many cpu power units.
2. The majority does not impose its decission upon the minority since if a minority desires a slight different system they can fork the blockchain and create a different Bitcoin network. Then one system would win or maybe they could co-exists, depending on the needs of the people using them.
As I final though, I would not mix or define Bitcoin in political terms. Its bad PR. For example, for a lot of people (myself included) democracy is a “dirty word” (its an authoritarian system). Curiously the criticism against democracy is coming from movements coming from what typically is considered “the left” as well as from movements typically considered “the right”.
I don’t believe voting to be ruled by some political class of individuals who have power over others is in the spirit of Bitcoin in any way.
Vote of my heart:

“”“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.””"
Vote of my feet: BID BTC 2105 @ …USD