One of the central research themes in my study of theory for Distributed Ledger Technology (DLT, or blockchains and cryptocurrencies and the like) is that of Ledger Architecture. But what do I mean by Ledger Architecture?
What is Architecture?
In my parlance, I take "architecture" to mean the high-level details surrounding the following things:
- Who is allowed to add things to the ledger?
- If two people simultaneously try to add conflicting things to the ledger, how do you decide which one belongs?
- How do we know that a bad guy can't re-write the ledger?
In Bitcoin and other similar proof-of-work blockchain-based cryptocurrencies, the answers are simple and relatively well-understood. I call this the "architecture" of bitcoin:
- If you solve a proof-of-work, you're allowed to add any valid transactions you want to the ledger all bundled together in a block.
- In deciding between two blockchains, the longer one is considered valid. That is, if two miners try to add blocks simultaneously, then the chain temporarily "forks" -- this fork is not resolved until a future miner builds on one of the forks. As soon as this happens, the longer fork wins.
- If a bad guy has less than 50% of the hash power of the mining network, then the probability that the attacker can reverse a transaction decays exponentially with time. That is, the longer we wait, the safer the transaction is.
What other architectures are there?
Not everybody believes that Bitcoin has the best architecture, and many people are actively searching for something better. I started to piece together my thoughts on this topic recently when I started looking into the IOTA cryptocurrency. Without going into a great deal of detail, IOTA is a cryptocurrency that works somewhat differently than Bitcoin (or Steem). In particular, IOTA has no blockchain. The IOTA Foundation claims that this allows IOTA to do things that Bitcoin can't. Because I'm a curious kind of a person, as soon as I started reading this I set out to try to understand whether this is actually true.
How might we answer the above questions for IOTA?
- Anybody, anywhere is allowed to add a transaction to the ledger -- the only rules are that you have to do a small proof-of-work, and your transaction has to reference two other valid transactions that are already in the ledger.
- Just like in Bitcoin, we wait to see which of the conflicting things "wins" in the long run. Unlike Bitcoin, there is no sharp rule for deciding which of the conflicting transactions wins; we just do it probabilistically based on some formulas.
- The IOTA Foundation claims that if a bad guy has less than 33% of the hash power of the network, then the probability that the bad guy can reverse a transaction decays with time. I am not aware of any formal proof of this.
So it's all quite a bit different in IOTA from how it works in Bitcoin, but if we can model both using the same mathematical tools (that is, by formally answering each of the above 3 questions), then we can actually compare the two systems in a formal way. We might then notice things like this:
In IOTA, security is determined by hash power, and hash power is provided by users. It seems reasonable to conclude that total security is proportional to transaction volume. This is fundamentally different from Bitcoin; in which the hash power is somewhat more independent of the transaction volume on the network. In IOTA, if the transaction volume suddenly drops, it appears that the network instantly becomes more vulnerable to attacks. In Bitcoin, a decrease in transaction volume would likely have a much smaller effect.
So what questions will I ask with this framework?
- Does a cryptocurrency need a blockchain, or is IOTA's "Tangle" just fine?
- What are the consequences of separating users from block producers? Does Bitcoin
- What are the fundamental limitations to secure transaction rates?
- Are the IOTA Foundation's claims that "the network gets faster the more it is used" correct?
- Why do Graphene-based DPOS chains apparently perform so much better than PoW mining chains? Has something important been lost, or are they just better?
Stay tuned for more of my quick thoughts on DLT Theory!
If you want to partner with me to define the questions, find the answers, or fund those of us who do, please reply here and join the conversation. I'm beginning as a tenure-track professor of Computer Science at the University of Colorado, Colorado Springs in August, so I'm always on the lookout for motivated graduate students (get paid to get a PhD in computer science in beautiful Colorado Springs!) and funding partners.