The Blockchain Ecosystem in a Nutshell
Blockchain, Smart Contracts, Dapps… Those are some of the biggest buzzwords of the year. How do those elements interact with one another? Why is it that an exponentially growing community of developers solely swear by them? Moreover, why are Fortune 50 companies currently investing millions of dollars in Blockchain projects?
Where do you and your organization stand in regard to Blockchain?
Decentralized Applications (DApps)
DApps, also called “Decentralized (or Distributed) Applications,” are software programs that run on a peer-to-peer (P2P) network of computers rather than a single computer and are not controlled by a single entity. Thus, users of the network do not depend on a central computer in order to send and receive information.
Before going any further, it’s necessary that we lift the veil on a misconception among the general public regarding DApps. Since the advent of Blockchain, the general understanding is that decentralized applications solely run on top of a Blockchain network, which in itself is a specific kind of P2P network. The reality is that decentralized applications do not necessarily need to run on top of a Blockchain network. Think BitTorrent (where you may have downloaded illegally the entire discography of U2) and Tor (the gateway to the Darknet). Those are indeed two traditional DApps that run on a P2P network that is not a Blockchain network.
Now, for decentralized applications to be considered on the Blockchain, they must meet the following criteria:
Be 100 percent open-source
The data and records the DApp generates must be cryptographically stored in a decentralized Blockchain to avoid any central points of failure
Use a cryptographic token
Operate autonomously, and with no entity controlling the majority of its tokens
Any change to the application requires consensus of the DApp users
Data the DApp pushes to the Blockchain must be validated via the solving of an algorithm
DApps and Smart Contracts
Users take action via a DApp. It’s very much similar to your submitting an order to buy ten bottles of mineral water via the Prime app on your smartphone. The data the action generates is pushed to the Blockchain. The information can either be stored or trigger a smart contract, which once executed will in turn trigger another action or smart contract.
Smart contracts are computer-generated and the obligations that each party must fill lie in the code. Unlike a standard contract that lists the terms of a relationship, which are usually enforceable by law, a smart contract enforces a relationship with cryptographic code. “Enforce” is the keyword. Smart contracts are computer-generated programs that enforce the execution of the contract according to the way it was set up by its creators. Thus, all parties involved are bound by a digitally-produced but binding agreement. Smart contracts carry many advantages, one of which being that they facilitate business arrangements, without the formality and cost associated with traditional contracts.
The computer programs that automate smart contracts run on Blockchain platforms. This is why smart contracts are also called “Blockchain contracts” or even “digital contracts.” By leveraging the upsides of Blockchain, smart contracts enable the exchange of anything of value in an incorruptible, transparent and conflict-free environment, while bypassing the need of having a middleman or intermediary involved.
On a technical side note, the Blockchain platform of choice for developing and executing smart contracts is Ethereum, because it offers a language that allows developers to write their own smart contracts, thanks to the availability of a wide range of computational instructions.
Suggested Readings on the topic of Smart Contracts:
And What About Blockchain?
The common definition is that a Blockchain is a decentralized, distributed and incorruptible digital ledger (in other words, a database) that is used to record transactions across many computers.
A Blockchain network consists of several decentralized nodes. Each node acts as an administrator, which signifies that each node verifies the validity of a new data that is pushed (or stored) to the Blockchain. The information stored is shared among all databases and continually reconciled. There are 2 data functions inherent to a Blockchain network: (Transaction) Validation and (New Transaction) Writing. There lies a major difference with a centralized system (i.e. the cloud). The latter provides 4 data functions: Create, Read, Update and Delete. So, anyone with access credentials (authority, i.e. dbase admin) can utilize the Create, Update and Delete functions to compromise data. It is impossible in a Blockchain environment. Once a data is written inside a node, it is also stored inside every other node of the network, and it cannot be overridden. Smart contracts which are intrinsic parts of a Blockchain network are immutable as well. Moreover, Blockchain networks self-audit every ten to fifteen minutes. This self-auditing capability would flag any node that shows an issue and correct the error.
Miners verify the validity of a new data that’s pushed to the Blockchain. Miners are highly specialized computer systems that receive the elements of a Blockchain-based transaction and verify its validity by running an extremely complex algorithm. There are 3 types of algorithm, one per type of blockchain network: (1) “Proof of Work,” where participants compete to solve the algorithm (public Blockchain environment), (2) “Proof of Stake,” where a trusted stakeholder is in charge (private or permissioned Blockchain), and (3) “Proof of Authority,” where a group of trusted stakeholders are in charge (consortium or federated Blockchain).
Suggested Readings on the topic of Blockchain:
To Conclude: CryptoKitties
CryptoKitties is a DApp that runs on the Ethereum Blockchain platform. It is the most popular Blockchain-based game in existence. In a nutshell, users collect and breed “oh-so-adorable” creatures that are called CryptoKitties.
Each kitty has a unique genome that defines its appearance and traits. Players can breed their kitties to create new furry friends and unlock rare “cattributes.” CryptoKitties are crypto collectibles. Users can buy, sell, or trade their CryptoKitty thanks to smart contracts, as if it were a traditional collectible, secure in the knowledge that Blockchain will track ownership securely. Just think Beanie Babies on steroids and on the Blockchain.
Why am I talking about CryptoKitties? Because it summarizes perfectly all I have developed in this blog. May I invite you to click here? The smart contracts which are executed to buy, sell or trade a CryptoKitty are made available to the public. Anyone can see the code. Furthermore, all transactions along with their respective hash (unique authenticator) stored in the Blockchain are also viewable by everyone.
Blockchain brings transparency and therefore trust.