Bitcoin is the experiment

The beginning

In 2008 a scientific article appeared in a mailing list proposing a solution for a peer-to-peer electronic cash system. This is how ther article starts:
"Commerce on the Internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transactions, it still suffers from the inherent weaknesses of the trust based model. Completely non-reversible transactions are not really possible, since financial institutions cannot avoid mediating disputes. The cost of mediation increases transaction costs, limiting the minimum practical transaction size and cutting off the possibility for small casual transaction ... These costs and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party."

and more

"What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers. In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions. The system is secure as long as honest nodes collectively control more CPU power than any cooperating group of attacker nodes."

The Bitcoin network began on January 3, 2009 with the issue of the first bitcoins, the main software is developed by people at bitcoin.org and allow people to transfer bitcoins between users. The complete article is beautiful, a bit technical and available here

The rationale of the bitcoin network

Transactions are payments between two people. For you to able to pay somebody a previous transaction must have occurred in order for you to own the coin. If you have some bitcoins, a payment or transaction consists in taking the hash of the previous transaction (the one you received the coins from), the new owner public key and sign it with your private key.

Bitcoin nodes connected to you in the peer-to-peer network receive your transaction and collect it in a block. The block is made by the bitcoin client and contains a list of recent transactions that have been posted to the network, and a link back to the previous block in the block chain, an integer number and a timestamp.

The calculation that everyone is trying to solve is to find the integer number for which the hash of a block has a particular property (a number of leading zeros in the hash, with the specific number increasing with the difficultly set by the network). When the hash is found, the block is considered solved and submitted to the network. Other peers see it an validate it, incorporating it into their view of the state of the bitcoin network as a whole. In this way, the transactions recorded in the block become 'set in stone' by consensus agreement. Once a suffient number of blocks are chained on top of the one with your transaction the transaction is considered unique and the payment verified, as it would be computational unfeasible to rewire the block chain and cancel that transaction unless the computational power of a malicious node is greater than the one of honest nodes: The bigger the network the safer it is.

The maturation of the network

Each bitcoin node, when it is trying to make a block incorporates in the block not only a selection fo recent transactions, but also a credit to itself for -- at the moment -- 50 bitcoins. If it solves the block, then those 50 bitcoins are created and belong to it.

The bitcoin network automatically adjusts the difficulty of the proof-of-work computational task, so that, no matter how much computing power there is at work over the whole Bitcoin p2p network, blocks get solved at a rate of roughly one every 10 minutes to guarantee a good processing of the transactions.

Whenever the number of blocks generated reaches a certain threshold, the yield per generated block halves (sometime in September it will drop to 25BTC/block). The idea of the guy who designed the network is that the bitcoins are initially made quite liberally, but the number drops off with time until - at some point in the future - all the bitcoins that there will ever be have been made (some 21 million or so).

The reasoning is that by then, the network will be quite large with plenty of people using it. The question then becomes: without the free bitcoins for solving a block, why participate? The intention is that people will pay a small fee on top of every transaction they make, and these will be given to the solver of the block. Because there's a limited size to each block, it's in the bitcoin miner's interest to select the transactions with the highest fees for inclusion in the block they are working on. Conversely, if you want your transaction accepted by the network quickly, you would pay a higher transaction fee.

We hope that this project will help in raising the awareness of everyone on bitcoin and its possible high impact if successfull.

Some considerations and common questions

Would not be the same to make a donation instead of paying the electricity?

The bitcoin network depends on those calculations to work, so it is important to participate for the success of bitcoin. Bitcoin tries to incentivate the participation by returning coins to whom solves a block. The incentive for this will fade as explained before and match the real utility of the network when the solution of the block will only be paid by the small transaction fees.

If you don't care of bitcoin but would also like to donate to gpugrid, you can still give more value by crunching bitcoins than simply make a monetary donation (ATI twice as much as Nvidia, possibly better with Nvidia Kepler as well in the future). In this comparison table, they compare the cost/benefit of mining bitcoins even factoring in the cost of the GPU, not just electricity. For ATI is always convenient as the cost of the GPU does not count as you bought it for something else not just mining. If you look at the output of one workunit, it reports the megahashes per second of your gpus. This mining calculator reports the amount that you could also donate in a month of participation. The current average miner operating profit is shown in this chart

Are the calculations useful?

The calculations themselves serve the purpose of a proof-of-work and to guarantee the electronic transactions via bitcoins. Without this proof-of-work all the system would not work and the possibility to make easy electronic payments via bitcoin gone. A similar proof-of-work is done by some mail server to avoid spam emails, if the sending server could do the work it means that it could not have sent too many emails and the emails are probably legitimate. These calculations provide a service. They could be interchanged with others which have a dual scope, proof-of-work and something else, but for the time being this is probably good enough.

What to do with bitcoins?

Bitcoins can be exchanged for other currencies, for instance at mtgox.com. To exchange more than 1000 euro, it is required to send in the ID card in order to avoid possible misuses. At donate@home, we change the bitcoins raised to pay the salary for fellowships which are easily accountable as the fellow will be receiving the benefit.