I just spoke with Valentina Nakic, who is writing a thesis about the future of the blockchain+energy space, and was struck by the realization that there are some basic hurdles that will define the next 10-20 years of blockchain applications.
These are the known unknowns: the hurdles which we know are ahead, but don’t know how to get around. Some are active research areas, some are not yet even in the research domain. All of them will define which industries, applications, and produces are affected by blockchains:
- Secure off-chain computation: Ethereum promises to be the world computer, but the first mainstream Dapp slowed the computer to a crawl: computations need to be redundantly computed on every node, so difficult calculations are impossible. If Dapps are going to become more sophisticated -e.g. search or machine learning algorithms which can take advantage of local information- they need a secure way for running off-chain computations in a way that is rapidly verifiable. I’m very excited about recent developments in zero-knowledge proofs like Zokrates which may enable this.
- Secure sensor/data flows: Whether metering electricity or checking to see whether a package was shipped, most industries need a way to get information from the physical world onto a blockchain. Creating a security system for reporting information which isn’t publicly knowable but which also isn’t subject to spoofing and sybil attacks is a very hard problem. Most efforts (e.g. Town Crier, flight insurance) delegate this back to some form of trusted authority, whether to maintain a whitelist or run an HTTPS portal. And if you trust somebody to vet your sensors, why not also trust them to run your IT rather than put it on a blockchain?
- Vetting new devices: Even if we can verify that a device is what it claims to be (e.g. a Nest thermostat), we need to verify that the rest of its context is accurate (e.g. a thermostat at 111 main street which can control the air conditioner). If we want to control real-world devices with blockchains, it isn’t enough to know that the data is correct – it also needs to be in the right context.
- Islanding/Sharding: Blockchains promise to be distributed, flexible, and robust- attributes most valuable when communication networks are unreliable. However, if Alice and Bob are on a beach in Fiji and don’t have cell service, there isn’t any way to transfer BTC or run a smart contract without addressing the double-spending problem. If we want to have villages whose payments run on blockchains but which can interface with the rest of the global economy, or microgrids which can island from the rest of the electricity system, we need to develop an architecture for dynamically reconfiguring and synchronizing networks when a subset of nodes is temporarily cut off. While a number of architectures have been proposed for this (e.g. Polka Dot, the Casper sharding proposal, and Cosmos) they don’t address the key problem of flexibly reconfiguring along arbitrary configurations.
I haven’t brought up conventional hurdles like computational throughput and data storage: these are the known knowns, the problems where we already have a number of workable solutions which are competing for supremacy.