Smart contracts are a key feature of blockchain and web3 technology that underlies cryptocurrencies like Bitcoin and Ethereum. But what are they, exactly?