原始文献 / 名言与原则 / 比特币设计

比特币设计

27 条名言。中文为本站译文,每条附日期与原文链接。

日期2008-10-31
来源Bitcoin: A Peer-to-Peer Electronic Cash System · 原文

我们提出了一种不依赖信任的电子交易系统。我们从由数字签名构成的货币的常规框架入手,它能提供强有力的所有权控制,但若没有防止双重支付的方法,这个框架并不完整。为解决这一问题,我们提出使用工作量证明的点对点网络来记录公开的交易历史;只要诚实节点控制多数 CPU 算力,这段历史将迅速变得在计算上让攻击者难以篡改。

英文原文

We have proposed a system for electronic transactions without relying on trust. We started with the usual framework of coins made from digital signatures, which provides strong control of ownership, but is incomplete without a way to prevent double-spending. To solve this, we proposed a peer-to-peer network using proof-of-work to record a public history of transactions that quickly becomes computationally impractical for an attacker to change if honest nodes control a majority of CPU power.

日期2008-10-31
来源Bitcoin: A Peer-to-Peer Electronic Cash System · 原文

虽然可以逐个处理每一枚货币,但转账中每分钱都单独做一笔交易未免过于笨拙。为使价值可以拆分和合并,交易包含多个输入和输出。通常情况下,要么是来自较大前序交易的单一输入,要么是多个合并小额的输入,而输出至多两个:一个用于付款,另一个在有找零时把找零返还给付款方。

英文原文

Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender.

日期2008-10-31
来源Bitcoin: A Peer-to-Peer Electronic Cash System · 原文

不运行完整网络节点也能验证付款。用户只需保留最长工作量证明链的区块头——通过查询网络节点直到确信自己拿到了最长链——并获取将交易链接到其所在时间戳区块的默克尔分支。他无法亲自核验这笔交易,但通过将其链接到链上的某个位置,他能看到某个网络节点已接受了它,之后追加的区块则进一步确认网络接受了它。因此,只要诚实节点控制网络,这种验证就是可靠的;但若网络被攻击者压制,它就更脆弱。网络节点可以自行核验交易,而简化方法可能被攻击者伪造的交易欺骗,持续多久取决于攻击者能压制网络多久。一种防范策略是:接受网络节点在检测到无效区块时发出的警报,提示用户软件下载完整区块及被提醒的交易。

英文原文

It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.
As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

日期2008-10-31
来源Bitcoin: A Peer-to-Peer Electronic Cash System · 原文

一个不含交易的区块头大约 80 字节。假设每 10 分钟产生一个区块,80 字节 × 6 × 24 × 365 = 每年 4.2MB。以 2008 年计算机通常配备 2GB 内存、摩尔定律预测每年增长 1.2GB 来看,即使区块头必须常驻内存,存储也不成问题。

英文原文

A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.

日期2008-10-31
来源Bitcoin: A Peer-to-Peer Electronic Cash System · 原文

一旦一枚货币的最新交易被埋在足够多的区块之下,它之前的已花费交易就可以丢弃以节省磁盘空间。为在不破坏区块哈希的前提下实现这一点,交易被组织成默克尔树进行哈希,只有树根包含在区块哈希中。这样旧区块就可以通过剪除树的分支来压缩,内部哈希无需存储。

英文原文

Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree, with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored.

日期2008-10-31
来源Bitcoin: A Peer-to-Peer Electronic Cash System · 原文

运行网络的步骤如下:

1. 新交易向所有节点广播。
2. 每个节点将新交易收集进一个区块。
3. 每个节点为其区块寻找困难的工作量证明。
4. 当某个节点找到工作量证明,它将区块广播给所有节点。
5. 节点仅在区块内所有交易都有效且未被花费时接受该区块。
6. 节点通过使用已接受区块的哈希作为前一区块哈希、着手创建链中的下一个区块,来表达对该区块的接受。

英文原文

The steps to run the network are as follows:

1. New transactions are broadcast to all nodes.
2. Each node collects new transactions into a block.
3. Each node works on finding a difficult proof-of-work for its block.
4. When a node finds a proof-of-work, it broadcasts the block to all nodes.
5. Nodes accept the block only if all transactions in it are valid and not already spent.
6. Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.

日期2008-11-01
来源Cryptography Mailing List · Bitcoin P2P e-cash paper · 原文

主要特性:
双重支付由点对点网络防止。
没有铸币厂或其他受信任方。
参与者可以匿名。
新货币由 Hashcash 风格的工作量证明产生。
用于新币生成的证明工作也为网络防止双重支付提供动力。

英文原文

The main properties:
Double-spending is prevented with a peer-to-peer network.
No mint or other trusted parties.
Participants can be anonymous.
New coins are made from Hashcash style proof-of-work.
The proof-of-work for new coin generation also powers the network to prevent double-spending.

日期2008-11-01
来源Cryptography Mailing List · Bitcoin P2P e-cash paper · 原文

我一直在开发一种全新的电子现金系统,它完全是点对点的,没有可信第三方。

英文原文

I've been working on a new electronic cash system that's fully peer-to-peer, with no trusted third party.

日期2008-11-17
来源Cryptography Mailing List · Bitcoin P2P e-cash paper · 原文

在过去一年半的编码过程中,我相信我已经把所有这些细节都想通了,而且细节非常多。论文没有涉及功能细节,但源代码很快就会发布。我已把主要文件发给你了。(目前可按需索取,完整版本即将发布)

英文原文

I believe I've worked through all those little details over the last year and a half while coding it, and there were a lot of them. The functional details are not covered in the paper, but the sourcecode is coming soon. I sent you the main files. (available by request at the moment, full release soon)

日期2009-02-11
来源P2P Foundation · Bitcoin open source implementation of P2P currency · 原文

我开发了一种名为比特币的新型开源 P2P 电子现金系统。它完全去中心化,没有中央服务器或可信方,因为一切都基于密码学证明而非信任。试试它,或者看看截图和设计论文:

请下载比特币 v0.1: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

日期2009-02-11
来源P2P Foundation · Bitcoin open source implementation of P2P currency · 原文

结果是一个没有单点故障的分布式系统。用户持有自己资金的密码学密钥,彼此直接交易,并借助 P2P 网络检查双重支付。

英文原文

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.

日期2009-02-18
来源P2P Foundation · Bitcoin open source implementation of P2P currency · 原文

它是一个全球分布式数据库,数据库的增补由多数方同意,遵循一套规则:

——每当有人找到工作量证明生成一个区块,他就获得一些新货币
——工作量证明难度每两周调整一次,目标是全网平均每小时 6 个区块
——每个区块发放的货币每 4 年减半

英文原文

It is a global distributed database, with additions to the database by consent of the majority, based on a set of rules they follow:

- Whenever someone finds proof-of-work to generate a block, they get some new coins
- The proof-of-work difficulty is adjusted every two weeks to target an average of 6 blocks per hour (for the whole network)
- The coins given per block is cut in half every 4 years

日期2010-01-28
来源BitcoinTalk · Re: A newb's test - anyone want to buy a picture for $1? · 原文

我很想找到办法加入一条短消息,但问题是,全世界都能看到这条消息。尽管你可以一再提醒人们这条消息完全没有隐私,但那就像在等一场意外发生。

英文原文

I very much wanted to find some way to include a short message, but the problem is, the whole world would be able to see the message. As much as you may keep reminding people that the message is completely non-private, it would be an accident waiting to happen.

日期2010-02-06
来源BitcoinTalk · Re: How divisible are bitcoins and other market/economic questions · 原文

如果处理小数字让人厌烦,我们可以改动显示小数点的位置。货币数量不变,只是逗号和小数点位置的惯例不同。比如把小数点移动三位:如果之前是 1.00000,现在就显示为 1,000.00。

英文原文

If it gets tiresome working with small numbers, we could change where the display shows the decimal point. Same amount of money, just different convention for where the ","'s and "."'s go. e.g. moving the decimal place 3 places would mean if you had 1.00000 before, now it shows it as 1,000.00.

日期2010-02-06
来源BitcoinTalk · Re: How divisible are bitcoins and other market/economic questions · 原文

如果它真的发展壮大,最终全世界 68 亿人至多只有 2100 万枚货币。但别担心,还有 6 位不显示的小数位,内部总共 8 位小数。显示的是 1.00,内部实际是 1.00000000。如果未来出现大规模通缩,软件可以显示更多小数位。

英文原文

Eventually at most only 21 million coins for 6.8 billion people in the world if it really gets huge.

But don't worry, there are another 6 decimal places that aren't shown, for a total of 8 decimal places internally. It shows 1.00 but internally it's 1.00000000. If there's massive deflation in the future, the software could show more decimal places.

日期2010-02-26
来源BitcoinTalk · Re: New icon/logo · 原文

大家觉得那个外面带两条竖线的 B 符号怎么样?能把它当作我们的标志吗?

英文原文

How does everyone feel about the B symbol with the two lines through the outside? Can we live with that as our logo?

日期2010-05-16
来源BitcoinTalk · Re: Could the bitcoin network be destroyed by someone generating endless bitcoin add · 原文

生成一个新的比特币地址时,只占用你自己电脑上一点磁盘空间(约 500 字节)。就像生成一个新的 PGP 私钥,但因为用的是 ECC,CPU 开销更小。地址空间实际上是无限的。这不会伤害任何人,所以想生成多少就生成多少。

英文原文

When you generate a new bitcoin address, it only takes disk space on your own computer (like 500 bytes). It's like generating a new PGP private key, but less CPU intensive because it's ECC. The address space is effectively unlimited. It doesn't hurt anyone, so generate all you want.

日期2010-05-16
来源BitcoinTalk · Re: removing bitcoin addresses · 原文

你生成的比特币地址会被永久保留。比特币地址必须保留,以证明发送到该地址的任何资金的所有权。如果你删除了一个比特币地址,而有人向它发送了资金,这笔钱就会丢失。它们只有约 500 字节大小。

英文原文

Bitcoin addresses you generate are kept forever. A bitcoin address must be kept to show ownership of anything sent to it. If you were able to delete a bitcoin address and someone sent to it, the money would be lost. They're only about 500 bytes.

日期2010-05-18
来源BitcoinTalk · Re: Ummmm... where did my bitcoins go? · 原文

简化支付验证面向只做交易、不生成也不参与节点网络的轻量级纯客户端用户。他们不需要下载区块,只需下载哈希链——目前约 2MB,验证非常快(不到一秒就能验证整条链)。如果网络变得非常大,比如超过 10 万个节点,我们就用它来让普通用户无需成为完整节点也能做交易。到那时,大多数用户应该开始运行纯客户端软件,只有专业服务器农场继续运行完整网络节点,有点像 Usenet 网络的整合。
SPV 还未实现,在遥远的未来之前不会实现,但当前实现的所有设计都是围绕支持它展开的。

英文原文

Simplified Payment Verification is for lightweight client-only users who only do transactions and don't generate and don't participate in the node network. They wouldn't need to download blocks, just the hash chain, which is currently about 2MB and very quick to verify (less than a second to verify the whole chain). If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without being full blown nodes. At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated.
SPV is not implemented yet, and won't be implemented until far in the future, but all the current implementation is designed around supporting it.

日期2010-06-17
来源BitcoinTalk · Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG · 原文

比特币的本质是,一旦 0.1 版本发布,核心设计就终身钉死不变了。因此,我想让它能支持我能想到的每一种可能的交易类型。问题是,每种类型都需要专门的支持代码和数据字段,无论用不用,而且每次只覆盖一个特例。这会是特例的爆炸。解决方案是脚本,它把问题泛化——交易双方可以把交易描述为一个谓词,由节点网络求值。节点只需理解交易到能判断发送方条件是否满足的程度。

英文原文

The nature of Bitcoin is such that once version 0.1 was released, the core design was set in stone for the rest of its lifetime. Because of that, I wanted to design it to support every possible transaction type I could think of. The problem was, each thing required special support code and data fields whether it was used or not, and only covered one special case at a time. It would have been an explosion of special cases. The solution was script, which generalizes the problem so transacting parties can describe their transaction as a predicate that the node network evaluates. The nodes only need to understand the transaction to the extent of evaluating whether the sender's conditions are met.

日期2010-06-17
来源BitcoinTalk · Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG · 原文

设计支持我几年前设计好的极其多样的可能交易类型。托管交易、担保合约、第三方仲裁、多方签名等等。如果比特币大规模流行起来,未来我们会想探索这些,但它们都必须在最开始就设计好,以确保以后有可能实现。

英文原文

The design supports a tremendous variety of possible transaction types that I designed years ago. Escrow transactions, bonded contracts, third party arbitration, multi-party signature, etc. If Bitcoin catches on in a big way, these are things we'll want to explore in the future, but they all had to be designed at the beginning to make sure they would be possible later.

日期2010-06-18
来源BitcoinTalk · Re: Transactions and Scripts: DUP HASH160 ... EQUALVERIFY CHECKSIG · 原文

从 2007 年开始。某个时刻我确信有一种方法可以完全不需要任何信任,于是忍不住一直想下去。设计的工作量远大于编码。

幸运的是,到目前为止提出的所有问题,都是我之前考虑过并规划过的。

英文原文

Since 2007. At some point I became convinced there was a way to do this without any trust required at all and couldn't resist to keep thinking about it. Much more of the work was designing than coding.

Fortunately, so far all the issues raised have been things I previously considered and planned for.

日期2010-07-23
来源BitcoinTalk · Faster initial block download (5x faster) · 原文

通过调整数据库设置,我把初始区块下载提速了约 5 倍。现在大约 30 分钟就能下载完。

数据库默认是每个区块同步写入磁盘,这并无必要。我改成让它把变更缓存在内存中,批量写出。区块仍然是事务性写入的,所以要么完整变更生效,要么完全不生效,无论哪种情况数据都保持有效状态。

我只在初始区块下载期间启用这个改动。当接近最新区块 2000 个以内时,这些改动会关闭,恢复到旧方式。

英文原文

By making some adjustments to the database settings, I was able to make the initial block download about 5 times faster. It downloads in about 30 minutes.

The database default had it writing each block to disk synchronously, which is not necessary. I changed the settings to let it cache the changes in memory and write them out in a batch. Blocks are still written transactionally, so either the complete change occurs or none of it does, in either case the data is left in a valid state.

I only enabled this change during the initial block download. When you come within 2000 blocks of the latest block, these changes turn off and it slows down to the old way.

日期2010-07-29
来源BitcoinTalk · Re: Implementation bug prior to 0.3.6 · 原文

其实直接给我发私信就行。修的人是我。如果你发现安全漏洞,我肯定希望你私下告诉我,以便在公开之前修复。

英文原文

Actually, it works well to just PM me. I'm the one who's going to be fixing it. If you find a security flaw, I would definitely like to hear from you privately to fix it before it goes public.

日期2010-09-19
来源BitcoinTalk · Re: Bug? /usr/bin/bitcoind "" · 原文

我对那些 bug 跟踪器一无所知。如果要有,我们得做一番充分调研再选。目前只用论坛管理得挺好。我在论坛上更容易看到 bug 帖子,我觉得其他用户也更愿意在这里帮忙解决和追问,而不是在 bug 跟踪器里。关键一步是其他用户帮忙解决那些其实不是 bug、只是误解或困惑的简单问题。我把在论坛上看到的所有未解决 bug 都记了个清单。有些情况下,我还在思考修复的最佳设计。这种软件不是那种未解决 bug 多到需要跟踪器的类型。

英文原文

I don't know anything about any of the bug trackers. If we were to have one, we would have to make a thoroughly researched choice. We're managing pretty well just using the forum. I'm more likely to see bugs posted in the forum, and I think other users are much more likely to help resolve and ask follow up questions here than if they were in a bug tracker. A key step is other users helping resolve the simple stuff that's not really a bug but some misunderstanding or confusion. I keep a list of all unresolved bugs I've seen on the forum. In some cases, I'm still thinking about the best design for the fix. This isn't the kind of software where we can leave so many unresolved bugs that we need a tracker for them.

日期2010-11-13
来源BitcoinTalk · Re: New icon/logo · 原文

如果有艺术才能的人愿意贡献替代方案,我很欢迎。图标/标志的设计初衷是在 16×16 和 20×20 像素尺寸下好看。我觉得它是最好的程序图标,但用作网站图形的大尺寸版本还有改进空间。如果作者能把图形设为公有领域,会简单得多。

英文原文

I'm happy if someone with artistic skill wants to contribute alternatives. The icon/logo was meant to be good as an icon at the 16x16 and 20x20 pixel sizes. I think it's the best program icon, but there's room for improvement at larger sizes for a graphic for use on websites. It'll be a lot simpler if authors could make their graphics public domain.

日期2010-12-05
来源BitcoinTalk · Re: Wikileaks contact info? · 原文

项目需要逐步成长,软件才能在成长中不断加固。我呼吁 WikiLeaks 不要试图使用比特币。比特币还处在婴儿期,是一个很小的测试社区。

英文原文

The project needs to grow gradually so the software can be strengthened along the way. I make this appeal to WikiLeaks not to try to use Bitcoin. Bitcoin is a small beta community in its infancy.