whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 14, 2016, 12:25:06 AM Last edit: May 23, 2016, 01:56:18 PM by whysos3rious |
|
The first uncheatable Rock Paper Scissors Game on ETH with 2 players duels. 1) Encrypt your Hand with a secret (change it every time) on the website : matching-ethers.com/rps. 2) Send it with 0.1 ETH using the sendEncryptedHand function (in Mist). 3) Be matched with an opponent (follow progress on the real time website and cancel waiting if no opponent comes). 4) You have 2 hours to reveal your hand with the appropriate function. 5) Receive 0.198 ETH if you win or if opponent does not reveal. In case of draw, receive 0.1 ETH. contract address : 0xDD88C4D189585B650a3FE3d0E39147fcca59Ec32 abi (for import in Mist) and code http://etherscan.io/address/0xDD88C4D189585B650a3FE3d0E39147fcca59Ec32#codeEnjoy !! (more details on the website) http://whysos3rious.com/rps!! EDIT : Contract ADDRESS UPDATED !!
|
|
|
|
Disruptor
Newbie
Offline
Activity: 26
Merit: 0
|
|
May 14, 2016, 10:01:01 AM |
|
Well done, the code and the website are impressive !
Finally a true RPS game on ETH, another developer made a version I saw but it was flawed and the first player would always lose.
Won my first hand on your game, yeah !
|
|
|
|
askolein
Member
Offline
Activity: 70
Merit: 10
|
|
May 14, 2016, 12:33:23 PM Last edit: May 29, 2016, 01:25:45 PM by askolein |
|
The code written, is not clear, difficult to audit.
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 14, 2016, 12:49:27 PM |
|
Thanks for the feedback guys. The code is complex indeed because it has complex mechanics in order to implement the storage of encrypted hands, the revelation mechanism, the automatic payouts of expiration of duels. However the lisibility should not be too much of a problem if you know solidity. The variables names are very clear and there is nothing too fancy. Also, I'll be happy to answer any question you may have on the code. Just ask Regarding the audit of the code, thanks for your positive feedback Disruptor. If anyone else who knows solidity wants to audit the code that would be nice. I can provide explanations if needed. Also if you want to be confident on the security of the game, you can check the contract transaction on etherchain. All is being payout as annonced. After 20 players, the contract has no ether left in apart from the house cut. Enjoy !
|
|
|
|
killerjoegreece
Legendary
Offline
Activity: 1680
Merit: 1010
Professional Native Greek Translator (2000+ done)
|
|
May 14, 2016, 12:50:15 PM |
|
The first uncheatable Rock Paper Scissors Game on ETH with 2 players duels. 1) Encrypt your Hand with a secret (change it every time) on the website : matching-ethers.com/rps. 2) Send it with 0.5 ETH using the sendEncryptedHand function (in Mist). 3) Be matched with an opponent (follow progress on the real time website and cancel waiting if no opponent comes). 4) You have 1 hour to reveal your hand with the appropriate function. 5) Receive 0.995 ETH if you win or if opponent does not reveal. In case of draw, receive 0.5 ETH. contract address : 0xb39a89322379ed7d91dc2e8ae1b30989eaf91d41 abi (for import in Mist) and code http://etherscan.io/address/0xb39a89322379ed7d91dc2e8ae1b30989eaf91d41#codeEnjoy !! (more details on the website) http://whysos3rious.com/rpsthis project looks real nice. I will play soon
|
|
|
|
askolein
Member
Offline
Activity: 70
Merit: 10
|
|
May 14, 2016, 01:47:58 PM |
|
But i congratz you OP, nice idea to encrypt hands.
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 14, 2016, 02:18:08 PM |
|
Thanks for the support. Yes if you use a weak secret (too small or too common), someone may try to bruteforce it. But bruteforce or other forms of hash decoding takes times. So if you don't wait too long for an opponent and you use a long enough secret, there is no risk of being cheated. That's the basic assumption of our lovely blockchains
|
|
|
|
sydhelly
|
|
May 14, 2016, 03:18:07 PM |
|
I'm waiting for a challenger
|
|
|
|
sydhelly
|
|
May 14, 2016, 04:41:21 PM |
|
and I won, nice ! Rematch ?
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 15, 2016, 07:19:23 AM |
|
Hehe, It's nice to see you guys are having fun on the game.
Anyways, everything seems to be working as intended and there is no bug with the contract. The only transaction that failed was when a player tried to reveal his hand without a secret. Just one quick question regarding the parameters :
Are you guys happy with the current settings ?
Is 0.5 ETH as gamble value appropriate for you or would you prefer to play only for 0.1 ETH for instance ? What about the delay to reveal your hand ? Is 1h long enough, would you like more ?
|
|
|
|
askolein
Member
Offline
Activity: 70
Merit: 10
|
|
May 15, 2016, 12:18:02 PM |
|
The only transaction that failed was when a player tried to reveal his hand without a secret.
Yes it was me :p I succesfully sent from MyEtherWallet, but couldn't build succesfully the string data to reveal, but whatever, i knew i lost by looking at the revealing function the other used . Everything is clean yes.
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 15, 2016, 12:50:53 PM |
|
Ok good to know that the pb with myetherwallet did not make you lose and that you had lost anyways I hope you win next time Thanks for the feedback askolein, much appreciated. What do you think about the gambling value btw ? Would you prefer to play for less money ?
|
|
|
|
askolein
Member
Offline
Activity: 70
Merit: 10
|
|
May 15, 2016, 04:58:04 PM |
|
Gambling value is good.
0.5 ETH is not negligible, yes and loosing is hard for your ego :p. Playing with 1 ETH would be WAY too much with such odds.
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 15, 2016, 07:00:03 PM |
|
Ok great thanks a lot for your feedback askolein. If the players want I could decrease the bet value to 0.25 or 0.1 ETH to play more for fun and less for ETH Let me know what you think
|
|
|
|
askolein
Member
Offline
Activity: 70
Merit: 10
|
|
May 15, 2016, 07:20:15 PM |
|
I mean, why not, try with 0.1 and see !
|
|
|
|
DustBluster
Member
Offline
Activity: 76
Merit: 10
Play Shiny Squirrels - Multiply Your Ether
|
|
May 16, 2016, 02:59:04 AM |
|
Another nice DApp with some good looking code and a useful and clean web interface. Well done! The encrypted hand approach you've used is an elegant solution to submitting and later revealing secret information. The only security risk that stands out is that when the website encrypts a hand it sends the plaintext password to a Node.js server for encrypting. The Node.js server is presumably under the game authors control, so in theory they could see a player's password and determine what hand was played before choosing what hand to play against it. The page includes instructions for technically savvy users to encrypt the hand themselves. I'm not assuming the author has any malicious intent, just identifying that trust is required when using the website to encrypt a hand. Personally, 0.5 ETH is too much for me for a game of luck. I'll wager bigger on games of skill and bluffing, but only take very small risks when the outcome is based on luck. At 0.1 ETH I might play a little. Good work
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 16, 2016, 09:06:38 AM |
|
Hi Dustbluster, Thanks a lot for your nice review. Yes you are right, If I wanted I could monitor the encryption process on the server and know the first player's hands. I, of course, don't do it a since I want this game to be succesful and fun. My goal is not self profit, I think I won't even repay the server cost at current rates, I do trading for profit but games are mostly for fun . Althought, since I can't convince you that I don't monitor the hands, this is why I also explain how user could do it themselves with web3.js if they don't trust my server. Anyways, I guess that with time and the positive feedback of several happy players, I'll earn some trust Thanks also for the feedback on the wager amount, I'm working on releasing the 0.1 ETH today.
|
|
|
|
askolein
Member
Offline
Activity: 70
Merit: 10
|
|
May 16, 2016, 10:08:30 AM |
|
Yes you are right, If I wanted I could monitor the encryption process on the server and know the first player's hands. I, of course, don't do it a since I want this game to be succesful and fun. My goal is not self profit, I think I won't even repay the server cost at current rates, I do trading for profit but games are mostly for fun . I personnaly uses another Keccak-256 hash online, with my secret + choice, eg : w8w8w9d2@@paper, and send the output. No deal with the website
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 16, 2016, 10:36:23 AM |
|
Yes that's a nice idea aswell, any online keccak256 generator works too (warning the sha3 of ethereum is not the same as other algorithm named sha3, so you should really use keccak256 and not other sha3). Be sure to add 0x to the crypted hash if the generator did not add it itself.
|
|
|
|
whysos3rious (OP)
Member
Offline
Activity: 81
Merit: 10
Play Rouleth ! http://www.rouleth.com
|
|
May 16, 2016, 10:49:34 AM |
|
Taking into account the feedback of the community and the first players of the previous version, I released this morning a new version that allows you to play R.P.S. for only 0.1 ETH.
Win : 0.198 ETH Draw : 0.1 ETH refunded
You now have 2 hours to reveal your hand once you are matched with an opponent.
I also fixed a few display bugs on the website.
Enjoy !
|
|
|
|
|