4 ms·
I'm new to Bitcoin development and cryptocurrencies in general. Can anyone give a quick intro to Ethereum's scripting system and why it's such a big deal?
by Cyph0n 10y ago
I'm new to Bitcoin development and cryptocurrencies in general. Can anyone give a quick intro to Ethereum's scripting system and why it's such a big deal?
- nemild 10y agoSee my two comments, and feel free to reach out if you want to learn more
- Cyph0n 10y agoGreat overview, thanks. I'll have to do some more reading and perhaps try it out myself.
- aakilfernandes 10y agoI'm not an expert on Bitcoin's scripting language, but here's a few main takeaways * Ethereum allows shared state between transactions, Bitcoin doesn't. That means one application can state "The price of Eth is $10USD" and a totally unrelated application can reference that value. The result is that each application provides an API that all other applications can call. * Both Bitcoin and Ethereum have a stack based scripting language. However Ethereum also has a higher level language that compiles to the stack based language. That means you can right reasonably readable code without OP codes. Functional program is so much mentally easier than writing a stack * Ethereum (unlike Bitcoin) is Turing complete. It can have code that loops and recurses based on the state of the chain
- PeCaN 10y ago> Ethereum (unlike Bitcoin) is Turing complete. It can have code that loops and recurses based on the state of the chain Yikes. Turing-completeness is the last thing I want in a contract language. These things should be _provable_ and _total_. Allowing arbitrary computation opens up a whole new can of worms.
- cdetrio 10y agoPeople are working on formal verification of solidity code: https://forum.ethereum.org/discussion/3779/formal-verification-for-solidity-contracts https://forum.ethereum.org/discussion/3779/formal-verificati...
- cantankerous 10y agoThis was my first reaction. Why does a contract language need to be Turing Complete? Trustless contracts + Turing tarpits seems like a big turn off to me.
- rabbyte 10y agoI'll give you this simplistic example. Proof of Burn in the Bitcoin world means making up an address (such as "1CounterpartyXXXXXXXXXXXXXXX...") which is essentially impossible to ever be associated with an actual key so there's no chance of recovering the funds sent there. Proof of Burn in the Ethereum world means writing a contract and publishing the source code such that it can be verified to match the contract address living on the chain. A minimal proof of burn would be this "contract Burn {}" an empty contract that does nothing but receive funds, can never be destroyed, is controlled by nobody and all of this can be verified publicly. The difference is subtle but important. edit- btw, yes you can also send funds to address 0x0 but this still leaves open the possibility of a hard fork giving new meaning to that address in the future. my example is meant to be a demo of the difference mostly.