原始文献 / 论坛帖 / Bitcoin open source implementation of P2P currency
Bitcoin open source implementation of P2P currency
P2P Foundation · 2009-02-11 22:27:00 UTC
我开发了一种名为比特币的新型开源点对点电子货币系统。它是完全去中心化的,没有中央服务器,也不依赖任何受信任方,因为一切都基于密码学证明而非信任。欢迎试用,或查看截图和设计论文:
在 http://www.bitcoin.org 下载 Bitcoin v0.1
传统货币的根本问题是,为了让它运转,需要太多的信任。中央银行必须被信任不会让货币贬值,但法币的历史上充满了这种信任被辜负的记录。银行必须被信任会保管我们的钱、电子转账,但它们只留着微不足道的一点准备金,把钱贷出去,掀起一波又一波的信贷泡沫。我们必须信任它们保护我们的隐私,信任它们不会让身份窃贼掏空我们的账户。它们庞大的管理成本让小额支付成为不可能。
一代人之前,多用户分时计算机系统也有类似的问题。在强加密出现之前,用户不得不依靠密码保护来保障文件安全,把信任寄托于系统管理员会保护他们的信息隐私。管理员总可以根据自己的判断,在隐私原则与其他考量之间权衡,或在上级的要求下,随时凌驾于隐私之上。后来强加密走进了大众,信任不再是必需。数据可以用一种别人从物理上根本无法访问的方式来保护,无论出于什么理由,无论借口多么冠冕堂皇,都不行。
我们的货币也该有同样的东西了。有了基于密码学证明的电子货币,无需信任第三方中介,货币可以安全,交易也可以轻松。
这类系统的一项基本构建块是数字签名。一枚数字币包含其所有者的公钥。要转移它,所有者将该币连同下一个所有者的公钥一起签名。任何人都可以验证签名,以确认所有权链。用它来保障所有权很有效,但还有一个大问题没有解决:双重支付。任何所有者都可以通过把一枚已经花掉的币再次签名给另一个所有者,来尝试重复花费。通常的解决办法是让一家受信任的公司用中央数据库来检查双重支付,但这又回到了信任模型。处于中央位置的公司可以凌驾于用户之上,而维持公司运转所需的费用又让小额支付不切实际。
比特币的解决办法是用点对点网络来检查双重支付。简而言之,网络就像一台分布式时间戳服务器,为第一笔花费某枚币的交易盖上时间戳。它利用了信息易于传播、难以压制的特性。工作原理的细节请看设计论文:http://www.bitcoin.org/bitcoin.pdf
最终得到的是一个没有单点故障的分布式系统。用户自己持有自己资金的密码学密钥,直接彼此交易,并借助点对点网络来检查双重支付。
Satoshi Nakamoto
http://www.bitcoin.org
英文原文
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
