Originally published July 22, 2018
6 hard earned tips on building a B2B blockchain application.
We started developing Vault by Chain.io last December.
At the time, I may have been caught saying, “Let’s see what we can build on the blockchain. It should only take a few days.” By the time we launched in May, my illusions about what it was going to take to be on the bleeding edge were completely shattered.
If you’re considering building a (1) production strength, stable, B2B application that is (2) backed by blockchain technology and (3) actually delivers business value, then this post will help you calibrate your expectations.
#1: It’s going to take a long time
When I ominously said that the project should take a week, I had already padded the schedule by 500%. A solid mid-senior developer should be able to develop and test this application (sans-blockchain) within two business days.
We started in November and had to crunch to hit our launch date in May. Essentially, the project took 25 times longer than my gut estimate. Most of this was related to the blockchain. I’ll admit, that like many entrepreneurs, I can be overly optimistic about project timelines. Even if we double the original estimate, we’re still looking at 10x overruns.
#2: The technology is not stable… like really not stable.
Those of us who have been building or buying software in the B2B space for a long time have been lulled into a false sense of security. Our vendors (and the open source community) generally produce stable, functional applications that work as described. We may quibble about missing “critical functionality” and there certainly are bugs, but when you install a database or point of sale system, it’s pretty safe to assume it’s going to do its basic tasks without too much hullabaloo.
It’s been a very long time since we had to ask if MySQL or Oracle could save records to a table, or if SAP could issue a purchase order.
Blockchain technology is still at the phase where you have to ask, “Can this actually do the thing it’s supposed to do at the cost I modeled and in the time allotted?”
There’s a lot hype out there about moving complex orchestrations and financial transactions onto the blockchain. These use cases are amazing to think about, but the reality is that you’ll be lucky to make a simple read/write data store in 2018.
#3: It’s expensive, super expensive
Realizing that more business was going to mean more losses did not make for a fun day.
Imagine how much it would cost if every time you drove to the store, all the other cars on earth had to drive there with you. Now you have a sense of what the blockchain costs in relation to a traditional database.
I don’t have a good financial model for the costs of writing 128 letters to a traditional database, but it’s safe to assume that it’s billionths or trillionths of a cent. At current prices and exchange rates, the cost of writing this data to Ethereum is about ten cents. Yes, it’s billions of times more expensive than the database that’s hosting your accounting data. If you think you’re storing all of your IOT data streams on chain, think again.
One reason our project took forever is that we had to reevaluate our approach several times. We had to revise continuously as we cut ourselves on the technology’s sharp edges. For example, when we started out, we didn’t understand that Ethereum’s costs for creating a new smart contract are 10-100x the costs of writing to an existing contract. Our initial model involved writing a new smart contract for every transaction. It didn’t take us long to realize that it was costing more to create the contracts than we were charging our customers. Not a great business model. We’ve since re-engineered, but realizing that more business was going to mean more losses did not make for a fun day.
#4: Deliver business value
“We blockchained the thing,” is not a value statement for your customers. To be honest, #blockwashing (the act of yelling blockchain until someone gives you money) will open some doors. The technology is novel enough that people will talk to you just to hear about what you’re doing. Then they won’t pay you.
At the end of the day, you need to bring outsized business value. You need to justify why an executive should flip their thinking from millions of transactions per cent to cents per transaction. You need to justify why they should go from being able to quietly fix bad data to an immutable data store.
This is one of the areas that we got right. I believe the fact that we deliver clear business value rooted in a real problem carried us over all of the other technical hurdles. Vault allows companies to protect extremely high risk data and documents from fraud. Because there isn’t an equivalent off-chain solution with the same properties and the cost of the fraud can be millions of dollars, the economics work. Make sure yours do too.
#5: Shield your customers
The blockchain world is changing faster than B2B sales cycles can adjust to. You may decide in 6 months that you need to write data to a different network, use a different smart contract style, or alter your authorization model.
None of this is your customer’s problem. Don’t… I repeat… Don’t expose your customers’ traditional IT systems directly to your smart contracts. If you do, you’re stuck. You’ll be supporting that crappy smart contract implementation on that out of date network forever. Your customers won’t be able to adapt to the pace of change, and they shouldn’t. That’s what they’re paying you for.
Give them an API, a UI, or some other mechanism to interact with your application, and put the blockchain stuff in the background. You may, (as we do) give them a path to view and validate data on the blockchain, but this should not be their primary integration point into your network. If it is, you’re going to need their permission to adapt to the future, and those won’t be fun conversations.
#6: It’s operational chaos
Imagine you’re sitting at your desk when your lead database administrator runs in and says, our per transaction costs just went up 25x because someone is buying virtual fish… and there’s nothing we can do about it.
Ok, that story isn’t 100% accurate. Nobody came running into my office, because this all happened over Slack on a Saturday.
Welcome to the public blockchain. You don’t just deploy an app. You monitor, you stress over gas prices and exchange rates, you argue with your bank when you can’t transfer money to Coinbase. Fun.
Is it worth it?
For us, yes. We’ve learned a ton deploying Vault. We were able to bring a great product to market that solves a real problem. Additionally, we’ll be able to bring that knowledge to our clients as they work to integrate legacy systems to the blockchain via our Cloud Execution Platform.
We’ve also had a ton of fun. So if you’re up for the challenge, go for it! Just know that it’s harder than it looks.