Contrat intelligent
Du code qui vit sur une blockchain et s'exécute sur tous les nœuds dès qu'on l'appelle. Le terme est inventé par Nick Szabo en 1994 ; Ethereum le rend praticable en 2015.
Généralement écrit en Solidity, compilé en bytecode EVM et immuable une fois déployé — d'où les schémas de mise à jour reposant sur des contrats proxy. «Code is law» a tenu jusqu'au piratage du DAO en 2016, où 3,6 millions d'ETH ont été drainés via une faille de réentrance ; la communauté Ethereum a effectué un hard fork pour effacer l'événement (ce qui reste s'appelle Ethereum Classic). Classes de vulnérabilités courantes : réentrance, dépassement d'entier (moins fréquent depuis Solidity 0.8), manipulation d'oracle, front-running. Chaque ligne coûte du gas, ce qui met optimisation et sécurité en tension permanente.