INDUSTRIA’s Head of Engineering Venelin Stoykov on Corda development and Permissioned Blockchain: Key Takeaways

INDUSTRIA Business Operations Manager Kalina Tonkovska recently sat down with our Head of Engineering, Venelin Stoykov, in a Clubhouse episode titled ‘Corda Explained’. This article has been adapted from that talk and edited down for clarity.

INDUSTRIA Business Operations Manager Kalina Tonkovska recently sat down with our Head of Engineering, Venelin Stoykov, in a Clubhouse episode titled ‘Corda Explained’. This article has been adapted from that talk and edited down for clarity.

Listen to the whole interview: https://www.clubhouse.com/room/myl00zBO

Kalina Tonkovska: Tell us a few words about yourself and your experience thus far.

Venelin Stoykov: Yes, I am INDUSTRIA’s lead engineer and have been working here for a long time. More than ten years now. I have had different roles, mainly on the development side. I have used different technologies throughout the years, and I have had the pleasure of working with many clients. 

I started with PHP back in the day, going through Python, even working with JavaScript. After that, we decided that we should move to blockchain. See what the blockchain was about and whether we can use it at all. We started first to investigate some of the public blockchains like Ethereum and Neo. But we did not fall in love with them.

I remember the days when Petko, our CEO, would come to the office daily, very excited about stuff, and we would discuss that the entire day. I would explain that a lot of this isn’t applicable to real life. This would repeat every day. And finally, we came to Corda, where I said “this makes sense”. 

Kalina Tonkovska: What is the difference between Distributed Ledger Technology and Public Blockchain technology?

Venelin Stoykov: Simply speaking, public blockchain is a kind of DLT. DLT is the bigger set of, let’s say, technologies and public blockchain is an implementation of this, a subset.

We can imagine that this is something like a shared database, where all participants see the same thing. But how the consensus between different participants is made is different on each platform.

Kalina Tonkovska: How would you describe Corda to someone who has never heard of it? It is DLT, but it has specifics that make it very different from any public blockchain, making it suitable for bigger corporations or even SMEs.

Venelin Stoykov: Businesses care about privacy more than the enthusiasts in the public blockchain space, let’s say. What Corda is providing is that between every two participants in a transaction, what they are sharing is only visible to them. Both parties are sure that what is on the ledger for one party is the same as what is on the ledger for the other party. And the whole process only needs to be notarised once, so you can not double-spend. 

Kalina Tonkovska: So there is a layer of extra security and anonymity, let’s say. But do those notaries slow down the payment process by validating each transaction?

Venelin Stoykov: Yes. The notaries are the bottleneck of a transaction’s output. But this can be resolved with a notary cluster. It is not a single service, not a single computer, but different participants can connect to the notary closest to them, and these clusters themselves can vary by type of transaction.

Kalina Tonkovska: So it would not be possible to implement this in a corporation that has millions of transactions.

Venelin Stoykov: Yes. Even though the notaries are the bottleneck, they are still a lot better than what is in the public blockchain because in the public blockchain, you need to have a consensus between many, many, many nodes. 

Kalina Tonkovska:  How would you describe Corda to a person who has a corporation, who has payment transactions flowing through their business? Why would they opt for Corda and DLT in general? What are the benefits of such a platform? You mentioned there is higher security and levels of anonymity. What other benefits do business people take from using Corda?

Venelin Stoykov: If we imagine two financial institutions, or even more, which need to transact with each other in - the current situation, every corporation is holding its own ledger of what they are sending to others and what they expect to receive from them. 

And let’s say once a day or once a week, there is a reconciliation process in which everything should be cleared. And this can be a tedious process that can be prone to errors. With Corda, this happens in real-time.

Kalina Tonkovska: What do you use in terms of technology when working with Corda? What type of knowledge should a person have before starting off with this platform? What were your expectations, and what was your experience when you started working with Corda as a developer?

Venelin Stoykov: Corda is developed on Kotlin, and this is the preferred language. But because Kotlin is Java compatible, if a company has a team that only knows Java, they can still use Java to write their applications. 

But with Kotlin, it is easy. And if you spend a little time learning it, you will benefit from using the entire Java ecosystem that you already know.

The good thing about Corda, compared to other platforms, is that you can reuse the stuff you already have, the knowledge you already have. 

The transition between Java and Kotlin can be incremental. You can have a mixed codebase with Java and Kotlin in the same project. And it is interoperable.

On other platforms, you need to learn a new language, new technologies. Developer tools can be less mature. Using Corda as a framework, you can basically learn the concepts and not struggle with the language itself. 

Kalina Tonkovska: Can you explain the difference between permissioned and public blockchain?

Venelin Stoykov: Public blockchain is a permissionless blockchain, so each participant can join the network without any restriction, see everything.

In permissioned blockchain, you need to have access to the network - someone needs to give you access to the network. It is not open to everyone. And once you have access to the network, you can see the whole ledger or part of it, depending on your permission.

For example, if the permissioned ledger is based on Ethereum, after you join the network, you will see everything. If it is based on Hyperledger Fabric, you can only see the information inside the channels that are available to you. These function like separate blockchain channels inside one network.

You are essentially creating blockchains on demand. If I want to communicate with you, for example, each transaction between us is a separate blockchain from the rest.

Kalina Tonkovska: So in that sense, do they get approved immediately?

Venelin Stoykov: Yes.

Kalina Tonkovska: In public blockchain, consensus usually happens through proof of work, which, as we already said, is shown to slow down transaction speed, and in Corda transactions, we have contracts. Do we have other consensus mechanisms?

Venelin Stoykov: In public blockchain, there is also proof of stake, which both Etherium and Hyperledger Fabric are pushing - something that can speed up transactions. In permissioned blockchain, the parties are known, so you can sue them in real life if someone is acting up. There is no need for a complex mechanism to validate whether a party acts in bad faith.

Just as a reminder, the entire data is not shared with every participant. Only the notary gets access to that.

Kalina Tonkovska: Do users get to set the terms upon which a specific transaction is approved, or are they set by the Corda platform?

Venelin Stoykov: Certain rules are defined in Corda, but in Corda apps, there is this concept of ‘contracts’ - you define the logic behind the transaction. If the data you are receiving matches the given criteria, you can store data in the ledger. 

This is coded in the application itself, which in the Corda ecosystem is called a CorDapp. Each party in a given transaction will have the same CorDapp, which is approved beforehand by all parties involved.

Kalina Tonkovska: Can those rules be changed?

Venelin Stoykov: Yes, as long as all parties involved agree on that. The platform needs to validate that all parties are using the same or a compatible version of the CorDapp.

Kalina Tonkovska: For those wondering, Corda was originally created for the financial industry. Are there any other industries you have seen or projects you have worked on where you have seen Corda help?

Venelin Stoykov: Yes, it is not only for financial institutions, though this is obviously the first thing that comes to people’s minds when you say “blockchain”.

Another area is supply chain. From the moment a product is built to the moment it is shipped to the client, it can go through multiple suppliers, and with blockchain, we can validate that it is properly transported from location to location. That fees, everything is properly collected. Basically, that the history of this ‘asset’, let’s say, is stored on the blockchain. Corda can hold not just money but any type of information, including real-life legal contracts. Different permission layers can be built into a CorDapp, and this can all be automated. 

Basically, any idea you have that involves two or more parties needing to know about something in real-time can be solved by Corda. Transparency, data synchronization, information sharing between companies - most corporate challenges can be solved through Corda.

Kalina Tonkovska: Version 5.0 of Corda is likely to release this year. Do you have any expectations from a developer perspective?

Venelin Stoykov: Yeah, from a dev perspective, it will make testing a lot easier and faster. Currently, when you are writing tests - especially workflow tests - they are kind of slow, and if you are doing a lot of them, the platform will spend a lot of time because you are using the whole network for each test, which is not optimal. This will be fixed in version five since the architecture is completely different. 

You will now be able to have multiple identities on the same node, acting as separate instances of Corda, but operating inside a single one. This will be helpful for situations where someone wants to build a Software as a Service on Corda, for example, and wants to easily provide identities for their clients to use on Corda instead of having them maintain the infrastructure by themselves. It would also make this process significantly cheaper.

Kalina Tonkovska: Would you encourage people to pick up Corda? What would you say to people who are not familiar with the platform? 

Venelin Stoykov: Learning new things can bring you value. Even if you end up not using something in the future, it can give you a different perspective in the area you are currently working in.

If you decide that this is the thing that you like, that this is the thing that will probably change the world or is really inspiring to you, you can pick it back up and start working with it.

About INDUSTRIA

INDUSTRIA is a global technology consulting, development, and ventures company with expertise in the field of enterprise blockchain, confidential computing, process automation, and digital experience. As one of the official partners of R3, we are implementing cutting-edge blockchain technologies and reshaping the fintech world.

At INDUSTRIA, we are focused on providing permissioned blockchain solutions, such as Central Bank Digital Currencies, Electronic Bill of Lading, and Smart Legal Contracts. Our solutions apply to a wide range of industries and use cases to empower and modernise society.

Let’s talk about making your idea a reality — contact us at hello@industria.tech!

Follow us on Twitter, LinkedIn and Facebook.