In addition to all the possibilities, smart contracts currently pose a legal challenge, because how do you program indeterminate legal terms (e.g., unfaithful, reasonable) or warranty cases? A human decision is needed here, as such cases cannot be "translated" using a programming language. The success of smart contracts depends on some important factors - among them are technical (e.g., resource consumption, limitation to digital facts, etc.) and the legal challenges (e.g., enforcement issues, privacy law, liability, etc.).
So, on the one hand, there is still a long way to go before smart contracts will be suitable for everyday use. On the other hand, blockchain-based contracts open up a wide range of opportunities to move forward in the digital transformation.