On the main DAG? On a second layer? Or something else?
How does it work basically?
In IOTA timestamp accuracy cannot be trusted.
"The tangle is a graph with only a partial order structure, which makes it difficult (in fact, generally impossible) to establish the correct time order of transactions. Even if all transactions have timestamps on them, we cannot be sure that all these timestamps are accurate"
Source: http://iota.org/timestamps.pdf
In blockchain all blocks are organised into a linear sequence over time so this problem does not persist.
To make Smart Contracts on the Tangle possible, an "off-tangle" oracle will be implemented.
IOTA Foundation is actively working on Oracle platform for IOTA where the plan is also to enable true interoperability with all other Blockchain platforms.
Ales has his own take, but I think he is perhaps ruling out smart contracts based on perceived functionality from other implementations.
http://iota.org/timestamps.pdf
Even if all transactions have timestamps on them, we cannot be sure that all these timestamps are accurate (there can be some malicious nodes that want to fool the network about the true time when their transactions appear, and/or some nodes with a wrong clock). Nevertheless, one can determine the confidence intervals for timestamps with reasonable accuracy
Timestamps per say are not important to implementing smart contracts. What is necessary, is a proper ordering of when transactions were completed. Something that datetimes are very good at, but it can be accomplished in other ways.
If that confidence interval approaches 100%, you can create logic that depends on that order.
Hell, we can't even be sure that a Transaction was even confirmed or not with a 100% confidence interval.
In order for IOTA to be successful, we need to be comfortable with the confidence intervals and probability distributions.