Proof and trust are incompatible
I see and I agree thinking about this. But would that not actually mean, that the use of any random beacon would mean, that it cannot be considered provably fair? This would always rely on some data input from somewhere and no matter whether everybody in the world knows that I (the organizer) would not have any control over this, then it could still be argued that the data source could be dishonest.
On the other hand making something provably fair would (in this case) need some “secret token” or similar as previously mentioned, which then will be public after the draw and user could check this against the hash string they got when purchasing the ticket. But this leaves organizer with edge if he was dishonest as he knows all the factors.
This is a headache.
Question however is, since many point to pevpot, which use provably fair on their site. But there is also some point of trust
https://www.pevpot.com/provably-fair to get the “blockHash”. So is this then provably fair?
I am fighting in my head a bit with this term.
It's hard to follow. I think it could use some proofreading and possibly renumbering. What is a "lottery block" exactly?
Yes, this could surely need some explanation, which I will try to do.
Every time 10 lottery tickets are sold, then a draw will happen between these 10 tickets for 20% percent of the combined ticket value. This is what I call a block (in this case a level 1 block).
Let’s say a ticket cost 10 mBTC, then the prize pool in this draw is 20 mBTC.
The winner of a level 1 block will automatically enter into a level 2 block.
A level 2 block is created, when 10 x 10 = 100 tickets are sold (10 level 1 blocks). The 10 winners of their level 1 block will enter into a level 2 block (Which now also holds 10 tickets). Here the prize pool will be 15% of the combined ticket value. (100 x 10 x 15% = 150 mBTC). The winner of a level 2 block draw will automatically enter into a level 3 block.
Level 3 block is created and draw is made when 10 x 10 x 10 = 1000 tickets are sold and so on….
I hope this explains the system a bit better and why I use “lottery block”. Maybe it would be better and more correct to call it a batch instead.
It sounds as if we don't have to trust blockcypher.com at all, because the random beacon has the final say in who wins. In fact why do we even need to use blockcypher.com? What do we lose by simply using the random beacon at block_time + 10 minutes alone to pick the winning ticket? Hash the beacon, divide by 10, and the remainder is the winner. What does simplifying the draw to such an extent take away? I think your currently described system is entirely dependent on the government beacon to decide the winner, so why bother with all the extra complication? If the beacon site is cheating, they can make any ticket win under either system, and if they aren't then both systems are equally "fair".
Or did I miss something?
blockcypher.com is used to put the ticket into it’s correct position order by time. So in a lottery batch (block) there are 10 tickets. How would they get their position (0 to 9) if not by at timestamp or some sorting algorithm?
I could rely on when I receive payment internally, but then some API service for receiving money could be down and the participant who should have had position 6, then gets position 8. And then after the draw this person calculates that if he had been in position 6, then he would have won.
So blockcypher.com is for ordering tickets. Also the lastest timestamp in the batch is also used to determine which random beacon to get from government site. One could argue, that organiser could tamper with timestamps internally to get the random beacon that serves his purpose. Am I right ?
I think you need to specify which version of mt_rand you're using. Its output changes depending on the version of PHP. Better would be to use something more standard so we don't have to install PHP to verify results.
Yes, if this is used off course version is needed as I know it has changed during versions. This might be something completely different on live version as long as it produce identical result of identical seeds.
Question: Since it seems like one has to choose between 100% provably fair and not use any external sources. (As I read your reply then any form of external source, then it is not provably fair)
What system would you prefer:
A provably fair system (where you cannot remove the organiser option to be dishonest)?
Or
A system based on random beacon from some source? (Must rely on external source to be fair, but organiser cannot cheat)