One of the benefits commonly associated with Ethereum is that it allows end-users to interact directly with smart contracts and thereby removing the need for trusted-third-parties.
In cases where:
- the source of the smart contract is published, and
- the contract running at an address can be securely traced to that source, and
- the end-user is able and willing to audit the code before interacting with it
then the end-user can establish trust (or perhaps, rather, confidence) that the contract complies with expected behavior.
The reality is, however, that in most cases at least one of the above conditions will fail, and therefore the end-user will blindly interact with a contract they do not understand. And the odds are that for every well-intended contract there will be one that is either intentionally, or unintentionally malicious.
How is this solved without introducing yet another trusted-third-party that acts as a quality auditor?