Bitcoin Forum
November 12, 2024, 02:48:14 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 »  All
  Print  
Author Topic: Introducing: The Amazing Anonymous Bitcoin Lottery  (Read 43767 times)
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 03:07:58 AM
 #1

That is TAABL for short Smiley

So I needed a good excuse to start scripting on top of bitcoind, as I have a few projects in mind. But them being too time consuming I needed something smaller, which is why I ended up doing this.

What is the TAABL, I hear you ask? Well, glad you asked Smiley It's a lottery, where you bet on the last 5 characters of a specific block hash. I take nothing from the bitcoin pool, it is all divided as follows:

1st prize - 5 characters correct - 50%
2nd prize - 4 (rightmost) characters correct - 6%
3rd prize - 3 (rightmost) characters correct - 8%
4th prize - 2 (rightmost) characters correct - 9%
5th prize - 1 (rightmost) character correct - 25%
bounty pool - 2%

I didn't just take these number out of my ass. They roughly follow the structure of a local state lottery. I can change them if you can convince me I should, though.

The bounty pool is the 'charity' part, and one must always exist to lend some sense of reason to all those that bet. But what bounty will that be? Well, you can vote on what you want to see as recipients of that. This first one will most likely go to bitfaucet, but we also have EFF, some specific bounties that appear on the fora and, if this actually becomes a thing to keep doing, maybe pay for a site facelift or server costs.

For now, everything is open. Three things to keep in mind for the adventurous betters:
- This is really alpha quality code, I tested a bit but not so much to think things will go glitch free.
- The site design sucks, and will stay that way until the server side is fine tuned. My availability to do this is limited, but I'll try my best to keep things running.
- This is running out of an office server, meaning connectivity is far from perfect. Don't be too alarmed if the server disappears for a couple of hours, I promise I'll move this to a real server as soon as I can.

So, some basic rules:
- Each bet costs 1.00
- You can put as many bets on the same character string as you want to
- There is no way to see which numbers others have already bet on... I'm of two minds as to this being a feature or a problem
- Although you put money to bet on your account, prizes are not put there, but rather sent directly to BTCOUT (explained below)
- This first round will have payments processed semi manually, to make sure everything goes ok, so expect delays. It will all be automated later, when I'm comfortable with the process

To use this system you have to register, but what about the anonymous in the lottery name? Well, no personal data is requested, or even allowed. You give me one bitcoin address to which prizes will be paid, and I give you one bitcoin address to which you can send your bet bitcoins. These are BTCOUT and BTCIN respectively. The OUT / IN are always in relation to the TAABL, so it's easy to remember.

Once you register, you can log in using the BTCOUT alone. As an almost random string of characters, I feel that using passwords is unnecessary. There isn't much you can do that is of harm if you use somebody else's account. If you feel otherwise, I'll come up with something better.

When you are logged in, you can bet on the open lottery draw, and you can see the draw details. You can also cancel tickets you bought. All of this gets locked 2 blocks from the end of the lottery draw.

Best of luck to all, and if you do hit the jackpot, you can always share the wealth with yours truly Smiley

Check it out at http://taabl.datlatec.com
TTBit
Legendary
*
Offline Offline

Activity: 1137
Merit: 1001


View Profile
August 22, 2010, 04:06:30 AM
 #2

Lets 'pretend' I'm not that smart. Could you give an example bet and payout for a previous block? Where can we find the winning lottery numbers?

Is this like "shake of the day" at various bars, where if you roll 5 6's you get 1/2 the pot?

good judgment comes from experience, and experience comes from bad judgment
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 04:22:21 AM
 #3

Lets 'pretend' I'm not that smart. Could you give an example bet and payout for a previous block? Where can we find the winning lottery numbers?

I'm good at pretending Smiley Lets say there were 100 bets, so total 100 BTC on that draw. Now say 30 tickets get the last character right, 3 get the last two and 1 gets the last three. This means that

1st prize - BTC 50.00 - not taken
2nd prize - BTC 6.00 - not taken
3rd prize - BTC 8.00 - 1 winner, BTC 8.00 each
4th prize - BTC 9.00 - 3 winners, BTC 3.00 each
5th prize - BTC 25.00 - 30 winners, BTC 0.83 each
bounty purse takes BTC 2.00

the unclaimed prizes, totaling BTC 56.00 get added to the 1st prize jackpot of the following draw. I had forgotten to mention that, mainly because I'm not sure if I shouldn't instead add that to the total prize pool of the next draw instead, thus upping all prizes, not just the 1st... hmmm, what do you think?

As for the lottery numbers, they are the 5 rightmost digits of the bitcoin block numbered matching the draw, which you can verify using the getblock patch if you are compiling bitcoind yourself. I'm sure there are other places you can get that info from and, of course, that will get posted on the draw details page.


Is this like "shake of the day" at various bars, where if you roll 5 6's you get 1/2 the pot?

It's kinda late, so that may be it, but I have no idea what you just said...
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 04:30:03 AM
 #4

I really want to know where to see what would have won block 73000.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
TTBit
Legendary
*
Offline Offline

Activity: 1137
Merit: 1001


View Profile
August 22, 2010, 04:50:45 AM
 #5

I'm afraid to ask newbie questions:

Could anyone post a link to previous winning lotteries?
Why is the next lottery for block 76775? Wouldn't block 76608 seem more round, as this is when a new difficulty comes out? i.e. a lottery every couple weeks?

Can you generate some quick pick numbers, so I don't accidentally guess 1234z?

Whatever it is, I'm in. I'm shipping coins first and will figure it out later.

good judgment comes from experience, and experience comes from bad judgment
Anonymous
Guest

August 22, 2010, 05:56:34 AM
 #6

I'm afraid to ask newbie questions:

Could anyone post a link to previous winning lotteries?
Why is the next lottery for block 76775? Wouldn't block 76608 seem more round, as this is when a new difficulty comes out? i.e. a lottery every couple weeks?

Can you generate some quick pick numbers, so I don't accidentally guess 1234z?

Whatever it is, I'm in. I'm shipping coins first and will figure it out later.

Yes I want a quick pick too lol

FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 08:37:43 AM
 #7

It's worse than 1 in a million to hit all five. 5^16 = 1048576

After 600,000 entries it'll still be worse than 50% to have hit. I think it'll be more fun if the jackpot can be expected to hit more than once a decade.

I propose

50% of the total pool for 3 perfect hits (1 in 4096)
25% of the total pool for 2 rightmost hits (1 in 256)
25% of the total pool for 1 rightmost hit (1 in 16)

Any money not paid goes into the total pool for the next drawing.

So if for example 4096 people each did a different number we'd have

1 winner for 2048BTC
15 people who hit 2 for 68.26BTC each
240 people who hit 1 for 4.26BTC each

That seems roughly appropriate.

If you really want to stick with the 1 in a million lottery, do not trap tons of money that can only be won by matching all 5, keep it all in one pool. And a way to buy X distinct random tickets would help let it be won inside of a year, maybe. At least people could throw down 200 tickets on impulse instead of having to type them all out, or even click a buy random 200 times.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 01:27:56 PM
 #8

I'm afraid to ask newbie questions:

Could anyone post a link to previous winning lotteries?

Sure, they're all in the front page... as this is the first one, and hasn't finished yet, you'll find all the links were already available Smiley

Why is the next lottery for block 76775? Wouldn't block 76608 seem more round, as this is when a new difficulty comes out? i.e. a lottery every couple weeks?

I call open draw, and it calculates current block + 1200 (around 6 days in the future). That's because I thought one per week would be perfect, but would you rather have one every couple of days or so, at least as we start?


Can you generate some quick pick numbers, so I don't accidentally guess 1234z?

Thought about doing that, just didn't have time. Lets call that the next feature... Do you want me to make sure you get a random number noone picked yet, or just random?

And just fyi, the system does check the bets, so you couldn't guess 1234z. It simply ignores that bet request if you try.


Whatever it is, I'm in. I'm shipping coins first and will figure it out later.

Glad to know Smiley I've put in 1 BTC myself, and will be betting throughout the week so as to test different scenarious.

Best of luck to you
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 01:30:31 PM
 #9

I really want to know where to see what would have won block 73000.

That would have been hash 00000000005936a8d5637765967ad4da3599596adf19879f5e65d6940da7fa64, so the winning sequence is 7fa64.
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 01:42:29 PM
Last edit: August 22, 2010, 02:22:10 PM by nelisky
 #10

It's worse than 1 in a million to hit all five. 5^16 = 1048576

That's what I get for following a lottery that gets 4M€ in bets every week Smiley


After 600,000 entries it'll still be worse than 50% to have hit. I think it'll be more fun if the jackpot can be expected to hit more than once a decade.

I propose

50% of the total pool for 3 perfect hits (1 in 4096)
25% of the total pool for 2 rightmost hits (1 in 256)
25% of the total pool for 1 rightmost hit (1 in 16)

Any money not paid goes into the total pool for the next drawing.

So if for example 4096 people each did a different number we'd have

1 winner for 2048BTC
15 people who hit 2 for 68.26BTC each
240 people who hit 1 for 4.26BTC each

That seems roughly appropriate.

Yes, that sounds much better. So bets will get trimmed to 3 characters and prize would be 50 / 24 / 24 / 2 (bounty purse).
The money going into the total pool also makes sense, seeing as we are a small community and chances are the jackpot will just grow bigger and bigger... We can also have a "special" draw every 3 months or so that just distributes the total including all jackpots by all the winning bets, even if they're all 1 hits.

But your odds seem off. Isn't 2 hits 65536 variations, and 3 43046721? It just adds to your point, though. edit: Of course you are correct... nibbles, not bytes.


If you really want to stick with the 1 in a million lottery, do not trap tons of money that can only be won by matching all 5, keep it all in one pool. And a way to buy X distinct random tickets would help let it be won inside of a year, maybe. At least people could throw down 200 tickets on impulse instead of having to type them all out, or even click a buy random 200 times.

The random will go in soon. I don't want to keep the 1 in a million, that was just my first guess. I want bitcoins to be distributed and with those odds... lets go with the 3 characters instead.

Thank you!
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 03:12:18 PM
 #11

Updated the TAABL to move to the new prize schema, which is 3 character bets, prize distribution 50% + 24% + 24%.
Also included a random bet generator, as requested.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 08:03:42 PM
 #12

Updated the TAABL to move to the new prize schema, which is 3 character bets, prize distribution 50% + 24% + 24%.
Also included a random bet generator, as requested.

That's great! I'm buying a few more.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 08:29:39 PM
 #13

It would be good to a permanent link bar somewhere so people can easy navigate between rules, buy tickets, make a deposit, etc.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 08:40:11 PM
 #14

There was an issue with the random generation, with a buggy bias towards lower numbers. Sorry about that Smiley

Should be all fixed now.
nelisky (OP)
Legendary
*
Offline Offline

Activity: 1540
Merit: 1002


View Profile
August 22, 2010, 08:43:51 PM
 #15

It would be good to a permanent link bar somewhere so people can easy navigate between rules, buy tickets, make a deposit, etc.

Yes it would, but the buying of tickets needs the open draw context. If I always keep one, and only one open then it should not be a problem. I need to write rules, faq, thank yous, etc and make a bunch of visual fixes and improvements to the site, but this has been a learning experience for me, and my attention has been elsewhere (bitcoind jsonrpc integration, new web engine, new template lang, new db).

I will improve site navigation next, though, just because you asked first Smiley
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 22, 2010, 08:51:18 PM
 #16


IMO, login should not be required.

At a bare minimum, ticker buyers should only need to provide a bitcoin return address.  You provide them with a unique bitcoin address for deposits.

Assign each ticket a randomly generated URL for people who wish to track status of a ticket.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 08:59:08 PM
 #17


IMO, login should not be required.

At a bare minimum, ticker buyers should only need to provide a bitcoin return address.  You provide them with a unique bitcoin address for deposits.

Assign each ticket a randomly generated URL for people who wish to track status of a ticket.


How would you see which tickets you had previously bought? Or cancel them?

The login is only a return address. It's the easiest login possible.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 08:59:52 PM
 #18

It would be good to a permanent link bar somewhere so people can easy navigate between rules, buy tickets, make a deposit, etc.

Yes it would, but the buying of tickets needs the open draw context. If I always keep one, and only one open then it should not be a problem. I need to write rules, faq, thank yous, etc and make a bunch of visual fixes and improvements to the site, but this has been a learning experience for me, and my attention has been elsewhere (bitcoind jsonrpc integration, new web engine, new template lang, new db).

I will improve site navigation next, though, just because you asked first Smiley

Haha thanks.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 22, 2010, 09:12:13 PM
 #19


IMO, login should not be required.

At a bare minimum, ticker buyers should only need to provide a bitcoin return address.  You provide them with a unique bitcoin address for deposits.

Assign each ticket a randomly generated URL for people who wish to track status of a ticket.

How would you see which tickets you had previously bought? Or cancel them?

Visit the per-ticket, randomly generated link.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
August 22, 2010, 09:16:47 PM
 #20


IMO, login should not be required.

At a bare minimum, ticker buyers should only need to provide a bitcoin return address.  You provide them with a unique bitcoin address for deposits.

Assign each ticket a randomly generated URL for people who wish to track status of a ticket.

How would you see which tickets you had previously bought? Or cancel them?

Visit the per-ticket, randomly generated link.



Ah, that is a no log-in solution. What is the downside to the easy log-in he has now?


Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Pages: [1] 2 3 4 5 6 7 8 9 10 11 »  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!