Join the 85,000 open source advocates who receive our giveaway alerts and article roundups.
Open source money: Bitcoin, blockchain, and free software
Open source money: Bitcoin, blockchain, and free software
Get answers to some of the biggest questions about cryptocurrencies, distributed ledgers, and the intersection with open source.
Get the newsletter
Whether you believe that blockchain technology is poised to change the world or that it is a flash in the pan, one thing is sure: Technical and legal questions about blockchain are on everyone's mind today. People often wonder: Is Bitcoin "open source"? But this question arises from confusion about three separate concepts: blockchains, cryptocurrencies, and open source software.
What is blockchain?
Although Bitcoin is the best-known product built on a blockchain1, they are not the same thing. A blockchain is a continuously growing list of records that are linked together in sequence. Each record is called a block, and each record contains, in addition to information about the transaction it represents, a cryptographic hash of the previous block.
In case you aren't familiar with hashing, here is how it works. A "hash" is a way of representing lengthy information in a short and unique way. For example, think about your phone number. It contains a country code, a region or area code, an exchange, and a number. Each of those is an arbitrary number that identifies a location on the telephone network. To call you on the phone, no one needs to know your location—they only need to know your phone number.
Now imagine that each of the elements of your phone number—country code, area code, exchange—were determined by an algorithm instead of an arbitrary set of numbers. Anyone who had your number would be able to contact you, even if they don't know where you are. If someone wanted to identify you, they could ask for your phone number and check that it is correct. But they could not "unpack" the hash to find out. A hash reduces a complex set of information to a single number. Real hashes, of course, use complex mathematical algorithms to do this. You may have also used a hash, without knowing it, when accessing short versions of URLs, such as with Bitly.
Because each block in a blockchain contains a hash identifying the one before it, a chain of blocks in a blockchain can't be broken, and the integrity of the chain can be verified by anyone who has access to the chain. Even if the block contains information that is encrypted or anonymous, the integrity of the chain can be verified by checking that the hashes all line up in sequence.
Blockchain, therefore, can facilitate the movement of goods, events, transactions, assets—and, of course, digital money—among a connected network of individuals and groups, all in a way that is auditable by anyone having access to the chain.
So, the first thing you should now understand is that a blockchain is much bigger than Bitcoin. Bitcoin is just one example of a kind of transaction—the transfer of cryptocurrency—that can be tracked with a blockchain. There are two more qualities of a blockchain that you should understand: It is distributed and robust in the face of security concerns.
"Distributed" means that the blockchain is synchronized across multiple locations on a network instead of being maintained and controlled by one central authority or location. Each block in the blockchain contains transactional information shared over the network with all participants. A blockchain is sometimes called a "distributed ledger"—like a spreadsheet that is available to everyone.
Although no system is completely secure, blockchains have features that make their security more robust than electronic transactions that reside in a single place or under a single entity's control. Like the internet itself, blockchains use multiple nodes to ensure that there is no one point of failure. Because a unique hash key is generated with every new block in the network, and any further changes to the block would alter the block's hash as well, the system is resistant to tampering. It is theoretically possible to hack the system, but one would need control over more than 50% of the network to validate a sham transaction. That is because the blockchain system is programmed to consider a transaction validated when 51% of users have acknowledged it is valid. Think of this like Wikipedia: Although anyone could change the chain, those changes would not persist unless most of the users were convinced that the change was valid.
Different blockchains take different approaches to permissions, centralization, and security. There are two types of a distributed ledger: open (or public or un-permissioned) and permissioned ledgers. Public ledgers (like Bitcoin) are accessible to everyone over the network. Every participant in a public ledger can access a copy of every transaction, write a new block to the chain, and validate new transactions. (Bitcoin, for example, uses pseudonyms to identify parties conducting transactions, but the pseudonymous information is accessible to anyone.) Permissioned ledgers are more centralized. One example is Corda, an open source blockchain project centered around permissioned ledgers with potential applications in a range of verticals, such as airline bookings and smart contracts. The maker of a permissioned ledger controls and identifies the roles of participants, enables the participants to be a part of the network, and provides participants with the encrypted keys necessary to validate blocks. This model has been adopted by various blockchain consortiums and is popular in blockchains created by enterprises.
Following are some possible applications of blockchain technology:
- Elections and voting
- VotoSocial is an electronic voting platform based on blockchain technology. There is a public ledger/log of the data updates, the platform is open source, and data was released as open data to generate the necessary trust enabling an auditing of the vote counting, source code, and an independent data analysis.
- Follow My Vote's ambition is to build a secure, online voting platform that will allow for greater election transparency. This software comes with the security of blockchain technology and is open source so that anyone can audit the software's code.
- Arcade City is building a global network of local driver cooperatives called guilds. Guild drivers work together to provide reliable service to their local area. The backbone of this application is blockchain.
- Smart contracts serve the same purpose as paper contracts but are in digital form and stored inside the blockchain—essentially computer programs comprising mutually agreed rules that facilitate two or more parties to interact.
- Chainlink is secure blockchain middleware that allows smart contracts on various networks to connect with the critical resources they need to become useful for 90% of use cases.
- Supply chain open source compliance
- The blockchain-based Software Parts Ledger (SParts Projects) establishes trust between a manufacturer and its suppliers by tracking suppliers, their software parts, the open source used, and the corresponding compliance artifacts (e.g., source code, legal notices, open source bill of materials, Software Package Data Exchange data, cryptography data, and so forth). This is particularly helpful for manufacturers who build products that utilize software from many different suppliers (including sub-suppliers). This software for the project is licensed under Apache 2.0.
- Land registrations
This is just the tip of the iceberg. In any application where transactions must be auditable, blockchain can provide a means to keep the transactions secure and verifiable by everyone. A transaction, in this sense, can be almost anything—from a vote to a step in a supply chain. And of course, money transactions can be tracked, too.
What is Bitcoin?
Bitcoin is a cryptocurrency, which is a currency secured by software encryption. Unlike currencies issued and backed by sovereign states—like the US dollar, British pound, or Indian rupee, Bitcoins are not issued or managed by any central bank. They are managed, but only in the most basic way. Any currency has value only because of what economists call scarcity. For a currency, this scarcity must be artificially imposed. After all, if everyone could print up money, money would quickly lose its value.
In fact, Bitcoin is unusual among cryptocurrencies in its approach to scarcity in that it has a fixed supply. When Bitcoin was created, an arbitrary limit was placed on the number of Bitcoins that could exist. As the demand for Bitcoin increased, the value increased, until eventually its price began to soar and has become quite volatile. Other cryptocurrencies do not necessarily follow the same rules and create scarcity by, for example, linking the currency to real-world items of value—similar to loyalty program points or scrip.
Bitcoin is implemented via blockchain technology.
If you own Bitcoins, they are stored in a wallet to which only you have access. Bitcoin wallets work somewhat like your email. After setting up an email address, you need software, usually called an email client, that enables you to send or receive emails. You can either download that software to a device or access an email client over the internet. To access your email, you employ a user name (an email ID) and a password. Similarly, Bitcoin wallets enable you to send or receive Bitcoins.
To access your wallet, you need two cryptographic keys: a public key and a private key. Public keys are known to everyone over the distributed network (like your email ID), but your private key is known only to you (like a password). When you access your Bitcoin wallet with your private key, you can transfer Bitcoins with anyone over the distributed network. No one can access your Bitcoin wallet without your private key. Consequently, every transaction you make will be recorded digitally in your Bitcoin wallet.
A Bitcoin wallet is one kind of digital wallet. There are other types of digital wallets, such as desktop wallets, cloud wallets, and mobile wallets. Various digital wallets work with Bitcoin, such as Breadwallet, Jaxx, Mycelium, Ledger Blue, and Ledger Nano.
In the image above, users A, B, C, and D enter into various transactions. However, D has attempted to transfer more than D has in its wallet. The transfers among A, B, and C are validated, but the transfer from D to A is not. The transactions are validated by users at large in a process called mining. The miners receive a small amount in exchange for the mining, which requires them to verify the chain. Like most money transfers today, the wallets store the result of ledger transactions, and no physical transfer takes place. When D tries to make a transfer in this example, it is as if D had insufficient funds in its bank account, so the transaction does not work. The main difference is that the miners, and not the bank, verify the transaction.
But Bitcoin is only one cryptocurrency, and cryptocurrency is only one application of a blockchain.
Is blockchain open source?
The only thing that is properly called "open source" is open source software. This isn't pedantry; it is precision. The "source" refers to source code, and the open source licensing model turns on the fact that much software can be executed only in one form—binary form—but is written in another form—source code form. Binaries cannot easily be changed by humans, so access to source code is essential in order to change the software. The open source model is designed to ensure that users of binary code have access to the source code for the binaries they are using so that they can examine, understand, fix, and improve that software. Most other things in the world do not have this quality—a dual nature where one form is readable and the other is not—so imposing the idea of open source on other things is awkward.
Although the term "open source" is often used to describe other things—from yoga to bioinformatics, to seders—the term can be misleading when applied more broadly than software. When people say something (other than software) is "open source," they usually mean one of two things: either it is available publicly or it is not subject to royalty-bearing patent claims. So, if you read or hear something is "open source," and that thing is not software, you need to ask more questions. These days, people often say "Bitcoin is open source" or "Blockchain is open source." So, what do they mean?
Blockchain is a technology or an ecosystem, and it is not the same as blockchain software. A blockchain is implemented via software, and there are various software projects that have been written to create and manage blockchains. In this sense, a blockchain is like a mathematical formula, like the quadratic equation or the formula to change Fahrenheit to Centigrade. You can write software to perform that function, but so could many others. If 100 coders each wrote a blockchain software program, they would all be different programs, perhaps written in different languages, with slight variations or large ones, but they would all have the same core functionality. Just as the relationship of blockchain to Bitcoin is from the general to the specific, the relationship of blockchain to blockchain software is from the general to the specific.
Blockchain software mainly consists of three components: cryptography, distributed ledger, and decentralized systems. Each of these components is implemented using software, and each of them can be either open source or proprietary. Generally, blockchain software projects developed by the community are licensed under open source licenses. For example, Ethereum is licensed under GNU LGPLv3, Bitcoin Core is licensed under the MIT License, and Hyperledger Fabric is licensed under Apache 2.0. On the other hand, there are private blockchain projects, which are developed and owned by various companies. In fact, some of these companies have applied for patents on their inventions as well. Many of the available digital wallets are licensed under open source licenses. So, when people say, "blockchain is open source," they might mean that blockchain systems are often implemented with open source software.
But is blockchain open in a more general sense? In a way, it is. For example, the Open Definition sets out principles for open data and content, saying "open data and content can be freely used, modified, and shared by anyone for any purpose." Blockchain is open in the sense that it can be verified by any user, and access to it cannot be prevented by any central government authority. Blockchains, therefore, have the potential to be open, but each one is different. Also, blockchains leverage a crowdsourced means of verifying transactions. In that sense, it is like Wikipedia, where community consensus governs what information is trusted to be accurate. This aspect of blockchain technology is not so much open source, as it is open culture.
But this begs the question of whether blockchain technology is valuable because it is open. Blockchain is popular in part because it is viewed as secure. This raises an old question: Is security easier to achieve through obscurity or openness? Some security experts say that closed standards are more secure because they keep key information from bad actors who might identify weaknesses and gain backdoor access to secure systems. Others, however, believe that open standards best promote security because any potential vulnerability would be subject to wide scrutiny of those working toward security. As they say in open source, "given enough eyeballs, all bugs are shallow." The supporters of open standards for security are also skeptical that enough information can be hidden from the black hat hackers to make technology truly secure. So, many security experts favor open systems to maximize security, and in turn favor blockchain as a potentially open technology.
Blockchains are open in the sense that they rely on crowdsourcing principles, which avoid the concentration of power in any one authority. In every transaction we do in the modern world, we rely on and trust a third-party intermediary to complete the transaction correctly: a bank for processing a payment transfer, title agents to inspect and transfer title for real estate, or auditors to be sure accounting records are complete. Blockchain technology has the potential to replace third-party intermediaries in nearly every business. That is why blockchain technology has garnered so much attention.
But freedom has its price. Bitcoins have been notorious for their use in illegal activities, and it is still unclear how governments will treat cryptocurrencies for tax purposes. For example, in 2013, the US government shuttered the Silk Road website for allowing users to buy and sell narcotics and other illicit goods using Bitcoins. An extortion case made headlines in India, where Bitcoins were used for illicit payments. In the US, cryptocurrencies are designated by the IRS as a property and not as a currency. The difficulty in calculating and reporting capital gains taxes on every crypto-transaction—the currently de facto requirement by most taxation authorities—makes tax compliance difficult.
Bitcoin's website says, "Bitcoin is open source; its design is public, nobody owns or controls Bitcoin, and everyone can take part." But that statement is probably confusing, if not misleading. Bitcoin is, in fact, built on open source software, and its technology is consensus-driven. In 2015, one of Bitcoin's primary engineers forked the project to create Bitcoin XT, an alternative implementation that allowed for more scalability but eventually lost support. This is the nature of open source software—the most popular solution will gain traction, while others are left behind or taken up by others who wish to create new software. So, Bitcoin has gone through the growing pains of an open source project and remains a technology driven by consensus—open, if you will.
While the long-term fate of Bitcoin as a legitimate means of transferring value remains to be seen, the potential of blockchain technology is significant. Blockchain may or may not be truly "open source," but like open source software in the 2000s, it is a new technology paradigm that is quickly gaining traction for many applications. Like open source software, it may "eat the world," and in the next decades, many of our daily activities may rely on using this new paradigm.
1. The correct lexicography of the word "blockchain" is developing. Like many emerging concepts, it is migrating from two words ("block chain") to one portmanteau ("blockchain"). Most importantly, it is not a proper noun, and thus not capitalized. This may seem like a quibble, but it is important: Blockchain is a general technique, not a single product or software implementation. Thus, in this article, we refer to "blockchain."