Having run across this article from 2016 on Smart Contracts and Blockchain: "Why Many Smart Contract Use Cases are Simply Impossible", it's aged well - I expected to find technical issues that might be surpassed - but instead he's focused on the philosophical underpinnings and assumptions of the value of a blockchain style system...
It's not that people don't understand what they want smart contracts to do. Rather, it's that so many of these ideas are simply impossible. When smart people hear the term "smart contracts", their imaginations tend to run wild. They conjure up dreams of autonomous intelligent software, going off into the world, taking data along for the ride.?Unfortunately, the reality of smart contracts is more mundane.
I love how he breaks it down into more realistic terms:
A smart contract is a piece of code that is?stored on an blockchain, triggered by blockchain transactions and which reads and writes data in that blockchain's database.?That's it. Really.
This becomes apparent if you start looking at IBM's implementation details for smart contracts on hyperledger (or anyone else's implementations).
And he presents the issue with most of the use cases this simply:
"Everything that takes place on a blockchain must be completely deterministic, with no possible way for differences to creep in. The moment that two honest nodes disagree about the chain's state, the entire system becomes worthless."
I think this is what we can have trouble getting our heads around with respect to blockchain: both the utility - and the constraint - of consensus.? We're interested in other reading material on this subject, please make recommendations in the comments!