Bitcoin Forum
May 11, 2024, 10:58:57 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Project Development / Re: Lottery guy bets entire BTC fortune and ... loses? :) on: June 18, 2011, 03:38:40 AM
I was wrong, but it only strengthens my case. The correct statement is: The customers don't lose, and the operator doesn't gain.

Consider two scenarios:

Scenario A: A million customers each buy a single ticket.
The operator collects a 10K BTC fee.
Each customer paid 1 BTC and has 1/1M chance to win 0.99M, so his expected gain from the bet is -0.01 BTC.

Scenario B: A million customers each buy a single ticket, and the operator buys 1M tickets for himself.
The operator paid 1M. He has 50% chance of winning the entire 2M, and a 50% chance of getting only a 20K fee. Expected gain is 10K BTC, same as before.
Each customer paid 1 BTC and has 1/2M chance to win 1.98M, so his expected gain from the bet is -0.01 BTC.

Because as jerfelix pointed out this lottery is not progressive, there is never an expected gain out of it. Customers pay in expectation to get the rush of high variance. So all the operator can do is get this high variance without paying for it, he cannot gain in expectation.


Meni Rosenfeld is correct.  No matter how many tickets the operator buys, the customers don't lose, and the operator doesn't gain.

The scenarios Meni has written are sufficient to show that the operator doesn't gain.  However, to flog this dead horse, here's another pair of scenarios:

Scenario C: One customer buys a single ticket.
The operator collects a 0.01 BTC (1% * 1 BTC) fee.
The customer paid 1 BTC and will automatically win 0.99 BTC, so his expected gain from the bet is -0.01 BTC.

Scenario D: One customer buys a single ticket, and the operator buys 999 tickets for himself.
The operator paid 999 BTC. He has 99.9% chance of winning the entire 1,000 BTC, and a 0.1% chance of getting only a 10 BTC (1% * 1,000 BTC) fee. Expected gain is 999 BTC (99.9% * 1,000 BTC) + 0.01 BTC (0.1% * 10 BTC ) - 999 BTC = 0.01 BTC, same as before.  The customer paid 1 BTC and will on average gain 0.99 BTC (0.1% * 990 BTC) - 1 BTC = -0.01 BTC, same as before.

Regardless of how many lotto tickets the operator buys, his gain is the same, 1% of the customer's bet.  Regardless of how many lotto tickets a customer buys, his loss ratio is the same, the 1% fee which goes to the operator.


I proceed to give a method of how he can do that.  Some people agree and others disagree. 
Don't misunderstand me, I'm not accusing him of any wrong-doing; I'm wondering what consensus opinion is.


The method currently used by bitlotto, as described in the quote below:

-All payments go to the same address: eg. http://blockexplorer.com/address/1D9c6qLKRjxh7xbyv6MBUcBFJHDFeDQpsg
-all .25 payments can be verified (some bought for 1 btc before big BTC price changes - tickets still valid and .75 returned- check their addresses and you can see .75 payment from me)
-each transaction has a unique hash - can't change it as it's part of Bitcoin blockchain
-total jackpot size can be verified by adding .25 tickets or looking at received BTC in blockexplorer (accounting for a few who over paid)
-draw then ends - tickets are all set in stone in the block chain each with a unique hash
-winner is determined by a hash of block hash + mega millions numbers to prevent a miner trying to increase odds by not submitting a block if it doesn't work for them -the hash is totally unpredictable and impossible to manipulate unless you can manipulate the USA mega millions lottery (impossible)
-using a set algorithm the winner is determined based on their payment hash (method is set and can't change)
-payment can only go to the person who sent the ticket -look at blockexplorer and payment can only go to that address -that's why using Bitcoin on their own computer is so important. I can not send to any other address!!
-there is no way I can cheat!!!

It's cheat proof. If you can think of a way I can pay myself without everyone noticing I'll give you all the BTC I own!!

can not be gamed by Jerfelix's method, regardless of how many tickets the operator buys.

This is not a matter of opinion, anyone with a correct understanding of statistics can follow the reasoning to its inevitable conclusion.

But it does bring up an interesting dilemma.

If someone runs a betting site, and he loses a very public bet in a forum and fails to pay up, can you trust his betting site?


Therefore, your dilemma is solved.  Bitlotto runs a betting site, he won this very public bet in a forum and you lost.  Since he won, there is nothing to pay up, so there is no reason for distrust.
2  Other / Beginners & Help / Re: "Stabilizing" the market on: June 18, 2011, 02:32:58 AM
The bitcoin market is actually less manipulated than the stock or commodity markets.

In the bitcoin market, there is no margin, no naked short selling and no options.  Anyone can trade it all around the clock, so there is no time where only some traders in some locations can trade and so move the market a lot on low volume.

To see a manipulated market, look over the silver market descriptions at Turd Ferguson's trading blog at:
http://www.tfmetalsreport.com/

In a manipulated market you'll see flash crashes, usually at low volume times.  You'll see margin requirements being changed arbitrarily with no consistent reason.

The reason the bitcoin market is fluctuating wildly is because of the nature of bitcoin.  If bitcoin succeeds, it will trade at more than a thousand, if it fails, it will trade at zero.  Each monthly, on average, its value has roughly doubled.  There is no way a currency with these characteristics can be stable.  The only way bitcoin could ever stabilize is if a majority of people use bitcoin, or some related electronic coin, in their daily lives.
3  Other / Beginners & Help / Re: Using "off peak" electricity on: June 18, 2011, 02:10:53 AM
..
My problem is that we have a "Time of Use" electric power plan - US$0.20/Kwh from 1pm to 8pm weekdays and US$0.066 /Kwh at all other times.

This seriously impacts the potential profits from mining, so I want to throttle back/turn off the GPU during the "peak hours". Especially if I invest in a high power GPU for actual mining!
..

To determine if you actually have a problem, you should calculate the cost of electricity per hash.  You could calculate it using the Mhash/J information at:
https://en.bitcoin.it/wiki/Mining_Hardware_Comparison

Most of the cost of mining is usually the mining card, so there is usually no reason to turn off the GPU.  However, if your old card happens to have an extremely low electrical efficiency, then it may be worthwhile to turn off the GPU.  You should find out first before going through the trouble of setting up a cron job to turn the card on and off.
4  Bitcoin / Bitcoin Discussion / Re: [RFC] Lottocoin on: June 07, 2011, 08:20:02 AM
BitLotto will use random data collected from the U.S.A Mega Millions lottery as well to get the winner.

Wow, great idea.

Also, I agree that using just block1hash is better than using block1hash+block2hash, because an attacker would just attack the last block hash in the chain, no matter how long the chain is.  Adding more block hashes increases complexity, but does not give any additional security.

It would be good to have an alternate lotto chosen and published in advance in case the Mega Millions lotto ceases operation.

I also suggest that you make a javascript page where people can enter the block hash and lottery number; and see the result.  Although only a few people would use this, it would increase confidence in the lotto system for everyone.
5  Bitcoin / Bitcoin Discussion / Re: [RFC] Lottocoin on: June 04, 2011, 09:25:11 AM
BitLotto runs on the CURRENT chain, but coins are not destroyed but collected. Then the network creates the number for the winner. The winner then gets all the coins.

The problem is that right now, since the winning number is dependent on a secret number, people have to trust BitLotto or any other lotto, to not steal the winnings.  For example, if there is a lotto prize of 100 bitcoins, and someone who knows the secret number has 60% of the lotto tickets, then their expected winning is 60 bitcoins.  Say this person generates a bitcoin block, worth fifty bitcoins, which is used in combination with the secret number to calculate the winning number.  If the winning number would not lead to winning the lotto, the cheater can simply not announce the block to get an extra (60 - 50 = 10) bitcoins.  As the bitcoin blocks halve in value every four years, the cheater gets greater winnings.  If the lotto prize gets larger, the cheater also gets more winnings.  The only way this attack could be guaranteed to be unprofitable is if the lotto prize was smaller or equal to the bitcoin block value.

The lotto operator knows the secret number, also a cracker could break into the system and learn the secret number.  Although I believe it unlikely that anyone has gone through the trouble to get lotto winnings in this way so far, as time passes the chance for such a cheat increases, and with this system there is no way for people buying the lotto tickets to know for sure if the random number is being generated fairly.
 
Making an agreed upon truly random number in a peer to peer system is more difficult than it seems.  Some of the issues with making a peer to peer random number are mentioned in the 'Robust Random Number Generation for Peer-to-Peer Systems' paper referenced above:
http://www.arnetminer.org/dev.do?m=downloadpdf&url=http://arnetminer.org/pdf/PDFFiles/--g---g-Index1247931776950/Robust%20Random%20Number%20Generation%20for%20Peer-to-Peer%20Systems1247951238765.pdf

There is also the problem that having one entity running a lotto means there is a single target for some kind of legal action.

Isn't it simpler to just make a lottery with the current blockchain?
There's no need of a new one just for this

The problem with making a lottery in the current blockchain is that it would slow development of bitcoin and add potential security holes.

It would slow development because it would increase the complexity of the bitcoin program, which means it would take longer for people to learn bitcoin to the point of being able to contribute.  People who want to contribute to bitcoin already have to spend a lot of time to get familiar with the complex program before they can start making any change safely, any additional complexity would make this even worse.  Also, if there is a lottery or anything else in the bitcoin program, it slows releases because any change has to be tested against the new lottery code as well as the existing code.  Overall, complexity is the main reason why software development slows down as programs gets bigger, and indeed why software development sometimes fails entirely when programs get really big.  Bitcoin development is already slowing as the program gets bigger, no function should be added to bitcoin if it could be done in another blockchain.

Maybe there's a script that could be implemented to accommodate this (escrowed winnings) in the current blockchain.
http://en.bitcoin.it/wiki/Script

A script has the same problems as adding the lotto directly to the blockchain.  In theory, scripts could add functionality without adding complexity or security holes, in practice they often bring trouble.
6  Bitcoin / Bitcoin Discussion / [RFC] Lottocoin on: June 02, 2011, 09:35:58 PM
Below is a description of how a lottocoin could work.  The lottocoin is inspired by the betcoin discussion at:
http://forum.bitcoin.org/index.php?topic=10011.20

The lottocoin is a distributed lottery.  The lotto prize is distributed, no one holds the prize.  The winner is decided by a peer to peer random number generator.

The lottocoin is based on bitcoin with the two following changes:

1) Someone buying a lotto ticket destroys the ticket money.  The lotto ticket has a receive address and the quantity destroyed in the transaction message.

2) At a regular interval, a winning ticket is found by the peer to peer random number generator.  The next mined lottocoin then creates the usual constant value, which the miner gets, plus the total quantity destroyed which is sent to the receive address of the winning lotto ticket.

More detailed explanation:

* The lottocoin is a new blockchain, separate from the bitcoin chain.
* Receive address and quantity pairs are stored in the blockchain attached to coins.
* Lotto tickets are acquired with the new transaction type; buy ticket.
* The payout is automatically made with the new transaction type; pay winner.
* Block validation is extended to reject transactions that do not follow the above rules.

Buying a lotto ticket destroys the ticket money, the same way that the money is destroyed when buying a domain name in namecoin:
http://forum.bitcoin.org/?topic=6017.0

At a regular interval, say after the first coin generated on Monday GMT, there is a lotto draw.  The peer to peer random number generator makes an agreed upon random number even if there are some hostile nodes.  One possible peer to peer random number generator is described at:
http://www.arnetminer.org/dev.do?m=downloadpdf&url=http://arnetminer.org/pdf/PDFFiles/--g---g-Index1247931776950/Robust%20Random%20Number%20Generation%20for%20Peer-to-Peer%20Systems1247951238765.pdf

Once a random number is obtained, the lotto tickets are stacked along the number line with the quantity destroyed as their width.  The random number, ranging from 0 to 1, is then multiplied by the total quantity destroyed to pick the winning ticket along the number line.

The next mined lottocoin then creates the usual mining value of fifty lottocoins, which the miner gets, plus the total quantity destroyed which is sent to the receive address of the winning lotto ticket.  The mining value is constant, it does not halve every four years like bitcoin.
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!