005 解密《比特币技术白皮书》
区块链科普系列第5天:解密《比特币技术白皮书》
文/杜豆豆
谜一样的中本聪
前面我讲区块链演变和架构时,提到了比特币的来源。其中,有一个论文,可谓是当仁不让的必读经典,就是称为“比特币技术白皮书”的《 Bitcoin:A Peer-to-Peer Electronic Cash System》,翻译成中文就是《 比特币:一种点对点的电子现金系统》。
这篇技术论文通常称为比特币技术白皮书, 因为它基本就是宣告了比特币的诞生。 今天,我们就来解密一下这个在区块链技术发展史上具有重大意义的技术白皮书。
中本聪研究所的文献列表有这么一句话:Bitcoin was not forged in a vacuum. These works serve to contextualize Bitcoin into the broader story of cryptography and freedom. 翻译成中文就是:“比特币不是在真空中创造的。这些工作(文献列表中的所有论文)使比特币融入到了更广泛的密码学和自由的历史之中。”
《 比特币:一种点对点的电子现金系统》这份文件是在 2008 年11月由一个叫 Satoshi Nakamoto(中本聪)的人发布的。但是,他并没有把它发布在什么知名论坛或者学术期刊上,而是发布在 一个小众的密码学讨论小组。
在这份白皮书发布后的第二年,也就是2009年1月3日, 比特币软件就正式启动运行了,也就是在这个时候,世界上第一个区块链数据诞生了,而这个由中本聪构造出来的第一个区块,也称为创世区块,代表神话中创世元灵的意思。
从此以后, 比特币以及由比特币技术衍生出来的各种应用就一发不可收拾,开启了互联网应用的一个新纪元。
说完这个白皮书的重要性。我们再回到白皮书本身来。先看标题, 注意两个关键字:“ 点对点” 和“ 电子现金”。
什么叫做“ 点对点”呢?就是指这个软件不需要一个特定的服务器。
比如我们登录QQ就需要连接腾讯的 QQ 服务器, 登录支付宝就需要连接阿里巴巴的支付宝服务器, 倘若这些服务器关闭或者出个问题什么的, 那就没法正常使用这些软件了。
而点对点的网络结构, 并不依赖于某一个或者某一 群特定的 服务器, 相当于人人都是服务器, 人人也都是使用者。
那“ 电子现金”又是什么意思呢? 顾名思义, 现金就是钱,“ 电子现金”就是在网络世界里,用数字形式交易的钱。
也就是说,这份白皮书介绍的是一种数字货币系统, 这个系统的运行不依赖于某些特定服务器, 而是通过点对点网络( P2P) 结构来运行的。
在摘要中,中本聪对其论文进行了总体概括:
“本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值。我们(we)在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(sequence)的证明,而且被看做是来自CPU计算能力最大的池(pool)。只要大多数的CPU计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。”
一大堆技术概念,有点懵,是吧?不要紧,正文里都有解释。
翻开正文可以发现, 整个篇幅主要介绍了11个关键点。
(1)简介
中本聪在开篇,假设了一个场景: 如何不通过一个所谓的权威第三方结构( 比如银行)来构建一个可信的交易网络呢?
这个场景的提出时很有见地和现实性的。
我们如今也看到,其实银行有时也是不可信的。我们也不时在新闻里,看到一些金融诈骗的大案,大多是银行中内鬼的行为。而且2008年的金融危机,尤其是银行倒闭,也是不可不正视的世界性课题。所以,中本聪的思考,感觉有点象牛顿的苹果,貌似不经意的问题,之后产生的意义,可谓是深远的。
问题提出来了,那该怎么办呢?中本聪在后面进行了一一阐述。
(2)交易
这部分,中本聪描述了一种通过密钥签名进行交易验证的方式, 实际上就是计算机密码学在比特币中的应用。
我们在银行转账交易时,用什么来证明自己呢? 是通过账户和密码, 必要的时候还可以通过身份证确认。 而在比特币系统中没有银行这样一个角色, 只有靠现代计算机密码学技术。
密码学技术在比特币中的应用是贯穿在各个环节的,是比特币系统的骨骼。 因为,说到底,比特币要解决的核心问题是信任。
(3) 时间戳服务器
这部分提到了区块以及通过时间戳运算连接成一条链的概念,这也是区块链概念的来源, 同时在这里也说明了比特币数据的存储方式。
(4) 工作量证明
这部分介绍了一种点对点网络中如何对各自的数据进行一致确认的算法。
为什么叫工作量证明呢? 因为这种算法很消耗 CPU 的算力, 等于人们干活一样, 是要付出工作劳动的。
(5) 网络
比特币软件是一种网络软件, 而且是一 个不依靠某个服务器来交换数据的网络软件。那么 一个个节点之间, 如何确认一笔笔交易数据呢? 这部分介绍 了交易确认的过程,实际上就是比特币网络的应用协议。
(6) 激励
激励就是奖励的意思。 比特币软件的数据一致性确认是需要耗费 CPU 算力的, 那凭什么有人愿意来耗费这些算力呢?因为,系统会奖励你比特币, 还有别人交易的手续费。
(7) 回收硬盘空间
比特币系统从创世区块开始, 大约每 10 分钟产生一个区块, 也意味着区块链账本的“ 体积” 会一直增长。实际上, 只有运行全功能节点的客户端才会一直保持完整的区块链数据。
这里提出了 一个思路, 删除过老的一些交易数据, 同时不破坏区块的随机哈希值, 通过这种方法压缩区块数据。
(8) 简化的支付确认
比特币客户端的数据量很大, 这么 一来, 等于不管是用比特币系统干什么都要带上大量的数据, 很不方便, 而且也会限制在一些终端( 比如手机) 上的使用。
这部分提出 了一个 模型, 这个模型主要是为比特币的支付服务的。 在这个模型下实现的比特币支付功能并不需要携带那么庞大的数据, 而只需要保留体积相对很小的区 块头。
(9) 价值的组合与分割
这部分介绍的是比特币中的交易事务组成 方式。
① 什么叫价值? 在比特币系统中,价值就是比特币。
② 什么叫组合?比如我口袋里有5枚1元硬币,1张2元纸币1张10元纸币, 我要给你5块钱, 怎么给呢? 我可以给你5 枚1元硬币,也可以给你3枚1元硬币加上1张2元纸币,这就是不同的组合。
③ 什么叫分割? 分割其实就是转出的意思,我通过不同的组合,构成了总计 5元 的金额, 然后转出给你,这个过程就是价值的组合和重新分割。
在这个例子中, 还有一张10元的,假如我直接转了你10元,那会怎样? 这就需要找零5元 了,找零其实也是一种重新价值分割。
(10) 隐私
作为一个货币系统, 保密性是人人都会关心的。
传统体系,完全依赖第三方的保护,比如大家相信银行,银行也设立了各种管理制度和方法来防止账户和交易信息的泄密。
比特币系统则不同, 它不依赖谁, 每个人在比特币系统中也不用登记身份证、 名称、 性别等, 就是一个地址,谁也不知道地址后面代表的是谁。
而且, 只要你需要, 可以自己创建任意多个地址, 这使得比特币系统中的交易带有很大的匿名性和隐秘性。
(11) 计算
这部分主要是站在概率统计的角度计算了一下攻击者成功的概率, 以及经过多少个区块后还能攻击成功的概率。
以上,就是对比特币技术白皮书《 比特币:一种点对点的电子现金系统》的解读。
比特币:一种点对点的电子现金系统本文参考资料:《白话区块链》,《中本聪研究所文献列表》(http://nakamotoinstitute.org/literature/),白皮书 的原文( https:// bitcoin. org/ bitcoin. pdf), 巴比特网站( http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system)。
(未完待续)
原创不易,非授权不得转载,转载请注明出处。如果您觉的文章有用,别忘了在文末点赞哦。
读更多好书,请访问我的文集:《一生必读的万卷好书》
欢迎加入“万卷好书读书会”:在这个群里,大家可以分享电子书,交流读书心得,以文会友,自由点赞支持。目前该群已超过100人,需要群主发邀请才能进,有兴趣的简友请加微信dudoudou189联系我。读书会座右铭:在浮躁的时代,安心读书写作,养育心灵。
我已晋升最高级别的“简书会员合伙人”,欢迎使用我的专属会员推广链接:https://www.jianshu.com/mobile/club?ref=11f3ab2f1288,订阅会员,享受最优惠福利。