Bitcoin Forum
November 19, 2024, 07:21:17 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: BTCBlink.com - Yet another bitcoin game.  (Read 4456 times)
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 22, 2012, 09:59:05 AM
 #1

Hey all,

This past week I've been working on a Bitcoin game. The site is still beta, but should function somewhat normally. You'll have to forgive the design since I'm kind of a novice when it comes to web design, this is actually an off-the shelf template which I threw out all of the existing PHP code and built upon it.

Here's how the game works.

The game has 'rounds', each round has a jackpot (for example, 1 Bitcoin). There are then ten tickets. Once all of the tickets are purchased, the game randomly selects a winner and awards them the jackpot. Players can purchase more than one ticket to increase their odds (however, purchasing all of the tickets costs you more than the jackpot).

Right now, the game creates a new round when there are no active rounds.  I’ll eventually set it up to where you can view the past few rounds to see who won them, perhaps even a stats page for each user.

Players always have at least a 1 in 10 chance of winning the round. If people enjoy the game and use it, I intend to make much larger jackpots and different kinds of games.

The website is: http://btcblink.com

Technical stuff:

Registration just requires a username and an email. A randomly generated password is emailed to you for security reasons, I have not yet implemented the function to change your password, or to retrieve your password. So make sure to put your password in a safe place.

The payments are handled by Paysius, so if there are any known issues with this payment processor that I'm not aware of, please let me know. I'm quite impressed with how it works so I figured it'd be better for me to use that, rather than to re-invent the wheel.

A single unique Bitcoin address is generated on registration to handle payments for the user, I don’t see the point of regenerating new addresses for each user every login for this application, but if there is a reason to I’d love to hear it.

bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
April 22, 2012, 04:14:11 PM
 #2

Is there anything that prevents you from buying tickets yourself and then picking yourself as the winner? If not, you may want to set something up that is verifiable so you can show you aren't just picking a winner and that it truly is random.

*Next Draw Feb 1*  BitLotto: monthly raffle (0.25 BTC per ticket) Completely transparent and impossible to manipulate who wins. TOR
TOR2WEB
Donations to: 1JQdiQsjhV2uJ4Y8HFtdqteJsZhv835a8J are appreciated.
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 22, 2012, 05:42:02 PM
 #3

Is there anything that prevents you from buying tickets yourself and then picking yourself as the winner? If not, you may want to set something up that is verifiable so you can show you aren't just picking a winner and that it truly is random.

I think I'd have more to gain by running a legitimate game, rather than another scam. But I would like to resolve this issue if I can.

The winner is selected by the ticket number, and I calculate it the following way:

Code:
srand((double)microtime()*1234567);
$Winner = rand(1,10);

Are there any trusted third parties where I can obtain a random number from, something that you guys can track?

I have considered making it so you can view a players win history, their ticket purchases, which ticket they purchased and for which round, along with any withdrawals. I could provide the transaction id when they withdraw Bitcoins, so that you know Bitcoins are being legitimately withdrawn.

I have also considered doing away with the username altogether, and making it just a Bitcoin address. Right now when tickets are purchased, it shows the username of the owner. So you can tell if a single person owns most of the tickets.

But I’m totally open to other suggestions.
gamer4156
Sr. Member
****
Offline Offline

Activity: 1008
Merit: 250



View Profile
April 22, 2012, 10:21:24 PM
 #4

You could have atleast not copied somer blinks name....
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 22, 2012, 10:23:33 PM
 #5

You could have atleast not copied somer blinks name....

Somer blink didn't come up with the concept of 'blink'.
mem
Hero Member
*****
Offline Offline

Activity: 644
Merit: 501


Herp Derp PTY LTD


View Profile
April 23, 2012, 03:51:38 AM
 #6

Hi, you have been added to mems list under pending: https://bitcointalk.org/index.php?topic=75883.msg841129

Once people are satisfied with the random number generation or you modify the random number generation I will shift you to the lotteries section.
The site looks nice and clean - good work and good luck Smiley

AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 23, 2012, 04:21:17 AM
 #7

Hi, you have been added to mems list under pending: https://bitcointalk.org/index.php?topic=75883.msg841129

Once people are satisfied with the random number generation or you modify the random number generation I will shift you to the lotteries section.
The site looks nice and clean - good work and good luck Smiley

I'm going to be changing the random number generator to use random data from Hotbits in the seed (as well as changing it to use mt_srand/mt_rand). The data from Hotbits will be in addition to microtime() when seeding.

http://www.fourmilab.ch/hotbits/

It's still using the previously mentioned code, but I should have it using Hotbits by tomorrow as the majority of the code has been completed.
mem
Hero Member
*****
Offline Offline

Activity: 644
Merit: 501


Herp Derp PTY LTD


View Profile
April 23, 2012, 04:53:18 AM
 #8

Hi, you have been added to mems list under pending: https://bitcointalk.org/index.php?topic=75883.msg841129

Once people are satisfied with the random number generation or you modify the random number generation I will shift you to the lotteries section.
The site looks nice and clean - good work and good luck Smiley

I'm going to be changing the random number generator to use random data from Hotbits in the seed (as well as changing it to use mt_srand/mt_rand). The data from Hotbits will be in addition to microtime() when seeding.

http://www.fourmilab.ch/hotbits/

It's still using the previously mentioned code, but I should have it using Hotbits by tomorrow as the majority of the code has been completed.

Great work, keep it up Cheesy

JMcGrath
Member
**
Offline Offline

Activity: 72
Merit: 10



View Profile
April 23, 2012, 11:02:31 AM
 #9

I've got any idea! Smiley

Please bare with me here, I'm not a programmer so I don't understand all of this completely but...

You could use a RNG similar to what they are using at bitjack21.com, in there case (a game of blackjack) the PLAYER inputs a 128-bit number, the server uses a hardware RNG and creates a 2nd 128-bit string, and then uses another sequence to shuffle the cards.

So essentially, the player's 128-bit string are the actual cards being used in the deck - combined with the server's 128-bit string and shuffler. Therefore the number the player inputs actually determines the order of the deck! The reason you can't cheat is because their server creates the shuffle order using a hardware RNG.


So, to keep things fair you could employ a similar script where each player (or ticket purchased) could input their OWN string of numbers - then after all 10 tickets have been purchased your server would implement some type of formula based on each players string to create the number 1-10. You could even use the same analogy of blackjack where you are essentially picking a "card" A-2-3-4...10 which therefore determines the winner.

Again, I'm not a programmer and not too sure how hard this would be to implement. However, after each round you could display each player's string and therefore allow the players to verify that their string was used to choose the winner...


Hope that helps! Let me know what you think!
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 23, 2012, 10:03:54 PM
 #10

Again, I'm not a programmer and not too sure how hard this would be to implement. However, after each round you could display each player's string and therefore allow the players to verify that their string was used to choose the winner...

Hope that helps! Let me know what you think!


It sounds to me like I could accomplish something quite similar by exposing the seed that was used during a particular round. But the thing is there is no guarantee that you can replicate the number generated from that seed on a different system. If I'm mistaken and someone can in-fact replicate the numbers on another system, I'd be happy to expose the seeds used for each round.

I have updated the random number generator to use data from Hotbits. Every hour or so it will request a fresh data from Hotbits, this data is then used in addition to microtime() when generating a seed.

The code looks like this:
Code:
 
$Seed = unpack ( "L", $RandomData );
mt_srand ( microtime () * $Seed [1] );
$Winner = mt_rand ( 1, 10 );

The $Seed[1] is unpacked data from Hotbits. This can be improved in the future, but should be way better than a simple rand().
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 27, 2012, 08:48:43 PM
 #11

I've added 3 new rounds in case people want to try it without using as much BTC.

0.5 BTC Jackpot/0.06 BTC Tickets
0.25 BTC Jackpot/0.03 BTC Tickets
0.1 BTC Jackpot/0.012 BTC Tickets

These are manually created rounds, but if these are more desirable I'll code them in so there is always lower jackpot rounds.
JMcGrath
Member
**
Offline Offline

Activity: 72
Merit: 10



View Profile
April 29, 2012, 11:10:00 PM
 #12

I'll give one a try, but how do you know which tickets are sold?

Or has no one purchased any tickets yet, in any of the rounds?
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
April 30, 2012, 06:56:22 AM
 #13

I'll give one a try, but how do you know which tickets are sold?

Or has no one purchased any tickets yet, in any of the rounds?

No tickets have been bought yet, once a ticket is bought it will show the username of the owner in the slot. The round ends when all of the tickets are bought.
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
May 11, 2012, 02:07:50 AM
 #14

Still looking for the first testers. Might throw a few bones to the first members for giving it a shot if that'll help.
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
May 25, 2012, 05:41:34 AM
 #15

Looks like we got our first players.
ErebusBat
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500

I am the one who knocks


View Profile
June 07, 2012, 06:55:50 PM
 #16

First of all, awesome nick AnonymousBat

Second... Has this died... it doesn't look like anyone is playing :/

░▒▓█ Coinroll.it - 1% House Edge Dice Game █▓▒░ • Coinroll Thread • *FREE* 100 BTC Raffle

Signup for CEX.io BitFury exchange and get GHS Instantly!  Don't wait for shipping, mine NOW!
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
June 07, 2012, 08:04:33 PM
 #17

First of all, awesome nick AnonymousBat

Second... Has this died... it doesn't look like anyone is playing :/

I think it's just a matter of time before people start to trust it. I'm wondering if I should cut it down to maybe 5 tickets rather than 10 tickets, but I wanted the tickets to remain fairly cheap.

If in a few months nothing really changes I'll refund the ticket purchases and send back all of the bitcoins. I'm constantly watching it along with this thread.
AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
June 24, 2012, 01:20:45 AM
 #18

We're still up. =)

The next round to finish, I'm going to be rewarding the winner with a double payout.
mem
Hero Member
*****
Offline Offline

Activity: 644
Merit: 501


Herp Derp PTY LTD


View Profile
June 24, 2012, 03:25:01 AM
 #19

well I just played several rounds to give the game a trial.

suggestions:
your site needs a FAQ for the players.
each game should show its end time or do you just play until all tickets are sold ?


As for random number issues, (Im still a bit groggy from my recovery) but I dont see any exposed secrets ?
That aside - on small rounds like this for me at least its not a large concern.

my suggestion for picking a winner.

sha512 (public secret * player 1 nick * player 2 nick * player 3 nick * etc ) then pick a slice that determines your random number.

^ Im not a crypotologist though, someone else here can weigh in on this.
edit: Im an idiot, the last player to play could determine which number wins. (still groggy ok Tongue )

another option is just like bitlotto

lotto numbers (we have weekly ones here, it would be a non issue to find a regular public pseudo random source).
sha512(public secret * lotto numbers);

anyway good luck Smiley
I made several bets to get the games rolling for you.

AnonymousBat (OP)
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
June 24, 2012, 05:42:27 AM
 #20

well I just played several rounds to give the game a trial.

suggestions:
your site needs a FAQ for the players.

I'll add one.

each game should show its end time or do you just play until all tickets are sold ?

The game runs until all of the tickets are sold.

As for random number issues, (Im still a bit groggy from my recovery) but I dont see any exposed secrets ?

Not quite sure what you mean by an exposed secret, but im assuming a piece of data to confirm that the random number generated wasn't pre-selected?

I made several bets to get the games rolling for you.

Thank you.
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!