Tuesday, April 24, 2018

New Course: Surveying Blockchain Technologies for Enterprise

I’m happy to announce a 1 hour course surveying enterprise blockchain applications and software, now available on pluralsight. It’s paywalled, but you should be able to get a free trial to watch the whole course. 

I introduce just what blockchain is, and cover a broad array of applications (supply chain, healthcare, energy, finance, banking and insurance) and software packages (Hyperledger, Coco, Corda, Quorum, Stratumn, Guardtime and BigChainDb). The goal is to give a high level view of blockchain’s potential, but also a realistic view its challenges.

In the last few months, blockchain has been heralded as an invention on par with the internet itself, an invention that will revolutionize business and the world. On the other extreme, many say blockchains are just distributed databases, no different that the technology Google and Amazon have been running for decades (only slower!). My view is somewhere in between, and I searched long and hard to find tangible examples of its promise and challenges for this course.


Blockchain could bring vast efficiencies to supply chains by bringing an entirely new level of reliability and accessibility to data about a good’s journey. As goods move, each company logs a record using an irrefutable digital signature. That record is stored on not just one company’s server, but every company in the network, thereby making any fraudulent changes impossible to make. As more records from different companies, IoT sensors and inspectors are added, the record becomes more and more trustworthy.

What does that extra trustworthiness provide? Consider packaging on food at the grocery store that claims GMO free, fair trade, etc. How do you know that packaging is telling the truth? Compare that to a serialized record of every step of every ingredient in that package, all stored on a database watched by an entire ecosystem of competitors checking each other for fraud. 

This additional trustworthy data has the potential to remove countless expensive human checks and reconciliations. A store orders 10 apples, but only gets 9, who counted wrong? Perhaps the shipper’s digital signature and a 3rd party-inspected Smart Scale (IoT) at both ends of the journey can provide enough additional data that no phone calls need to be made--a credit is automatically applied, or insurance payment automatically sent. Not only is the reconciliation expense avoided, but an opportunities to automate across “trust barriers” are created (ie, the supplier and store).

Extra data could expose new opportunities and insights, as well. A farmer could post about a truckload of lettuce that will go bad if not sold quickly. A provider of screws could see that a recent uptick in demand is due to a temporary marketing campaign, and not a true increase in demand, thereby avoiding buying extra tooling (See “bullwhip” effect).


But blockchain does not deliver these promises on its own. Companies must agree on standards of data, what software to run, and who should have what access. It would be great for a producer to be able to prove their track record to banks to get a new loan, but that producer doesn’t want to share that same data with competitors.

It seems to be proving hard for companies to show benefits with small tests. Blockchain is not just a faster database that can be swapped in. It likely requires new business models and new ways to interact with other companies. Some of the benefits may only be apparent when a critical mass is achieved.

Regulation will certainly prove challenging, especially with the GDPR now taking effect. How can you delete data from an immutable database? If data is encrypted, perhaps throwing out the encryption key will be sufficient. A substantial amount of effort is going into ways to provide fine-grained, per-transaction level visibility.

On the other hand, it is hoped that blockchain can actually help on the regulatory front. Fredrik Voss, VP of Nasdaq blockchain, proposes giving regulators a node on a network to provide “regulatory goggles” that can have full visibility to the direct data. In this way, banks might avoid having to supply reams of reports that all then must be cross-checked by the regulators.


The blockchain behind Bitcoin shares everything to everyone, is extraordinarily slow, prohibitively expensive, and has no clear rules for how to upgrade its software.

Luckily many different organizations have already spent years creating blockchain software optimized for the enterprise world. I was expecting to create a list of pros and cons for each package surveyed, but I was surprised to find almost all of the software chasing similar goals: performance, nuanced privacy controls, and good governance (who can join, how software is updated). And even better, most of the software is modular and configurable. For instance, in Hyperledger, you can swap out different consensus algorithms, but still use the rest of the stack that handles the basic communication, membership rules, Smart Contracting systems, etc. 

The consensus algorithm is the core of a blockchain, the part that truly gives it shared and decentralized control over the data. It’s where the group agrees on and locks in the data. In a stock market, if 5 people all submit a buy request at once, which one should get the stock? The system needs to reach consensus on this.

The choice of consensus algorithm is vital because it generally has a major impact on performance. It takes a lot more communication and time for 1000 computers to agree on something than 5. Hyperledger actually comes with several different choices that let you make the best tradeoff for your application. For instance, 1000 community banks might all want to check every transaction, but companies in a stock trading platform might be willing to delegate some of that control for added performance. A stock trading platform might have 100 members, but only 5 of which are designated as “validators” among who consensus must be reached. 

I do want to point out one software package that I hadn’t yet researched when the course went live: Hashgraph. It promises a superior combination of decentralization and performance over any of the other algorithms I’m aware of. On the downside, it is very new, and patented. For companies already invested in Hyperledger, it looks like it could be plugged into the consensus layer.

Private Blockchains vs Public Networks & Tokens

At the end of the course, I provide some commentary on public vs private networks and digital currency. Many believe private blockchains are just slow distributed databases, and without a public network and digital currency, they offer nothing new to the world. I do think there is merit in a private blockchain run between 5 banks. No one bank would want to trust the others to control the keys to the castle, and I suspect the days it takes to send money between banks is at least partly due to a lack of trust. But any small network should think long about whether the expense and complication of blockchain is really necessary. Our existing legal system may be good enough to prevent fraud.

As the application grows, eg, global supply chains, the case for public networks seems stronger and stronger. Would I trust a record stored on a network of 5 big shipping company computers or the Ethereum network’s thousands of machines spread all over the world? Just as with IntrAnets of old, I suspect the better connectedness, openness and innovation of public networks will eventually outpace private blockchains.

And on tokens, many early enterprise blockchain software projects bragged about not having any cryptocurrencies. But tokens aren’t just about non-governmental money. They provide an important incentive layer to the networks, helping to pay for computation and network resources. They’re also an easily programmable and transferrable form of value. Besides, enterprises already use tokens, they’re just called points, stars and airline miles.

I hope the course provides a fast and balanced introduction to the rapidly evolving world of blockchains decentralized networks… (Hashgraph and other structures aren’t really blockchains, I suppose :) )