How does a smart contract differ from traditional contracts?