|
|
|
|
|
by mannykannot
3906 days ago
|
|
I am well aware of the purpose of gas. What I have not seen is any argument (from @drdeca or anyone else) that gas materially simplifies the problem of verifying that a contract behaves properly (from your perspective, as one of the parties to the contract) in all circumstances. The fact that it will always halt is only a tiny step along that road, and if it halts as a result of running out of gas, that is strong evidence that it has not worked as intended. An example may be useful. Suppose I tell you that I have written an Ethereum contract whereby people can loan me money, and after a year, I will pay them back double. Before you enter into one such contract with me, I hope it would cross your mind to wonder if I might actually be running a Ponzi scheme. Don't worry, I say, Ethereum has this gas feature that means the transaction will always halt. How much more confident should that information make you feel? As for your alternatives, gas is essentially the same as limiting the time of computation. If backwards jumps were disallowed, the language would not be even approximately Turing-equivalent. |
|
2. There are Turing-complete languages which only allow loops with known number of iterations.
3. Check my presentation, If you want to understand Ethereum programming model:
http://www.slideshare.net/mobile/nivertech/ethereum-vm-and-d...
IMO Ethereum is just a first step in the right direction, the real solution will need to be much more scalable.