user1147: In my understanding, smart contracts on Cardano are always provided to the blockchain via a transaction and there is no code that is stored at the blockchain, but just a hash (the public key address). Ethereum seems to store them instead: see What is the maximum number of contracts Cardano can store? 
Is this correct?
What are the other main technical differences?
Update
Also beyond that Cardano uses the eUTxO-based model and Ethereum uses an account-based model.

user4023: I'd like to complement @JohannesSirsch answer.
One of the most important aspects of any network, when working with smart contracts, is the ability of the script to see the "event horizon":

In Bitcoin, all the script sees is the Redeemer that contains all the logic necessary to verify Tx.
In Ethereum, the script sees the whole blockchain, and that's not good regarding security.
In Cardano, the script sees all the Tx-ins and Tx-outs, including Redeemer.


user1147: Feel free to improve! :)




technical aspect
Cardano
Ethereum
notes




model
eUTxO-based
account-based
see cardano lecture,see question,...


smart contract code location
not stored on-chain, but shipped with transaction
stored on-chain ?



smart contract maximum count
unlimited
limited ?
see question


access third party contract e.g. an oracle
import and use lib (required or just helpful?),, compile your own contract, ship third party validator script with transaction, ...
call it via an address ?
see question


...
...
...
...




1147: <p>In my understanding, smart contracts on Cardano are always provided to the blockchain via a transaction and there is no code that is stored at the blockchain, but just a hash (the public key address). Ethereum seems to store them instead: see <a href="https://cardano.stackexchange.com/questions/140/what-is-the-maximum-number-of-contracts-cardano-can-store">What is the maximum number of contracts Cardano can store?</a> <br>
Is this correct?</p>
<p><strong>What are the other main technical differences?</strong></p>
<p><strong>Update</strong><br>
Also beyond that Cardano uses the eUTxO-based model and Ethereum uses an account-based model.</p>
 4023: <p>I'd like to complement @JohannesSirsch answer.</p>
<p>One of the most important aspects of any network, when working with smart contracts, is the ability of the script to see the <em><strong>&quot;event horizon&quot;</strong></em>:</p>
<ul>
<li>In Bitcoin, all the script sees is the Redeemer that contains all the logic necessary to verify Tx.</li>
<li>In Ethereum, the script sees the whole blockchain, and that's not good regarding security.</li>
<li>In Cardano, the script sees all the Tx-ins and Tx-outs, including Redeemer.</li>
</ul>
 1147: <p>Feel free to improve! :)</p>
<div class="s-table-container">
<table class="s-table">
<thead>
<tr>
<th style="text-align: left;">technical aspect</th>
<th style="text-align: center;">Cardano</th>
<th style="text-align: center;">Ethereum</th>
<th style="text-align: center;">notes</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">model</td>
<td style="text-align: center;">eUTxO-based</td>
<td style="text-align: center;">account-based</td>
<td style="text-align: center;"><a href="https://youtu.be/igV7kMXcdpw" rel="nofollow noreferrer">see cardano lecture</a>,<br><a href="https://cardano.stackexchange.com/questions/696/eutxo-transaction-model-vs-account-based-transaction-model">see question</a>,<br>...</td>
</tr>
<tr>
<td style="text-align: left;">smart contract code location</td>
<td style="text-align: center;">not stored on-chain, but shipped with transaction</td>
<td style="text-align: center;">stored on-chain <strong>?</strong></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;">smart contract maximum count</td>
<td style="text-align: center;">unlimited</td>
<td style="text-align: center;">limited <strong>?</strong></td>
<td style="text-align: center;"><a href="https://cardano.stackexchange.com/questions/140/what-is-the-maximum-number-of-contracts-cardano-can-store">see question</a></td>
</tr>
<tr>
<td style="text-align: left;">access third party contract e.g. an oracle</td>
<td style="text-align: center;">import and use lib (required or just helpful?),<br>, compile your own contract, ship third party validator script with transaction, ...</td>
<td style="text-align: center;">call it via an address <strong>?</strong></td>
<td style="text-align: center;"><a href="https://cardano.stackexchange.com/questions/702/referencing-onchain-contract-as-3rd-party/721#721">see question</a></td>
</tr>
<tr>
<td style="text-align: left;">...</td>
<td style="text-align: center;">...</td>
<td style="text-align: center;">...</td>
<td style="text-align: center;">...</td>
</tr>
</tbody>
</table>
</div>