Mike Hearn, the lead Programmer on blockchain consortium R3’s Corda platform and former Bitcoin Core developer, called Ethereum potentially “catastrophic”, citing questionable ways in which the platform was designed.
“People who weren’t always experienced developers built Ethereum apps that handled hundreds of millions of dollars, on top of a platform that was itself designed in somewhat questionable ways. You get a sort of comedy of errors,” says Mr. Hearn. He doesn’t believe this is an accurate representation of the whole blockchain space.
“But, if you want to avoid it, you need the structure of a for-profit company that is continuously optimizing this software to make it easier and easier to use,” he says, similar to the R3 model. Part of Ethereum’s issue was a lack of foresight, he says.
“[Ethereum] didn’t design with any notion of upgrades,” the former Google Senior Software Engineer says. “Versioning for upgrades in any distributed systems is always a very difficult topic. It’s extremely complex. It screws with your head because you have to be reasoning about everything you do in terms of both the future and the past and you have to do that reasoning simultaneously.” Developers end up designing apps that can’t be updated.
“What you find again and again is [developers] build something on Ethereum, because it’s easy to get started,” says Hearn. “And then they realize when they try to go live and turn it into more than a prototype, they need to add privacy or scalability. They realize they haven’t any solutions and have painted themselves into a corner.”
In Corda, these things form naturally out of how you build the app, says Hearn. For example, in Ethereum, all data and all changes to the ledger are broadcast to and processed by everyone, whereas in Corda they aren’t.
Hearn’s not surprised that many Ethereum developers don’t think their blockchain apps through. “In the Ethereum space, they’ve turned this weakness into a strength by claiming this code is law, its unstoppable, its immutable, and so on,” he explains. “You can’t have software that cannot be changed. That’s clearly insane, and it says a lot about the blockchain space – that approach became kind of an ideological commitment.”
So, instead of designing its own language like Ethereum’s Solidity, Corda invested heavily in upgrades, versioning, and in creating systems that allow users to change the system in controlled ways over time, while still being decentralized.
“You can change a smart contract if you like, but the new version has to be signed by a threshold of keys,” explains Hearn. “If there are 10 original developers, for example, seven of them have to sign it to release the new version.” You can pick any numbers where the first is less than or equal to the second. Future upgrades can be preauthorized, too.
“You could also configure things so you can’t upgrade or make changes if you really wanted,” he notes. “But, we find most people don’t really want that.” Further, it’s not enough to just authorize upgrades, says Hearn.
“You need to upgrade the system whilst it’s live without shutting it down, which means parts of the system are running,” explains Hearn. “From the perspective of some of the computers, some of the other computers are running software from the future. They may see things they didn’t expect to see, because those features didn’t exist at the time [the old version of the] software was written. So, planning for this and making it safe is a hell of a lot of work.”
Corda has heavily invested in this area, and Hearn suggests they are the only ones who have. “We believe in software that changes to meet the needs of society, not the other way around.”
Unlike Ethereum and Bitcoin, Corda enables rolling upgrades, downgrades, and more. “It enables you to change the system while it’s live, and in a way that is safe.” This is a big deal, he says.
“Keeping a software system alive in the face of burned out switches and burned out power supplies and stuff like that is actually not so hard,” says Hearn, who notes that Corda was designed based on Bitcoin, not Ethereum. “The industry learned how to do that a long time ago. Where you see disasters happening these days, where you get the big IT outages, is almost always because they were changing the system, trying to upgrade the system. Upgrades are very risky as a consequence. People shy away from them. Making [upgrades] safe for people is a big part of what we are doing.”
He mentions the DAO, a failed decentralized autonomous organization in the form of an investor-directed venture capital fund, as “a worst case scenario” of failing to properly upgrade a system.
“It actually split and made Ethereum classic,” he says. “So you can’t actually get any worse than that.”
Another way that R3 and Corda are different from Ethereum and Bitcoin is in governance models. Corda governance is handled by representatives elected by users, and Corda has created a non-profit foundation, which is running the main Corda network.
Corda announced its initial 11 person Board of Directors, which is comprised of nine representatives from the initial user base, and two from R3.
“We are putting proper formalized governance in place, which is something Ethereum and Bitcoin never had. Eventually, that network will open up until maybe one day we are all in it. That’s the idea.”
Corda’s approach to technology, as well, is different from Ethereum and other blockchain technologies.
“Whereas a lot of these blockchain communities invest heavily in exotic programming languages to make sure developers never make mistakes, we’ve [acknowledged] people make mistakes anyway,” he tells CryptographicAsset.com. “And, even if they were somehow perfect and never made any mistakes, the world changes, business requirements change, people change, people have new ideas.”
According to Hearn, to scale blockchain down successfully, and put this technology in the hands of ordinary people with no specific training nor IT departments, you need a lot of R&D to make it hard for people to lose private keys. “So, you need to make the backup [process] completely automatic, but without passing control of anything to people holding the backups.”
The way Corda will do this is threefold. “One is the way a bitcoin-style wallet works,” says Hearn. “You write a private key down with a pad and paper. People understand paper documents. People have proven they can handle text records. That’s a conventional approach.”
Beyond pen and pad, Hearn’s team also plans to implement the cryptographic algorithm Shamir Secret Sharing on Corda, in which a secret is divided into parts and given to various participants.
“The idea here is to split the private key up, and distribute the share to many different parties,” he says. “You make a threshold anti-collaboration assumption and assume they won’t collaborate against you.”
Since the identity of the participants would be known on Corda, there could also be added layers of additional protection. “You can use a passport scan,” says Hearn. “And if you do lose all of your stuff, like your house is washed away in a Tsunami and you end up naked and have nothing in the whole world, you could, in theory, recover your private keys.” The user would request a video chat, which, along with proof its the person in the documents, would help them get back their keys once you got enough of the shares to your private key.”
On the technical level, Corda has implemented ‘flow framework’.
“It started as a way of writing network protocols, but it also has evolved into a way to do business workflows,” says Hearn. “So, if you want to program a negotiation on Ethereum, for instance, you could do it on the chain so the entire negotiation is public.”
This, however, defeats the purpose of a negotiation, wherein parties often prefer to stay private. Corda recognizes this.
“Corda allows you to have peer-to-peer conversations, and quite complex conversations that are really structured,” says Hearn. “For instance, you can have Alice talking to Bob, and then Bob goes off and talks to Charlie. Then Charlie talks to Paul, Dave, and Eve and Fred. Then the conversation unwinds its way back to Alice.” While all of this would happen on a chain in Ethereum, this happens off-chain on Corda.
“So, you can link it to stuff on the ledger,” explains Hearn. “You’ve got more options and more flexibility. That’s why people go live on Corda and not so much these Ethereum-based systems.”
People are building apps on Corda mostly to solve institutional problems, but there is no particular reason it has to be that way. Hearn created an app called CordaChat, as well as a restaurant booking app, in order to teach programmers how to use the framework.
In time, Corda will scale down and individuals will interact with the Corda network more directly, says Hearn. Corda’s goal in the long term is to create a more consumer-oriented product. But, the focus is on enterprise use-cases for now.
“Companies are writing software that inspects invoices, logistics, and supply chain management on Corda,” says Hearn. “You can imagine, if global supply chains get put on a unified system with unified data formats and so on, then you can write a program that moves around different nodes, hops from node to node, and learns relationships between certain kinds of orders. So, if there is a certain, sudden spike for orders in a certain thing, [the system] knows there will be a spike for that kind of component and can pre-order stuff and optimize supply chain so components arrive just when you need them, before the business even knows they need [something]. That can generate a lot of money for these AIs and you can use that to invest in R&D.”
Such AI optimized shipping could free up a lot of money for businesses and even generate revenue. “If some AI notices two competitors are shipping cargo ships of bananas across the ocean in opposite directions, it can cancel out those shipments,” says Hearn. “They wouldn’t necessarily know that this is happening.” All you can know is the bananas didn’t have to move.
“So maybe no one today has all the data needed to make that decision and make it happen, but in theory, if you have secure technology and AI, you can give it all the data, and it can learn and do useful things with it.”