The case for privatizing Bitcoin Core
@kanzure, who is a BIP editor and maintains the Bitcoin Developer Mailing List, recently started a discussion on the mailing list with the subject "The case for privatizing Bitcoin Core."
There is a recurring pattern of non-contributors (sometimes even non-developers) intruding into an online forum intended mainly for people collaborating on Bitcoin Core to work together on whatever they are working on.
His suggestion was to move collaboration to a private, membership-based collaboration space, while still keeping the code open. You can read his post if you are interested in the details of his proposal.
Kanzure noted that any group of people is free to work on Bitcoin Core in whatever way they like and
An alternative to what I am proposing is already happening: development inside closed offices (Chaincode, Brink, Localhost, etc), which is less accessible and less open than a invite-only developer collab site. And also less "open development" than the current Bitcoin Core GitHub project. So a failure to sort out these issues with Bitcoin Core collaboration can and has already produced solutions that are functionally less inclusive than an online member-only source forge.
I'll note that most of the responses to kanzure did not agree with his approach, and this proposal is not likely to happen.1
When I first saw the word "privatizing" I thought, "Wow, that's gonna piss some people off." But I spent a little time thinking about why I felt this, and it got me to something I hadn't fully appreciated about open source.
Open source != freedom of speech
Not being terribly familiar with open source standards, it is easy to let
open source
blur in my mind with freedom of speech
. This is possibly made worse by the use of the free as in speech, not as in beer line when explaining what people mean when they say "free, open source software." But my realization was that open source isn't a promise of rights.If a person creates a piece of software and makes it open source, this gives absolutely zero rights to anyone else. No one has a right to participate in the project or contribute to it or expect anyone who works on it to do anything in particular.
What it means is that people have choices.
This is also how Bitcoin works. Nobody can force you to run code you don't like and you can't force anyone else to run code they don't like.
Similarly, with development, you can't force anyone to show you what they are working on, nor can you force them to listen to your thoughts on the matter.
There are 10,000 nuances of open source, and I don't pretend to know much at all about any of them, but from this ignorant perspective in which I stand, open source Bitcoin development means
- Anyone may see the code
- Anyone may change the code
- Anyone may run different software if they don't like what a particular implementation is doing
And that's about it.
Everything good always comes back to timshel
I'm a great Steinbeck fan. East of Eden is worth reading with some regularity (as is Tortilla Flat). There is this moment in East of Eden:
After two years we felt that we could approach your sixteen verses of the fourth chapter of Genesis. My old gentlemen felt that these words were very important too—‘Thou shalt’ and ‘Do thou.’ And this was the gold from our mining: ‘Thou mayest.’ ‘Thou mayest rule over sin.’ The old gentlemen smiled and nodded and felt the years were well spent. It brought them out of their Chinese shells too, and right now they are studying Greek.
The gold he's talking about here is that by some magical twist we humans seem2 to have a choice in what we do in this world. Lots of human history is caught up with different people's endeavors at restricting these choices (or navigating them while we try to coordinate), but the experience of being human is that others cannot directly3 control you.
In the same way, open source is timshel: thou mayest look at the code. What you do after that (participate on the terms of whoever maintains the project or fork it and make your own thing) is up to you.
I exerted manful force in only including that tiny little segment from above. But then I remembered footnotes: Here's the much lengthier passage:
Lee laughed. “I guess it’s funny,” he said. “I know I wouldn’t dare tell it to many people. Can you imagine four old gentlemen, the youngest is over ninety now, taking on the study of Hebrew? They engaged a learned rabbi. They took to the study as though they were children. Exercise books, grammar, vocabulary, simple sentences. You should see Hebrew written in Chinese ink with a brush! The right to left didn’t bother them as much as it would you, since we write up to down. Oh, they were perfectionists! They went to the root of the matter.”
“And you?” said Samuel.
“I went along with them, marveling at the beauty of their proud clean brains. I began to love my race, and for the first time I wanted to be Chinese. Every two weeks I went to a meeting with them, and in my room here I covered pages with writing. I bought every known Hebrew dictionary. But the old gentlemen were always ahead of me. It wasn’t long before they were ahead of our rabbi; he brought a colleague in. Mr. Hamilton, you should have sat through some of those nights of argument and discussion. The questions, the inspection, oh, the lovely thinking—the beautiful thinking.
“After two years we felt that we could approach your sixteen verses of the fourth chapter of Genesis. My old gentlemen felt that these words were very important too—‘Thou shalt’ and ‘Do thou.’ And this was the gold from our mining: ‘Thou mayest.’ ‘Thou mayest rule over sin.’ The old gentlemen smiled and nodded and felt the years were well spent. It brought them out of their Chinese shells too, and right now they are studying Greek.”
Samuel said, “It’s a fantastic story. And I’ve tried to follow and maybe I’ve missed somewhere. Why is this word so important?”
Lee’s hand shook as he filled the delicate cups. He drank his down in one gulp. “Don’t you see?” he cried. “The American Standard translation orders men to triumph over sin, and you can call sin ignorance. The King James translation makes a promise in ‘Thou shalt,’ meaning that men will surely triumph over sin. But the Hebrew word, the word timshel—‘Thou mayest’— that gives a choice. It might be the most important word in the world. That says the way is open. That throws it right back on a man. For if ‘Thou mayest’—it is also true that ‘Thou mayest not.’ Don’t you see?”
“Yes, I see. I do see. But you do not believe this is divine law. Why do you feel its importance?”
“Ah!” said Lee. “I’ve wanted to tell you this for a long time. I even anticipated your questions and I am well prepared. Any writing which has influenced the thinking and the lives of innumerable people is important. Now, there are many millions in their sects and churches who feel the order, ‘Do thou,’ and throw their weight into obedience. And there are millions more who feel predestination in ‘Thou shalt.’ Nothing they may do can interfere with what will be. But ‘Thou mayest’! Why, that makes a man great, that gives him stature with the gods, for in his weakness and his filth and his murder of his brother he has still the great choice. He can choose his course and fight it through and win.” Lee’s voice was a chant of triumph.
Footnotes
-
In particular, @TheCharlatan's response was particularly thoughtful, so I'm including a large portion of it here: "The question around how to handle data embedding and meta protocols through policy has been a major discussion point on the repository for more than a decade. Even with a clear majority of regular contributors agreeing, a decision on the topic was always going to arouse major controversy. The perceived brigading did not impede the project from making progress on the issue. It led to a rare moment of alignment in the form of a common statement, brought more eyes to reviewing the pull requests, and finally led to a resolution of the question. The discussion was also focused on the two pull requests, and did not impede progress on the 300+ others. Contrary to public perception, I also think moderation of the pull requests in question was ok. I especially like that it was kept open by the moderators for people to comment on, since people are clearly still confused on what the change actually does. More importantly it also shows that our organization is still the same scrappy, loose collective of individuals with individual approaches and opinions capable of tolerating dissent. If I were to choose a client to run my money on, these are all soft qualities I'd look out for." ↩
-
If you don't think humans have any choice, perhaps you should eschew open source software. ↩
-
Yes, there's violence and manipulation, but I'm still clinging to the idea that I control how I react to them. ↩
knots
) to block template logic (custom pool nodes) to how all this is stored on disk (libbitcoin
) it is good to have a reference client, to show other devs how it's done, but since these things aren't touching consensus, it's not something that should be literally copied. Every implementation has leeway in this.btcd
andlibbitcoin
, and the solution has always been that Bitcoin Core, even when behavior is a bug, is the truth.