Blockchain and blockchain-powered applications for real estate and, now, construction are the rage right now. Understanding how this technology works is essential to evaluating any startup’s claims that they are the next Bitcoin. Below is an excerpt from a recent post here at AEC Labs (you can access that post here) that dives into the nuts and bolts of blockchain in some detail. We hope this can serve as a useful primer as you read through other articles on this site that look more closely at the future of blockchain for real estate and construction.
How is a blockchain created and why is it so secure?
A blockchain is a continuously – and potentially infinitely – growing set of digital records, each of which is accessible to the public (or a closed group of users, as the case may be) over the internet. Think of it as a digital ledger whose entries are immutable – if any single entry in an infinite list of historical transactions is changed in any way – no matter how small the edit – every single user of the blockchain will know immediately. As new “blocks” of data are added to the chain, each user receives the new, updated version instantaneously.
The technology has its origins in the “double spending” problem for online transactions. Suppose you own some discrete amount of digital currency and want to pay your friend back for a recent dinner. Without some sort of mechanism for validating the transaction, you could essentially use that digital money to pay back your friend and then use it again for another transaction next week (or potentially an infinite number of transactions).
A centralized mechanism for validating payment to your friend would be a trusted third party (like a notary public, say, for paper transactions or the digital certificate authorities that enable https:// security.) But there are limitations – can you trust that third party to always act in your best interest in verifying the transaction? Here is where decentralization and blockchain technology comes into play.
The key to understanding blockchains is the hashing function.
A blockchain’s continuously growing set of digital records is organized into sequential “blocks.” Each block contains the transaction data (or data from a group of transactions, like purchases during a particular time period or all of the deeds to the houses in your neighborhood), a timestamp, and a “hash” that was generated by the previous block in the chain, all the way back to the “genesis block” whose data is used to generate the first hash in the chain.
The hash is the output of a cryptographic function (a mathematical process) that converts any amount of information contained in the block (the input, or in computer science terms a “string”) into an output that is the same size for all transactions that are parsed through the function. So you could potentially have an infinite amount of data that is reduced to, say, 256 random letters and numbers (if you apply the SHA256 function like most blockchains).
It’s relatively easy to run data through the function and to create the hash, but nearly impossible to recreate that data working backwards from the hash alone.
This is because changing even one character in the string – even adding a period to a sentence or flipping a single digit – will generate a completely different hash. For example, here are two hashes generated by the SHA256 hashing function run against a nearly identical sentence where the only difference is a missing period:
The brown fox crossed the street, 217dbd0cb5d5b92bedcbd52b35802ae403c3200410e61ffe1e23543ade73bf78
The brown fox crossed the street., 5b975ab4c64c313410fb39ea0dc4d7b09e893701b8dc417f3bec786e3933a080
Once the new hash is generated, it is sent along with the data comprising the new block to the rest of the network on which the chain exists. If the network agrees that the new hash is valid (i.e. if nothing in the chain has changed, the same data will always generate the same hash for all users on the network), then the block is added to the chain. The new hash is then recognized as the latest version of the blockchain and the process repeats itself when the next new block of data is added to the chain.
This process can continue infinitely and allows many users to update the data set independently, communicate those updates securely to other parties on the network, and guarantees that each user will always have the most recent version of the data.
It also solves for the original “double spending” problem by ensuring that the data in each block was only the subject of one transaction (i.e. it can’t be changed or modified without the network’s knowledge as this would change the hash).
Now that we have a general understanding of how a blockchain functions, what is a cryptocurrency?
Cryptocurrency transactions are all recorded on a public, decentralized ledger (i.e. a blockchain). At a very basic level, when Alice wants to send 5 Bitcoins to Bob, an algorithm confirms that Alice has 5 Bitcoins to send (by analyzing every transaction that has ever occurred in Bitcoin, all of which are listed in the ledger). If she does, then the transaction is added to what will be the next block in the ledger. Bitcoin “miners” (essentially other computers on the network) try and work out the first group of digits to the correct hash that will successfully add the block to the chain.
Once successful (this process takes about 10 minutes), the miner is rewarded with a fixed number of Bitcoins in his or her account (the number decreases over time as more Bitcoins are mined – the last one will be mined sometime in 2140 at the current rate), along with a small processing fee.
In this way, because there are a fixed number of them (21 million) Bitcoins are distributed into the global financial system somewhat randomly (unlike a central bank, say, printing paper currency.)