When bitcoin was the only show in town, things were a lot less complicated for blockchain developers. You either used some variation of colored coins to support your decentralized application or you did not.
Since then, a forest of blockchains has sprouted, each of them unique. Some are permissioned; some are public. Some use proof of work, while others rely on proof of stake. Some have substantial industry support, while some are rarefied and niche. How should decentralized application vendors choose one?
When faced with an overwhelming choice, perhaps the best approach is not to choose at all. Armin Ebrahimi, CEO and co-founder of blockchain identity management company ShoCard, is keeping an open mind. His team decided to adopt a multi-blockchain approach early on in product development, giving deployment teams the flexibility to choose their own. He said this blockchain agnosticism is essential in a fast-moving industry.
“I believe for the foreseeable future we will see blockchains evolve. They will improve and specialize in various forms,” said Ebrahimi. “Even when the underlying technology over the next three to five years becomes more stable and advanced, it is still prudent to be blockchain agnostic.”
By not picking winners, his argument is that ShoCard can more easily be interoperable with other blockchain-based identity management systems. ShoCard’s strategy can also allow them to support enterprises that have standardized their use of blockchain technology.
ShoCard does this by using a mobile application to gather user credentials. It then stores proof of these credentials on the blockchain using a cryptographic hash rather than the credentials themselves. This approach lets the user share only the credentials they are comfortable with, and only with those parties they trust.
The company needed a public blockchain to provide final verification of those credentials, explained Ebrahimi. “Using a public blockchain for the final proof of work means we cannot cheat the system, and the data can be as reliable as the underlying public blockchain that has the final hash,” he said. “This is an important part of the no-trust and no-central-control identity management platform.”
How do you use the trust of a public blockchain without forcing a choice in technology? ShoCard solved the problem using a blockchain adapter layer that acts as a proxy between the ShoCard service layer and the public blockchain layer. By reading and writing records indirectly through the proxy, the company can use a variety of public blockchains to suit user requirements.
ShoCard also designed its architecture to protect itself against public blockchain performance problems by using a mixture of side chains and caches. The sidechain stores the hashed credential data, accessing public blockchain through the API adapter approximately every 20 minutes. The system uses the public blockchain as proof of work while keeping the hashed certification data on sidechains replicated to improve performance.
Because the sidechain sits at the service layer, above the blockchain API adaptor, ShoCard had to choose a technology to run it. It based the sidechain on Ethereum open source, although as a sidechain rather than a public blockchain it will be less susceptible to the congestion now facing the Ethereum network. This means no CryptoKitties to worry about slowing the system.
To further enhance performance, the service layer also caches the public blockchain so that the system can service blockchain verification requests more quickly.
According to ShoCard, blockchain agnosticism provides several other benefits. It future-proofs an application against unexpected developments in the blockchain space, such as a public blockchain becoming obsolete. It also protects users against rising transaction costs, and it shields them from congestion, making the blockchain more scalable. The firm claims the ability to create and certify over 5 million new users, with proof of work, in under 30 minutes.
However, the company still had to settle on a blockchain to manage its token sale, and in March it chose Stellar, created by Ripple co-founder Jed McCaleb. Stellar can handle over 1,000 transactions per second with no transaction costs, which Ebrahimi said will make it easier to manage the many microtransactions that a well-prepared ICO can expect when selling tokens.
As blockchain options spread and grow more complex, blockchain agnosticism may become a more frequent fixture in decentralized startups. It stands out as a way of avoiding brittle technology commitments that could burden you with technical debt.