Bitcoin Forum
November 07, 2024, 09:19:31 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2  All
  Print  
Author Topic: [ETH] Play Rock Paper Scissors - Featured on ether.camp blog !  (Read 2288 times)
whysos3rious (OP)
Member
**
Offline Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 14, 2016, 12:25:06 AM
Last edit: May 23, 2016, 01:56:18 PM by whysos3rious
 #1

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#code

Enjoy !!
(more details on the website)

http://whysos3rious.com/rps

!! EDIT : Contract ADDRESS UPDATED !!

Disruptor
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
May 14, 2016, 10:01:01 AM
 #2

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 Offline

Activity: 70
Merit: 10


View Profile
May 14, 2016, 12:33:23 PM
Last edit: May 29, 2016, 01:25:45 PM by askolein
 #3

The code written, is not clear, difficult to audit.
whysos3rious (OP)
Member
**
Offline Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 14, 2016, 12:49:27 PM
 #4

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 Smiley

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 Offline

Activity: 1680
Merit: 1010


Professional Native Greek Translator (2000+ done)


View Profile
May 14, 2016, 12:50:15 PM
 #5

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#code

Enjoy !!
(more details on the website)

http://whysos3rious.com/rps

this project looks real nice. I will play soon Cheesy
askolein
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
May 14, 2016, 01:47:58 PM
 #6

But i congratz you OP, nice idea to encrypt hands.
whysos3rious (OP)
Member
**
Offline Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 14, 2016, 02:18:08 PM
 #7

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 Smiley

sydhelly
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile WWW
May 14, 2016, 03:18:07 PM
 #8

I'm waiting for a challenger  Cool

sydhelly
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile WWW
May 14, 2016, 04:41:21 PM
 #9

and I won, nice !

Rematch ? Smiley

whysos3rious (OP)
Member
**
Offline Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 15, 2016, 07:19:23 AM
 #10

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 Offline

Activity: 70
Merit: 10


View Profile
May 15, 2016, 12:18:02 PM
 #11

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 Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 15, 2016, 12:50:53 PM
 #12

Ok good to know that the pb with myetherwallet did not make you lose and that you had lost anyways Smiley
I hope you win next time Smiley

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 Offline

Activity: 70
Merit: 10


View Profile
May 15, 2016, 04:58:04 PM
 #13

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 Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 15, 2016, 07:00:03 PM
 #14

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 Smiley

Let me know what you think Smiley

askolein
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
May 15, 2016, 07:20:15 PM
 #15

I mean, why not, try with 0.1 and see ! Smiley  Wink
DustBluster
Member
**
Offline Offline

Activity: 76
Merit: 10

Play Shiny Squirrels - Multiply Your Ether


View Profile WWW
May 16, 2016, 02:59:04 AM
 #16

Another nice DApp with some good looking code and a useful and clean web interface.  Well done!  Cheesy

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 Smiley

shinysquirrels.co - Ether Multiplier Game
whysos3rious (OP)
Member
**
Offline Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 16, 2016, 09:06:38 AM
 #17

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 Smiley.

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 Smiley


Thanks also for the feedback on the wager amount, I'm working on releasing the 0.1 ETH today.


askolein
Member
**
Offline Offline

Activity: 70
Merit: 10


View Profile
May 16, 2016, 10:08:30 AM
 #18


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 Smiley.


I personnaly uses another Keccak-256 hash online, with my secret + choice, eg : w8w8w9d2@@paper, and send the output. No deal with the website Wink
whysos3rious (OP)
Member
**
Offline Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 16, 2016, 10:36:23 AM
 #19

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 Offline

Activity: 81
Merit: 10

Play Rouleth ! http://www.rouleth.com


View Profile WWW
May 16, 2016, 10:49:34 AM
 #20

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 !

Pages: [1] 2  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!