Blockchain as a Design Pattern
by Raghu B on October 6, 2017
There is a lot of noise about blockchain these days. People are mystified as to what it is and there is a lot of confusion. Well, that is understandable because it is considered by some as truly a disruptive technology. Remember, back in 1995-2000 there was a lot of talk of the “information superhighway” and soon that phrase went out of vogue along with Al Gore.
But if you ask me, Blockchain actually epitomizes the promise of the information superhighway more than any other technology before it. Blockchain actually marries three different concepts that we have all considered as discrete entities: 1) network 2) database 3) logic.
If we put network + database + logic we get Blockchain. Quite unique. Does every application need this paradigm shift? Nope. Absolutely not. But there are several technology problems that we encounter daily and have kludged up some ugly solutions to that can be elegantly solved with blockchain.
So, not to date myself, but those who remember and still practice the use of Design Patterns as first proposed by Gamma et al (https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) then Blockchain offers yet another new and unique design pattern in constructing software. The world sees blockchain as a technology, but I put forth the suggestion that it is an interesting design pattern. It is a design pattern where you combine network, database and logic. It is a design pattern where the system is decentralized. It is a design pattern where information is distributed. There is no central system of record. The blockchain is the system of record. Each node can update the information and all other nodes either embrace the update or not based on the consensus algorithm employed in the problem space.
There is a lot of talk of smart cities and driverless cars these days. These are systems of technologies where the concept of a central authority just doesn’t seem to jive well. My gut such systems cry out for a distributed, decentralized infrastructure. Enter stage left, the star of our show – Blockchain. Let’s imagine your driverless car wants to park at a street parking area where there is a parking meter.
Now both need to authenticate each other through some ecosystem technology that neither owns. Also, the transaction logic in this interaction can most likely be handled by a smart contract. Now, this car leaves this part of town and drives to a somewhere else 50 miles away and has to deal with another parking meter in the neighboring municipality. Given the replication capability between nodes in a blockchain, this second interaction my involve a separate blockchain node from the first but will have the up-to-date transaction information.
So, blockchain is a potent design pattern to consider when confronted with situations where there is no trusted central authority, information is distributed and decentralized, requiring replication between nodes with logic validating transactions.
By Raghu B on October 6, 2017