Dennis McKinnon shows his Ethereum Lotto ÐApp (Distributed Application) to Joris Bontje. After a demo of the UI they walk through the LLL smart contract source code and study the new Javascript bindings in Ethereum PoC 5.
Denny's Lotto is open for Business!
https://pay.reddit.com/r/ethereum/comments/22vw89/dennys_lotto_is_open_for_business/Support addresses for EtherCasts:
Bitcoin: 1FCD6yRnK4F8PHkS165ejCBxcSzRmgx6aS
Dogecoin: DUGKd7yJcxdZretg5CGSR3hEjv9YEQfxsA
Dennis McKinnon -
https://github.com/dennismckinnon/Joris Bontje -
https://twitter.com/mids106Music:
Electrodoodle & RetroFuture Clean by Kevin MacLeod (incompetech.com)
Comments
Where is the discussion where it is concluded to 'hash the timestamp'? This is definitely better than that! So the 'alarm' discussion was essentially about getting at winning hashes(prevhash) so miners would have to drop block rewards to collude? If you could access random previous winning hashes, you'd essentially have the same ability, you'd just wait for someone to activate, instead of depending on the alarm.
Why cant we access the current winning hash? It would mean that you cannot execute contracts before you know what the winning hash is, but you dont need it. I thought transactions are valid if they pay the transaction fees? If contract execution was able to invalidate transactions, miners would have to execute them first, and that might be an avenue to attack miners.
As i rambled before, btw, miners can still collude, even if they have to drop the block reward for it. If someone could figure out a contract that can produce random values, that'd be perfect. Other contracts would be able to call it for the values.
Like the idea of a browser and javascript for making interfaces to contracts. But not sure if i want it in the same program as the one that decrypts my wallet!
- Denny's lottos approach, use future hashes of blocks. These are psuedorandom, but the problem is that miners know which they have when they get a block. So if it makes enough difference for bets of the miners and/or people paying the miners, they can just not publish it and affect the odds.
- Have commitments to random value from the different players
- Finally, have a RANDAO where some parties put stake(like ethers) in, and commit random values like before. If they later come up with the actual values they get a payment, otherwise they lose their stake. The random values are accessible from other contracts with a small payment, or the DAO contract calls the other contract when the random value is in. (Me and Dennis McKinnon came up with it)
Afaik the above basically is the relevant story, here is an old thread about it, though.H(R1)
,H(R2)
and laterR1
,R2
are revealed(checked,) and combined. Failing to provide your value will give maximum losses. This one is secure, but it is a bit tedious and inconvenient two step process.Basically the suppliers of the random values in the RANDAO can still fail to publish their random values. However, the stake they put in can be much larger than a single block reward, it can be large enough so that it cant be profitable to do so when there are some bets benefitting.