Bitcoin is changing the way society thinks of currency, but according to Ranbir Mazumdar, principal sales consultant at Oracle, software architects should be looking at the way Bitcoin works, and learning from the underlying blockchain architecture that makes Bitcoin currency work. This type of distrubuted computing system holds tremendous promise for new styles of trustless peer-to-peer architectures. This is particularly important with the growth of consumer concerns about privacy and the desire for enterprise architect to innovate IoT applications.
Mazumdar said common device federation techniques like the Security Assertion Markup Language and token passing might be too heavyweight for sensor types of appliances. Implementing security on sensors is a much harder problem than the current waterfall model of trust. Creating a SAML token on an embedded device dissipates about 150 kilojoules. With the appropriate architecture, a Bitcoin blockchain type of architecture could be far more efficient.
Implementing an effective trustless model does require understanding the tradeoffs between performance, data storage, security, and incentives. Some of these can be addressed using side-chains to tie together multiple networks of transactions. Others can be addressed by architecting the chain of connections to balance processing requirements, data storage needs, and security. Leveraging frameworks and tools can help address these needs.
Establishing a network of trust
The underlying principles of the Bitcoin blockchain solve a difficult computer science problem called the Byzantine General problem. The fundamental notion is that individuals are trying to coordinate their efforts without trusting any one central authority. The blockchain uses cryptographic principles to ensure that all parties are contributing to a common goal in a way that can be validated by all parties involved. "The beauty of this technology is that it makes a lot of sense and is easy to implement."
Ranbir MazumdarOracle sales consultant
The fundamental blockchain architecture creates a distributed system of record that any party can verify. This record as a whole may be very large, but any one node can store a part of it or a simple encryption key in order to reconstitute a particular trail of transaction. This makes it easy to track transactions related to particular IoT device with minimal storage or processing requirements on each node. It can also be combined with data elements gathered from sensors in the field or from individuals or companies involved in supply chain processes.
The underlying principle of a blockchain is based on the notion of a proof-of-work, using cryptographic techniques to verify separate holders of a collective system of record. The reliability of the holders of different pieces of this distributed system of record can be quickly verified with a simple cryptographic operation. The blockchain algorithm forces record holders to add new data into the blockchain as part of their proof-of-work.
Impacts of different uses
This record can grow quite large over time. The current Bitcoin ledger is collectively several hundred gigabytes in size. But each node responsible for maintaining the ledger only needs to hold a small part of this to maintain its authority. The users only need to hold onto their encryption keys, which are much smaller.
Most of the processing associated with this infrastructure can be distributed. A few high performance nodes do most of the work and the users need relatively little processing power to authenticate transactions. This could allow relatively simple devices like environmental sensors to provide distributed services in a way that allows compensation for their use by consumers, said Mazumdar.
One challenge is that the block chain can grow faster as the rate of transaction processing increases. The Bitcoin blockchain is currently updated in 10-minute increments. A slower paced blockchain processing infrastructure would reduce the need for storage.
Simplify specific implementations with side-chains
Another challenge is that the blockchain also grows more quickly as more complex data is added into the blockchain. Adding in sensor data readings, for example, would cause a particular blockchain to grow much more quickly. Mazumdar said one best practice for addressing this problem is to use side-chains. These are essentially separate block-chain networks that are connected to larger blockchain networks to facilitate faster transaction or data storage.
This can be difficult to implement securely. Another good practice is to leverage a software framework like Blockstream or Ethereum to implement the side-chain architecture, logic, and code more efficiently. IBM recently worked with Ethereum to implement a proof of concept for smart contracts called ADEPT. IBM envisions allowing devices in a home or office using blockchain principles to communicate with nearby devices to facilitate power bartering and energy efficiency.
Mazumdar envisions leveraging blockchain principles for creating distributed chain records in manufacturing. This would make it easier to track all of the components that go into complex equipment like an aircraft. If a problem ensues, then the FAA could track all of the participants involved in creating a failed part, without depending on any one company's records.
He said, "There is a need for a programmable decentralized contractual platform that allows abstraction of the block paradigm. We need a robust platform that is able to seamlessly talk across the architecture silos with the least impedance."
Have you integrated blockchains into your architecture? Let us know how it went.