Aave has $11 billion deposited on it right now and safety of those funds depend completely on getting accurate price data to trigger liquidations. So you can say that the oracle problem is solved, at least for price data.
Getting data in isn’t the big issue though, and we’ve had market data streams since forever. I’m talking about the example above, where a smart contract would need some way of knowing when to flip the “Bob has satisfactorily finished community refurbishment” flag. This would require an abundance of interoperable data sources for bizzare things. Where do I subscribe to the count(dogshit_pile_in_the_playground) stream, and who or what is publishing to it in a trust-less manner?
Getting all the data in the world into the blockchain and coding smart contracts to infer judgement from it would be too complex and expensive.
A more practical approach is to transfer the funds to Bob once he clicks on the checkbox and have some lock-up period, so that Alice has the opportunity to trigger a dispute if she needs to.
Then the dispute can be resolved by a private court (composed of humans) that both Alice and Bob agreed on beforehand. See: https://kleros.io
Ok, but this isn’t purely a smart contract anymore. You’re describing a typical escrow (running on a blockchain, because ______) with human judges, conceptually identical to what goes on behind the scenes at EBay. What necessitates a blockchain here?
No, it's running completely on smart contracts. You get the regular advantages of running on blockchain: permissionless and trustless access to finance.
You don't have to trust the escrow holder, you don't have to worry about getting banned from Ebay.
The human judges/arbitrators aren’t, and they’re what’s critical. The contract cannot be sensibly completed without their input.
So you have an escrow system where human judges need to supply critical information. I’m left having to trust the human judges, unsurprisingly. Running this basic escrow code on the blockchain means that I no longer have to trust the kind of basic escrow code that’s used in centralised escrows. My question now is whether the escrow code of centralised providers (if condition then funds.release()) is really so unreliable that I’ll get get tonnes of benefit using blockchain escrows. Whenever there’s controversy over escrows, it comes down to the arbitration, which as you admitted would still be performed by humans.
> He can work for Alice or anyone else in the world
what's stopping him now?
> without having to deal with intermediaries and bureaucracy.
you mean laws?
edit: immagine this situation, Bob does the job, the other party never clicks on "done", Bob doesn't get the money, what Bob can do if there's no intermediary and/or bureaucracy protecting him?