3 ms·
Bitcoin transactions are scripts that execute sequentially and are very restrictive. Ethereum instead took bitcoin and replaced that scripting language with a t
by kang 11y ago
Bitcoin transactions are scripts that execute sequentially and are very restrictive. Ethereum instead took bitcoin and replaced that scripting language with a turing-complete language.
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.
- bachback 11y agoYes, the problem is about not what happens on one machine, but N machines globally. That is a system that scales linearly and does not use proof-of-work. One needs to solve the Byzantine General Problem in a more general way than Bitcoin does.
- chriswarbo 11y ago> 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? One reason which springs to mind immediately: the entity running the script always has complete control, whilst we may choose to grant limited control to third parties. For example, we might define a set of separate, potentially independent, verification conditions, and perform some action when 2/3 of those conditions are met. Manipulating such a contract would require collusion by many of those third-parties; and it would also make contracts more robust against technical problems.
- kang 11y agoThe bits of a cryptocurrency transaction cannot be changed. Its like a signed cheque, can only be read. So since the flag from third party is being used to decide which transaction is relayed, it is as good as handing over the transactions to the third party to relay them. Majority consensus can still be done by using multiple third-parties.