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?
Cardano Stack Exchange is a question and answer site for users and developers of the Cardano cryptocurrency ecosystem. It only takes a minute to sign up.Sign up to join this community
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: