marekknowak (OP)
Newbie
Offline
Activity: 9
Merit: 0
|
|
December 03, 2010, 04:51:16 PM |
|
Hello,
I'm new to this forum, so I apologize if this has been answered before, but I couldn't find the answer yet.
I'm very curious as of what restricts the supply of bitcoins? basically, what mechanism prevents some computer to create new bitcoins, and pass them as valid to other bitcoin clients?
It is because the bitcoins have to be cryptographically signed with a special private key?
Thanks,
|
|
|
|
tyler
Newbie
Offline
Activity: 56
Merit: 0
|
|
December 03, 2010, 05:12:01 PM |
|
There is a proof of work algorithm that creates the coins. the hash of this algorithm is difficult to produce, but easy to verify
|
|
|
|
RHorning
|
|
December 03, 2010, 05:57:37 PM |
|
It is also important to note that new coins are being introduced into the overall network at a slow and very measured pace. The "goal" is to permit only one new "block" that contains new bitcoins to be created only every 10 minutes by anybody anywhere in the entire world using the Bitcoins network. Each block contains 50 bitcoins, and the only way you can get one of those blocks is to compete for obtaining that block through a "proof of work" effort that has everybody searching for a "hash".
The difficulty of that effort varies, and if the number of blocks arriving over the course of a few days doesn't meet this goal of one every 10 minutes, the difficulty creating these blocks increases or decreases depending on how many people are active in trying to create these blocks. If you were the only person on the network creating these blocks with a typical home computer, the difficulty level would be about 1, which would have given you the ability to get a block every ten minutes. Right now the difficulty level is something like at about 8000, and has shown a very steady rise for as long as I've been involved with Bitcoins. I expect the difficulty level to be even higher than 10,000 shortly. What this means really is that you have about a 1 in 10,000 or worse odds of getting the next block in the next 10 minutes (it varies depending on the computer hardware and options you are using, but that gets the idea across). It is for this reason that on average even if you have a pretty good computer system you shouldn't expect to get more than about one of these bitcoin blocks about every few months even if you are actively trying, and for people with slow CPUs like a laptop may take a year or longer to generate one of these blocks for yourself, and that is with the current difficulty.
Think of trying to get blocks as something akin to a lottery ticket, where Bitcoin users are entering literally thousands of tickets each second, and some are even entering millions of tickets each second to see if they will "win" the next block. Only one person, on average, will get the next block over the next 10 minutes and thus win 50 BTC, or about the equivalent of about $12 at current exchange rates for that effort if it was traded for dollars.
Running bitcoins simply to make money is in the long run not going to be very cost effective if your goal is to earn them by "mining" the coins. It still helps, but the main point is to use the software for trading the coins for other considerations like buying stuff with them or selling things for bitcoins.
|
|
|
|
Gavin Andresen
Legendary
Offline
Activity: 1652
Merit: 2311
Chief Scientist
|
|
December 03, 2010, 06:25:00 PM |
|
I'm very curious as of what restricts the supply of bitcoins? basically, what mechanism prevents some computer to create new bitcoins, and pass them as valid to other bitcoin clients?
Bitcoin contains this magical little piece of code: int64 GetBlockValue(int nHeight, int64 nFees) { int64 nSubsidy = 50 * COIN;
// Subsidy is cut in half every 4 years nSubsidy >>= (nHeight / 210000);
return nSubsidy + nFees; }
If you try to create more than GetBlockValue coins (50, right now) when you get lucky and generate a block, all the other clients will reject it. There are a bunch of other checks to prevent cheating (make sure you actually did the work to find a valid hash for the block, make sure all the transactions in the block are valid, etc), but that simple little piece of code is what restricts the supply.
|
How often do you get the chance to work on a potentially world-changing project?
|
|
|
davout
Legendary
Offline
Activity: 1372
Merit: 1008
1davout
|
|
December 03, 2010, 06:40:48 PM |
|
Long answer short : consensus. Because it's part of the widely agreed upon rules. You can create coins after the limit is reached, however, no-one on the network will recognize the blocks creating them. However, in theory, if the majority of the users agree on the fact that bitcoins should keep being created without a limit it wouldn't be a problem (except for the part where you convince lots of people to accept a diminution of their assets value ) Bitcoin the current mainstream implementation of the bitcoin protocol contains this magical little piece of code:
I know it's going to sound pretty anal, but I think it's really important to clearly distinguish an implementation from the protocol it is implementing. Just to complete the answer, I could build a client that doesn't implement that check, but, after the generation is over, none of the blocks I'd generate would be recognized by the network, and the reason to that is simply consensus
|
|
|
|
theymos
Administrator
Legendary
Offline
Activity: 5404
Merit: 13498
|
|
December 03, 2010, 06:45:19 PM |
|
However, in theory, if the majority of the users agree on the fact that bitcoins should keep being created without a limit it wouldn't be a problem (except for the part where you convince lots of people to accept a diminution of their assets value ) It's important to note that a majority can't force the minority to accept new rules. If most of the network wants to eliminate the 21 million limit, they will split into a separate network and the original Bitcoin network will still continue to operate under the old rules (probably devalued, but still working).
|
1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
|
|
|
davout
Legendary
Offline
Activity: 1372
Merit: 1008
1davout
|
|
December 03, 2010, 07:00:39 PM |
|
However, in theory, if the majority of the users agree on the fact that bitcoins should keep being created without a limit it wouldn't be a problem (except for the part where you convince lots of people to accept a diminution of their assets value ) It's important to note that a majority can't force the minority to accept new rules. If most of the network wants to eliminate the 21 million limit, they will split into a separate network and the original Bitcoin network will still continue to operate under the old rules (probably devalued, but still working). Yes, thanks for pointing that out!
|
|
|
|
Cryptoman
|
|
December 03, 2010, 07:00:56 PM |
|
What if someone wrote a virus that distributed a rogue Bitcoin client to thousands of PCs? Would this not undermine the legitimate consensus? Only the person who wrote the virus would know of its existence initially. Wouldn't he/she be able to skim off some Bitcoins? Is there any type of hash signature verification on the official client releases?
|
"A small body of determined spirits fired by an unquenchable faith in their mission can alter the course of history." --Gandhi
|
|
|
davout
Legendary
Offline
Activity: 1372
Merit: 1008
1davout
|
|
December 03, 2010, 07:04:36 PM |
|
What if someone wrote a virus that distributed a rogue Bitcoin client to thousands of PCs? Would this not undermine the legitimate consensus? Only the person who wrote the virus would know of its existence initially. Wouldn't he/she be able to skim off some Bitcoins? Is there any type of hash signature verification on the official client releases?
You don't even need to distribute a rogue client. A plain virus will do... Head towards the wallets, fetch the private keys, once you have the private keys you can spend the money. Rule of thumb : your wallet.dat is named like that for a reason And yes, the checksums, actually the SHA1 hashes are on the bitcoin.org frontpage (is it me or does the bitcoin community have a bias towards hashing everything XD)
|
|
|
|
jgarzik
Legendary
Offline
Activity: 1596
Merit: 1100
|
|
December 03, 2010, 07:10:09 PM Last edit: December 03, 2010, 07:45:35 PM by jgarzik |
|
And yes, the checksums, actually the SHA1 hashes are on the bitcoin.org frontpage (is it me or does the bitcoin community have a bias towards hashing everything XD)
As a side note, those SHA1 hashes on bitcoin.org are almost useless. There is no PGP signature, no chain of trust, so a hacker could easily replace the binaries and hashes. Has anyone verified that the hashes remained unmodified after bitcoin.org downtime, for example? There's no ongoing record of the binaries' hashes, in the forums or elsewhere, so who knows. I'll continue to build my own client from source code, after reviewing the diffs, thankyouverymuch
|
Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own. Visit bloq.com / metronome.io Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
|
|
|
theymos
Administrator
Legendary
Offline
Activity: 5404
Merit: 13498
|
|
December 03, 2010, 07:25:06 PM |
|
There is no PGP signature, no chain of trust, so a hacker could easily replace the binaries and hashes.
Satoshi has published a public key for a long time -- I don't know why he doesn't sign the hashes...
|
1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
|
|
|
marekknowak (OP)
Newbie
Offline
Activity: 9
Merit: 0
|
|
December 03, 2010, 08:34:46 PM |
|
Thanks for your reply.
I'm trying to play devil's advocate here, because I think bitcoin is a great idea, and worth considering:
1) Being peer to peer based, doesn't the network becomes very vulnerable to impersonation attacks? when clients start up, then have to log to 'trackers' to get the list of other clients, but one only need to replace/hack the tracker(s), and successfully redirecting all new clients to a fake list of clients where all kinds of new transactions took place, since the last time they were logged in, and cause massive amount of damage?
2) Couldn't the same kind of technique used by hackers for DoS could be used in the bitcoin network to 'take over' the official bitcoin network (become the majority), so when a new client connects, it sees the massive rogue bitcoin network as the valid one, and rejects the legitimate bitcoin network as the one being inconsistent?
3) If / when corruption, massive attacks , etc... happens (this is a computer network we're talking about here, so we'd be delusional that it would always keep its integrity), how could the network be reset to a previous 'valid' state before the attack?
5) The fact that it relies on peer to peer network seems to make it very vulnerable to any interruption of service. Say, some countries are disconnected from the grid for some time (due to an underground cable cut as in happen in the past, or other reason), would the two diverging bitcoin networks become essentially irreconcilable (new bitcoins series issued independently, etc...), so that the supply is effectively split, and it becomes two different incompatible bitcoins?
finally: How can one re-appropriate bitcoins that was fraudulently acquired? Say, someone sells for millions of $ worth of bitcoins through fake ebay auctions, and get convicted by a judge of that action. How can the victims be compensated if the thief simply refused to give his private key (or has destroyed it)? With real money, his bank account is simply frozen/ confiscated.
Doesn't the fact that bitcoins can't be re-appropriated by force make it fundamentally unsuitable to be used as real property in general, and money in particular?
Thanks for your time!
|
|
|
|
kiba
Legendary
Offline
Activity: 980
Merit: 1024
|
|
December 03, 2010, 08:45:46 PM |
|
finally: How can one re-appropriate bitcoins that was fraudulently acquired? Say, someone sells for millions of $ worth of bitcoins through fake ebay auctions, and get convicted by a judge of that action. How can the victims be compensated if the thief simply refused to give his private key (or has destroyed it)? With real money, his bank account is simply frozen/ confiscated.
Let me ask you a question: Do you really really really really want a judge deciding all of this?
|
|
|
|
grondilu
Legendary
Offline
Activity: 1288
Merit: 1080
|
|
December 03, 2010, 08:52:36 PM |
|
Thanks for your reply.
I'm trying to play devil's advocate here, because I think bitcoin is a great idea, and worth considering:
1) Even if a client was redirected to fake other clients, then he would probably retrieve a ridiculously short block chain. This would look much suscpicious. 2) DoS attacks are indeed an issue. It is partially resolved with transaction fees mechanism. And remember this could in no way result in acquiring other's bitcoins. I think it might allow double spending, at worst. 3) All transaction history is in the block chain. 5) Hum... About this I confess I don't know. I guess it would result in the irreversible fork of bitcoin into two separate cryptocurrencies. For your final point, remember that bitcoin transaction are irrevocable. There is no way you can force someone to give you your money back. And, no, this doesn't make it unsuitable for commerce. Some compensation/escrow services can be used for that.
|
|
|
|
marekknowak (OP)
Newbie
Offline
Activity: 9
Merit: 0
|
|
December 03, 2010, 08:57:42 PM |
|
finally: How can one re-appropriate bitcoins that was fraudulently acquired? Say, someone sells for millions of $ worth of bitcoins through fake ebay auctions, and get convicted by a judge of that action. How can the victims be compensated if the thief simply refused to give his private key (or has destroyed it)? With real money, his bank account is simply frozen/ confiscated.
Let me ask you a question: Do you really really really really want a judge deciding all of this? I'm a rothbardian libertarian myself, so you don't have to convinced me of the problems of having a government judge deciding who should own some property. But even without considering the world we live in today (which is already a stretch), in a free society there would still be judges that adjudicate disputes, and thieves that need to be expropriated to compensate their victims. How is this possible in a system where no one can take away the money illegitimately acquired by a thief or fraudster? This is a major problem that I see with bitcoin being suitable as money. Realistically, this problem could cause bitcoin to be made illegal in all major countries, the same way e-gold went. No legally abiding business could accept it in a transaction, and even though no one could completely eradicate it due to its peer to peer nature, it would be relegated to some black market usage, and loose significant market value, along with any credibility of becoming a real currency. Basically, this is a fundamental problem with bitcoin not being compatible with a civil law justice system?
|
|
|
|
kiba
Legendary
Offline
Activity: 980
Merit: 1024
|
|
December 03, 2010, 09:03:34 PM |
|
How is this possible in a system where no one can take away the money illegitimately acquired by a thief or fraudster? This is a major problem that I see with bitcoin being suitable as money.
I have blacklisted a forum member for spreading or attempting to spread libel against bitcoin speculators. Others had joined me into the cause. Group ostracism and blacklisting people is the primary system of enforcement by bitcoiners. Other than that, we expect that some people will take advantage of our trust and adjust accordingly. Thus, some of the rule of thumbs are: 1. For reversible transaction such as paypal, used trust members. 2. Never believe a deal until you demand proof/evidence. 3. Use escrow service.
|
|
|
|
grondilu
Legendary
Offline
Activity: 1288
Merit: 1080
|
|
December 03, 2010, 09:05:58 PM |
|
I'm a rothbardian libertarian myself, so you don't have to convinced me of the problems of having a government judge deciding who should own some property.
But even without considering the world we live in today (which is already a stretch), in a free society there would still be judges that adjudicate disputes, and thieves that need to be expropriated to compensate their victims.
How is this possible in a system where no one can take away the money illegitimately acquired by a thief or fraudster? This is a major problem that I see with bitcoin being suitable as money.
Realistically, this problem could cause bitcoin to be made illegal in all major countries, the same way e-gold went. No legally abiding business could accept it in a transaction, and even though no one could completely eradicate it due to its peer to peer nature, it would be relegated to some black market usage, and loose significant market value, along with any credibility of becoming a real currency.
Basically, this is a fundamental problem with bitcoin not being compatible with a civil law justice system?
Bitcoin is not worse than cash, for that matter. The concept of money doesn't provide any security nor insurance for your transactions. Yes, some governments might dislike bitcoins. But the whole point of the design of bitcoin is to make them incapable of doing anything against that.
|
|
|
|
FreeMoney
Legendary
Offline
Activity: 1246
Merit: 1016
Strength in numbers
|
|
December 03, 2010, 09:11:37 PM |
|
finally: How can one re-appropriate bitcoins that was fraudulently acquired? Say, someone sells for millions of $ worth of bitcoins through fake ebay auctions, and get convicted by a judge of that action. How can the victims be compensated if the thief simply refused to give his private key (or has destroyed it)? With real money, his bank account is simply frozen/ confiscated.
Doesn't the fact that bitcoins can't be re-appropriated by force make it fundamentally unsuitable to be used as real property in general, and money in particular?
Thanks for your time!
Shredding cash is about as easy as deleting a wallet file. I guess this is why no one uses it anymore.
|
Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
|
|
|
marekknowak (OP)
Newbie
Offline
Activity: 9
Merit: 0
|
|
December 03, 2010, 09:11:52 PM |
|
I'm a rothbardian libertarian myself, so you don't have to convinced me of the problems of having a government judge deciding who should own some property.
But even without considering the world we live in today (which is already a stretch), in a free society there would still be judges that adjudicate disputes, and thieves that need to be expropriated to compensate their victims.
How is this possible in a system where no one can take away the money illegitimately acquired by a thief or fraudster? This is a major problem that I see with bitcoin being suitable as money.
Realistically, this problem could cause bitcoin to be made illegal in all major countries, the same way e-gold went. No legally abiding business could accept it in a transaction, and even though no one could completely eradicate it due to its peer to peer nature, it would be relegated to some black market usage, and loose significant market value, along with any credibility of becoming a real currency.
Basically, this is a fundamental problem with bitcoin not being compatible with a civil law justice system?
Bitcoin is not worse than cash, for that matter. The concept of money doesn't provide any security nor insurance for your transactions. Cash can be re-appropriated if stolen. A bank account can be confiscated. A bitcoin hoard can't be. That's a big difference.
|
|
|
|
theymos
Administrator
Legendary
Offline
Activity: 5404
Merit: 13498
|
|
December 03, 2010, 09:12:37 PM |
|
1) Being peer to peer based, doesn't the network becomes very vulnerable to impersonation attacks? when clients start up, then have to log to 'trackers' to get the list of other clients, but one only need to replace/hack the tracker(s), and successfully redirecting all new clients to a fake list of clients where all kinds of new transactions took place, since the last time they were logged in, and cause massive amount of damage?
This is the most feasible attack against the network, in my opinion. It's not trivial, though: all of your peers need to be evil, and Bitcoin requires that your first eight peers be on different /16 networks. Couldn't the same kind of technique used by hackers for DoS could be used in the bitcoin network to 'take over' the official bitcoin network (become the majority), so when a new client connects, it sees the massive rogue bitcoin network as the valid one, and rejects the legitimate bitcoin network as the one being inconsistent? Only if the attacker can come up with more CPU power than the real network... If / when corruption, massive attacks , etc... happens (this is a computer network we're talking about here, so we'd be delusional that it would always keep its integrity), how could the network be reset to a previous 'valid' state before the attack? The block checkpoint would be moved up, causing you to reject all chains except the real one. finally: How can one re-appropriate bitcoins that was fraudulently acquired? Say, someone sells for millions of $ worth of bitcoins through fake ebay auctions, and get convicted by a judge of that action. How can the victims be compensated if the thief simply refused to give his private key (or has destroyed it)? With real money, his bank account is simply frozen/ confiscated. You can't. Allowing governments/criminals to steal money from people is not the goal of Bitcoin.
|
1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
|
|
|
|