Ethereum
Relicensing C Ethereum would open doors to enterprise

For some time a proposal has been underway to relicense the C++ Ethereum client runtime from the copyleft GPLv3 licence to the more permissive Apache 2.0 licence.

Moving Ethereum's core to Apache would allow enterprise users to build upon the Ethereum CPP code and retain some proprietary right over their innovations.

Broadening the potential of Ethereum in both a public and private capacity is a goal of the Foundation. Ethereum inventor Vitalik Buterin made this clear at the outset.

He said: "It is important to note that while the original Ethereum blockchain is a public blockchain, the Ethereum state transition rules (i.e. the part of the protocol that deals with processing transactions, executing contract code, etc.) can be separated from the Ethereum public blockchain consensus algorithm (i.e. proof of work), and it is entirely possible to create private (run by one node controlled by one company) or consortium (run by a pre-specified set of nodes) blockchains that run the Ethereum code.

Bob Summerwill, C++ Developer, Ethereum Foundation, has been shepherding the C++ client runtime from GPL towards Apache 2.0; this does not include Solidity or Mix (the C++ tools).

Beyond incompatibility between the GPL and corporate business models there are practical ways in which the GPL reduces Ethereum's reach, notes Summerwill, who witnessed these sorts of restrictions in his past life as a video games developer.

Linking to GPL code is considered under copyright law to constitute the creation of 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.

Under the Apache licence you are not required to distribute the source code of a covered work, and you don't have to worry about it infecting a derived work; you just need to be sure to include their licence.

Marc Kaufman, partner at Reed Smith who specialises in IP, said: "The significant difference between GPL and Apache is that GPL requires that changes to the code also be distributed under GPL, and thus be made freely available to others. Apache does not require this. Therefore, developers modifying code under Apache could maintain the modifications as proprietary.

"So while the GPL licence is more restrictive, use of the Apache licence could result in more restrictions on use of improvements to the software. The Apache licence is more in line with my belief that freedom to operate must be balanced with proprietary rights that are necessary to reward innovation.

"In other words, a core basic function set (source code to participate in the Ethereum blockchain in this instance) is available to all, while others may improve on it and protect their rights in the improvements. Many others do not agree with me on this."

The commercial incentives for a more permissive relicensing of parts of Ethereum like C++ runtime, are more pressing now that Ethereum is on the verge of decoupling Solidity, (Re)Mix and Eth into three entirely independent projects – one runtime, two tooling.

That architectural decoupling is a dual-edged sword, notes Summerwill, because that tight coupling did a lot to keep the Eth client alive.

"We needed Solidity and Mix, so development on eth had to continue too. All of the projects were interrelated. Following this refactoring, it is getting much harder to justify any significant level of spending from the Foundation for ongoing eth development.

"We already have geth. Parity is becoming more popular. There are eight clients in total. In the early days, having the Foundation funding multiple clients was crucial for maturing the protocol. With four clients developed outside of the Foundation, it is harder to argue for this spending anymore," said Summerwill.

The answer could be private and consortium chain scenarios in the enterprise arena, which would be potential niche for the C++ client.

"Preston Byrne, COO of Monax, until recently known as Eris Industries, said: "The GPL can, in some circumstances, be a show-stopper for corporates. The main issue is that when you run GPLv3 code anywhere near closed-source code, you run the risk of commingling the codebases – and if you do this, the terms of the licence mandate that you redistribute the source code for the entire application, or risk breaching the terms of the licence. This idea is known as 'GPL infection,' and it is said to annoy developers and terrify in-house IP counsel.

"At the moment I'm not seeing GPL infection as a significant concern among end-users of blockchains, e.g. banks/insurers, who are quite happy to not mess around with the client at all, which leaves a very bright line between GPLv3 code and proprietary code.

"I think the GPL is more a concern for software incumbents, who are used to Apache 2.0, and startups who want to provide the market with proprietary, shrink-wrapped solutions, and whose monetisation strategy depends on collecting licensing fees for the use of a database (a silly strategy).

"This is an adoption question – can the EVM win if it isn't Apache 2.0? For now, it's seems to be doing just fine (both Geth and CPP for the public chains, and ErisDB for permissioned chains) – and if anything it's becoming the standard for smart contract code execution. Whether that remains the case going forward could very well depend on adopting more liberal licensing regime. I'm keeping an open mind."

There has also been intense interest in the prospect of parts of Ethereum being integrated in the Hyperledger fabric, since Vitalik Buterin presented to the Hyperledger steering committee earlier this year.

The Hyperledger Project favours Apache 2.0. Brian Behlendorf, head of Hyperledger was one of the keynotes at the recent DevCon2/Global Blockchain Summit in Shanghai. He said working in an open source collaborative framework, such as Hyperledger, brings together the best of development work and commercial possibilities.

Behlendorf mentioned Apache licensing in this regard. "It is a gift of code that comes with patent rights in a way that makes lawyers relax. It means that if one project has a good idea it can quickly be incorporated by others in the project."