I read the following E-SO post and also several threads on Ethereum/Solidity forums regarding smart contracts and external servers (anything involving a socket):
Why can't contracts make API calls?
I understand that the idea is to maintain deterministic code and accessing an external server breaks that covenant. I also understand that it creates a security or logistics problem when it comes to smart contract code making socket calls.
Can someone tell me then how you would handle a scenario like the following?
Suppose a smart contract is involved with the transfer of an asset like a real estate deed or title, held in escrow until the conditions of the smart contract are fulfilled.
Suppose midway through the contract, it is discovered that the land deed is fraudulent. What I can't fathom is how to write a smart contract that doesn't interact with an external server, that can check for that invalidation condition mid-execution before fulfilling the contract?
I've heard people mention Oracles but I still haven't seen a document that describes a concrete way to handle the very real life circumstance I just described. Said more abstractly, any real life circumstance that occurs during the execution of a smart contract that essentially invalidates the transaction. Techniques anyone?