Open Source in Cryptocurrencies and Token Projects
Discussion
by Peter Van Valkenburgh:
"Linux is probably the largest and most important example of the open source model, but several others exist. Among them are all of the major cryptocurrencies and open blockchain projects. All of these projects create computer networks that allow connected participants to reach agreement over shared data (the blockchain of the cryptocurrency). The software that allows any particular participant to connect to the network is called a client, and that client software is released and developed open source. Often, these clients are developed by several unaffiliated participants as a plain vanilla version of the network software (i.e. a reference client) from which specific mining, wallet, exchange, or other network-compatible software can be built.
The Bitcoin Core reference client is the product of over 15,000 unique code contributions from over 450 unaffiliated individual developers. The software is available for free use and modification under the permissive MIT copyright license, and the full history of that development is visible within a public software repository hosted by Github, a cloud-services provider that allows anyone to sign-up for an account, upload new code, and track changes. If the code repository you create is open to the public for viewing, comment, and suggested modification, then you don’t even need to pay for a Github account.
The public repository also keeps track of so-called “forks” of the code in the reference client. A “fork” creates a clone of the original software that can then be modified for some specific purpose without altering the original repository. Developers freely fork the Bitcoin Core Github repository to either (a) build purpose-specific bitcoin-compatible applications (e.g. a wallet app for smartphones) or (b) build a new cryptocurrency that ceases to be compatible with the bitcoin network and thereby creates a new cryptocurrency network (e.g. Litecoin or Zcash). To date the Bitcoin Core reference client has been forked over 10,000 times, and the new repositories for those forks show the ongoing open development state of those derivative projects.
The Ethereum project is currently made up of at least 121 separate software repositories each focusing on different aspects of the project (e.g. programming languages for writing smart contracts, end-user graphical browsers for interacting with the Ethereum network, and compatible clients for participating in the network). There are no fewer than eight software projects to develop Ethereum compatible clients and the more popular clients (go-ethereum and Parity) have hundreds of independent developers contributing to the code. The Ethereum project’s code (and the complete history of that code) is, like Bitcoin’s, publicly available within Github and other online repositories, and all code is released under the LGPL-3, a viral copyleft license that requires all future derivative works to be released under the same non-proprietary licensing.
Even recent projects spearheaded by privately funded start-ups show a deep commitment to this open-source ethos. The Zcash Company develops the Zcash protocol openly and permissively through a public repository, several major contributors are not employed by the company, and a non-profit public charity has been created to shepherd a transition from company-focused to community-focused development over the longer term. The Zcash codebase is released under the permissive MIT copyright license. Protocol labs, developer of Filecoin, intends to pursue a similar open model and has previously exemplified the open source model of development with its IPFS project, developing that code in public repositories and releasing it under the MIT license.
* Why Open Matters
Cryptocurrencies and open blockchain networks may provide functionality that would be regulated if it was provided by a single corporation. A centralized issuer of digital currency like Liberty Reserve or E-gold is a money services business and must register with FinCEN and be licensed to transmit money in every state. If that issuer decides to market her tokens as an investment then they may be securities and she may need to register with the SEC. These regulations make sense because centralized services carry the risk that the party in the middle will fail to uphold her promises or adequately test and secure her products.
But technologies like Bitcoin can create the same functional result with an open and unowned network, rather than a corporation, at the center. Users join these networks and open source software aligns their incentives toward cooperation and, ultimately, agreement over every scrap of data needed to make a currency. That decentralization is built on two things open consensus mechanisms (which we’ll leave for a later backgrounder) and open source software. If the code wasn’t open source, how would participants (complete strangers on the internet) ever be able to understand and trust the system they are joining? Indeed, token projects based on proprietary code may simply be centralized service-providers hiding behind jargon and blockchain nonsense.
For genuine projects in this space, however, the code that builds the decentralized network, that allows participants to trust each other, aligns their incentives, and punishes fraud is itself decentralized. It’s developed in the open, free for the world to use and modify, wholly independent from one or even a handful of corporate interests, and by hundreds of passionate users." (https://www.coincenter.org/education/advanced-topics/open-source/?)