If you understand the core innovations around the blockchain idea, you’ll realize that the technology concept behind it is similar to that of a database, except that the way you interact with that database is very different.
The blockchain concept represents a paradigm shift in how software engineers will write software applications in the future, and it is one of the key concepts behind the Bitcoin revolution that need to be well understood. In this post, I’d like to explain 5 of these concepts, and how they interrelate to one another in the context of this new computing paradigm that is unraveling in front of us. They are:
- The blockchain,
- Decentralized consensus,
- Trusted computing,
- Smart-Contracts and
- Proof of Work / Stake.
This computing paradigm is important, because it is a catalyst for the creation of decentralized applications, a next-step evolution from distributed computing architectural constructs.
These concepts are computer engineering related. They are technical in nature, but they will have business implications, because they are capturing the imagination of developers and business visionaries who are rushing to create a new generation of applications.
But this is not just a computing phenomena. Decentralized applications are going to enable a decentralization trend at the societal, legal, governance and business levels. As I wrote earlier, There is a Race to Decentralize Everything and Give Power to the Edge of the Networks, so, let’s get ready to understand these concepts.
Decentralized Consensus (on or off Bitcoin’s Blockchain)
To fully understand the blockchain concept and the benefits of cryptography in computer science, we need to first understand the concept of “decentralized consensus”, a key tenet of the crypto-based computing revolution.
Decentralized consensus breaks the old paradigm of centralized consensus, i.e. when one central database used to rule transaction validity. A decentralized scheme (which the Bitcoin protocol is based on, transfers authority and trust to a decentralized virtual network, and enables its nodes to continuously and sequentially record transactions on a public “block”, creating a unique “chain”, the blockchain. Each successive block contains a “hash” (a unique fingerprint) of the previous code, therefore cryptography (via hash codes) is used to secure the authentication of the transaction source and removes the need for a central intermediary. The combination of cryptography and blockchain technology together ensures there is never a duplicate recording of the same transaction.
What’s important here is that with this degree of unbundling, the consensus logic is separate from the application itself, therefore applications can be written to be organically decentralized, and that is the spark for a variety of system-changing innovations in the software architecture of applications, whether they are money or non-money related.
You could think of Consensus as the first layer of a decentralized architecture. It is the basis for the underlying protocol that governs a blockchain’s operation.
The Blockchain (and Blockchain Services)
A blockchain is like a place where you store any data semi-publicly in a linear container space (the block). Anyone can verify that you’ve placed that information, because the container has your signature on it, but only you (or a program) can unlock what’s inside the container, because only you hold the private keys to that data, securely.
So the blockchain behaves almost like a database, except that part of the information stored, its “header”, is public.
The data stored can be a token of value, or a crypto money balance. So, the blockchain acts as an alternative value transfer system that no central authority or potentially malicious third party can tamper with (because of the encryption process). It’s based on the public/private hegemony, which is the yin-yang of the blockchain: public visibility, but private inspection. It’s a bit like your home address. You can publish your home address publicly, but that doesn’t give any information about what your home looks like on the inside. You’ll need your private key to enter your private home, and since you have claimed that address as yours, no one else can claim a similar address as theirs.
The blockchain can also be seen as a software design approach that binds a number of peer computers together that commonly obey the same “consensus” process for releasing or recording what information they hold, and where all related interactions are verified by cryptography.
Smart Contracts (and Smart Property)
Smart contracts are the building blocks for decentralized applications. A smart contract is equivalent to a little program that you can entrust with a unit of value (as a token or money), and rules around that value. The basic idea behind smart contracts is that a transaction’s contractual governance between two or more parties can be verified programmatically via the blockchain, instead of via a central arbitrator, rule maker or gatekeeper. Why depend on a central authority when 2 (or more) parties can agree between themselves, and when they can bake the terms and implications of their agreement programmatically and conditionally, with automatic money releases when fulfilling services in a sequential manner, or incur penalties if not fulfilled?
Here’s a simple example of a smart contract to “sell 100 beanie babies” using a form of natural contract programming language, based on Ethereum:
The starting point that you assume when applying smart contracts is that third party intermediaries are not needed in order to conduct transactions between two (or several) parties. Instead, the parties define and agree on simple (or complex) rules, and they embed them inside the transactions, enabling an end-to-end resolution to be self-managed between computers that represent the interests of the users. Smart properties are digital assets (or things) that know who their owners are. Their ownership is typically linked to the blockchain.
Trusted Computing (or Trustless Transactions)
When you put the concepts behind the blockchain, decentralized consensus and smart contracts together, you start to realize that they are enabling the spread of resources and transactions laterally in a flat, peer to peer manner, and in doing that they are enabling computers to trust one another at a deep level.
Whereas institutions and central organizations were necessary as trusted authorities, a certain number of their central functions can be codified via smart contracts that are rather governed by decentralized consensus on a blockchain.
Namely, due to the blockchain’s role as the unequivocal validator of transactions, each peer can proceed and trust one another, because the rules of trust, compliance, authority, governance, contracts, law, and agreements live on top of the technology.
If you fast forward to a not-too-distant future, smart contracts and smart property will be created, dispensed or executed routinely between consenting parties, without either of them even knowing that blockchain technology was the trusted intermediary.
Arguably, “trusted computing” on the Web is a key tenet of the new crypto-driven paradigm.
Proof of Work (and Proof of Stake)
At the heart of a blockchain’s operations is the key concept of “proof-of-work”, an integral part of Satoshi Nakamoto’s original vision for the blockchain’s role as the unequivocal authenticator of transactions. The “proof of work” is a “right” to participate in the blockchain system. It is manifested as a “big enough hurdle” that prevents users from changing records on the blockchain without re-doing the proof of work.
So, proof of work is a key building block because it cannot be “undone”, and it is secured via the strengths of cryptographic hashes that ensure it authenticity.
But proof of work is expensive to maintain (estimated cost of $600M per year for Bitcoin), and may run into future scalability and security issues, because it depends solely on the miners’ incentives which will be declining over time. An upgraded solution is “proof-of-stake” which is cheaper to enforce, but more expensive/difficult to compromise. Proof of stake not only determines who gets to update the consensus, but it also prevents unwanted forking of the underlying blockchain.
Edging Towards a Decentralized World
There will be a rush to develop new decentralized apps as a way to enable the decentralized world that we are edging towards.
To that end, business leaders and visionaries will need to learn a new vocabulary around crypto-related frameworks. Developers need to learn how to write decentralized apps that are enabled by blockchain technology. And end-users need to learn how to create or use smart contracts, e.g. as depicted via the Mist browser vision (Ethereum), which is a mix of marketplace discovery, management dashboard, and creation platform, all-in-one.
I recently outlined a comprehensive list of Bitcoin White Papers, and there were lots of protocols and proposals, but a protocol alone doesn’t make a robust development environment. We will need to see comprehensive development environments that support a full stack of capabilities and value-add components on top of the blockchain services and consensus engines.
The original Bitcoin blockchain technology had limitations as we started to push its limits outside of money related services and into the software applications realm, so we shouldn’t be surprised that the way forward is a world of multiple blockchains. Some of them will be working together, some competing with one another, and others just being benevolent to each other.
Despite all the excitement and high expectations surrounding blockchain technology, there will be important issues that need to be addressed pertaining to deployment, scalability, security, and robustness, and many of these challenges are being worked on today.
Decentralized Apps will come in different flavors, sizes and complexity levels, so we must be prepared for that variety, and we must see beyond the Bitcoin promise to be the Internet of money, and into the Blockchain’s promise to become a new development environment, just as Web development was the new paradigm back in 1996.
Originally posted on StartUpManagement.org by William Mougayar