Mike Hearn, Bitcoin, Etthereum
Former Bitcoin Core dev Mike Hearn says R3's Corda owes much of its intellectual property to bitcoin. | Source: Youtube/ The Conference / Media Evolution

R3 Lead Mike Hearn: Corda is More Like Bitcoin Than Ethereum

By CCN: “Corda is more like Bitcoin,” says Mike Hearn, lead engineer for Corda, the open source blockchain of the industry consortium R3.

“It owes more of its intellectual history to bitcoin than Ethereum in a way. Its’ data model is similar to Bitcoin, which enables you to have privacy because you don’t see transactions on your critical path.”

Early Bitcoin adopters knew the risk they were taking, he says, despite infamously stating bitcoin had failed in early 2016 upon leaving as a core developer. “They had money on their device and if the software wasn’t good or had bugs, then that is the cost of being a part of the global revolution,” said Hearn.

But, he warns, Corda is no global revolution. “We are optimizing existing economies in effect,” he says. “We aren’t here to overthrow any systems. As a consequence, people’s standards are much higher. People’s tolerance for sharp edges is much lower.”

At the community level, Corda is an open-source project like Bitcoin. It is funded by R3. There are a mailing list and a Slack channel where you can talk to the employees and even make suggestions.

So, how is Corda’s data model similar to bitcoin’s?

They both use what’s called the ‘UTXO model’,” he replies. “[T]hat is, they see the ledger as a set of unchanging entries representing value or facts, that are deleted and created but never altered. In contrast, Ethereum sees the ledger as a set of programs that send messages to each other. It’s a very different way of looking at the world.”

While Bitcoin uses the programming languages C++ and Satoshi-designed, yet limited, Bitcoin Script, and Ethereum developed ‘Solidity’ (designed to look like Javascript) for development, Corda has not created its own programming languages.  

Mike Hearn was a former bitcoin core developer who has been critical of the cryptocurrency. Image Source: Facebook/Coinone

“We are not inventing our own custom programming language or environments,” said Hearn. “We are using Java and Kotlin, but you can use regular Java or Scala, as well. Any of the languages that run on the JVM. These are much more professionally built languages and tools. They are very mature, they’ve been around decades, and the people who build them know what they are doing, and took their time. You don’t get the same surprising glitches you see in a little Solidity development on Ethereum.” JVM refers to Java virtual machine, which enables a computer to run Java-related programs.

“Kotlin is developed by JetBrains,” Mr. Hearn adds. “It targets the JVM and JavaScript. It’s similar to C# and is designed for developer productivity.” What are people designing on Corda?

“People are mostly designing financial apps today,” he said of Corda developers. “But, people are starting to explore more with healthcare and logistics, and so on.”

Bitcoin is not designed for such feats. “Bitcoin’s feature set is designed for tracking a single currency, and that’s about it,” explains Mr. Hearn. “To the extent, it can be extended by developers, it’s to impose flexible controls on that currency, but it doesn’t go beyond that.” As a simple example, entries in the Bitcoin database consist of a value (amount of coins) plus the script that controls who can claim that value.

“But there’s no way to encode, for instance, a ledger entry for barrels of oil that records the type of crude oil, the origin of extraction, the shipment dates, etc.,” he says. “Bitcoin doesn’t know about any of that.”

Both Corda and other platforms use the term “smart contracts” in a more expansive way than Satoshi did. “We want to be able to manage any kind of data, not just amounts of a single currency,” says Mr. Hearn.

He notes that when he wrote Lighthouse, a Bitcoin crowdfunding management app, he had to do a lot of things himself that Corda would handle for him. “It’d have been much faster to implement it on Corda,” he says.

A Different Programming Language with Corda Than Bitcoin

Corda developers chose not to develop on C++, as Satoshi did, because the high-level programming language has a number of problems. “[I]t’s very complex and hard to learn, it’s easy to make security errors that Java/Kotlin would automatically block, and the business world doesn’t use much of it anymore for these reasons,” said Hearn. “‘Script’ was invented for Bitcoin but is far too limited to do even the things Satoshi imagined, let alone the much more complicated things our users want to do.”

Could someone develop a competitor to Bitcoin on Corda? Indeed, says Hearn. R3 programmers have done thought experiments about building a bitcoin-style cryptocurrency on top of the enterprise-focused platform.

“It is not the goal of the organization,” Mr. Hearn said. “A few others and I think it’d be cool. It certainly should be possible. We have worked out how you could do it with Corda more as an intellectual exercise. But, most of our customers want to use existing currencies.”

Most enterprise blockchains start from Ethereum as their design base, Mr. Hearn says. “It’s unusual to go back to the start and pledge allegiance to Satoshi’s thinking and designs,” he notes. “We were familiar with both designs and felt Bitcoin’s would work better.”