Following the explosion of interest in blockchain technology last year, Vitalik Buterin gave a presentation at the Hyperledger’s technical steering committee in April 2016, explaining how Ethereum could be integrated with the consortium’s protocol or, perhaps, replace it entirely. Brian Behlendorf, Executive Director of Hyperledger…
Following the explosion of interest in blockchain technology last year, Vitalik Buterin gave a presentation at the Hyperledger’s technical steering committee in April 2016, explaining how Ethereum could be integrated with the consortium’s protocol or, perhaps, replace it entirely.
Brian Behlendorf, Executive Director of Hyperledger and a founding member of the Apache Software Foundation, seemingly liked what he heard and extended an apparent offer of partnership in September. He stated that Ethereum now has a substantial corporate interest which can help the community grow.
Ethereum C++, the third most popular ETH client, had been discussing re-licensing so that they can join Hyperledger. In an article, Bob Summerwill, C++ developer for the Ethereum Foundation, stated:
“With this huge growth in interest in Ethereum for private and consortium chain scenarios, we have a fantastic new potential “niche” for the C++ client, which is Enterprise applications.”
He portrays a vision of a world where private eth based blockchains communicate to the public eth blockchain with the technology found in “every nook and cranny… big and small, public and private, independent and corporate; smartwatches to mainframes.”
It’s a world that many foresee, but what kind of world it will be exactly few can say as we now collectively face some very difficult decisions and grapple with some very hard questions. Governance of the protocol development is one, but a more difficult question now arises.
Few can recall the wild west days of the internet when we dreamed of a utopia where all men and women of all colors, genders, nations, were equal and judged solely by their character (or more correctly by what they type). Information was to empower us all, with a new generation creating a new realm of the mind, outside of government control.
The revelations of mass surveillance showed some of that utopia had become a dystopia. Instead of an open public space, corporations brought down walls and secret algorithms, censorship and banning.
That trajectory of continued centralization, both in services and in power, was halted by the invention of bitcoin which once more promised a flat earth, a promise further developed by Ethereum.
In a feature article CCN is to publish shortly, I describe how Akasha returns some of the 90s promises, making censorship or manipulation of comments impossible, as well as getting rid of secret, unaccountable, algorithms that now affect much of our lives.
But, if this technology does further develop and permeates every nook and cranny, will it do so in an open, transparent way that places us, the people, in control, or will it do so in a walled, closed, secret manner with an ever-shrinking public space and ever increasing centralization of power?
Will it create machines that we own or will the machines become so complicated, so closed and secret, so powerful, to the point where the masses become, in effect, enslaved?
That is the question Ethereum C++ faced when the matter of re-licensing reached decision point. Hyperledger required the client to change its licensing from GPL to Apache to join the consortium which is spearheaded by IBM and counts as members many tech companies, banks, corporations. The two licenses have only one main difference:
“If you link your code with GPL code, your code (in most if not all circumstances) is considered by copyright law to become a derivative work of that code. When that is the case, the GPL “infects” your code: if you ever want to distribute such a combined work, you must do so under the GPL or GPL-compatible licensing terms.”
Apache doesn’t have that requirement. An “infected” Apache licensed code can be as restricted or as open as it pleases. IBM could, for example, take Ethereum, modify it somewhat, then sell IBMeth or require royalties for its use. They could be even more restrictive, proprietarize and close source parts of the blockchain or its functions, prohibit some uses, or require payment for some aspects.
“[D]o you think blockchain will be able to avert systemic bank collapses if the ledger technology becomes proprietary or confidential?” asked Koustubh Sinkar, a Senior Software Engineer for Globant, who further told CCN:
“Hyperledger allows you to create secret contracts. Secret contracts are anti-market-economy, but pro-monopoly; leading to inefficiency in the markets. Secret contracts go against the very nature of open public ledgers.”
On the other hand, Paweł Bylica, an Ethereum Software Engineer, told CCN that he would be happy with the Apache license if it extends the team. He further added:
“Cpp-ethereum is not a product, and there is little focus to create one. We are doing mostly research, using cpp-ethereum as a platform for experiments and we lack developers to bring cpp nodes to production-ready status. So I would give it a try to allow others to reuse it instead of keeping it in maintenance mode.”
Behlendorf told IBT that several Eth C++ developers were interested in bringing the project to Hyperledger, but it requires a relicensing to Apache. Everyone who has contributed any code to C++ needs to consent. Behlendorf says some refused:
“[T]here were a few hold-outs who all worked for a company building a competitive implementation of Ethereum. The last thing that they wanted was to enable a new competitor – at least this is how it looked from our perspective.”
We asked him to name them, but have received no response in time for publishing. Bylica says it was Gavin Wood:
“Gavin Wood has abandoned the cpp-ethereum, conflicted with Ethereum Foundation and started his own company ethcore that now owns Rust Ethereum library and client.
I don’t know his reasoning, but he promised to agree to change the license to Apache under some conditions, the conditions were met, and in the end he refused to sign the agreement.”
Wood has not responded to our requests for comment in time for publishing. Summerwill, who also didn’t respond in time for publishing, states, in the article describing the Eth C++ vision to become the enterprise client, that Parity currently uses a dual licensing approach. A workaround to GPL’s restrictions whereby a single copyright owner can license it as GPL and for commercial use:
“That dual GPL/commercial licensing approach is a sensible approach for open-source friendly companies to take, which balances their desire to make the code available for public good while also generating revenue to keep them alive from those end-users who want or need to use the code in a context which is not GPL-compatible.”
As a non-profit, the Ethereum Foundation is unable to follow this approach as it cannot offer a commercial license due to its non-profit mission. Without a re-license, the code might remain out of reach for corporate developers.
“Blockchains will be owned by banks, Govts etc. Hyperledger simply wants to make it easier for them by removing licensing roadblocks,” Sinkha says.
It is an argument that was often made in the 80s and 90s, giving rise to the OS flame wars. Proprietary software restricts use, it is usually close source and can be intrusive, or limiting, giving the proprietor much power, power which can be abused. But is there really a better approach to incentivize research and development together with the useful and convenient end products?
Mac OS is based on Linux. The former is closed source, the latter remains open source. The former is beautiful in design and slick in functionality. Desktop Linux OS-es, on the other hand, have a 90s feel to them, both in looks and functionality. Little annoyances, although easily addressable, for some reason are not.
The probable reason is because there are no incentives to take user feedback into account or to be competitive. Most developers are volunteers, who might not even be paid, working on the project simply because it interests them or they find it cool. If there is some problem or a user complains, their answer is usually to ask you to go code it yourself.
A for-profit company, on the other hand, especially if there is competition, has very different incentives. They live or die by the whims of the users who, rather than pesky customers, are kings. We thus get a beautiful Mac OS on one hand and a very annoying as well as frustrating experience on desktop Linux on the other hand.
It is not just one example. Microsoft Word and Libre Office, Photoshop and Gimp. In most end products one can think, the open source version, while largely performing the same functionalities, nonetheless provides a sub-par and frustrating experience.
In the public blockchain space itself, little things that would be very useful are nonetheless not done. There are many ways to make storage of bitcoins or eths safer, for example, there are many ways to make their use easier, but there is no money to be made, nor, thus, incentive.
It is difficult to see how the public blockchain space can progress without the involvement of for-profit companies who live or die at the mercy of their customers. If we could find a better system, that would have application far wider than in just this space, but until then, without the monetary incentives and the free market competition, why should we expect this space to mature and professionalize to the point where grandma can easily use it?
Furthermore, if blockchains are indeed useful, then why wouldn’t corporations create their own for-profit versions and engage in the same closed, walled, secret product development? On the flip side, If public blockchains can not compete, then why should ordinary users be forced into a sub-standard product or be denied the service entirely?
They could, instead, have a win-win relationship. Private blockchains need to be based on a public blockchain if they are to be secure. Moreover, their interoperability would be far easier. Resources too can be pooled, both monetary and in talent as everyone would be working on the same core code. Otherwise, we may end up with balkanized private blockchains based on numerous different protocols that are very much incompatible with each other. Moreover, instead of new developers learning about ethereum, thus perhaps contributing to the public open source protocol as well as seeing opportunities and go on creating the next generation of start-ups, they’ll be learning about the specific protocol of their company without much transferable skill.
Considering the entire picture, the only question really appears to be whether we retain any influence and perhaps even drive blockchain’s development or whether it operates without our input. Yet, the decision is not ours, but that of every contributor to C++ who have the power to make what appears to be a monumental choice. Do they restrict this technology to largely open source only, or do they invite for-profit companies to do what they do best, provide a convenient, useful, and easy to use end product?
And if they choose either, will their choice lead to a more transparent, more fair, more free world, or will, whether the hampering or enabling, create dystopian aspects?
“This is not a question of decades, but generations,” – says Sinkar. It’s a very difficult trade-off and the decision doesn’t come often. Yet, all we can do is hope they use their power wisely and impartially choose between the two paths based on what is in the best interest of the entire world and its future generations.
Last modified: January 26, 2020 12:00 AM UTC