Bitcoin Forum
April 25, 2024, 01:02:08 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 »  All
  Print  
Author Topic: Bitcoin Lottery: minimum just 0.01 btc! Next draw: July 1 Jackpot 1.52 btc  (Read 10921 times)
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 25, 2011, 12:12:33 PM
Last edit: June 05, 2011, 07:50:50 AM by bitcoinlottery
 #1

What is the Bitcoin Lottery?

The Bitcoin Lottery is a lottery where anyone can win, the lottery takes no share and the process is transparent. The code that picks the winner(s) is open source.

How does it work?
You can send an arbitrary amount of bitcoins (minimum 0.01 bitcoin) to an adress. The adress for next lottery (closes July 1) is:

Quote
1LUeahDNnVwqh8utERNxPhoh7zdzSmh4AG
(view: http://blockexplorer.com/address/1LUeahDNnVwqh8utERNxPhoh7zdzSmh4AG)

When do I win and how much?
All bets are randomly assigned to a block. Each block is equal to the average deposit. The program picks randomly a block and returns the winners and their share (in percent).
For example, if you send 0.1 bitcoin and the average is 1 bitcoin, you probably end up in one block and then you win 10% of the draw.
If you send 1 bitcoin and the average is 1 bitcoin, you probably end up in two blocks randomly, for example 10 cents in one block and 90 cents in another. If you win with the first block you win 10%, the second block will return 90% of the draw. So to be sure to have the chance of winning 100% you need 2 bitcoins.
The program is designed in such a way the lottery will always return 100% of the jackpot size.

Don't you cheat?
No. The first and second block on 1 July (after 0:00 UTC) will be used as random strings by adding them and create a SHA256 hash.

The code (Python)
Code:
import math
tickets = [
    ["1Km4sASEeKUWPtjRaSxmVghF5FfkadWVei",2],
    ["18uZGH42pcmHVtZ8sux7bCf8oJJtSCAAJs",1],
    ["1Jmn97kfJ6DBBCuft6Z1oW8e2Lwgheyr6s",2],
    ["1Jmn97kfJ6DBBCuft6Z1oW8e2Lwgheyr6s",1],
    ["1Jmn97kfJ6DBBCuft6Z1oW8e2Lwgheyr6s",1],
    ]

class BitcoinLottery:
    def __init__(self):
        self.total = 0
        for x in tickets:
            self.total += x[1]
        self.BLOCKSIZE = int(math.ceil(self.total/float(len(tickets))))

    def shuffle(self, rand):
        i = 0
        prevx = 0
        for t in range(len(tickets)):
           j=0
           shuffle=0
           for x in range(t, len(rand)):
               j = j + ord(rand[x])
           shuffle = j % len(tickets) - i          
           tickets[i], tickets[i+shuffle] = tickets[i+shuffle], tickets[i]
           if (i < len(rand)-1):
               i+=1
           else:
               i=0  
   
    def calculate(self):
        blocks = []
        block=0
        for x in tickets:
            k = x[0]
            v = x[1]
            nblock=block
            while(v>0):
                r = self.BLOCKSIZE - block % self.BLOCKSIZE
                if (v <= r):
                    a = v
                    nblock+=v
                    v = 0
                else:
                    a = r
                    v -= r
                    nblock += r
                blocks.append([int(block/self.BLOCKSIZE),k,a])
                block = nblock
        rand = 0
        print("total: " + str(float(self.total)/100) + " bitcoins")
        for x in blocks:
            if (x[0] == rand):
                print(x[1] + " won " + str(float(x[2]*self.total)/10000 * (100/self.BLOCKSIZE)) + " bitcoins")
bit = BitcoinLottery()
bit.shuffle('3029309209i1');
bit.calculate()
Bitcoin mining is now a specialized and very risky industry, just like gold mining. Amateur miners are unlikely to make much money, and may even lose money. Bitcoin is much more than just mining, though!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714006928
Hero Member
*
Offline Offline

Posts: 1714006928

View Profile Personal Message (Offline)

Ignore
1714006928
Reply with quote  #2

1714006928
Report to moderator
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 25, 2011, 12:36:47 PM
 #2

Note: this lottery is just for fun, I don't want to earn any money with it.
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 25, 2011, 10:39:35 PM
 #3

The first 6 participants will get 0.02 bitcoin. So when you enter with 0.01 bitcoin you earn 0.01 and can also win the lottery!
Jfqs6m
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile WWW
May 25, 2011, 11:28:36 PM
 #4

Eh I guess it's worth a shot. Something to spend my free bitcoins I got on.
E
Full Member
***
Offline Offline

Activity: 234
Merit: 100


View Profile
May 26, 2011, 12:37:01 AM
 #5

Sent.
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 04:08:07 AM
Last edit: May 26, 2011, 04:22:13 AM by bitcoinlottery
 #6

I sent you the 0.02 coin!
Jfqs6m
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile WWW
May 26, 2011, 04:17:45 AM
 #7

I sent you the 0.02 cents!

Thank you very much!
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 04:32:36 AM
 #8

Jackpot: 0.07, two days to go!
If the total jackpot is not more than a bitcoin I am inclined to reduce the size of the blocks (to not give everyone his deposit back, but get one or a few winners). I am thinking about what size would be the best? The average deposit?
Input welcome!
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
May 26, 2011, 04:34:26 AM
 #9

I think I get what your doing... I think. I'm pretty tired and I don't know python so I'll have to look later.
I get that your trying to be open but even though people can see the code there is no way really for the users to know you are actually running it. Someone could just -say- they are going to run that code. Enter a few of their own entries. Tell the users that they ran the code but instead just pay themselves and make up results that fit. (I'm not saying you are doing this but for people to bet lot's of money they need CERTAINTY you can't cheat. I've seen a few lottery scams but I am willing to help you make it so that you can't cheat...) Anyways, good luck!

*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.
Jfqs6m
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile WWW
May 26, 2011, 04:36:44 AM
 #10

I think I get what your doing... I think. I'm pretty tired and I don't know python so I'll have to look later.
I get that your trying to be open but even though people can see the code there is no way really for the users to know you are actually running it. Someone could just -say- they are going to run that code. Enter a few of their own entries. Tell the users that they ran the code but instead just pay themselves and make up results that fit. (I'm not saying you are doing this but for people to bet lot's of money they need CERTAINTY you can't cheat. I've seen a few lottery scams but I am willing to help you make it so that you can't cheat...) Anyways, good luck!

Eh I guess it's still a possibility but he did indeed send me my .02 BTC for being one of the first 6....
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
May 26, 2011, 04:40:45 AM
 #11

I think I get what your doing... I think. I'm pretty tired and I don't know python so I'll have to look later.
I get that your trying to be open but even though people can see the code there is no way really for the users to know you are actually running it. Someone could just -say- they are going to run that code. Enter a few of their own entries. Tell the users that they ran the code but instead just pay themselves and make up results that fit. (I'm not saying you are doing this but for people to bet lot's of money they need CERTAINTY you can't cheat. I've seen a few lottery scams but I am willing to help you make it so that you can't cheat...) Anyways, good luck!

Eh I guess it's still a possibility but he did indeed send me my .02 BTC for being one of the first 6....
I know. I'm not saying he is a scammer but he could change a few things to eliminate a very easy way to fake results.

*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.
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 04:47:50 AM
 #12

I think I get what your doing... I think. I'm pretty tired and I don't know python so I'll have to look later.
I get that your trying to be open but even though people can see the code there is no way really for the users to know you are actually running it. Someone could just -say- they are going to run that code. Enter a few of their own entries. Tell the users that they ran the code but instead just pay themselves and make up results that fit. (I'm not saying you are doing this but for people to bet lot's of money they need CERTAINTY you can't cheat. I've seen a few lottery scams but I am willing to help you make it so that you can't cheat...) Anyways, good luck!
Yes, but I apply the same method as you do: people can see what comes in and out. So people can see it is paid to one / a few that participated=).
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
May 26, 2011, 04:56:03 AM
 #13

Yes, but I apply the same method as you do: people can see what comes in and out. So people can see it is paid to one / a few that participated=).
Yes, you are right in that you show the winnings move around BUT unlike yours *I have NO control* over picking the winner. I can not fake the random numbers. That was what I was getting at. Yes, you show that you are paying. BUT, the results themselves can not be verified in yours. The key is getting some type of list of entrants, publish it, THEN have the winners come from random numbers that you CAN NOT manipulate but still everyone can get those random numbers. If you want help coming up with something I'm willing to help...

*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.
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 05:06:12 AM
 #14

Okay, great point! If the jackpot contains more than a few bitcoins I will surely look at what I can do. Your method is very nice by the way!
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 05:14:40 AM
 #15

Do you know whether the transaction hashes are totally random/uncontrollable? If so, the hashes can be added up and used for the random generator as quite easy alternative.
eskil
Newbie
*
Offline Offline

Activity: 23
Merit: 0


View Profile
May 26, 2011, 06:17:53 AM
 #16

I would like to join aswell, but I am new to bitcoin and only got 0.02 bc and it wont let me send 0.01
Always says something about transaction fee because the amount is too large!? Huh
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 01:25:13 PM
 #17

I would like to join aswell, but I am new to bitcoin and only got 0.02 bc and it wont let me send 0.01
Always says something about transaction fee because the amount is too large!? Huh
The current client asks 0.01 btc if you send small amounts. That amount is far larger in the development code.
Strange that it won't let you send 0.01 if you have 0.02... Maybe try to get some other cents (mining, trading, etc)?
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
May 26, 2011, 01:26:06 PM
 #18

Do you know whether the transaction hashes are totally random/uncontrollable? If so, the hashes can be added up and used for the random generator as quite easy alternative.
They are fairly random. BUT the RANDOM number for the winner has to come after all the tickets, for IF the user knows what transaction hash will win they could re-send over and over until they get a hash that wins. For mine, I wait till the tickets are in then set up finding who won.

*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.
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 01:30:20 PM
 #19

Do you know whether the transaction hashes are totally random/uncontrollable? If so, the hashes can be added up and used for the random generator as quite easy alternative.
They are fairly random. BUT the RANDOM number for the winner has to come after all the tickets, for IF the user knows what transaction hash will win they could re-send over and over until they get a hash that wins. For mine, I wait till the tickets are in then set up finding who won.
Yes I thought about that later. So basically secure hash the (big) random value and distribute the hash?
bitcoinlottery (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
May 26, 2011, 01:31:23 PM
 #20

The algorithm changed by the way. The block size is now the average deposit.
Pages: [1] 2 3 4 »  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!