Ripple recently announced its vision for a smart contract infrastructure called Codius. You can check put their white paper here, although it is long on verbiage and short on details. The idea is simple though, and much more in line with a reasonably attainable vision of a smart contract infrastructure that leverages our existing investments in systems, tools and architecture.
This is in sharp contrast to Ethereum, a design I find puzzling in that it tries to solve decentralized computation in the blockchain model. I applaud their ambition, but naivete and optimism go a long way, execution is what matters here. Op codes exist in Bitcoin but many have been disabled due to security concerns and complexity, and it doesn’t begin to strive for Ethereums Turing complete operation. I could write an entire post on Ethereum, frankly I’ve been putting it off while we wait for an initial prototype, but given the amount of money that has been raised it might be time for a more critical assessment.
The idea of leveraging the blockchain for trusted communication while hanging sandboxed autonomous agents off of it is much cleaner. I’ve spoken of using proof of existence in distributed voting as a mechanism to hash source code into the blockchain and independently be able to verify all execution. Combining this approach with a sandboxed execution environment and a strict set of data acquisition APIs would provide a powerful framework for smart contract execution and validation.
We already use distributed code to run Bitcoin, codified by a set of rules that all clients agree on to form a consensus network. If we follow this to the logical conclusion why can’t ad-hoc nodes run modules and have shared multi-signature access to resources on the network? Wouldn’t that provide a framework on which to build a robust smart contract infrastructure?
I think Codius is on the right conceptual track, and I’m definitely looking forward to seeing how the community evolves. Autonomous agents with access to the blockchain will usher in a new wave of functionality. Think about the implications of being able to assign an agent to your wallet that can act on your behalf and is hosted externally in a trusted execution environment and driven by the same consensus mechanism as the network itself. Further by creating a language agnostic implementation within that constrained environment we can leverage the vast expertise in regular software development, and not worry about the complexities of long running DACs. I can see a model where companies pay for execution and maintenance of hosted smart contracts, certainly the overhead of outsourcing and compliance internally would make this an attractive option.
The only question in my mind is why it has taken so long, it’s time to usher in an entirely new wave of contract innovation. It seems we are tantalizingly close to having not only decentralized autonomous software, but external hosted agents, oracles and contract infrastructure.