

第一章 区块链:信任的机器
四、比特币的底层技术
在过去的一年中,尽管比特币本身受到质疑,然而人们开始从比特币的支付领域逐渐转移到了比特币底层协议——区块链技术上,越来越多的投资者及普通民众接受了区块链的概念。我们可以通过了解比特币的生成与交易等一系列过程来理解IX块链技术。
(一)比特币的交易
比特币使用整个P2P (互联网金融点对点借贷平台)网络中众多节点构成的分布式数据库,来确认并记录所有的交易行为。在信息传递过程中,发送方通过一把密钥将信息加密,接收方在收到信息后,再通过配对 的另一把密钥对信息进行解密,这就保证了信息传递过程的私密性与安全性。比特币的交易并非简单的支付货币本身。以图I.1中的交易为例,如果B想支付100个比特币给C,那么不仅B需要在交易单上注明金额,而且需要注明这1〇〇个比特币的来源。由于每笔交易单都记录了该笔资金的 前一个拥有者、当前拥有者以及后一个拥有者,就可以依据交易单来实现 对资金的全程追溯。这也是比特币的典型特征之一。最后,当每一笔交易 完成时,系统都会向全网进行广播,告诉所有用户这笔交易的实施。

(二)区块+链
由于每笔交易是相对分散的,为了更好地统汁交易,比特币系统创造 了区块这一概念。每个区块均包含以下三种要素:一是本区块的ID (散 列),二是若干交易单,三是前一个区块的ID。比特币系统大约每10分钟 创建一个区块,其中包含了这段时间里全网范围内发生的所有交易。每个 区块中也包含了前一个区块的ID,这种设计使得每个区块都能找到其前一个节点,如此可一直倒推至起始节点,从而形成了一条完整的交易链条。 因此,从比特币的诞生之日起,全网就形成了一条唯一的主区块链,其中 记录了从比特币诞生以来的所有交易记录,并以每10分钟新增一个节点的 速度无限扩展。这条主区块链在每添加一个节点后,都会向全网广播,从 而使得每台参与比特币交易的电脑上都有一份拷贝。在现实世界中,每笔 非现金交易都由银行系统进行记录,一旦银行计算机网络崩溃,所有数据 都会遗失。而在互联网世界中,比特币的所有交易记录都保存在全球无数台计算机中,只要全球有一台装有比特币程序的计算机还能工作,这条主 区块链就可以被完整地读取。如此高度冗余的交易信息存储,使得比特币 主区块链完全遗失的可能性变得微乎其微。

每个人在对交易的有效性进行验证后都可以根据这些交易数据生成新 区块。为了避免虚假交易或重复交易,使这一新区块被信任,需要构建工 作量证明机制。如果想要修改某个区块内的交易信息,就必须完成该区块 及其后续连接区块的所有T.作量,这种机制大幅提高了篡改信息的难度^ 同时,工作量证明也解决了全网共识问题,全网认可最长的链,因为最长 的链包含了最大的T.作量。
(三)比特币与区块链
综上所述,区块链是一串使用密码学方法相关联产生的数据块。在比 特币的应用中,整个区块链就是比特币的公共账本,网络中的每一个节点 都有比特币交易信息的备份。当发起一个比特币交易时,信息被广播到网 络中,通过算力的比拼而获得合法记账权的矿工将交易信息记录成一个新 的区块连接到区块链中,一旦被记录,信息就不能被随意篡改。比特币是 区块链的一个“杀手级应用”,区块链是比特币的底层技术,且作用绝不 仅仅局限在比特币上。因此,尽管比特币与区块链经常被同时提及,但二 者并不能画上等号。
五、区块链的模型架构
区块链系统由自下而上的数据层、网络层、共识层、激励层、合约层 和应用层组成(如图丨.3所示)。
(一)数据层
数据层封装了底层数据K块的链式结构, 以及相关的非对称公私钥数据加密技术和时间戳等技术,这是整个区块链技术中最底层的数据机构,其中大多数技术都已被发明数十年,并在计算机领域使用了很久,无须担 心其中的安全性,因为如果这些技术出现安全性上的巨大漏洞,则意味着 全球金融技术都会出现严重的问题。中本聪在设计比特币时,为每个区块 设置了 1MB (兆)大小的容量限制,但由亍目前比特币的交易量迅速提升,1MB的区块空间能容纳的交易数量有限,所以要考虑扩容区块链来突 破这个限制。

(二) 网络层
网络层包括分布式组网机制、数据传播机制和数据验证机制等,由于 采用了完全P2P的组网技术,也就意味着K块链是具有自动组网功能的。 这种P2P组网技术,在早先戍用于BT (比特流)和eMule (电驴)之类的 P2P下载软件中,也是一种相对来说非常成熟的技术。
(三) 共识层
共识层主要封装网络节点的各类共识机制算法。共识机制算法是区块 链技术的核心技术,因为这决定了到底由谁来进行记账,记账者选择方式将会影响到整个系统的安全性和可靠性。目前已经出现了十余种共识机制 算法,其中最为知名的有1:作量证明机制(Proof of Work, PoW)、权益证 明机制(Proof of Stake,P〇S)、股份授权证明机制(Delegated Proof ofStake,DPoS)等。在F—节中将会详细介绍这些共识机制。
(四) 激励层
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的 发行机制和分配机制等,该层主要出现在公有链(PublicBlockchain)中,因为在公有链中必须激励遵守规则参与记账的节点,并且惩罚不遵守规则的节点,才能让整个系统朝着良性循环的方向发展。所以激励机制往往也 是一种博弈机制,让更多遵守规则的节点愿意进行记账。而在私有链(Private Blockchain)中,则一定需要进行激励,因为参与记账的节点往往是在链外完成了博弈,也就是可能有强制力或者有其他需求来要求参与 记账。
(五) 合约层
合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础。以以太坊为首的新一代区块链系统试图完善比特币的合约层。比特币尽管也包含了脚本代码,似是并不是图灵完备的,即不支持循环语句;以太坊在比特币结构的基础上,内置了编程语言协议,从而在理论上可以实现任何应用功能。如果把比特币看成是全球账本的话,那么就可以把以 太坊看作是一台“全球计算机”——任何人都可以上传和执行任意的应用 程序,并且程序的有效执行能够得到保证。
(六) 应用层
应用层则封装了区块链的各种应用场景和案例。比如搭建在以太坊上 的各类区块链应用就是部署在应用层,所谓可编程货币和可编程金融也将会搭建在应用层。 该模型中,基于时间戳的链式K块结构、分布式节点的共识机制、基于共识机制的经济激励和灵活可编程的智能合约是区块链技术最具代表性 的创新点。其中数据层、网络层和共识层是构建区块链应用的必要因素,否则将不能称为真正意义上的区块链D而激励层、合约层和应用层则不是每个K块链应用的必要因素,有部分的区块链应用并不完整地包含着这三层结构。
六、区块链的共识机制
区块链通过数学共识机制是非对称加密算法, 即在加密和解密的过程中使用一个“密钥对”,“密钥对”中的两个密钥具有非对称的特点:一是 用其中一个密钥加密后,只存另一个密钥才能解开;二是其中一个密钥公开后,根据公开的密钥其他人也无法算出另一个密钥。在区块链的应用场 景中,一是加密时的密钥是公开的、所有参与者可见的(公钥),每个参与者都可以用自己的公钥来加密一段信息(真实性),在解密时只有信息 的拥有者才能用相应的私钥来解密(保密性),用于接收价值。二是使用 私钥对信息签名,公开后通过其对应的公钥来验证签名,确保信息为真正 的持有人发出。非对称加密使得任何参与者更容易达成共识,将价值交换 中的摩擦边界降到最低,还能实现透明数据后的匿名性,保护个人隐私 (如阁1.4所示)。

(一)工作量证明机制
所谓T.作量证明机制,是指一方(通常为证明者)提交已知难以计算但易于验证的计算结果,而K他任何人都能够通过验证这个答案就确信证 明者为了求得结果已经完成r大量的计算工作。 现代最早丁.作量证明应川是亚当•巴克(Adam Back)于1996年提出的以基于SHA256的丁.作量证明为反垃圾邮件手段的“Hashcash”(哈希现金)。
系统通过要求所有邮件发送时都必须完成大强度的丁.作量证明,这 将使垃圾邮件发送者发大量电子邮件变得很不划算,却仍允许用户们在需 要时向其他用户正常发送邮件。现在比特信为了同样的目的使用了一个类 似它的系统,而Hashcash的算法也已经被改造为以“挖矿”为形式的比特 币安全的核心。 比特币在区块链的生成过程中使用了 P〇W机制,一个符合要求的 Block Hash (区块链散列值)由N个前导零构成,零的个数取决于网络的 难度值。
要得到合理的Block Hash需要经过大量尝试计算,计算时间取决 于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说 明该节点确实经过了大量的尝试计算。当然,这并不能得出计算次数的绝对值,因为寻找合理的Had是一个概率事件。当节点拥有占全网n%的算 力时,该节点即有n/100的概率找到Block Hash。 P〇W看似很神秘,其实在社会中的应用非常广泛。例如,一个人具有的一些技能,如外语口语、乐器或是运动技巧,通常也是一种工作量证明。不用检查四、六级证书,一个人就能流利地说外语或者演奏乐器,那么他一定在这些技能上投入了足够的工作量,而且这个工作量与技能的熟 练程度是呈正相关的。如四、六级证书,一般认为在不能作弊的考试里采 用足够多的客观题,也可以做到证明T.作量的效果,因为一个人从概率上不可能连续蒙对大量的客观题。因此一般认为文凭也是有说服力的。
同样地,飞行员的飞行小时数也说明问题,如果你飞了一万小时还活着,大概 就不是靠运气。在一些其他场合也可以见到PoW的踪影,比如电子游戏里的胜率、 K/D比率,在大量的交战中一定的胜率能说明玩家的实力。同样有些游戏 里的成就系统、装备体系也足-P〇W, —般认为成就点数高的玩家在游戏里投人更多,更不容易诈骗,有时候交易点卡要求装备等级或者成就点数也是这个道理。 有些人认为这一方法存在缺陷,即工作量证明浪费资源,截至2016年 4月,比特币网络的算力达到L300PHS,即每秒完成13331兆亿次SHA256 运算,而最终这些计算没有任何实际意义或科学价值。美国科技网站Vice 曾撰文认为这种方式非常不环保,由于多方面原因,比特币网络消耗的能 源正日益增长。
在最不乐观的情况下,到2020年,比特币网络的耗电量将 达到丹麦整个国家的水平。 但是也有观点认为由于需要巨大的投入,促使攻击比特币区块链将会 是异常艰难的事情,从而确保了比特币巨大的安全特性,同时也是人类目 前构建的最安全的数据库。
(二)权益证明机制
权益证明机制是一种SHAM6的替代方法,从根本上解决了丁作量计算浪费的问题,它不要求证明者完成一定数量的计算工作,而是要求证明 者对某些数量的钱展示所有权,通过每一笔交易销毁的币天数(coin days) 来实现,币天数代表一个特定的币,距离最后一次在网络上交易的时间。
在给定的时间点内,只存在有限币天数,它们在那些长期持有大量货币结 余的人手中持续增加c所以币天数可被视为在网络中权益的代表(proxy, 代理服务器)。每当这些币有交易时,币天数即被销毁,因此不能被重复 使用。 简单地说,PoS就是把IVW由算力决定记账权变成由持有币数(以及 持有的时间)来决定i己账权。在P〇W中,是按照算力占有总算力的百分 比,从而决定你获得本次记账权的概率。在P〇S中,持有币数占系统总币 数的百分比(包括你占有币数所持有的时间),决定着获得本次记账权的 概率。 这就类似于现实世界中的股票制度,在一个公司中,大家是按照持股 比例来获得分红,持冇股权相对较多的人获得更多的分红权。这种安全机 制的理由在于利益捆绑,即大股东比小股东更加关注系统的安全性,所以 发动攻击的话,大股东损失更加惨重。在这个模式下,不持有P〇S的人无 法对PoS构成威胁。PoS的安全取决于持有者,与其他任何因素无关。 反对者认为P〇S会加大整个系统中的贫富差距,持有更多币的人更容易挖到新币,即持有股份更多的人会获得更多的分红,从而导致系统内贫 富差距拉大。但是,拥护者认为,区块链没有理由去解决系统内的贫富差 距问题,而且股份持有者获得相同比例的分红也是现实世界中的原则,并 没有人对此有太多的异议。汴且在PoW中,那些拥有矿机更多、算力更大 的人,也将获得更多的币,W此,p«w也同样存在这样的问题。
(三)股份授权证明机制
DPoS是一种新的保障区块链网络安全的算法。它在尝试解决比特币采
用P〇W以及PoS问题的同时,还能通过实施去中心化的民主方式,用以抵
消中心化所带来的负面效应。
在系统中,每个币就等于一张选票,持有币的人可以根据自己持有币
的数量,来投出自己的若干张选票给自己信任的受托人。这些受托人可以 是对系统有贡献的人,也可以是投票者所信赖的人,并且受托人并不一定 需要拥有最多的系统资源。投票可以在任意时间进行,而系统会选出获得 投票数量最多的101人(也可以是其他数量)作为系统受托人,他们的工 作是签署(生产)区块,且在每个区块被签署之前,必须先验证前一个区 块已经被受信任节点所签署。
这种共识机制模仿了公司的董事会制度,或者是议会制度。能够让数 字货币持有者将维护系统记账和安全的T作交给有能力有时间的人来专职 从事该项丁.作。由于受托人进行记账也能够获得新币的奖励,所以他们会 努力拉票,并且维护好与投票者的关系及试图通过参与系统的发展,从而 吸引更多人给他投票。 这解决了 P〇W中的一个主要问题,即在比特币的P〇W系统中,持有 比特币的人对于系统没有发言权,他们不能参与记账决定权,也不能左右 系统的发展,因为系统发言权主要掌握在矿T:和开发者手中。而如果矿工 或者开发者做出了对比特币持有者不利的决定,比特币持有者除了自己离 开系统之外,没有任何可以做的。而在DPoS中,持有者对于记账者拥有 足够的选举权,任何试图对系统不利或者作恶的人都随时可能被投票者从 受托人的位置直接拉下。DPoS另外一个巨大优势就是由于记账人数量可控,并且轮流进行记 账,能够通过提供更好的软硬件环境来构建效率极高的区块链系统。目前 看来,DPoS似乎是效率最高的区块链系统,在理想环境下,能够实现每秒 数十万笔的交易数量。
(四)混合证明机制
由于不同共识证明机制有着不同的优劣势,有些系统选择采用多种共 识机制的方式来取长补短。较为典型的就是以太坊采用了 P〇W + P〇S的共 识机制。




