andrewdroll.com

Bitcoin: Philosophy and systems

Important News: Just as I've started learning about it, there is big news in the realm of Bitcoin's integrity. Read Ars Technica's coverage here.

To understand what this news means, and why it could be a big problem for Bitcoin's future, read below!

***

Today is for learning. Okay, every day is for learning! However, today is for starting to learn Bitcoin's basics.

I will be writing as I learn. I am starting with no specific pertinent technical knowledge, and very little knowledge of Bitcoin's qualitative philosophy or market penetration. Hopefully, in-progress documentation of my learning process will grant me further inspiration to continue my analysis.

The first step, to me, seems to be to do some introductory reading, both about Bitcoin's philosophy, and about its systems and implementation on a qualitative level. Once I understand what the whole thing is about, I can dive into details.

Soon, I suspect that I should attempt to engage with others doing active research on Bitcoin's impact and systems. This will be a project to start in the next few days, but it is worth noting now. It's something that I need to keep in mind when I'm introducing myself to the topic. As such, the thought also seems to be worth recording here.

Now on to some qualitative reading. Let's start with some qualitative facts about Bitcoin's design and philosophy:

  • Bitcoin is designed to be a decentralized form of electronic currency whose systems operate entirely on open-source protocols.
  • The idea of the details of crypto-currency were suggested in 1998 by Wei Dai, and Bitcoin is an implementation following this idea. The beginning of today's Bitcoin implementation is due to Satoshi Nakamoto in 2009, but he ceased involvement with the project in 2010.
  • Bitcoin is designed to have high levels of security by nature. This design encompasses several aspects: Entirely open-source protocols (so anyone can verify that they are secure and do what they claim), massively distributed architecture with highly-mirrored complete chronological transaction records, and heavy employment of cryptographic encryption at every stage of its implementation.
  • Bitcoins are actual units of currency. Instead of existing physically, they exist as electronic, virtual objects. To posess a Bitcoin really means storing a private key in a cryptographic scheme.
  • Bitcoin transactions are entirely transparent, at least in terms of the actual exchange of keys that happens in any transaction. The entire log of history of exchanges of Bitcoins (called the block chain) is mirrored on many systems across the planet. This ostensibly ensures that nobody can cheat by creating extra bitcoins by illegitimate means, or by recording fraudulent transactions.
  • Privacy is maintained by keeping the sender and receivers' identities secret by default.
  • Bitcoin transactions are designed to be irreversible. I will return to this point later on in the blog.
  • Bitcoins are divisible to an extraordinary degree - according to the bitcoin.org FAQ page, currently to 8 decimal places.
  • Bitcoins are only ever created in a single way, called "Mining." Mining constitutes running software that performs the calculations which are required to maintain and secure Bitcoin's entire transaction network. Thus, Bitcoins are earned by doing work to help maintain the Bitcoin network, as compensation for services rendered.
  • The rate of Bitcoin creation worldwide from mining at any given time is fixed. That is, new bitcoins are created at an entirely predictable rate. This makes Bitcoin mining a competitive endeavor - more miners, or more mining power, does not mean more bitcoins in circulation. Instead, more miners means that existing miners must improve efficiency or invest in more computational power in order to maintain profits.
  • The rate of Bitcoin creation from mining decreases by half every four years. The design of the system is such that the total number of bitcoins in circulation asymptotically approaches 21,000,000 as time passes. This 21,000,000 value is arbitrary. The essential purpose of this system is to make sure that Bitcoins have predictable, controlled supply. Data on Bitcoin creation rates is presented at the Bitcoin wiki page, here.
  • The monetary or trading value of Bitcoins varies according to free market supply and demand alone. Bitcoins had zero value when they were introduced. They have value today because companies and organizations have begun to accept Bitcoin transactions as payment - in other words, a Bitcoin's value exists by virtue of stakeholder/investor trust alone.


That's some information to start with! I suspect that I will find many questions to ask and many other relevant notes as I keep researching, but this is a start. Fortunately, as I mentioned, the Bitcoin project is entirely open-source, and thus a determined researcher can find out everything there is to know about it, with enough effort expended.

The points above are pretty unstructured. Perhaps it will help to split them apart into two categories: Market qualities, and Implementation qualities. Market qualities refer to practical things about how Bitcoin operates as currency, how the supply of Bitcoins is structured, and so on. Implementation qualities refer to the systems in place to make this market function, and to ensure its security. For an electronic currency like Bitcoin, these two categories are highly linked at some level, but from the perspective of an outsider, they may be more clear viewed differently. So here we go:

Market qualities of Bitcoin:

  • Free market currency, whose value varies according to supply and demand (just like regular currencies' exchange rates).
  • Controlled supply, with a known rate of currency creation that decreases over time. Eventually the worldwide supply of Bitcoins will be essentially constant, and the rate of creation is entirely transparent.
  • Ostensibly impossible to counterfeit.
  • Transactions are ostensibly irreversible. Fraudulent transactions are ostensibly very difficult to conduct due to Bitcoin's transparency.
  • You can effectively lose Bitcoins by losing your electronic private keys (or devices holding those private keys). This is analogous to losing real money. However, you can back up these keys to other storage devices as well, keeping multiple copies. This does not duplicate currency. The keys will be deactivated as soon as they are used. You can also encrypt or password-protect your keys so that they are difficult to use if the device on which they are held is stolen.
  • Easy transactions, in any amount, across borders, without requiring an account with any financial institution.
  • Can be purchased or sold from others in exchange for traditional currency, as long as Bitcoins maintain market value.
  • Rely on market adoption and trust for their value.
  • Since supply of Bitcoins and market adoption is still low, their market value remains volatile.
  • Bitcoins have no intrinsic value. They accrue value by their market-valued power to purchase goods and services offered by other entities (companies, organizations, governments).
  • It is possible to make money from the Bitcoin market directly by mining (analogous to gold mining).
  • Small transaction fees prevent (or discourage) overloading the Bitcoin network with many small transactions. These fees are paid to miners automatically (in Bitcoin) as additional compensation for supporting the wider network.
  • Bitcoin mining makes money (because it is the only way to create new Bitcoins, which are worth money). Since Bitcoins are produced at a fixed rate, mining is a very competitive activity, and there is a market for Bitcoin mining hardware.


Implementation qualities of Bitcoin:

  • The algorithm controlling creation of Bitcoins automatically scales the computational work involved with the amount of computing power doing mining in the world. In this way, Bitcoins are created at an approximately fixed linear rate (which decreases by 50%, as a step function, every four years).
  • The entire Bitcoin transaction history is stored in a structured database called the block chain. The block chain is mirrored on many systems around the world (Core Nodes). Any Bitcoin user may choose to maintain a Core Node.
  • Any attempted transaction whose details conflict with the worldwide block chain mirror will be rejected by the Bitcoin network as a whole. Along with algorithm/protocol transparency, this the system's main intrinsic fraud prevention feature.
  • Mining (the cryptographic workload involved in securing and maintaining the network) is the process of adding new blocks to the block chain, recording the newest transactions. Each block completed by mining rewards a fixed number of Bitcoins.
  • The difficulty of completing a block is controlled by a cryptographic mechanism called a "proof of work." The difficulty involved in completing a "proof of work" is controlled automatically such that blocks become more difficult to complete as more computing power is made available for mining, in such a way that the rate of creation of Bitcoins remains fixed. A "proof of work" is a cryptographic problem which must me correctly computed solved order for a block to be accepted. As an example: If the worldwide computational power available for mining doubles, then the Bitcoin network automatically makes blocks twice as computationally complex to complete (so the rate of block completion, and thus the rate of Bitcoin creation, remains fixed.)
  • The storage size of the block chain is currently increasing roughly exponentially over time. In the future, if Bitcoin remains successful, then large amounts of storage will have to be devoted to Bitcoin block chain mirrors.
  • The energy (as in, actual energy from the power grid) expended in Bitcoin mining is increasing rapidly, because mining inherently becomes more computationally demanding over time. Currently, specialized hardware is required to participate in Bitcoin mining in any effective way. This hardware is highly optimized for Bitcoin's computations. As Bitcoin's creators point out, any energy consumed by Bitcoin's mining network is converted to heat, and ambitious miners may use this heat efficiently to power other systems or heat buildings.
  • Each Bitcoin owner must keep a "wallet" (several free, open-source Bitcoin wallets exist) which essentially serves as a database of their private keys (which are the actual signatures of their Bitcoin holdings). The wallet (and keys) can be backed up.
  • A Bitcoin transaction consists of an exchange of a user's private key, and a cryptographic handshake. A new private key representing the Bitcoin value is generated automatically for the receiver and stored in their wallet if the handshake is accepted. Transaction details are broadcasted across the wider Bitcoin network (though not including sender/receiver details) and put into the mining queue, ending up in the next block completed.
  • Once a transaction is recorded in a finished block by a miner, it is added to the block chain. At this point the transaction is considered "completed." Only once a transaction is completed may the recipient of the Bitcoins spend his new currency, since completion represents validation by the Bitcoin network of the previous transaction.
  • Every new block's successful proof of work depends on the previous blocks in the chain. Reversing any completed Bitcoin transaction requires re-writing every block of the block chain after that transaction. This is effectively impossible because proofs of work are extraordinarily computationally intensive, and new blocks are always being added. Thus completed Bitcoin transaction are effectively irreversible, especially after a few additional blocks have been added to the chain.
  • Blocks are completed at an approximate fixed rate of 6 per hour, worldwide. Thus transactions typically take less than 10 minutes to be completed.
  • Bitcoin wallets update from the worldwide block chain mirror when started. Thus a client can receive Bitcoin payments even if their wallet is not connected - it will be credited the next time the software starts. Similarly, if a transaction cannot be completed (the handshake or private key are not accepted by the wider Bitcoin network), then it will be automatically cancelled (since it will not be recorded in the block chain), typically within 10 minutes.


A lot of details to think about, and this is without getting into anything technical. That is still to come. I suspect that much of my qualitative understanding is still slightly off too, but it will hopefully self-correct as I immerse myself in more details. I have accomplished most of what I wanted to in this blog at this point - just outlining what my understanding is of Bitcoin after several hours of reading. So what do I think of all of this?

Well, I realize now that previously I had a fundamental misunderstanding of at least one aspect of the problem I intended to look at - I was under the impression that reversible transactions was a major problem for Bitcoin. In fact, as I mentioned above, Bitcoin transactions are designed to be irreversible once completed. If you wait 10 minutes after making a Bitcoin transaction, and receive a completion notice, you can be reasonably certain that there is no way for the other party to back out of the transaction. If you wait an hour, you can be essentially 100% certain that it is computationally impossible for the other party to back out of the transaction. This provides a level of fraud protection that seems important for an online virtual currency. I believe other systems - for example, Paypal - deal with significant problems in this vein. That point seems to warrant more investigation. Moreover, Bitcoin's inherent irreversibility seems to me like it might open some other avenues to fraudulent transactions.

I know that there have been fraud concerns with Bitcoin. It will definitely take investigation to see what is going on there. Bitcoin's creators seem to insist that past problems have been entirely with users not protecting their private Bitcoin keys (which represent currency) adequately.

Another concern that I still have is that my qualitative investigation has so far told me nothing about the implementation of how Bitcoin actually maintains its worldwide network. How does the block chain get updated across all its mirrors? How do transaction details get communicated to miners? How exactly do concurrent miners function? Are they all working on the same block at the same time? When a new block is completed, how does it get added to the chain? How much of the network do you need to control in order to be able to potentially disrupt completion of transactions for the entire whole, or worse, compromise the worldwide block chain mirror? These are all implementation details I will need to look at.

Moreover, apparently, if more than 50% of the Bitcoin network's mining power were controlled by one organization, this organization could hypothetically take artificial control of what transactions are accepted or rejected by the whole network (via manipulating the majority of block chain mirrors and thus resynchronizing the entire network to a new chain). This situation seems improbable in a free market for currency, but it does exacerbate my concerns about the Bitcoin network's update/synchronization mechanisms. In fact, however improbable it seems, it happened for the first time just two days ago. This effective control, and the break it represents from Bitcoin's decentralized philosophy, could spell major problems for the integrity of the entire Bitcoin network, and its future.

A problem called "forking" was also mentioned to me, and I have yet to find reference to it. This is something else I'll have to investigate. A quick Google search reveals that Bitcoin forking refers to a version conflict in block chain interpretation software, where a bug caused one version to declare some valid blocks to be invalid. This resulted in two divergent block chains, and some Bitcoin double charges. Whether this problem has relevance to Bitcoin's future security is something else to potentially consider.

Finally, I have yet to delve into any of the details of Bitcoin's cryptographic implementations. Some preliminary reading reveals that the network relies on standard ECDSA (elliptic curve digital signature algorithm) for transaction handshakes. It relies on SHA-256 (SHA stands for secure handshake algorithm, a cryptographic hash function developed by the National Security Agency. The algorithm used by Bitcoin, SHA-256, is a variant of SHA-2, the second iteration of SHA) for hashing purposes in validating the block chain's integrity and in implementing proofs of work for new blocks. A lot more to learn about these implementations. I have had some small exposure to ECDSA in the past, but exploring SHA-256 will be new.

That is it for today. I have not decided on the best approach for tomorrow's blog yet, but I am sure it will come together. Out for now!