Simpele computerprogrammaatjes die bepaalde acties uitvoeren wanneer er een transactie mee aangegaan wordt.
Smart contracts zijn niet 'slim' en ook niet per se een contract. Daarmee is de term eigenlijk niet juist. Ethereumbedenker Vitalik Buterin zei dan ook ooit op Twitter dat hij het liever 'persistent scripts' genoemd had, juist omdat die term een stuk minder lekker bekt en daarmee mogelijk de ICO-hype wat minder stevig had aangezet.
Smart contracts zijn simpele computerprogrammaatjes met een set regels waarbij de bedoeling is dat die automatisch uitgevoerd en gecontroleerd worden. Op ethereum wordt een eigen programmeertaal gebruikt om smart contracts op te stellen: Solidity. Met deze taal, die enigszins vergelijkbaar is met JavaScript, zijn de smart contracts op te stellen.
Om een smart contract uit te voeren, is rekentijd nodig van de Ethereum Virtual Machine. De EVM gaat door tot het smart contract is afgerond of tot het moment dat de maximaal toegekende hoeveelheid ether is uitgegeven. Dit voorkomt dat smart contracts eeuwig kunnen blijven doordraaien en daarmee het netwerk vast laten lopen.
Smart contracts hebben geen juridische status, al kan er uiteraard wel een juridische status aan toegekend worden, maar dat is niet inherent aan de ongelukkig gekozen term.
De term ‘smart contract’ wordt voor het eerst door Nick Szabo gebruikt in de vroege jaren negentig, om een 'set aan voorwaarden in digitale vorm' vast te leggen.
Ethereum is de bekendste blockchain die smart contracts gebruikt, maar veel meer blockchains kunnen dit, alle met iets verschillende im- plementaties of volledig eigen interpretaties.