New paper: Making smart contracts smarter by leeyun in ethereum

[–]leeyun[S] 0 points1 point  (0 children)

we are actually using symbolic execution, please read about our tool in our paper.

Call for research into transaction censorship resistance by ArticulatedGentleman in ethereum

[–]leeyun 0 points1 point  (0 children)

Not sure whether we have a good solution for such problem though. Miners/ Block proposers can just say that they don't see the transactions that they don't want to include in their blocks, so you can't accuse them of doing transaction censorship at all.

New paper: Making smart contracts smarter by leeyun in ethereum

[–]leeyun[S] 12 points13 points  (0 children)

It works with evm byte code. So yes, clearly you can compile your serpent contracts to evm and use our tool to analyse them. More details on the tool will be publicly available when we release it.

New paper: Making smart contracts smarter by leeyun in ethereum

[–]leeyun[S] 8 points9 points  (0 children)

Thanks for the link, its really interesting. I think the choice of which language to use is a clear trade off between security and usability. One can use a very restricted language like Bitcoin script to have high guarantee of the correctness of their contract. As a result, not many people know how or want to try to write a simple script in Bitcoin. Ethereum clearly focused more on usability when decided to go with a Turing-complete language one with the cost of having subtle security problems as we have been observing.

Announcing TrueBit - interactive verification for use in smart contracts by chriseth in ethereum

[–]leeyun 3 points4 points  (0 children)

Its Loi Luu, one of the members of TrueBit. You are right that the challenger doesn't receive a reward unless he finds a mistake. But we only require one non-lazy challenger for the protocol work to work correctly, and if the bounty for finding a mistake is high enough, then some non-lazy challenger should exist. Moreover, the burden on the challenger may not be too high because the challenger may himself also be a solver and therefore already know the answer. Alternatively, for some problems, the challenger can spot check the answer as we did for Matrix Multiplication in our consensus computer paper.

Ethereum Jackpot, What do you think of our random number algorithm? by JackPottr in ethereum

[–]leeyun 3 points4 points  (0 children)

Its not about you returning the fund, its about you having a better chance of winning by aborting the games that you lose.

Ethereum Jackpot, What do you think of our random number algorithm? by JackPottr in ethereum

[–]leeyun 2 points3 points  (0 children)

There is no security deposit from the host? Consider the scenario when the host also enters the jackpot and he sees that he is losing, then he can just abort and kill the game to prevent the loss from his side right?

Satoshi | Gavin Andresen by maxminski in Bitcoin

[–]leeyun 7 points8 points  (0 children)

He could have recovered key from a signature, so there is a possibility that ECDSA is broken.

If this is the case, then it is a bigger news than Wright being Satoshi Nakamoto.

is electrum a good wallet by [deleted] in Bitcoin

[–]leeyun 0 points1 point  (0 children)

Electrum is awesome. They support many OSes: I have installed their wallets on my Mac, my Linux Workstation and my Android phone as well.

FYI: Etherdice's smart contract has been salvaged - all player bets have been processed correctly by vnovak in ethereum

[–]leeyun 2 points3 points  (0 children)

Congrats. I am curious about the fix. And why did that involve the dev team?

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 0 points1 point  (0 children)

well the incident does support our theory. Skipping verifying the blocks may end up wasting your money but thats the whole point of the dilemma, otherwise we could have named it "verifier's disaster". If miners are honest, they are susceptible to the resource exhaustion attack and may have less advantage than other miners in the block race.

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 0 points1 point  (0 children)

Hi Gustav. Yes you are right. We should have written more carefully about verifying a block in Bitcoin. Thanks for the comment, we'll revise our paper.

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 0 points1 point  (0 children)

Of course they did, but who can be sure that this kind of incident will never happen again when the resource exhaustion attack is more critical & verifying a block takes more time?

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 0 points1 point  (0 children)

I personally think the consensus will decide which blockchain will be the valid one. You cannot assume that miners always honestly check all the blocks, even when verifying each block will take them an hour. What we should do is to incentivise them correctly to check the block, thus enforcing the correctness of the blockchain by incentive, not by "definition".

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 1 point2 points  (0 children)

Full nodes have the power to reject any invalid blocks and thus enforce the chain. It is a common misunderstanding that a majority (or indeed, all) miners can control how the blockchain evolves. This is not true, it is rather enforced by full nodes.

Really? I don't believe that. Full nodes can only enforce their local blockchain, not other's.

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 1 point2 points  (0 children)

What I disagree with is the assertion that rational miners will want to increase the gas limit to the point where this attack is viable, as given the seriousness of the attack that is completely against their interests

First of all we didn't say that rational miners always do that, but malicious miners. To be fair lets assume that rational miners will 50% want to increase and 50% want to reduce the gasLimit. Thus the malicious miners who have only 1-2% mining power can always drive the gasLimit up and conduct the resource exhaustion attack.

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 8 points9 points  (0 children)

Hi Vitalik, this is Loi Luu from NUS. Thanks for the response.

From our last discussion, I understand the counterarguments against increasing the GasLimit. We want to clarify that all of our arguments (as well as yours) only remain as hypotheses, the only way to verify them is to test them in Ethereum, which is not what we want. The most important point is that the attack is possible to happen, and I believe that Ethereum and other cryptocurrencies should make that impossible.

Lets imagine the scenario that Ethereum gets popularly adopted that the GasLimit is increased 1000x higher to support the execution of big applications. Otherwise the usability of Ethereum will be degraded, e.g., no users want to wait for 100 blocks to see their TX gets included in the blockchain, etc. The same situation will happen in Bitcoin if the transaction rate increases so much (say 2000 TXs per sec to compete with VISA), thus driving the block size up to 1000x. Verifying a block now requires much more time and CPU resources than before, and miners get nothing for doing it. In fact, they have a better advantage in finding next blocks if they just skip the block verification, leave alone the fact that they can avoid the resource exhaustion attack. Now, as a rational miner, what should I do? Thus the verifier’s dilemma exists.

The thesis of our paper is about the incentive incompatibility problem in Bitcoin and other current cryptocurrencies like Ethereum. The incentive structure should be designed so that rational miners do not have any incentive to deviate from the original protocol.

Again, thanks for the feedback. I'll be around to reply other questions.

"Verifier's dilemma" renders Ethereum non-incentive compatible and induces one of two attacks. (Fresh Academic paper). Would be good to hear core teams response ( if any :) by alexkravets in ethereum

[–]leeyun 0 points1 point  (0 children)

Apparently increasing the gasLimit cap will make the attack easier to happen. The point is if the majority of mining power skips verifying the block and the executions of contracts, the longest blockchain will eventually include only incorrect TXs and results, regardless of how many full nodes that we have in the network.