How Bitcoin Works
en.bitcoin.it
en.bitcoin.it
* Reverse transactions that he sends while he's in control Prevent some or all transactions from gaining any confirmations
* Prevent some or all other generators from getting any generations"
Source: https://en.bitcoin.it/wiki/Weaknesses#Attacking_all_users
The first is that it isn't very fair. The reply to this is that the current balance of money isn't fair either, we just didn't get to watch it happen. And as people have said elsewhere, it's not reasonable to expect a currency to solve social inequality.
The second is that, if the cost of mining a bitcoin goes through the roof but there is not enough economy to make money on transaction fees, then people will drop out of mining. However: difficulty is not automatically increasing, it's proportionally increased or decreased relative to the difficulty of the past two weeks. If it becomes prohibitively expensive for Amazon to mine for bitcoins and they drop out, the threshold will fall again. Either way there's always an incentive to keep it running, until the system is out of coins.
(edit for clarity)
Which won't happen. They exponentially decrease in value per block as time goes on. And to offset this, as fewer are created, they will be worth more, because by that point there will be far more people using Bitcoin (if it doesn't bust, first).
So unless we find every solution to the hash problem, which essentially can't be done, statistically speaking, the system will never stop producing some bitcoins.
So throwing a lot of resources at it just makes it that much more difficult to mine, and would seem not to be productive. (edit: well, at least not based on their current value)
For example, are there drop-in examples for common web-app frameworks? Would it involve the customer cutting & pasting a few long BTC strings between the browser and some separate wallet app?
Would the web-app keep polling a separate Bitcoin service to achieve confirmation/confidence that a payment has gone through?
1. A user clicks on a link to buy an item
2. Web application generates a new bitcoin address. This can be done by sending a command to the official BitCoin daemon, or by calling a method on the BitCoinJ Java library.
3. The web application asks the user to send a sum of money to the recently generated address. If the user is using the official Bitcoin client, they'd do this by clicking "Send Coins", then copy-pasting the address and the correct amount of money into the dialog box.
4. The web application then either polls the Bitcoin daemon to see if the transaction has come through yet, or sets up an event handler if the web app is using BitcoinJ. The transaction must obviously be sent to the right address with the right amount of bitcoins.
5. When the transaction has come through, you can now deliver the product to the user. If there's no particular hurry, or if the product is high-value, you may want to wait until a certain number of Bitcoin nodes have confirmed the transaction.
As far as I'm aware, there aren't yet any drop-in plugins for common web frameworks, but it wouldn't be hard to make one.
For instance, there could be a link like:
bitcoin://1MvtfpuCtfDb2EfbevDB1Ep6Z2X1h5nskf?amount=10.00
This could open up your Bitcoin client with the "Send Coins" dialog box open with the address and amount already filled out. Then the user could just hit the "Send" button to confirm the transaction.However, this is just an example, and nothing like this has been implemented yet to my knowledge.
Not to mention that new clients will basically never catch up with all this history. How do they solve this?
BTW google's implementations (http://code.google.com/p/bitcoinj/) works in this mode.
I guess the benefits of contributing will move mainly towards commissions. What else?
Isn't that entirely dependent on the rate of technical progress? Furthermore, what happens when the crypto algorithms are broken?
What if "they" change their minds?
As dekz clarified, it's more of a self-regulating system than actually releasing coins at exactly 6:10:00.00, 6:20:00.00, etc. I was just giving the simple explanation.
An average joe would not run bitcoin themselves, they would use a bitcoin bank, check out mybitcoin for an early example of such a service.
However, you could argue that mining for gold or diamonds is even worse. You ruin the land with strip mining, you get "conflict diamonds" responsible for a lot of human suffering and at the end of the day you just have more precious useless metal that you store in a vault.
I respect the idea and execution and OK it is secure and everything, but if you can use your hands/brain to create work and get paid for that work in currency X, and then use that currency X to sustain yourself (pay bills, food, gas, etc), then the entire government become obsolete!! I am not arguing here whether a mature society needs government or not, I rather say here that there is a government in place (at least US) and this will be taken as a treason and a pure act of terrorism! (terrorism is any attempt to derail a government entity).
I am sure feds/FBI is in it by now! There was a lesson learnt for music industry when P2P blown out and basically the law lost and it is so easy even today to obtain copyrighted music/audio materials. I am SURE federal government will not let entire country economy to be at stake by some P2P currency.
Still, I take your point that it's not something they would let go of without a fight.