3 ms·
The major problem of Solidity (Ethereum’s language) is the Turning completeness. This makes it incredibly hard to reason about any property of the contracts (si
by amix 10y ago
The major problem of Solidity (Ethereum’s language) is the Turning completeness. This makes it incredibly hard to reason about any property of the contracts (since everything is undecidable due to Rice’s theorem).
I don’t know why they didn’t reduce the computing power, so it becomes much easier to reason and automate the reasoning about contracts.
Do they really need Turing completeness?
This could be one of the better things about Bitcoin's blockchain: it's simpler and easier to reason about.
- narrator 10y agoTuring incompleteness was a very significant design decision by Satoshi. If it had been designed by more than a single person, I don't think that decision would have been made. I think that's because the balance of paranoia vs flexibility would have favored flexibility in a larger group. People have to trust each other to form groups so they are naturally less paranoid the larger they become.
- wcummings 10y ago>Do they really need Turing completeness? Of course not, this is why Bitcoin only supports a handful of transaction types which closely mimic things you might do w/ paper checks or cash.
- lordnacho 10y agoIt was very ambitious. I guess they could have just hard coded some simple contracts mimicking existing financial instruments: an equity that pays out variable profits from a certain address to owners, a credit that periodically pays out a fixed amount, options, packages such as convertibles, indices, and so forth. About the Turing completeness, is there any limit to what you can calculate? What's to stop me from doing a contract that eats up an unreasonable number of calculations? That could easily be something that works fine when n is small but explodes when a bunch of different people are involved. Something that might be hard to check beforehand.
- halter73 10y agoEthereum uses "gas" to quantify the computational resources a contract consumes. There is a slowly growing limit to the amount of gas a contract is allowed to consume in order to execute. As for being hard to check beforehand, you're absolutely right. You can read about the consequence of this in one case on this reddit thread: https://www.reddit.com/r/ethereum/comments/4ghzhv/governmentals_1100_eth_jackpot_payout_is_stuck/ https://www.reddit.com/r/ethereum/comments/4ghzhv/government...