Sì, concordo pienamente e penso tu abbia centrato esattamente il punto. Ho ritrovato un articolo che avevo letto tempo fa sul tema delle vulnerabilità maggiori di ETH. Lo riporto qui di seguito in ita.
Il gruppo NCC ha lanciato un'iniziativa chiamata DASP per Decentralized Application Security Project nel 2018. Copre le 10 principali vulnerabilità trovate negli smart contract in esecuzione sulla blockchain di Ethereum:
1. Reentrancy: Si verifica quando le chiamate di contratti esterni possono effettuare nuove chiamate al contratto chiamante prima che l'esecuzione iniziale sia completa. Per esempio, chiamiamo un'altra funzione prima di aggiornare il valore del contratto (successo con TheDAO);
2. Controllo dell'accesso: Quando lo smart contract viene creato, il proprietario deve essere impostato correttamente e in seguito devono essere messi in atto controlli sufficienti per permettere che certe funzioni siano eseguite solo dal proprietario;
3. Problemi aritmetici: Gli integer underflows o overflows potrebbero essere un problema quando si tratta del valore del contratto.
4. Valori di ritorno non controllati per le chiamate di basso livello: Le funzioni di basso livello call(), callcode(), delegatecall() e send() possono restituire dei false. Dobbiamo verificare il valore di ritorno prima di assumere che sia stato eseguito con successo;
5. DoS: Quando si tratta di smart contract, i prezzi del gas sono importanti. In un attacco DoS per smart contract, il prezzo del gas è superiore al prezzo massimo consentito. Pertanto, il contratto non può essere eseguito;
6. Bad Randomness: Gli smart contract come ricordavamo sono aperti pubblicamente sulla blockchain. Non vanno codificate logiche pseudo-casuale su di essi oppure utilizzare un oracolo esterno come fonte di entropia;
7. Front-Running: Gli utenti possono specificare tariffe più alte per avere le loro transazioni minate più velocemente degli altri. Un utente malintenzionato può superare un'altra transazione inviando la sua transazione con tariffe più alte per prevenire la transazione originale;
8. Manipolazione del tempo: Se c'è una dipendenza temporale incorporata nello smart contract, un minatore malintenzionato potrebbe tenere il suo stake per adattarsi al timestamp specificato;
9. Attacco all'indirizzo corto: Gli indirizzi dei contratti smart sono
uint256, se uno sviluppatore usa solo uint l'EVM riempirà di zeri i byte rimanenti manipolando l'indirizzo del destinatario;
10. Qualsiasi altra cosa dato che Solidity è un nuovo linguaggio informatico e tutto può succedere.
https://www.dasp.co/