Solidity
Il linguaggio in cui si scrivono gli smart contract su Ethereum: sintassi familiare, semantica spietata.
Solidity è tipizzato staticamente e prende il proprio aspetto da JavaScript e C++, il che lo rende facile da iniziare e facile da sottovalutare. Il codice viene compilato in bytecode per la EVM, e ogni operazione costa gas, per cui l'ottimizzazione riguarda qualcosa di del tutto diverso dalla programmazione ordinaria.
La differenza maggiore è che un contratto non si può aggiornare dopo il deploy. Un bug non si può correggere, e il codice è pubblico e ispezionabile da chiunque, attaccanti compresi. La rientranza, classico dietro l'attacco alla DAO, resta la trappola più nota. Verifica formale e audit esterno sono perciò prassi, non lusso.