
比特币白皮书:一种点对点的电子现金系统.pdf
13页比特币:一种点对点的电子现金系统 Bitcoin: A Peer-to-Peer Electronic Cash System 原文作者: 中本聪( Satoshi Nakamoto) 执行翻译: 巴比特 |关注虚拟经济 独家赞助: B 论文 作者邮箱: Satoshin@ www.bitcoin.org [摘要 ]:本文提出了一种完全通过点对点技术实现的电 子现金系统,它使得支付能够直接由一方发起并支付给另外一方,中间 不需要通过任何的金融机构 虽然 数字签名( Digital signatures)部分解决了这个问题, 但是 如果仍然需要第三方的支持才能防止双重支付( double-spending)的话,那么这种系统 也就 失去 了 存在的价值我们 (we)在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题该网络通过随机散列( hashing)对全部交易加上时间戳( timestamps),将它 们合 并入一个不断延伸的基于随机散列的 工作量证明 ( proof-of-work)的链条作为交易 记录 ,除非重新完成全部的 工作量证明 ,形成的交易记录将不可更改。
最长的链条不仅将作为被观察到的事件序列( sequence)的证明,而且被看做是来自 CPU计算能力最大的池( pool)只要大多数的 CPU 计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成 最长的 、 超过攻击者的链条 这个系统本身需要的基础设施非常少信息尽最大努力在全网传播 即可 ,节点 (nodes)可以随时离开和重新加入网络,并 将 最长的 工作量证明 链条 作为在 该节点 离线期间 发生的交易的证明 1. 简介 互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付 信息虽然在绝大 多数情况下 这类系统 都运作良好,但是这类系统仍然内生性地受制于“基于信用的模式 ” (trust based model)的弱点 人们 无法实现完全不可逆的交易,因为金融机构总是不可避免地会 出面协调争端而金融中介的存在,也会增加交易的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交易并且 潜在的损失还在于,很多商品和服务本身是无法退货的,如果缺乏不可逆 的支付手段,互联网的贸易就大大受限因为有潜在的退款的可能,比特币:一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 2 就需要交易双方拥有信任。
此外,因为 商家也必须 对 自己的客户 小心 提防 , 所以 会向客户索取完全不必要的个人信息而 实际的商业行为中,一定比例的欺诈性客户也被 认为 是不可避免的,相关损失视作 销售费用 处理 而 在使用物理现金的情况下, 因为此时没有第三方信用中介的存在, 这些销售费用和支付问题上的不确定性 却 是可以避免的 所以 ,我们非常需要 这样 一种电子支付系统,它基于密码学原理而不 基于信用,使得任何达成一致的双方,能够直接进行支付, 从 而不需要第三方中介的参与 杜绝回滚 (reverse)支付交易 的可能 ,这 就可以 保护特定的卖家免于欺诈; 而对于 想要保护买家 的人来说,在此环境下设立通常的第三方担保机制 也可谓轻松加愉快 在这篇论文中,我们 (we)将提出一种通过点对点分布式的时间戳服务器来生成 依照时间前后排列并加以记录的电子交易证明,从而解决双重支付问题只要诚实的节点所控制的计算能力的总和,大于有合作关系的 (cooperating)攻击者的计算能力的总和,该系统就是安全的 2. 交易 (Transactions) 我们定义,一枚电子货币( an electronic coin)是 这样的一串数字签名: 每一位所有者通过对前一次交易和下一位拥有者的公钥 (Public key) 签署一个随机 散列的数字签名,并将这个签名附加 在这枚电子 货币的末尾,电子货币就发送给了下一位所有者。
而收款人通过对签名进行检验,就能够验证该链条的所有者 比特币:一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 3 该过程的问题在于,收款人将难以检验,之前的某位所有者,是否 对这枚电子货币进行 了双重支付通常的解决方案,就是引入信得过的第三方权威,或者类似于造币厂 (mint)的机构,来对每一笔交易进行检验,以防止双重支付在每一笔交易结束后 ,这枚电子货币就要被造币厂回收,而造币厂将发行一枚新的电子货币;而 只有 造币厂直接发行的电子货币,才算作有效,这样就能够防止双重支付可是 该解决方案的问题在于,整个货币系统的命运完全依 赖于运作造币厂的公司,因为每一笔交易都要经过该造币厂的确认,而该造币厂就好比是一家银行 我们需要收款人有某种方法,能够确保之前的所有者没有对更早发生的交易实施签名从逻辑上看,为了达到目的,实际上我们 需要关注的 只 是于本 交易之 前发生的交易,而 不需要关注这笔交易发生之后 是否 会 有双重支付的尝试为了确保某一次交易 是 不存 在 的 , 那么 唯一的方法就是获悉之前发生过的所有交易。
在造币厂模型里面,造币厂获悉所有的交易,并且 决定了 交易完成的先后顺序如果想要在电子系统中排除 第三方中介机构,那么交易 信息 就应当 被公开宣布( publicly announced) 1,我们需要整个系统内的所有参与者,都有唯一公认的历史交易序列收款人需要确保在 交易期间绝大多数的节点都认同 该交易是首次出现 3. 时间戳服务器 (Timestamp server) 本解决方案首先提出一个“时间戳服务器”时间戳服务器通过对 以区块 (block)形式存在的 一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻组网络( Usenet)的发帖一样 2345显然,该时间戳能够证实特定数据必然于某特定时刻 是的确存在的 ,因为只有在该时刻 存在了才能获取相应的 随机散列值 每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强 (reinforcing),这样就形成了一个链条( Chain) 1 W Dai(戴伟) ,a scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help(一种能够 借助电子假名在群体内部相互支付 并迫使个体 遵守规则且不需要外界协助的电子现金机制) , “B-money”, 1998 2 H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements,"(在最小化信任的基础上设计一种时间戳服务器) In 20th Symposium on Information Theory in the Benelux, May 1999. 3 S. Haber, W.S. Stornetta, "How to time-stamp a digital document," (怎样为电子文件添加时间戳) In Journal of Cryptology, vol 3, No.2, pages 99-111, 1991. 4 D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping,"(提升电子时间戳的效率和可靠性) In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. 5 S. Haber, W.S. Stornetta, "Secure names for bit-strings,"(比特字串的安全命名) In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997. 比特币:一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 4 4. 工作量证明 ( Proof-of-Work) 为了在点对点的基础上构建一组分散化的时间戳服务器,仅仅像报纸或世界性新闻网络组一样工作是不够的,我们还需要一个类似于亚当 · 柏克( Adam Back)提出的哈希现金( Hashcash)6。
在进行随机散列运算时, 工作量证明机制 引入了对某一个特定值的扫描工作,比方说 SHA-256下 ,随机散列值以一个或多个 0 开始那么随着 0 的数目的上升 , 找到这个解所需要的工作量将呈指数增长, 但是 检验 结果 仅需要一次随机散列运算 我们在区块中补增一个随机数 (Nonce),这个随机数要使得该给定 区块的随机散列值出现了所需的那么多个 0 我们通过反复尝试来找到这个随机数 , 找到为止 这样我们就构建了一个工作量证明机制只要该 CPU 耗费的 工作量能够满足该工作量证明机制,那么除非重新完成相当的 工作量, 该区块的信息就不可更改由于之后的区块是链接在该区 块之后的,所以 想要更改该 区块中的信息,就 还 需要重新完成之后所有 区块 的 全部 工作量 同时,该工 作量证明机制还解决了在集体投票表决时, 谁是大多数的问题如果决定大多6 A. Back, "Hashcash - a denial of service counter-measure,"(哈希现金 —— 拒绝服务式攻击的克制 方法)http://www.hashcash.org/papers/hashcash.pdf, 2002. 比特币:一种点对点( Peer-to-Peer)的电子现金系统 执行翻译 B 独家赞助 5 数的方式是基于 IP地址的,一 IP地址一票,那么如果有人拥有分配大量 IP地址的权力,则该机制就被破坏了。
而工作量证明机制的本质则是一 CPU一票大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量如果大多数的 CPU为诚实的节点控制,那么诚实的链条将以 最快 的速度延长 ,并超越其他的竞争链条如果想 要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加 该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量 我们将在后文证明,设想 一个较慢的攻击者 试图赶上 随后的区块,那么其成功概率将呈指数化递减 另一个问题是,硬。
