Então, o que seria um smart contract?