[p2p-research] Bitcoin open source implementation of P2P currency

4 messages P2P Research List Satoshi Nakamoto, Martien van Steenbergen, Michel Bauwens February 11, 2009 — February 13, 2009
Satoshi Nakamoto February 11, 2009 Source · Permalink

I’ve developed a new open source P2P e-cash system called Bitcoin. It’s completely decentralized, with no central server or trusted parties, because everything is based on crypto proof instead of trust. Give it a try, or take a look at the screenshots and design paper:

Download Bitcoin v0.1 at http://www.bitcoin.org

The root problem with conventional currency is all the trust that’s required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust. Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve. We have to trust them with our privacy, trust them not to let identity thieves drain our accounts. Their massive overhead costs make micropayments impossible.

A generation ago, multi-user time-sharing computer systems had a similar problem. Before strong encryption, users had to rely on password protection to secure their files, placing trust in the system administrator to keep their information private. Privacy could always be overridden by the admin based on his judgment call weighing the principle of privacy against other concerns, or at the behest of his superiors. Then strong encryption became available to the masses, and trust was no longer required. Data could be secured in a way that was physically impossible for others to access, no matter for what reason, no matter how good the excuse, no matter what.

It’s time we had the same thing for money. With e-currency based on cryptographic proof, without the need to trust a third party middleman, money can be secure and transactions effortless.

One of the fundamental building blocks for such a system is digital signatures. A digital coin contains the public key of its owner. To transfer it, the owner signs the coin together with the public key of the next owner. Anyone can check the signatures to verify the chain of ownership. It works well to secure ownership, but leaves one big problem unsolved: double-spending. Any owner could try to re-spend an already spent coin by signing it again to another owner. The usual solution is for a trusted company with a central database to check for double-spending, but that just gets back to the trust model. In its central position, the company can override the users, and the fees needed to support the company make micropayments impractical.

Bitcoin’s solution is to use a peer-to-peer network to check for double-spending. In a nutshell, the network works like a distributed timestamp server, stamping the first transaction to spend a coin. It takes advantage of the nature of information being easy to spread but hard to stifle. For details on how it works, see the design paper at http://www.bitcoin.org/bitcoin.pdf

The result is a distributed system with no single point of failure. Users hold the crypto keys to their own money and transact directly with each other, with the help of the P2P network to check for double-spending.

Satoshi Nakamoto http://www.bitcoin.org

Satoshi Nakamoto February 12, 2009 Source · Permalink

Martien van Steenbergen wrote:

Very interesting. Is this akin to David Chaum’s anonymous digital money? His concept makes sure money is anonymous unless it is compromised, i.e. the same money spent more than once. As soon as it’s compromised, the ‘counterfeiter’ is immediately publicly exposed.

It’s similar in that it uses digital signatures for coins, but different in the approach to privacy and preventing double-spending. The recipient of a Bitcoin payment is able to check whether it is the first spend or not, and second-spends are not accepted. There isn’t an off-line mode where double-spenders are caught and shamed after the fact, because that would require participants to have identities.

To protect privacy, key pairs are used only once, with a new one for every transaction. The owner of a coin is just whoever has its private key.

Of course, the biggest difference is the lack of a central server. That was the Achilles heel of Chaumian systems; when the central company shut down, so did the currency.

Also, in bitcoin, is there a limited supply of money (that must be managed)? Or is money created exactly at the moment of transaction?

There is a limited supply of money. Circulation will be 21,000,000 coins. Transactions only transfer ownership.

Thank you for your questions,

Satoshi

http://www.bitcoin.org/

Satoshi Nakamoto February 13, 2009 Source · Permalink

Martien van Steenbergen wrote:

Would love to also see support for not having to supply and managing money. Would make it easier and cheaper to maintain and results in have sufficient money, always and everywhere. No scarcity, no abundance, exactly the right amount all times, self-organizing.

That’s do-able. It can be programmed to follow any set of rules.

I see Bitcoin as a foundation and first step if you want to implement programmable P2P social currencies like Marc’s ideas and others discussed here. First you need normal, basic P2P currency working. Once that is established and proven out, dynamic smart money is an easy next step.

I love the idea of virtual, non-geographic communities experimenting with new economic paradigms.

Reminds me of: * AardRock >> Wizard Rabbit Treasurer; and * AardRock >> Pekunio

Indeed, it is much like Pekunio in the concept of spraying redundant copies of every transaction to a number of peers on the network, but the implementation is not a reputation network like Wizard Rabbit Treasurer. In fact, Bitcoin does not use reputation at all. It sees the network as just a big crowd and doesn’t much care who it talks to or who tells it something, as long as at least one of them relays the information being broadcast around the network. It doesn’t care because there’s no way to lie to it. Either you tell it crypto proof of something, or it ignores you.

Are you familiar with Ripple?

As trust systems go, Ripple is unique in spreading trust around rather than concentrating it.

Is bitcoin also available as a protocol spec (facilitating differen language bindings and implementations; unite on specs, compete on implementation).

It would be best to refer to the C++ source code. I plan to implement interfaces for using the software to send and receive transactions from any language, so server side code can easily use it for web based e-commerce sites.

Satoshi

Satoshi Nakamoto February 13, 2009 Source · Permalink

Michel Bauwens wrote:

how operational is your project? how soon do you think people will be able to use it in real life?

It’s fully operational and the network is growing. If you try the software, e-mail me your Bitcoin address and I’ll send you a few coins.

We just need to spread the word and keep getting more people interested.

I’ll forward the release introduction in the next message.

Satoshi

http://www.bitcoin.org/