What do you think about smart contract?

Hi, friends.

Many people said the smart contracts is one of the killer apps of Blockchain. How do you think about smart contracts? What is your definition of a smart contract? And what are the essential components to implement smart contracts?

Smart contracts are really hard to reason about. I’m not sure a turing complete contracting language is a good idea and I haven’t been able to reason about what kind of primitives make sense except in the context of payments.