status

Cardano will be more interoperable with Bitcoin and other blockchains

Published 27.1.2023

The next hard-fork combinator event is planned for February 2023. This is another upgrade of the Cardano network which will bring several new improvements (CIPs). In this article, we will discuss CIP-0049. It proposes two new Plutus built-in functions for ECDSA and Schnorr signature verifications. The CIP is aimed to bring Plutus interoperability with other blockchains like Bitcoin, EVM sidechains, etc.

TLDR

  • To increase the interoperability of blockchains, they need to understand each other at the cryptographic level.
  • Bitcoin uses Schnorr signatures, Ethereum ECDSA, and Cardano EdDSA.
  • Plutus developers will be able to verify Schnorr and ECDSA signatures and will be able to use these cryptographic algorithms in their apps.

How to increase the interoperability of blockchains?

Communication between users within a blockchain is based on cryptography. To be more precise, through messages containing cryptographic signatures. The original owner of the token must use their private key to create the digital signature. The transfer of value from a blockchain address to an address is based on the verification of the digital signature.

Different blockchain networks use different cryptographic signature methods. It is similar to two people speaking different languages talking to each other. Mutual communication would be challenging. To enable communication between parties, it is necessary to teach them to use the same language. In the case of communication between blockchains, it is sufficient that they can use the same cryptographic algorithms.

From the beginning, Bitcoin and Ethereum have used cryptographic signatures based on the Elliptic Curve Digital Signature Algorithm (ECDSA). This scheme is based on curve secp256k1. Bitcoin relatively recently switched from ECDSA to the alternative method of Schnorr signatures.

Schnorr Signatures has certain advantages compared to ECDSA. At the time Satoshi created Bitcoin, this technology was patented. The patent had expired, leaving Bitcoin developers free to change the cryptographic signature method which is considered a better option.

Many other blockchain projects use the popular ECDSA or Schnorr signature scheme.

Cardano, like Ethereum or Bitcoin in its early days, uses cryptography based on elliptic curves. Unlike the popular standard in the blockchain industry, the IOG team decided to use cryptography based on a different elliptic curve. Cardano uses the Edwards-curve Digital Signature Algorithm (EdDSA) with elliptic curve curve25519 as its base curve. EdDSA enables very fast signature verification and small signature sizes which is advantageous from a performance perspective. Moreover, it is resistant to certain types of attack vectors.

In addition to Cardano, EdDSA is used by other projects such as Ripple, Monero, Algorand, Solana, and others.

To increase Cardano's interoperability with Bitcoin, Ethereum, and other blockchains, Cardano must be able to verify digital signatures for which other cryptographic algorithms have been used.

ECDSA and Schnorr signature verification functions will be available

CIP-0049 will increase Cardano interoperability by allowing Plutus script developers to use cryptographic signature methods other than those used by Cardano, i.e. EdDSA. Developers will be able to write Plutus scripts that are able to validate ECDSA and Schnorr signatures.

If Plutus developers needed to verify ECDSA and Schnorr signatures in their application, they would have to implement the necessary algorithms themselves. This would cost them a huge amount of effort, time, and financial resources. Moreover, it is a certain security risk. The IOG team decided to add built-in functions to enable signature verification of alternative cryptographic algorithms.

The IOG team will not implement cryptographic algorithms. Instead, they will use reference implementations programmed in C that contains both mentioned signature schemes. Plutus scripts will be able to call functions from the C implementation through a technique called direct binding. The reference implementation is considered trustworthy and is also time-tested through production deployment in Bitcoin and many other projects. From the perspective of Plutus developers, using the new functionality will be straightforward and easy.

In addition to increased cross-chain communication capabilities, Plutus developers will have additional cryptographic algorithms at their disposal for their applications. They will have a wider choice of designs when it comes to multiple signatures or threshold signatures. Schnorr-based designs are well-understood and widely used by developers.

Conclusion

CIP-0049 is an important step to increase interoperability between blockchains and will expand options for Plutus developers. Let’s add that this change does not break any existing functionality and does not affect other built-in functions.

Featured:

Related articles

Did you enjoy this article? Other great articles by the same author