The (E)UTxO model stands for “Extended Unspent Transaction Output” model.
This is the counting model that Cardano uses
UTxO is used by bitcoin (bitcoin does actually have smart contracts, they are just not very smart!). Cardano extends the UTxO model, hence “(E)UTxO”.
Ethereum uses a different model completely.
Transactions
A transaction has inputs and outputs
Inputs
Each UTxO input must consume the complete UTxO
If you have 100 ada in a UTxO and want to transfer 10 to a different UTxO, your transaction must consume all 100, so it can output 10 to the destination and the remaining 90 back to the original UTxO
Output
Output total must equal input total (apart from when minting or burning tokens)
For every transaction you will need to output the transaction fee also, so the inputs must allow for this too.
Transaction scripts
These are used for each input to handle things like signatures.
Comparison with other blockchains
For the bitcoin model the script can only see its own individual input – this is very limiting.
For the Ethereum model the script can see the whole blockchain – this is very powerful, but also vulnerable as it’s hard to be certain what will happen.
For Cardano the script can’t see the whole blockchain, but it can see all of the inputs and outputs of the transaction – a middle ground compromise giving power but also excellent predictability.
An input can also include a “Datum”, an arbitary bit of data that can be attached to an input. This allows powerful inputs to be achieved giving you Ethereum functionality, but with much better predictability.
Advantages of Cardano’s approach
Other than your transaction consuming the output of some other transaction which can potentially change before your transaction executes on the blockchain, everything else is known before the transaction is executed. This means you can know if your transaction will be successful, apart from this one factor, before you attempt to execute it on the blockchain. If all of the inputs are still there then you can know that the transaction will be validated and execute.
In Ethereum you have to pay the gas fees even if the transaction ends up failing, for instance due to an unpredicted change in the inputs. On Cardano you only pay if the transaction executes, on top of the predictability of knowing it will execute before you try it.
Plutus scripts are much easier to analyse and confirm security, you don’t have to know the whole state of the blockcahin, just this transaction and its context. The scope if much more limited and therefore much simpler to verify.