This is a very special podcast for us as it is our first debate format on Insureblocks. We were extremely privileged to have two titans/Jedi Masters from the blockchain community join us for this podcast. On one side we have Richard Brown, Chief Technology Officer from R3, builders of Corda, advocating for enterprises to use private blockchain systems. Whilst on the other side we’ve got John Wolpert, Team Lead at Web 3 Studio at Consensys, builders of Ethereum based blockchains, advocating for enterprises to use public blockchain systems.
Have a listen to this fascinating podcast and if you’d like for Insureblocks to organise more debates on our show, do let us know.
About Richard and R3
Richard is the Chief Technology Officer at R3 an enterprise software firm that are the founders of Corda. Corda is an open source blockchain platform designed for the enterprise world. R3 initially began as a consortium of large financial firms trying to figure out what opportunity does blockchain represent for their firms and the implication blockchain may bring to their businesses. As part of this learning exercise and exploration they reviewed a number of blockchain platforms before deciding to build their own blockchain platform called Corda. Corda is available in an open source format and it is being used by a large number of firms to solve some interesting business processes.
About John and Consensys
John is the leader of a team at Consensys called Web 3 Studio. Consensys is a company that is dedicated to building a platform to enable people to build on the Ethereum blockchain. John’s Web 3 team focuses, as he puts it, “on novel unexpected and exciting use cases that can help developers really get behind blockchain and Web 3.0”
Previously John used to be the Global Head of Products at IBM’s blockchain and one of the cofounders of Hyperledger. However, John, doesn’t define himself as a Hyperledger guy or an Ethereum guy but more as a “stateful internet” guy. He is a big fan for pushing the managing of states in a decentralized manner.
What is Blockchain? – John
According to John, blockchain is just one part of an evolution of the internet towards a stateful internet. In other words an upgrade to the present internet that is essentially led by companies soloing servers sitting around controlling state, memory and business logic.
“There won’t be one chain to rule them all.” But now, I believe that in order for the Stateful Internet to avoid descending into a fight at the gates of Mordor, we do in fact need a trustless, permissionless, decentralized root chain playing umpire.
This can be done today in a decentralized manner similar to how we experience passing messages right now with packets of information going back and forth between different routers. However, managing state is a lot harder than managing passing messages. As messages go through a router, a router doesn’t have to remember what state it was before, what state it is now and coordinate that state with billions of other routers. Ethereum offers the ability to manage state between routers in a decentralized manner.
What is Blockchain? – Richard
For Richard, blockchain is a technology that enables us to do something we couldn’t have done before. It enables multiple different computers, controlled by different organisations that don’t necessary fully trust each other, to be in sync and to be in consensus about some facts their owners care about. Whether that’s a crypto, an insurance policy or anything else. To be able to know that what you see on your computer your counterpart sees the same thing. This works without any one party having undue influence or power over the other and without everybody having to cede control to some central entity or some cloud operator.
Background to this debate
On the 3r of January 2019, Consensys published an article entitled “Busting the myths of private blockchains”. On the 14th of January Richard Brown posted a counter argument entitled “Busting the myths of public blockchains for business” and Insureblocks produced a podcast, “Are public blockchains suitable for the enterprise world? Insights from R3” with Richard regarding that blog post. On the 23rd of January John Wolpert wrote back an article called “These aren’t the enterprise blockchains you’re looking for”.
The case for private blockchain – Richard
Richard makes the case that when you have a system that’s under your control that ensures that what you see is exactly what your counterpart or competitor sees simultaneously. With that ability you can dramatically reduce costs, complexity, risk, and duplication. All reconciliation that is presently done to confirm all parties have the same information will be removed. Such a system would speed up the process for decision making as resources wouldn’t need to be allocated to ensure that decisions were built on the right information. It is with that objective in mind that you start identifying what are the requirements such a platform would need. An identify module is required to ensure that if information and assets are sent to individuals, that it is to the right identity. Additionally, there is the need for privacy, to ensure that only the two parties to a deal, have access to the information and not all parties within a blockchain ecosystem.
These are the two principles upon which Corda has been built. The ability to ensure that the information is shared with the right person and only the ones with the need to know are made aware of it. Information is shared with the two parties and those who need to check the validity of the transaction. Those who are not parties to the transaction and who don’t need to know shouldn’t get to see the transaction.
The private blockchain platform has to be built on a language that most developers can understand such as Java, Scala or any kind of modern language. The platform has to be scalable and be able to provide finality to transactions.
This is the private blockchain platform that Richard and his team have been building with Corda.
Richard admits that when they set out to build Corda for the finance industry they hadn’t quite realise that what they had built was more general purpose that what they had expected, as Corda started being adopted by other industries such as insurance, heath and trade finance supply chain for example.
When Richard announced the launch of the Corda Network at CordaCon in Tokyo he announced it as an internet of Corda nodes. However most if not all of blockchain deployments in business have been standalone ones. They’re all different networks with different governance, different identity, different consensus schemes, it was like if they were on different planets.
Getting those different networks to talk is a quite a complex task with significant interoperability challenges. For Richard the real opportunity is that private blockchain ecosystems built on an IBM Hyperledger fabric network or on a Corda Network they should be willing to be able to accept a certain level of loss of control to ensure interoperability of their network with other blockchain networks. Similarly, to what the Ethereum network has achieved, multiple applications on the same network.
If you’re going to deploy an Ethereum Enterprise blockchain, or an IBM Hyperledger Fabric or Corda blockchain for one purpose such as supply chain logistics, if you can agree as a group almost as a community up front to some common identify standards, common governance, common protocol rules in a similar way as what the public Bitcoin and public Ethereum network does, the opportunities for interoperability within that shared network are so much greater. Through this approach you are effectively deliberately relinquishing up front your rights to deviate from certain things in order to maximise the chances of interoperability. This is what the public Ethereum network has achieved, multiple applications on the same network and that is something Richard believes that enterprise blockchains should strive and aspire to. Whether it is Corda or Fabric blockchain networks shouldn’t be deployed as standalone entities.
The case for public blockchain, a different approach and a new way of thinking – John
John considers himself to be Gundalian. The Gundalian architecture is basically the assertion that parties that are not counterparts to an agreement should neither execute the code of that agreement nor even know about it nor store the state transitions of that agreement.
John believes that neither public or private blockchain are up to the task for evolving the internet and what is needed is to move from this divergence of blockchains towards a convergence that establishes not an Ethereum protocol, or a Hyperledger fabric protocol, or a Corda protocol but a seamless protocol.
The case for blending Corda’s security and Ethereum’s state machines – John
When discussing about security there are two elements to it:
- Tamper resistance
- Surveillance resistance for avoidance of data breaches.
What are the requirements. A public permanent registrar that isn’t controlled by any group of companies. That enables two parties to be able to transact and make up rules for transacting in a private and secure manner known only by the two parties. The challenge of such a system, under traditional techniques (non blockchain), is that the state machines are very mutable. Either party could tamper with the code or the cloud administrator, whether it’s Azure or AWS, could camper with it.
However if you want a system that is immutable, that can’t be tampered with and is military grade tamper resistance you can’t do this with a private blockchain, the closest thing to a military grade resistance is a large globally distributed public main net (ie. Bitcoin or Ethereum) . The problem with that is that the public main net has no surveillance resistance. Everything is done by everybody without necessarily knowing the identities of those parties.
John believes that there is an opportunity to use Corda’s point-to-point communication between two parties that secure the business rules so that only those two parties have visibility of those rules. Then have the outcome of that logic returned to the main net with the shared state result. That way you achieve privacy and more importantly confidentiality along with global military-grade tamper resistance, Ethereum. Thus Corda and Ethereum can work seamlessly together in a stateful internet way.
Differences around tamper resistance – Richard
Richard agrees with John’s definition around surveillance resistance – if I’m transacting with you, the only people who should know about it are the people who have a right to know. However where Richard and John disagree is with regards to the definition of tamper resistance.
Richard believes that none of the blockchain platforms are actually tamper resistance. Data resides on people’s computers and nothing can stop these individuals from changing pieces of data. If that is the case then the requirement is one of tamper evidence. If a party tries to convince another party of another version of the truth it can verify the inputs upon which the argument is based if that has been changed or not.
All blockchain systems whether it is Corda, Fabric, or Ethereum are logic engines that are based on inductive logic . If Party A wants to convince Party B in an irrefutable manner it will do it by stating this was the last agreement that was agreed. This is proven either because it was signed by lots of miners or signed by a notary pool. Then as per the rules both Party A and Party B have previously agreed upon, here is some new evidence or some new data as per those rules and here is the proof that I can change the previous fact or the previous deal into something else. Essentially changing the previous state of the state machine as both parties had pre agreed on the rule, pre agreed the evidence to be provided and both parties had a shared understanding of what the previous state was.
If it was just a database in the cloud, that database can be hacked or its operator persuaded to change something Party A would have no way of evidencing that. With blockchain, previous state is provided by either proof-of-work blockchains or notarised blockchains. In a proof-of-work blockchains the largest number of miners have effectively voted on that previous state. However Richard states that you need to believe that the mining pool either in a Bitcoin or in an Ethereum blockchain is mostly honest and highly diverse, it is unlikely that they would be feeing a false history to either Party A or Party B. However this means that there is a probabilistic element that history could be reversed and what was initially agreed could be made to show as un-agreed as neither Party A or Party B know who is signing or mining those transactions.
Probabilistic nature of finality – John
John states that today it isn’t possible to provide instant finality to scale to massive numbers. In John’s opinion, Corda is good for point-to-point but struggles with shared states. Ethereum is really good at shared states so it can effectively become the notary of notaries by pinning the Corda contracts onto it. John believes that if we are moving towards an internet of transactions you cannot leave it in the hands of a group of companies or governments. You need it to be in a decentralised system that sits outside of the realm of politics as much as possible.
Differences on governance visibility – Richard
Richard agreed in principle with John’s point but commented on how Bitcoin, the largest blockchain network is effectively in the hands of 3, 4, or five huge firms in China.
So how can you prove that the previous step was confirmed? This can be done in fundamentally two ways: (1) Using the proof of work and proof of stake in Bitcoin and Ethereum. It has the potential to provide the kind of decentralisation that John was referring and avoid being beholden to any small number of firms. However, Richard points out that the practical reality of the last ten years is that it hasn’t worked out that way and it is controlled by a very small number of parties who nobody has any governance control over and the possibility of reversal through probabilistic finality. Instead Richard suggests, instead of having no transparency on not knowing who these players are, lets surface them to the front by making them explicit. Let’s have five, seven, nine organisations who are providing this consensus service, identified and selected by the members of a private blockchain. Let’s agree on how they are governed and how they are overseen.
One ledger to co-ordinate the other ledgers – John
John doesn’t believe there exists a blockchain as a service network that doesn’t have a hegemon calling the shots. He hasn’t seen a blockchain as a service network that has given their administrative keys over to the participants except CLS which in his opinion was a really good example of using private blockchains. One ledger is big enough to coordinate the other ledgers.
For John all the different blockchains/protocols have different benefits for different use cases but they need to be able to pass parameters to each other with you getting into deadlocks and race conditions. Then they need a coordinating route chain, one that’s running pinning contracts and John’s opinion that is what the Ethereum main net is here to do.
Richard however doesn’t believe that the Ethereum network as it currently exists can do that.
Markus Tradt question – Room for more than one protocol?
“Considering the origins of both of your blockchains and where they are heading is it possible to assume that the differences between public and private blockchains may shrink. If that’s the case is there room for more than one protocol?” – Markus Tradt, the CTO of B3i,
You can do fast finality within a Corda Network and put a slip transmission between fast finality and an eventual consistency machine that gives a global state assurance of lack of tamper. Ethereum’s decentralisation will be further assured as it moves from a state of proof-of-work to a state of proof-of-stake.
Proof of work is extremely costly and has a questionable governance. Proof of stake is at this stage unproven. Richard didn’t quite agree with Marku’s question as he talks about public and private blockchains. Richard doesn’t fully believe there is a distinction. The Corda Network is effectively a public network. It is openly governed. Anyone who can prove their identify can join. The key distinction for Richard is how does that governance work. Do you know who is confirming transactions? Do you know who gets to set the network parameters..etc.
Richard’s final word
If you know you are trying to do business with your counterparts, competitors, peers, customers and you want to reduce the amount of errors, reduce some of the situations where you disagree about things. You want to do it, just to unlock new opportunity to be able to move faster, move quicker and seize new opportunities then blockchain in general, and Corda in particular is what you should be looking at. Choose an open source blockchain, because the network effects are so strong. Do also pay particular attention to finality, because it does matter.
Final word – John
John isn’t here to advocate for Corda, Fabric or Ethereum. The stateful internet, which is what John is advocating, is one where we need to be able to seamlessly find parties, connect them privately and then be able to pass information into and out of the functions that lives on them without running into double spend race conditions, non-determinism and other issues distributed systems have. That is why we need both Corda and Ethereum and both of them to evolve. If that doesn’t happen John believes we run the risk of entering a blockchain ice age.
Thank you Richard & John for this fascinating debate on public vs private blockchains for the enterprise world. If you liked this episode, please do review it on iTunes. If you have any comments or suggestions on how we could improve, please don’t hesitate to add a comment below. If you’d like to ask John or Richard a question, feel free to add a comment below and we’ll get him over to our site to answer your questions.
One comment on “Ep.53 – Debate – Public vs Private blockchains for enterprises with R3 and Consensys”
When you are adding or removing a party from a Corda network (and thereby granting or revoking access to confidential data and business logic), what you are really doing is granting or revoking a signed certificate. Could not such a certification system be implemented at the smart contract level in Ethereum?
Taking my cue from this Twitter thread (https://twitter.com/elonmusk/status/1123126001171517440), let’s think about how confidentiality fits into all the “Big Ethereum Applications:”
— a social media site where your personal data isn’t mined and abused by a centralized authority, but still supports a private network of “friends”
— an election system that is resistant to fraud, but also can support a secret ballot
— a new financial system that can still meet all the finicky confidentiality needs of competition (insurance would be a subset of this)
— a payment system similar in purpose to Venmo or Paypal where you are free from centralized abuse, but you also don’t have your full payment history public for all to see
Confidentiality plays a role in all of this — it is insufficient to say that “blockchain is a nude beach” and call it a day, is it not? You have Bitcoin on the one hand and Monero on the other. One is a nude beach, the other just isn’t, yet both are blockchain.
The thing that I am trying to figure out is, what is the MAXIMUM level of confidentiality that is possible on Ethereum? You can build layers that abstract away some of the transaction data, but is it possible to abstract away, or at least obfuscate away, ALL the transaction data? Or even the business logic? Would love to hear the guests’ thoughts~~