比特币-中本聪原文中文版

上传人:公**** 文档编号:506573815 上传时间:2023-09-01 格式:DOCX 页数:12 大小:209.48KB
返回 下载 相关 举报
比特币-中本聪原文中文版_第1页
第1页 / 共12页
比特币-中本聪原文中文版_第2页
第2页 / 共12页
比特币-中本聪原文中文版_第3页
第3页 / 共12页
比特币-中本聪原文中文版_第4页
第4页 / 共12页
比特币-中本聪原文中文版_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《比特币-中本聪原文中文版》由会员分享,可在线阅读,更多相关《比特币-中本聪原文中文版(12页珍藏版)》请在金锄头文库上搜索。

1、比特币:一种点对点的电子现金系统 Bitcoin: APeer-to-Peer Electronic Cash System 原文作者:中本聪(Satoshi Nakamoto)摘要:本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直 接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名Digital sig natures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spe ndi ng)的话,那么这种系统也就失去了存在的价值。我们(we)在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该

2、网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随 机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证 明,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(sequenee) 的证明,而且被看做是来自CPU计算能力最大的池(pool)。只要大多数的CPU计算能力 都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。 这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(no des)可以 随时离开和重新加入网络,并将最长的工作

3、量证明链条作为在该节点离线期间发生的交易的 证明。1. 简介互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付 信息。虽然在绝大多数情况下这类系统都运作良好,但是这类系统仍然内生性地受 制于“基于信用的模式”(trust based model啲弱点。人们无法实现完全不可逆的交易, 因为金融机构总是不可避免地会出面协调争端。而金融中介的存在,也会增加交易 的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交易。并 且潜在的损失还在于,很多商品和服务本身是无法退货的,如果缺乏不可逆的支付 手段,互联网的贸易就大大受限。因为有潜在的退款的可能,就需要交易双方拥有

4、信 任。此外,因为商家也必须对自己的客户小心提防,所以会向客户索取完全不必要 的个人信息。而实际的商业行为中,一定比例的欺诈性客户也被认为是不可避免的, 相关损失视作销售费用处理。而在使用物理现金的情况下,因为此时没有第三方信 用中介的存在,这些销售费用和支付问题上的不确定性却是可以避免的。 所以,我 们非常需要这样一种电子支付系统,它基于密码学原理而不基于信用,使得任何达 成一致的双方,能够直接进行支付,从而不需要第三方中介的参与。杜绝回滚(reverse) 支付交易的可能,这就可以保护特定的卖家免于欺诈;而对于想要保护买家的人来 说,在此环境下设立通常的第三方担保机制也可谓轻松加愉快。在这

5、篇论文中,我 们(we)将提出一种通过点对点分布式的时间戳服务器来生成依照时间前后排列并加 以记录的电子交易证明,从而解决双重支付问题。只要诚实的节点所控制的计算能 力的总和,大于有合作关系的(cooperating)攻击者的计算能力的总和,该系统就是安 全的。2.交易仃ransactions)我们定义,一枚电子货币(an electro nic eoi n)是这样的一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥(Public key)签署一个随机散列的数 字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所 有者。而收款人通过对签名进行检验,就能够验证该链

6、条的所有者。该过程的问题在于,收款人将难以检验,之前的某位所有者,是否对这枚电子货币 进行了双重支付。通常的解决方案,就是引入信得过的第三方权威,或者类似于造 币厂(mi nt)的机构,来对每一笔交易进行检验,以防止双重支付。在每一笔交易结束 后,这枚电子货币就要被造币厂回收,而造币厂将发行一枚新的电子货币;而只有 造币厂直接发行的电子货币,才算作有效,这样就能够防止双重支付。可是该解决 方案的问题在于,整个货币系统的命运完全依赖于运作造币厂的公司,因为每一笔 交易都要经过该造币厂的确认,而该造币厂就好比是一家银行。我们需要收款人有某种方法,能够确保之前的所有者没有对更早发生的交易实施签 名。

7、从逻辑上看,为了达到目的,实际上我们需要关注的只是于本交易之前发生的 交易,而不需要关注这笔交易发生之后是否会有双重支付的尝试。为了确保某一次 交易是不存在的,那么唯一的方法就是获悉之前发生过的所有交易。在造币厂模型 里面,造币厂获悉所有的交易,并且决定了交易完成的先后顺序。如果想要在电子 系统中排除第三方中介机构,那么交易信息就应当被公开宣布(publicly ann ou need) 1,我们需要整个系统内的所有参与者,都有唯一公认的历史交易序列。收款人需要 确保在交易期间绝大多数的节点都认同该交易是首次出现。3.时间戳服务器(Timestamp server)本解决方案首先提出一个“时间

8、戳服务器”。时间戳服务器通过对以区块(block)形式存 在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻 或世界性新闻组网络(Usenet)的发帖一样2345。显然,该时间戳能够证实特定数据 必然于某特定时刻是的确存在的,因为只有在该时刻存在了才能获取相应的随机散 列值。每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳 都对之前的一个时间戳进行增强(reinforcing),这样就形成了一个链条(Chain)。4.工作量证明(Proof-of-Work) 为了在点对点的基础上构建一组分散化的时间戳服务器,仅仅像报纸或世界性新闻 网络组一样工作是不够的

9、,我们还需要一个类似于亚当柏克Adam Back)提出的 哈希现金(Hashcash) 6。在进行随机散列运算时,工作量证明机制引入了对某一个 特定值的扫描工作,比方说SHA-256下,随机散列值以一个或多个0开始。那么随着0 的数目的上升, 找到这个解所需要的工作量将呈指数增长,但是检验结果仅需要一 次随机散列运算。我们在区块中补增一个随机数(Nonee),这个随机数要使得该给 定区块的随机散列值出现了所需的那么多个0。我们通过反复尝试来找到这个随机数 找到为止。这样我们就构建了一个工作量证明机制。只要该CPU耗费的工作量能够 满足该工作量证明机制,那么除非重新完成相当的工作量,该区块的信息

10、就不可更 改。由于之后的区块是链接在该区块之后的,所以想要更改该区块中的信息,就还 需要重新完成之后所有区块的全部工作量。数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权 力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU票。“大多数”的 决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚 实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如 果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区 块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。我们将在后文证 明,设想一个较慢的攻击者

11、试图赶上随后的区块,那么其成功概率将呈指数化递减。 另一个问题是,硬件的运算速度在高速增长,且节点参与网络的程度会有所起伏。为了解决这个问题,工作量证明的难度(the proof-of-work difficulty )将采用移动平均 目标的方法来确定,即令难度指向令每小时生成区块的速度为某一预设的平均数。 如果区块生成的速度过快,那么难度就会提高。5. 网络运行该网络的步骤如下:1) 新的交易向全网进行广播;2) 每一个节点都将收到的交易信息纳入一个区块中;3) 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;4) 当一个节点找到了一个工作量证明,它就向全网进行广播;5) 当且

12、仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才 认同该区块的有效性;6) 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾, 制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机 散列值。节点始终都将最长的链条视为正确的链条,并持续工作和延长它。如果有两个节点 同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差 别。当此情形,他们将在率先收到的区块基础上进行工作,但也会保留另外一个链 条,以防后者变成最长的链条。该僵局(tie)的打破要等到下一个工作量证明被发 现,而其中的一条链条被证实为是较长的一条,那么在另一

13、条分支链条上工作的节 点将转换阵营,开始在较长的链条上工作。所谓“新的交易要广播”,实际上不需要抵达全部的节点。只要交易信息能够抵达足 够多的节点,那么他们将很快被整合进一个区块中。而区块的广播对被丢弃的信息 是具有容错能力的。如果一个节点没有收到某特定区块,那么该节点将会发现自己 缺失了某个区块,也就可以提出自己下载该区块的请求。6. 激励 我们约定如此:每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块 创造者拥有的新的电子货币。这样就增加了节点支持该网络的激励,并在没有中央 集权机构发行货币的情况下,提供了一种将电子货币分配到流通领域的一种方法。 这种将一定数量新货币持续增添到货

14、币系统中的方法,非常类似于耗费资源去挖掘 金矿并将黄金注入到流通领域。此时,CPU的时间和电力消耗就是消耗的资源。另 外一个激励的来源则是交易费(transaction fees)。如果某笔交易的输出值小于输 入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。只要既定数量 的电子货币已经进入流通,那么激励机制就可以逐渐转换为完全依靠交易费,那么 本货币系统就能够免于通货膨胀。 激励系统也有助于鼓励节点保持诚实。如果有一 个贪婪的攻击者能够调集比所有诚实节点加起来还要多的CPU计算力,那么他就面 临一个选择:要么将其用于诚实工作产生新的电子货币,或者将其用于进行二次支 付攻击。那么他就

15、会发现,按照规则行事、诚实工作是更有利可图的。因为该等规 则使得他能够拥有更多的电子货币,而不是破坏这个系统使得其自身财富的有效性 受损。7. 回收硬盘空间如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数 据,以回收硬盘空间。为了同时确保不损害区块的随机散列值,交易信息被随机散 列时,被构建成一种Merkle树(Merkle tree)7的形态,使得只有根(root)被纳入了区 块的随机散列值。通过将该树(tree)的分支拔除(stubbing)的方法,老区块就能 被压缩。而内部的随机散列值是不必保存的。不含交易信息的区块头(Block header)大小仅有80字节。

16、如果我们设定区块生成 的速率为每10分钟一个,那么每一年产生的数据位4.2MB。(80 bytes * 6 * 24 * 365 =4.2MB)。2008年,PC系统通常的内存容量为2GB,按照摩尔定律的预言,即使 将全部的区块头存储于内存之中都不是问题。8. 简化的支付确认( Simplified Payment Verification)在不运行完整网络节点的情况下,也能够对支付进行检验。一个用户需要保留最长 的工作量证明链条的区块头的拷贝,它可以不断向网络发起询问,直到它确信自己 拥有最长的链条,并能够通过merkle的分支通向它被加上时间戳并纳入区块的那次 交易。节点想要自行检验该交易的有效性原本是不可能的,但通过追溯到链条的某 个位置,它就能看到某个节点曾经接受过它,并且于其后追加的区块也进一步证明 全网曾经接受了它。当此情形,只要诚实的节点控制了网络,检验机制就是可靠的。但是,当全网被一 个计算力占优的攻击者攻击时,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号