Technically, this was the start of the last lecture called the Future of Bitcoin. Later, the course included a 12th lecture. It felt like a look back through the course where this time we looked at the consequences bitcoin could have outside of just technology. Decentralization is one component. Personally, I’d never really heard the term or used it until 2016. When studying computer science, I knew about distributed systems, those big grand messy data system that big tech companies were using to wrangle their big data ie Twitter and Facebook. This simple idea is that data could be stored partially in multiple locations. This improves resliency and removes single points of failure because not all data was stored on a central server. On the flip side, the systems are challenging to keep in sync with each other as different data can be updated and fetched from different servers and potentially have different results. Though with the rise of managed and hosted solutions, many developers don’t need to care as much about the upkeep and implementation details and can just use these systems. When Bitcoin came in, it was just that, another distributed system from my point of view. But it’s not just that. Bitcoin and other blockchains could be used for other purposes then just wrangling data. That’s how this lecture spoke to me. Ok, enough rambling and onto the lecture!
The lecturer throws out a number of application that blockchain could be used in: stocks, bonds, and property. However this talk focused on the “should you aspect”. So trying to frame the conversation as a “Should you decentralize X with blockchain?”
Motivating Example: Smart Property
To begin, we start with smart property where the property in question is a car. The lecturer introduces new features when designing smart property. The ownership of a car can be tied to owning the car. That’s slightly different from modern mechanics, but we’ll go with the flow here. Some new properties with smart property are that the car could be opened via bluetooth via a signed message being sent to the car. The car is controlled by a cryptographic key. Additionally, the car has to be monitoring the blockchain and be able to react to changes, such as change in ownership of the car. That may be difficult in remote areas but not impossible. A sale of a car could be a single bitcoin transaction where there is an exchange of payment as well as a shift of ownership of the car. Thus it would be atomic and is binding.
The case where everyone is acting properly seems to be solvable. What happens if there are disputes? A potentially solution was discussed earlier with escrows. Essentially you need to bring in a third-party to act as the mediator and make a 2 of 3 escrow. This may still be decentralized in that perhaps each transaction could have a different third party acting as a mediator though that feels unwieldy. Traditionally, if there is a dispute in today’s age, the courts handle it. It’s a normal procedure where both parties would accept the assessment of the judge. One advantage to the court system versus blockchain is that funds are not locked up in escrow during the dispute. Counter to that, blockchain disputes may be shorter because of less people are involved and people’s funds are locked.
Key Insights – What are the disruptions from the above example?
Disintermediation – removing the middle man
In the example, the sale of the car and ownership of the car was coupled. No one had to register with the central registry ie the Department of Motor Vehicles (DMV) for the United States (US) that the car had changed hands. Instead this was automatically propagated through the blockchain network and thus is is known by the necessary parties. The transfer process was just a technological step and no central governance bodies were at play.
There is the counter question of should blockchain be allowed to do this? Is removing the middle man even legal? That’s a common discussion point even today. From there the discussion turns to, can we bake the legal and regulatory guidelines into the transactions on the blockchain. Again you follow the path to alternative blockchains that can support programmable logic like the public Ethereum or maybe something more private and centrally controlled like Hyperledger. Or maybe the argument is yes, yes blockchain should be able to do this and leave it as is.
Key areas when building solutions with a blockchain network
Representation
To model something from one medium to another, you need to translate it or create a comparable model. You want to represent real world transactions on a blockchain which can be tricky. You have a much more limited set of transaction types to use then what one could find in a legal contract. Additionally, legal documents are some times several thousands of pages for transactions related to companies. If that context isn’t represented on a blockchain, is just the monetary movement good enough? Additionally, visualization of this transfer while technically transparent is not really transparent? It’s only easy to understand for a small part of the population which is true of the current system.
Atomicity
Atomicity is like an all or nothing clause. Within relational databases, ACID is a popular acronym with the first term being atomicity. The transactions that need to take place, they need to be coupled. This strengthens the security guarantees especially since it’s not easy or even possible in some cases to reverse a decision.
Security
Security can be critical depending on what you’re integrating to a blockchain. Also bitcoin itself does come with several security guarantees. Security does not have to be achieved just through cryptography. It can be achieved through social reputation. Atomicity and escrows also help achieve security. Lastly trusted hardware like Intel SGX or like a ledger wallet are built to a high standard of requirements that make then less susceptible to malicious attacks. Because there’s no enforcement or regulation, debt cannot be easily tracked or maintained. One interesting quote was, “lack of trust is a starting point, not a goal.”
Motivating Example 2: Crowdfunding
Kickstarter is a fantastic company. They allow individuals to crowdfund their own projects on their site. People can browse these kickstarter campaigns and then pledge money to projects they align with and potentially get some reward in the end such as early access if it’s a physical product. Now let’s flip that is there a way to decentralize this. Entrepreneurs can raise money for their projects without going through a centralized place. Technically its pretty straightforward with Bitcoin. The entrepreneur can create a transaction with an arbitrary number of inputs and one output (target raise amount). Others can support the cause by signing with their input and output and the transaction is signable only if the total input is greater than the output.
Routes to blockchain integration
- Bitcoin
- Embedding
- Sidechains (see here)
- Altcoins – another blockchain
Just use an existing blockchain network. Bitcoin
Simplest approach is to use an existing blockchain network. As of this lecture, the only option that made sense was bitcoin. However, it’s 2020, and that has changed. You now have quite a few options though in terms of dev commitment it feels like Ethereum, Cosmos, Tezos and Polkadot have top of mind. 100% sure I’m missing a ton. The point is that using an existing network and its resources as long as it doesn’t require modifications to the blockchain, it is the most straightforward. It does mean that when designing your application, you’ll need to take into account the specifics of the blockchain network such as latency or security guarantees. also, the transaction will also need to be catered to the blockchainn so representation may be limited.
Slightly more complex. Embedding.
In this case, you’re still using the existing network, Bitcoin without modification to the core protocol. Explained earlier as Colored Coins, in this case, you can almost filter the Bitcoin blockchain based on your needs. You can put in an arbitrary marker in the OP_RETURN and use that to track certain types of transactions like car transfers. You get to use more complex transactions. However, there is still a lack of doing exactly what you want since you’re still limited by bitcoin. Also another downside would be the extra bloat added to bitcoin.
Way more complex with bitcoin. Sidechains
Sidechains seem complex and do require modifications to the existing Bitcoin blockchain on like a protocol layer. It removes the bloat added to bitcoin though.
Solution that the world has picked. Altcoins
Altcoins have been the solution chosen by the world. Most blockchain integrations are done using an altcoin: Ethereum, Hyperledger, Tezos, Cosmos, maybe something else. The lecture focuses on Ethereum and at this point in 2020, we’re seeing large adoption in people building decentralized financial products. Ethereum provides a general purpose smart contract language that gives people wider representation. The lecturer brings up points that will this chain have enough computing power and adoption. The answer is Yes!
Summary
Decentralization can happen using a blockchain. It may look and feel different than what is currently in place. Ownership, deeds, and accounting may have to be redefined terms depending on how transactions are stored on a blockchain. Also, decentralization is a spectrum. Single mandatory intermediary all the way to no intermediaries. Using representation, blockchain integration, level of decentralization, and security is a framework the lecturer proposed to evaluate decentralized projects.