Now, consider the conditional operator in the given example.
"If a transaction occurs.." is the condition. ONLY the conditional of transaction types can be verified by the program because it is inherent in the network. For every other conditional, for example, "if team A wins.." the program has to consult a third-party. These are known as 'oracles' in ethereum lingo.
Now since we are trusting a third-party, why can't we simply use bitcoin and even let the decision script be hosted on the third party?
For the program to be able to take decision on a real-life event, only the occurring of a transaction is the type of event it does not need a third-party for. And trusting is all the problem there is.
*
Bitcoin's script not being turing-complete is a feature because it specializes the use-case. Theoretically, if ethereum allows a turing-complete language to be executed, a code could be written to hack the system itself. Ethereum handles this by executing in a virtual environment.
Thus ethereum is essentially a abstraction on bitcoin and introduction of a new currency token (ether) is unnecessary.
*
The vision of ethereum is very desirable. Although Ethereum does not make it possible I want such a system to exist. My limited understanding is that for a system to exist, we need an algorithm to be able exchange private keys between two parties without trusting each other.
We need a homomorphic secret sharing but without a dealer. In a Blakley scheme, both parties chose their own planes; we need the intersection of planes, the line, to be our private key and for everyone to be able to know the public key for the same without the private key being known to anyone.
Does anyone know of such an algorithm, because solving this problem will also truly decentralise cryptocurrencies like email.