Bitcoin Forum
May 07, 2024, 05:19:16 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: [RAFFLE] Chasing Casascius Gold Plated Bar, Provably Fair--FINISHED!  (Read 1386 times)
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 07, 2016, 08:22:22 AM
Last edit: July 10, 2016, 08:40:39 AM by photonresearch
 #1


The Chasing Casascius book purchasers (www.chasingcasascius.com) are entitled to a raffle for the Casascius Gold Plated Bar featured in the book! Therefore we have developed a provably fair raffle using bitcoin's blockchain! There is still time to purchase a copy on the site before the halving to be included in this raffle.

There are 5,000 copies of the book, enabling purchasers for a 1 in 5000 chance of winning. If won the gold plated bar will be mailed to you. A spreadsheet will be shared with bitcoin addresses associated with each order by place in order.

The following javascript makes a request to Toshi.io using "request" framework, requesting information about block 420,000, and using the hash of that block as a PRNG seed to generate a number between 1 and 5000 using the RNG-JS library

PRNG's generate a sequence of random numbers, always in the same order, so by always displaying the first random number in the sequence of random numbers, we will always be able to see the winner. This code is running on a 64-bit heroku server.

http://ccltdcheckoutserver-live.herokuapp.com/raffle


 var blockNumber = 420000;
 requestServerToServer({
    url: 'https://bitcoin.toshi.io/api/v0/blocks/' + blockNumber,
    method: 'GET',
  }, function(error, response, body) {
    if(response.statusCode == '404'){
      res.json({"block height": "block 420,000 is not yet available",
                  "block hash": "please check in the future",
                  "winning book number": "n/a"
                });
    }
    else{
      if (error) {
        console.log('Error sending message: ', error);
      } else if (response.body.error) {
        console.log('Error: ', response.body.error);
      }
      else{
        
        var blockInfo = JSON.parse(response.body);
        var rng = new RNG(blockInfo.hash);
        console.log(blockInfo.hash);

        res.json({"block height": blockNumber,
                  "block hash": blockInfo.hash,
                  "winning book number": rng.random(1, 5000)
                });
      }
    }


If there's anything not provably fair enough, just let me know and we'll see if we can adjust it to be more transparent!

Aside from protecting the pseudonymity of the purchasers, the spreadsheet of bitcoin addresses will also be used to distribute the counterparty token to be associated with the each copy of the book. Purchasers will be able to see their address in the spreadsheet, after I collect more addresses from people. Only counterparty addresses or any other address where you control the private key!

The spreadsheet is here: https://docs.google.com/spreadsheets/d/1wknANgxXkzlHgxaHc6G18M2bxpnjpHjnDayYW9ngCUg/edit#gid=0

This is phase 2 in the Chasing Casascius project. Please stay tuned for Phase 3 - the distribution of the Chasing Casascius counterparty token to purchasers - and order your copies of the book before the halving!
Every time a block is mined, a certain amount of BTC (called the subsidy) is created out of thin air and given to the miner. The subsidy halves every four years and will reach 0 in about 130 years.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715059156
Hero Member
*
Offline Offline

Posts: 1715059156

View Profile Personal Message (Offline)

Ignore
1715059156
Reply with quote  #2

1715059156
Report to moderator
1715059156
Hero Member
*
Offline Offline

Posts: 1715059156

View Profile Personal Message (Offline)

Ignore
1715059156
Reply with quote  #2

1715059156
Report to moderator
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 07, 2016, 08:23:03 AM
Last edit: July 08, 2016, 04:10:39 PM by photonresearch
 #2

Spreadsheet is here https://docs.google.com/spreadsheets/d/1wknANgxXkzlHgxaHc6G18M2bxpnjpHjnDayYW9ngCUg/edit#gid=0

In reaction to what Mitchell pointed out, in the event an unsold book wins the raffle it may seem unclaimable, so sales will remain open after the raffle.
monkeynuts
Legendary
*
Offline Offline

Activity: 1251
Merit: 1259


MONKEYNUTS


View Profile
July 07, 2016, 08:49:08 AM
 #3

Will there be a 1 in 5000 chance, or will there be less ?

I am pretty sure all 5000 havn't been sold, and may not sell before the halving, so does an unsold book really still get a ticket in the raffle ?

What happens if an unsold book wins ? Surely this needs to be based on actual buyers of books sold ?

coin@coin
Legendary
*
Offline Offline

Activity: 1722
Merit: 1000



View Profile
July 07, 2016, 08:56:16 AM
 #4

What is the utility of the Counterparty token? Just to have a token? Or will it be usable for something in the future?
Zepher
Copper Member
Hero Member
*****
Offline Offline

Activity: 686
Merit: 603


Electricity is really just organized lightning


View Profile
July 07, 2016, 08:59:37 AM
 #5

Will there be a 1 in 5000 chance, or will there be less ?

I am pretty sure all 5000 havn't been sold, and may not sell before the halving, so does an unsold book really still get a ticket in the raffle ?

What happens if an unsold book wins ? Surely this needs to be based on actual buyers of books sold ?



I'd tend to agree with you. I have no idea how many have been sold, but I'm assuming that you've still got a large amount of stock left photon? Why not use the PRNG seed to generate a number between 1 and ( number of books sold )? I'm sure you stated in the other thread that you have order numbers which will be used to check the winner of the draw? Surely this is a better idea?

My only payment address: 1ZephertJThxkHih7XcaUHBkMSnvkTt5u
Zepher
Copper Member
Hero Member
*****
Offline Offline

Activity: 686
Merit: 603


Electricity is really just organized lightning


View Profile
July 07, 2016, 09:40:02 AM
 #6

What is the utility of the Counterparty token? Just to have a token? Or will it be usable for something in the future?

Think it's for transferring ownership of the book if sold on.

Neat! How does each book have a unique identifier or did I read that wrong?

Each book owner is entitled to an associated Counterparty token

everyone gets a counterparty token sent to an address they control and if they sell the book on the after market, make sure the new buyers gets the token too

My only payment address: 1ZephertJThxkHih7XcaUHBkMSnvkTt5u
Mitchell
Copper Member
Legendary
*
Offline Offline

Activity: 3920
Merit: 2198


Verified awesomeness ✔


View Profile WWW
July 07, 2016, 10:13:42 AM
Last edit: July 07, 2016, 11:00:12 AM by Mitchełł
 #7

Wait. won't "rng.random(1, 5000)" generate a new number on each and every request? If so you could just keep making calls to the site until you have a result you like and show us that or in other words this isn't provably fair.

Also, did you sell all 5000 books? If not, what happens if the winner is a book that hasn't been sold yet?

.
Duelbits
            ▄████▄▄
          ▄█████████▄
        ▄█████████████▄
     ▄██████████████████▄
   ▄████▄▄▄█████████▄▄▄███▄
 ▄████▐▀▄▄▀▌████▐▀▄▄▀▌██

 ██████▀▀▀▀███████▀▀▀▀█████

▐████████████■▄▄▄■██████████▀
▐██████████████████████████▀
██████████████████████████▀
▀███████████████████████▀
  ▀███████████████████▀
    ▀███████████████▀
.
         ▄ ▄▄▀▀▀▀▄▄
         ▄▀▀▄      █
         █   ▀▄     █
       ▄█▄     ▀▄   █
      ▄▀ ▀▄      ▀█▀
    ▄▀     ▀█▄▄▄▀▀ ▀
  ▄▀  ▄▀  ▄▀

Live Games

   ▄▄▀▀▀▀▀▀▀▄▄
 ▄▀ ▄▄▀▀▀▀▀▄▄ ▀▄
▄▀ █ ▄  █  ▄ █ ▀▄
█ █   ▀   ▀   █ █  ▄▄▄
█ ▀▀▀▀▀▀▀▀▀▀▀▀▀ █ █   █
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█  █▄█
█ ▀▀█  ▀▀█  ▀▀█ █  █▄█

Slots
.
        ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄
        █         ▄▄  █
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄       █
█  ▄▄         █       █
█             █       █
█   ▄▀▀▄▀▀▄   █       █
█   ▀▄   ▄▀   █       █

Blackjack
|█▀▀▀▀▀█▄▄▄
       ▀████▄▄
         ██████▄
▄▄▄▄▄▄▄▄█▀    ▀▀█
████████▄        █
█████████▄        █
██████████▄     ▄██
█████████▀▀▀█▄▄████
▀▀███▀▀       ████
   █          ███
   █          █▀
▄█████▄▄▄ ▄▄▀▀
███████▀▀▀
.
                 NEW!                  
SPORTS BETTING 
|||
[ Đ ][ Ł ]
AVAILABLE NOW

Advertisements are not endorsed by me.
defcon23
Legendary
*
Offline Offline

Activity: 1120
Merit: 1002


View Profile
July 07, 2016, 10:16:10 AM
 #8

Wait. won't "rng.random(1, 5000)" generate a new number on each and every request? If so you could just keep making calls to the site until you have a result you like and show us that. Also, did you sell all 5000 books? If not, what happens if the winner is a book that hasn't been sold yet?
yeah Mitchełł, good catch ! that's indeed THE question... Wink
Zepher
Copper Member
Hero Member
*****
Offline Offline

Activity: 686
Merit: 603


Electricity is really just organized lightning


View Profile
July 07, 2016, 10:21:17 AM
 #9

Wait. won't "rng.random(1, 5000)" generate a new number on each and every request? If so you could just keep making calls to the site until you have a result you like and show us that. Also, did you sell all 5000 books? If not, what happens if the winner is a book that hasn't been sold yet?
yeah Mitchełł, good catch ! that's indeed THE question... Wink

Well this looks like it could get complicated  Undecided

My only payment address: 1ZephertJThxkHih7XcaUHBkMSnvkTt5u
chronicsky
Legendary
*
Offline Offline

Activity: 2786
Merit: 1222

Just looking for peace


View Profile WWW
July 07, 2016, 10:53:07 AM
 #10

what's the price of the book anyway ?Smiley
Zepher
Copper Member
Hero Member
*****
Offline Offline

Activity: 686
Merit: 603


Electricity is really just organized lightning


View Profile
July 07, 2016, 10:56:43 AM
 #11

what's the price of the book anyway ?Smiley

$150. Currently BTC0.23 on his website.

My only payment address: 1ZephertJThxkHih7XcaUHBkMSnvkTt5u
chronicsky
Legendary
*
Offline Offline

Activity: 2786
Merit: 1222

Just looking for peace


View Profile WWW
July 07, 2016, 12:37:05 PM
 #12

what's the price of the book anyway ?Smiley

$150. Currently BTC0.23 on his website.

That's high for the book with just a story Undecided
Zepher
Copper Member
Hero Member
*****
Offline Offline

Activity: 686
Merit: 603


Electricity is really just organized lightning


View Profile
July 07, 2016, 01:03:16 PM
 #13

what's the price of the book anyway ?Smiley

$150. Currently BTC0.23 on his website.

That's high for the book with just a story Undecided

Agreed. I can appreciate the cost involved in manufacturing these, photoshoot, model etc - but buyers feel like they've paid too much for what they've received. I'd like to own one, but the price seems excessive.

My only payment address: 1ZephertJThxkHih7XcaUHBkMSnvkTt5u
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 07, 2016, 02:50:42 PM
 #14

Wait. won't "rng.random(1, 5000)" generate a new number on each and every request? If so you could just keep making calls to the site until you have a result you like and show us that or in other words this isn't provably fair.

Also, did you sell all 5000 books? If not, what happens if the winner is a book that hasn't been sold yet?

No, that's not accurate, because it is a seeded PRNG. If the code called rng.random multiple times after initialization it would give new numbers, but reinitializing it and running it will get the same sequence of numbers. By only showing the first number, we always get the same result.

You can test that code with the hash from block 419,000 and you should get number "610" every time, which was the whole point of showing the code, since we don't know what the hash for 420,000 will be, but can't be manipulated, then we can be confident in this outcome.

This is using node.js with "express" and "request" modules

Quote from: Mitchełł
Also, did you sell all 5000 books? If not, what happens if the winner is a book that hasn't been sold yet?

The spreadsheet associates all addresses with a book number (by row), so this is indistinguishable for your request. I haven't posted the spreadsheet yet as I haven't gotten addresses from everyone. Purchasers should be able to see their own address via their browsers "find" function. All the addresses will receive counterparty tokens and the winning address holder will also get the gold bar shipped to them.
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 07, 2016, 03:08:17 PM
 #15

buyers feel like they've paid too much for what they've received. I'd like to own one, but the price seems excessive.

Thats inaccurate sentiment, I would like to state that I've been very welcoming of the reviews from influential people and that this site's community is not reflective of the aggregate market. There was one (or two?) mixed reviews on this site primarily focused on a price:content ratio than any disdain for the project itself, and the email inbox contains very positive feedback. I'd love to have even greater production value in a future project, every outcome I can imagine increases the scarcity of this book which is good for the buyers and supporters! Trying to be as forthcoming here, hope that helps!





Zepher
Copper Member
Hero Member
*****
Offline Offline

Activity: 686
Merit: 603


Electricity is really just organized lightning


View Profile
July 07, 2016, 03:20:31 PM
 #16

buyers feel like they've paid too much for what they've received. I'd like to own one, but the price seems excessive.

Thats inaccurate sentiment, I would like to state that I've been very welcoming of the reviews from influential people and that this site's community is not reflective of the aggregate market. There was one (or two?) mixed reviews on this site primarily focused on a price:content ratio than any disdain for the project itself, and the email inbox contains very positive feedback. I'd love to have even greater production value in a future project, every outcome I can imagine increases the scarcity of this book which is good for the buyers and supporters! Trying to be as forthcoming here, hope that helps!

~snip~

Don't get me wrong, there is absolutely no disdain for your project itself, you've tread into an area not many other people would be prepared to, with that alone you've provided some new content to the crypto-scene which most are grateful for, so thank you.
I'd agree that the price:content ratio is subjective; some will find this item costly for what it is, others are prepared to pay $150 for your book no problem.

Thanks for the transparency, and I can certainly appreciate that BtcTalk is only a percentage of your target market.

My only payment address: 1ZephertJThxkHih7XcaUHBkMSnvkTt5u
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 07, 2016, 03:44:49 PM
 #17

Will there be a 1 in 5000 chance, or will there be less ?

I am pretty sure all 5000 havn't been sold, and may not sell before the halving, so does an unsold book really still get a ticket in the raffle ?

What happens if an unsold book wins ? Surely this needs to be based on actual buyers of books sold ?



It is a 1 in 5000 chance. The spreadsheet should remove ambiguity on how this is being conducted

I'll have to post this by the end of the day absent some addresses since the halving is so close now
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 07, 2016, 03:51:47 PM
 #18

What is the utility of the Counterparty token? Just to have a token? Or will it be usable for something in the future?

I begrudgingly added an ISBN to the book after much discussion with the printer, the counterparty token would have ideally replaced the centralized system, now it will compliment and show how things could work.

A month ago, people didn't know there was a market for better tools, stay tuned for the post mortem!
Mitchell
Copper Member
Legendary
*
Offline Offline

Activity: 3920
Merit: 2198


Verified awesomeness ✔


View Profile WWW
July 07, 2016, 05:27:13 PM
 #19

No, that's not accurate, because it is a seeded PRNG. If the code called rng.random multiple times after initialization it would give new numbers, but reinitializing it and running it will get the same sequence of numbers. By only showing the first number, we always get the same result.

You can test that code with the hash from block 419,000 and you should get number "610" every time, which was the whole point of showing the code, since we don't know what the hash for 420,000 will be, but can't be manipulated, then we can be confident in this outcome.

This is using node.js with "express" and "request" modules
Ah yes, of course. I'll try out the code in a bit just to be sure.

The spreadsheet associates all addresses with a book number (by row), so this is indistinguishable for your request. I haven't posted the spreadsheet yet as I haven't gotten addresses from everyone. Purchasers should be able to see their own address via their browsers "find" function. All the addresses will receive counterparty tokens and the winning address holder will also get the gold bar shipped to them.
That does not answer my question, so I'm asking you again, what happens when the winning number is a number of a book that hasn't been sold. I know what you are going to do, but if a book isn't sold have nowhere to ship the bar to as nobody can claim it.




EDIT: I just tried out the code and it does indeed output 610.

.
Duelbits
            ▄████▄▄
          ▄█████████▄
        ▄█████████████▄
     ▄██████████████████▄
   ▄████▄▄▄█████████▄▄▄███▄
 ▄████▐▀▄▄▀▌████▐▀▄▄▀▌██

 ██████▀▀▀▀███████▀▀▀▀█████

▐████████████■▄▄▄■██████████▀
▐██████████████████████████▀
██████████████████████████▀
▀███████████████████████▀
  ▀███████████████████▀
    ▀███████████████▀
.
         ▄ ▄▄▀▀▀▀▄▄
         ▄▀▀▄      █
         █   ▀▄     █
       ▄█▄     ▀▄   █
      ▄▀ ▀▄      ▀█▀
    ▄▀     ▀█▄▄▄▀▀ ▀
  ▄▀  ▄▀  ▄▀

Live Games

   ▄▄▀▀▀▀▀▀▀▄▄
 ▄▀ ▄▄▀▀▀▀▀▄▄ ▀▄
▄▀ █ ▄  █  ▄ █ ▀▄
█ █   ▀   ▀   █ █  ▄▄▄
█ ▀▀▀▀▀▀▀▀▀▀▀▀▀ █ █   █
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█  █▄█
█ ▀▀█  ▀▀█  ▀▀█ █  █▄█

Slots
.
        ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄
        █         ▄▄  █
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄       █
█  ▄▄         █       █
█             █       █
█   ▄▀▀▄▀▀▄   █       █
█   ▀▄   ▄▀   █       █

Blackjack
|█▀▀▀▀▀█▄▄▄
       ▀████▄▄
         ██████▄
▄▄▄▄▄▄▄▄█▀    ▀▀█
████████▄        █
█████████▄        █
██████████▄     ▄██
█████████▀▀▀█▄▄████
▀▀███▀▀       ████
   █          ███
   █          █▀
▄█████▄▄▄ ▄▄▀▀
███████▀▀▀
.
                 NEW!                  
SPORTS BETTING 
|||
[ Đ ][ Ł ]
AVAILABLE NOW

Advertisements are not endorsed by me.
photonresearch (OP)
Member
**
Offline Offline

Activity: 90
Merit: 11

Author of Bitcoin Books, the latest: Mining Pools


View Profile
July 08, 2016, 04:04:58 PM
 #20


The spreadsheet associates all addresses with a book number (by row), so this is indistinguishable for your request. I haven't posted the spreadsheet yet as I haven't gotten addresses from everyone. Purchasers should be able to see their own address via their browsers "find" function. All the addresses will receive counterparty tokens and the winning address holder will also get the gold bar shipped to them.
That does not answer my question, so I'm asking you again, what happens when the winning number is a number of a book that hasn't been sold. I know what you are going to do, but if a book isn't sold have nowhere to ship the bar to as nobody can claim it.

Mitchell brings up a good point, the idea of unclaimable tickets. This was a problem in the original plan that we didn't consider, so the solution is that sales will simple have to stay open and even though some market participants will know the number of the book eligible for the gold, even if it didn't sell, some lucky person in the future will get it instead

1 day till the halving!
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!