Where to Use Blockchain Technology
Comparing Blockchain with other Data Storage Methods
Blockchain technology started with Bitcoin, proposed in 2008. Bitcoin is composed of two main parts, using existing distributed ledger technology and adding a consensus layer on top (the blockchain).
A ledger takes care of calculating debits, credits and ending balance for each user, it effectively validates and computes transactions made. In a non distributed ledger a trusted third party is responsible for tracking the movement of digital currency. This is a problem when the third party isn’t trusted or starts taking actions that benefit itself.
A distributed ledger is the idea of distributing a ledger to multiple participants to ensure a common record of truth. That way each ledger can check new transactions and help prevent a single ledger from making unfair alterations. The missing piece of a distributed ledge is the way that consensus between ledgers will be handled.
Blockchain offers a way for untrusted parties to add & update state and reach consensus on a common digital history. Allowing digital information to be distributed but not changed. This is important because digital records in theory are easy to fake or duplicate.
How does a blockchain work?
A block, is a set of characters that results in a SHA256 hash (which outputs 64 digits for any input) that starts with the first 4 digits being 0. For example:
A block will often contain: a block ID, block data, and a nonce value (a value mined to find a hash starting with 4 zeros).
A blockchain, is a set of blocks that point to the previous block in the chain. Blocks within a chain will have a block ID, block Data, the SHA256 Hash of the previous block, and a nonce value. This information is passed into the SHA256 hash to output a hash for this block which becomes the next block if the hash starts with the required number of zeros.
A distributed blockchain, works to maintain consensus of records by incentivizing the quickest participant to mine or find the nonce value that will create the next block hash in the chain. Once the value is found the new block is added to the chain, and distributed to other nodes on the network, if the block transaction information appears valid and the new hash meets the starting 0 criteria, the block is accepted by the other nodes and they begin working on figuring out the next block nonce.
This Proof-of-work record required to set a new block makes it computationally impractical for an attacher to change, if honest nodes control the majority of CPU power. This is because other nodes would reject the block if the transactions in the ledger appear invalid, creating a situation where the best a hacker could do is remove a previous transaction he made (allowing double spending?).
Where is blockchain useful?
Considering blockchain vs existing approaches
Blockchain vs Centralized (SQL & NoSQL) Databases
Disintermediation (removal of middlemen) advantage blockchain
Blockchain — No risk of human meddling with the data, or for untrustworthy and un-transparent behavior. Lower cost of ensuring security of the data, fees for management. Blockchain databases can be directly shared, in a write sense, by a group of non-trusting parties and do not need a central administrator.
SQL/NoSQL DB — Possible human with access could meddle with the data, high cost of maintaining and ensuring security of important data via processes.
Confidentiality: advantage centralized databases
Blockchain — blockchain databases can only be write controlled, everyone has access to read all data.
SQL/NoSQL DB — can deny read request, as the DB is housed behind a central entity
Robustness: advantage blockchains
Blockchain — By the nature of every node viewing every transaction, it would not impact the system’s ability if some nodes drop off. For a blockchain to work, lots of participants need to hold up-to-date copies. This means that the same database is held by thousands of nodes. This is good in cases where robustness is important, but fairly inefficient in other cases. Blockchain runs counter to the logic behind cloud computing. Cloud computing trends toward a single database that multiple nodes can access. These nodes don’t have to hold their own private copy of this database.
SQL DB — while copies can be made it is not as inherently part of the system.
Performance: advantage centralized databases
Blockchain — use computing power to verify every transaction, consensus mechanism, & redundancy of performing the same calculations on multiple machines.
Blockchain might prove unwieldy, slow, and overly complex. Bitcoin can process about 3–4 transactions per second. Ethereum maxes out at about 20 transactions per second. Visa can process over 1,500 transactions per second.
Criteria for Using Blockchain
Blockchains have a strong use case, where disintermediation and robustness are more important than confidentiality and performance.
Ask yourself: what’s more important for my use case, disintermediation and robustness? Or confidentiality and performance?
A template for evaluating if blockchain can be valuable for a problem:
- Is there a risk of having data stored by a central administrator?
- Is the central administrator a primary source of risk in record keeping or fees?
- Is preventing loss of records of paramount importance?
- Is it a problem that all information is available on a public record, even if anonymized keys are users?
- Is the speed of record additions a significant challenge?