In my earlier essays, Bitcoin Basics Explained: the ABCs of BTC, I have reviewed a number of topics from “A is for Acceptability” all the way to “L is for Legal.” Today, I’d like to say “M is for…” just one thing, but there are quite a lot of good candidates. I’ve picked out three of them.
M is for Multisig, Mixing, and Mining
One of the important discoveries in the years since David Chaum first pioneered digital cash is the need for the capability to have multiple signatures to confirm that a certain event has taken place. In developing the Bitcoin protocol, Satoshi Nakamoto was very aware of this need. Bitcoin provides for multiple signatures.
Using the multisignature feature, you can have a Bitcoin address with several associated private keys, such that you need any more than one of them to spend the funds. You can specify how many keys have to sign, and have as many keys involved as you wish. Multisig escrow features are found in services provided by companies like Bitrated as well as somewhat more mainstream Bitcoin sites like Coinbase. Very detailed information about multisig and other features is found in the Bitcoin Developers Guide.
Wallets featuring multisig include Greenaddress.it and BitGo. Another company with a very active interest in Bitcoin multisig is CryptoCorp. Multisignature wallets were also one of the main points of discussion in Coin Brief’s interview with Sam Patterson of Open Bazaar.
Coin mixing is a technology used to reduce the exposure of your privacy on the public blockchain. By putting some bitcoins from other users together with the bitcoins you are spending, a mixing service deliberately confuses the trail to the users involved.
A Bitcoin wiki offers 15 different sites with bitcoin mixing services. Of course, because of the nature of these services, users may have difficulty getting any redress if their payments are not forwarded as requested. So, caveat emptor – let the buyer beware.
Dark Wallet is a technology which pairs Bitcoin spends of similar amounts amongst their customers, and co-mingles their coins together before sending them to the payee, in order to make the payments harder to trace on the bitcoin blockchain. In this respect it’s something like a coin laundry, except that the function is made part of the act of making a Bitcoin payment, instead of a separate optional step.
Bitcoin mixing necessarily has limitations. It may violate the “payment structuring” aspects of some money laundering laws and regulations. Also, it continues to involve the public Bitcoin blockchain. So, you are going to have something show up on the blockchain, whether you use a mixing service, or not, if you send or receive bitcoins directly.
Mining Bitcoin has been the subject of several recent articles. Bitcoin will always require mining, since transaction processing is a mining activity. Bitcoin mining refers to the process of discovering, through mathematics, the next blocks on the public blockchain. Miners are rewarded partly by transaction fees and partly by the addition of new bitcoins.
Bitcoin mining is the process of computing hash functions to establish, through proof-of-work, the next block in the blockchain. The Bitcoin protocol determines how difficult the hash function will be, based on how many computers are involved in mining. The computer which correctly computes the hash function needed to establish the newest block gets the reward of transaction fees and a certain number of new bitcoin. Every few years the number of new bitcoins awarded drops until the total of all bitcoin ever to be created has been reached. Of course Bitcoin mining isn’t for everyone. Whether Bitcoin mining is worth it for you will be based on many factors, and one should always consult a Bitcoin mining calculator before investing any money into a mining project.
N is for Networking
Bitcoin uses a protocol that involves networking. In some ways, Bitcoin exists because the Internet was invented.
Back in the 1960s, the Defense Department’s Advanced Research Projects Agency wanted a protocol that would allow computers in different parts of the world to communicate. Computers in a given building, or a campus of buildings, were already networked together in many cases. Often these networks involved one huge mainframe server that provided computing capabilities to many client computers or “terminals.” The task, then was to “inter-network” these networks of computers.
The system developed to accomplish this task was the “transfer control protocol” (TCP) or “internet protocol” (IP). At its most fundamental level, the Internet is a protocol document, a listing of specifications for how to handle different kinds of messages. Similarly, Bitcoin, at its most fundamental level, is a protocol document, a listing of specifications for how to handle transactions. It is useful to think of payment transactions as a specialised sort of message.
When you use Bitcoin, especially the Bitcoin Core software, you should be aware that it will connect to other nodes. It uses TCP port 8333 for this purpose, so if you block that port, or if your computer network has a firewall that blocks that port, your Bitcoin client won’t be able to connect to other nodes. There is a Testnet for Bitcoin that uses port 18333. If your firewall rules are restrictive, you may wish to find stable nodes in the fallback nodes list.
The Bitcoin protocol finds peers by forwarding peer announcements inside its own network. Each node saves a database of peers for future use. To bootstrap this process, Bitcoin uses a list of initial peers which are provided manually or by querying a set of domain name server (DNS) domain names which have automatically updated lists. Bitcoin also has a built-in list which is updated from time to time in new versions of the software. The reference software lets you specify initial peers manually by adding an addr.txt to the data directory or via the addnode parameter.
O is for Open Source, and for Off-Blockchain Bitcoin Transactions
Some letters have more topics than others, and O is one of those letters. So, O is for Open Source, and for Off-Blockchain Bitcoin Transactions.
One of the really important aspects of the security for users of Bitcoin is the fact that it is an open source protocol that is implemented by open source software. To understand why that is important, you need to understand the history of the open source software movement, at least very briefly.
Back in the 1970s, when the micro-computer industry was just coming into existence, most computers were large mainframes. Most computers were owned by big companies, by universities, or by government agencies. Most of those computer systems operated on a client-server concept, where a mainframe computer provided service to “dumb” terminals or, later, to micro-computers. The hardware and software involved was all proprietary, it was all owned. Much of it was kept very secret, not only by government agencies that tend to “classify” every fact and concept as a secret, but also by companies that wanted to maintain their technical edge through trade secrets, as well as patents and trademarks.
The open source movement began as the “free software” movement. The idea was to make some software available for free. Free software was not only free to use, but also free to update. By the 1980s, many computer developers were interested not only in making new proprietary software, but also in developing and maintaining free alternatives to widely used software. The developers eventually determined, in the 1990s, that the better way to describe this software was to call it “open source.”
Even the operating systems that make computers turn on and start working became open source. Linux was the first open source operating system. It is based on a mainframe computer operating system called UNIX. Today, everything from word processing to database management to web server software is open source.
The advantages of open source are many. Many developers are able to look at the source code and understand exactly what the software is doing. Developers routinely discuss problems with code and how to fix it. Developers who are very good at fixing code, or at writing good code, are highly regarded in the industry. Often, developing open source code helps a new programmer get started on a lucrative career in software design or implementation. Most importantly, for security, what the open source software does is easily seen, understood, and monitored by the open source software community. So, there can be no hidden subroutines doing malicious monitoring. There can be no part of the program which sends your login particulars to a huge database unbeknownst to you. Everything is out in the open, where it can be examined, criticized, and improved.
Any privacy-conscious user of Bitcoin is aware that there is a public blockchain. If you are very careful to always use separate hash addresses for every transaction, you can, to some extent, protect some aspects of your transaction history. But, the blockchain is there, in plain view, and may be analysed with all kinds of computing power by government agencies, criminal hackers, and others, at any time. As well, there are inherent limitations to the size of blocks, which means that the processing of transactions goes at a particular pace. While these limitations may be changed in future releases of the Bitcoin core protocol, for now we have limits.
These facts have led to the development of alternative systems, such as Ethereum, Open Transactions, SilentVault, and others. These companies provide systems that work with Bitcoin, accept Bitcoin as an on-ramp, but allow for transactions that are not recorded on the blockchain directly. Another company, Blockstream, with a substantial reputation in the industry is working on pegged sidechains that would provide for transfers from one crypto-coin to another, and back.
By allowing for off-blockchain transactions, these companies are increasing the flexibility, privacy, and usefulness of Bitcoin.
P is for Public
P is for public, because the Bitcoin blockchain is not private. Although you sometimes still read in the mainstream press about the anonymity of Bitcoin, the truth is very different. Bitcoin addresses are not, yet, assigned to a person’s Social Security Number or other national identity number. Given the open source nature of the Bitcoin protocol, it would probably be very difficult to force such an identity measure.
Nevertheless, the blockchain is public. That fact has, naturally, both advantages and disadvantages.
A public blockchain is accessible and transparent. It is possible to see what transactions are being processed by the mining companies, and mining farms. It is possible to understand how the Bitcoin economy works. Blockchain.info provides a host of information, and charts, about what is going on in the bitcoin economy, including market cap, daily transactions, and many other facts. We know a great deal about how bitcoin is used, and by whom, because of the public blockchain.
On the down side, it is possible to examine the blockchain in order to trace money from one wallet to another. It is possible to know quite a bit about individual users, especially if they publish a wallet address to a web site or on social media. Once a wallet address is associated with a particular person, the transactions involving that address can be examined. So, it is useful to have your wallet software generate a separate hash address for every transaction.
Bitcoin is extremely open, transparent, and public. The white paper on which it was based, the protocol, and the code for the core software of Bitcoin are all published, public domain information. Anyone can see what is going on with Bitcoin by following topics on public forums about software updates. There is an entire segment of the media, of which Coinbrief is a part, that reports on the Bitcoin economy. And the transactions that take place using Bitcoin are part of a public, transparent blockchain; A database of every economic event in Bitcoin history going back to the very beginning.