4 ms·
No, no a thousand times no... you are building weird machines[1] into the design of the money system. [1] https://www.usenix.org/system/files/login/articles/10
by JulianMorrison 13y ago
No, no a thousand times no... you are building weird machines[1] into the design of the money system.
[1] https://www.usenix.org/system/files/login/articles/105516-Bratus.pdf https://www.usenix.org/system/files/login/articles/105516-Br...
- oleganza 13y agoIt seems there's a nice economical limit on script execution. If the contract during its executing consumes more resources (ops + memory) than fees attached to it, the it's simply considered invalid. That computation is done after the money is locked and the fee is attached, so if you do while(1){}, you are basically donating to a miner. I haven't finished reading everything yet, so I maybe totally incorrect. But I doubt Vitalik didn't consider these issues.
- JulianMorrison 13y agoI am less worried about while(1){} and more about viruses (either in-system or breaking out of it via exploits) roaming the blockchain semi-autonomously stealing or spying.
- oleganza 13y agoEther scripts are not operating in unrestricted environment. They are turing-complete, but their environment and available memory are very restricted. A bug in the implementation may lead to denial-of-service attacks (just like similar bugs in Bitcoin), but it does not mean there will be ether viruses spreading through the network. At worst, it could be a global DoS issue that can be quickly fixed and the entire history reversed right before the problematic transaction.
- JulianMorrison 13y agoI do not share your optimism. The worst case is autonomous viruses that steal to sustain their transaction fees and escape their jails to wreak havoc via buffer overruns or other similar exploits.
- oleganza 13y agoThose viruses would have to exploit some bug in implementation, right? Once the bug is found, all bad blocks will be thrown away. All valid transactions will be included in new blocks. I don't think script complexity would be the biggest obstacle to adoption, but other factors. For one, advanced script upgrades to Bitcoin that preserve existing BTC distribution of wealth would be more welcome than something from scratch. It'd be safer alternative in the eyes of the bitcoin holders, who would not need to diversify into altcoin.
- deleted 13y ago[deleted]
- nly 13y agoAgreed. Bitcoin already has a built in transaction scripting language that is deliberately not Turing complete. Most of the issues actually stem in terms from timing and synchronizing with external variables...not the limitations of the scripting language. For example, for a while it was believed you could make cross-chain contracts secure (without a trusted third party) but, afaik, nobody managed to work out the subtle race conditions.
- nullc 13y agoSee the protocol diagram here: https://bitcointalk.org/index.php?topic=321228 https://bitcointalk.org/index.php?topic=321228 (alice and bob can be played by the same party for a cross chain transaction). There are some additional timing considerations for reorg safety when multiple chains are involved, but simply delaying all chain operations by enough blocks to make a reorg infeasible should be sufficient.
- gwern 13y agoIs it really a 'weird machine' in the pejorative sense when the weird machine is the entire point of the altcoin?