1

What is Cardano's smart contract engine called?

Smart contract language:
Solidity (Ethereum) => Plutus (Cardano) Simple enough, I get this.

Smart contract "engine":
EVM (Ethereum) => ??? (Cardano) EUTXO? Plutus? PAB?

1 Answer 1

1

There is no Cardano equivalent to the EVM because code execution on cardano is an entirely off-chain process.

In short, "smart contracts" is a bit of a misnomer because of how very different programmability is achieved in UTXO vs Accounts based distributed systems. In short:

  • In accounts, smart contracts are programs that are authorized to autonomously initiate state changes when specific conditions (on-chain) are met. In a way these programs have their own agency, making it easy to create a very precise dependency cascade (if X then Y then Z, then e.t.c.). As such, Ethereum itself is akin to a shared, single threaded, dynamically modifiable program, whose state is shared among all participating nodes - we call this the EVM.

  • In eUTXO, smart contracts are simply "address guards" that only allow their UTXOs to be used as inputs if the spending transaction exactly follows the logic set forth by the script's author. In other words, any transaction attempting to spend from an address guarded by a smart contract many only do so by providing a proof that its logic is equivalent to the logic outlined by the guard's author. As such, Cardano itself is akin to a shared database that can only be updated according to either canonical (pre-smart contract) or custom (post-smart contract) rulesets. There is no shared "state" (dependencies) of the system, only a shared history of inputs and outputs. Hence, no "Cardano-VM"

This topic has already been addressed from multiple angles, so I will provide links below that go in greater detail. The following Q/A's helped me understand the differences in the structure of UTXO vs Accounts, so they may help you as well:

  1. Referencing an External Plutus Script
  2. eUTXO transaction model Vs Account Based Transaction Model
  3. Can blockchain viewers read the source code of a smart contract if they know its address?
  4. What's the difference between programmable validators and smart contracts?
5
  • Thank you very much! This has been immensely helpful.
    – TypicalHog
    Feb 15 at 21:15
  • So... it's essentially wrong to compare eUTXO to EVM, cosmWASM or eWASM? (Apples to oranges)
    – TypicalHog
    Feb 15 at 21:25
  • I am not familiar with cosmWASM, but it is apples to oranges in the sense that smart contracts on (e)UTXO vs Accounts models are hardly comparable.
    – zhekson
    Feb 15 at 21:29
  • Great write up ! Very insightful !
    – Jey
    Feb 15 at 21:34
  • Great answer, thanks! I'd be a bit cautious about this statement though: "code execution on cardano is an entirely off-chain process." There is still an on-chain validation part run in Plutus-core as part of transaction validation.
    – Jerry
    Feb 19 at 22:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.