Earlier quoted context omitted.
I find it incredibly naive. The blockchain cannot enforce properly where external, real-world events are involved, and the hard part of contract law is not figuring out when to transfer money. It's figuring out when things aren't going as intended, it's figuring out when conditions might be unlawful, or when they just shouldn't be applicable in a given situation. "Code as law" is very wide of the mark.
1. A blockchain-based smart contract algorithm can very much check the price of a particular commodity on a particular exchange (fully automated enforcement). 2. Parties can meet up and resolve the contract themselves (semi-automated enforcement that saves escrow fees).
Introducing trust issues with that exchange and what it decides to report to the smart contract that day. And that's the very simplest of circumstances, one data point from one source.
> 2. Parties can meet up and resolve the contract themselves (semi-automated enforcement that saves escrow fees).
So resort to non-smart way of resolving the issue, only the dynamic has likely already been changed as an automated system may have transferred funds already.