区块链轻松上手:原理、源码、搭建与应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-19 10:23:01

点击下载

作者:Leader-us 等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

区块链轻松上手:原理、源码、搭建与应用

区块链轻松上手:原理、源码、搭建与应用试读:

前言

在说什么是区块链之前,先说一个小故事。

看过《三国演义》的人都知道,刘备自称刘皇叔,是中山靖王之后,以匡扶汉室之名,拉拢一批人建立了蜀国,形成三国鼎立之势。但回过头来看,大家为什么相信他真的是“刘皇叔”呢?其实在《三国演义》里有这么一段描述:

帝宣上殿,问曰:“卿祖何人?”玄德奏曰:“臣乃中山靖王之后,孝景皇帝阁下玄孙,刘雄之孙,刘弘之子也。”帝教取宗族世谱检看,令宗正卿宣读曰:“孝景皇帝生十四子。第七子乃中山靖王刘胜。胜生陆城亭侯刘贞。贞生沛侯刘昂。昂生漳侯刘禄。禄生沂水侯刘恋。恋生钦阳侯刘英。英生安国侯刘建。建生广陵侯刘哀。哀生胶水侯刘宪。宪生祖邑侯刘舒。舒生祁阳侯刘谊。谊生原泽侯刘必。必生颍川侯刘达。达生丰灵侯刘不疑。不疑生济川侯刘惠。惠生东郡范令刘雄。雄生刘弘。弘不仕。刘备乃刘弘之子也。”帝排世谱,则玄德乃帝之叔也。帝大喜,请入偏殿叙叔侄之礼……

原来就是翻出族谱,追溯整整十八代,才相信刘备为汉室之后。事实上,社会因为“信任”问题需要付出极大的代价,而解决该问题的方法之一就是从可以追溯且不能修改的记录中找到信任的依据。这种信任的实现方式就是讨论区块链的基础。

区块链到底是什么?比特币为什么这么值钱?那些看不见也摸不着的数字货币到底是不是传销?毫无疑问,作为区块链技术的应用之一——比特币已经大获成功,区块链所涉及的账本、分布式与去中心化、共识算法、智能合约、数字密钥、隐私保护、可信计算等技术也变得非常热门,基于这些技术的大量项目涌现。而区块链的发展价值就在于试图通过技术手段降低社会信任成本,并提高社会生产效率。

当然,区块链现在还有不足之处:除了比特币,还没有特别成功的典型应用。究其原因,一方面是区块链在高并发、低延迟的交易场景下还有许多技术问题需要解决;另一方面是只能保证线上数据可信的特性限制了其应用场景。在大规模应用区块链时,社会的接受成本也是我们必须考虑的要素。在商业利益的驱动下,即使区块链能够提供各种各样的好处,选择应用区块链也只是一种纳什均衡而非最优策略。无论如何,区块链并不是“包治百病的灵丹妙药”,它还只是一个崭新的领域,正在蓬勃发展。

本书总计6章:第1章从以比特币为代表的数字货币的历史与现状开始,讲解区块链的概念,并通过一个简单示例让读者与Fabric有一次“亲密接触”;第2章阐述区块链的生态、底层技术与架构;第3章讲解Fabric的开发环境与调试方法,介绍更复杂的Fabric网络,并细致解析配置文件及命令行的用法;第4章以Fabric Java SDK为主介绍如何使用Java开发Fabric应用,包括客户端管理、通道配置、事件监听、智能合约开发等;第5章从创世区块开始,逐步深入解析Fabric源码,解析客户端交易、智能合约初始化及背书流程;第6章深入讲解Fabric的安全机制,以及Fabric CA的使用与管理。本书提供了部分示例代码(参见GitHub网站的MyCATApache/SuperLedger项目),希望对读者有所帮助,也希望读者能及时反馈并与我们沟通,指出书中的错漏之处,帮助我们完善内容。

最后,感谢家人的理解与支持,感谢张国霞编辑的耐心指导,感谢Mycat社区的帮助与鼓励!

轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。

◎下载资源:本书如提供示例代码及资源文件,均可在下载资源处下载。

◎提交勘误:您对书中内容的修改意见可在 提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

◎交流互动:在页面下方 读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/34878第1章全面理解区块链1.1 从比特币开始1.1.1 颠覆性的比特币

比特币(BTC)于2008年被中本聪首次提出,其价格在三年后首次突破1美元,此后一路飞涨并引发全球投资者的关注。2017年2月8日,一枚比特币的价格超过1盎司(约28.35克)黄金的价格;2017年8月,比特币之父中本聪“高位套现”3000枚比特币;2017年11月至12月初,一枚比特币的价格达到迄今为止的最高点,接近两万美元。

比特币并不是真实的货币,而是一种数字化的货币(简称数字货币)。与黄金一样,比特币的发行方式、发行总量及发行速度并不是由某个国家的央行以不透明方式控制的。可一句话概括:比特币是一种发行透明的、去中心化的、自动控制的数字货币。

首先,比特币的发行规则是完全透明的。比特币不像任一国家的纸币,每年印多少钞票完全由这个国家的央行人为决定。比特币的设计者为了避免比特币的发行数量过多,导致类似纸币“通货膨胀”现象的发生,在设计之初就确定了比特币总量有限的规则:比特币的总量为2100万个,在2009年生成第一批50枚比特币,此时的货币总量就是50,之后新币以约每10分钟50个的速度发行;当未发行的比特币数量减少到总量的50%即1050万时,新币的发行速度就开始减半,约每10分钟产生25个新币,依此类推。当未发行的比特币数量减少到总量的25%即525万时,新币的发行速度继续减半,并基本上保持新币发行量每4年减半的节奏,预计在2140年以后不再产生新币。因此,比特币基本能保持零通胀的趋势,不像大部分纸币,随着时间的流逝,其购买力和价值不断缩水。

其次,比特币是一种去中心化的货币。比特币平台基本上是“零门槛”入门的,门槛低到什么程度?只要有一台可以连接互联网的计算机,再加入比特币的P2P分布式网络中,就能参与比特币的发行和交易等核心业务了。在比特币平台上,任何个人或者机构都可以自由参与,不需要任何机构的审批,在比特币网络中也不存在任何中心控制节点,每个加入比特币网络中的运算节点都是平等的,它们之间的差别仅仅是算力的多少,每个节点都“努力工作”,用算力来证明自己,这或多或少地影响着比特币的发行、交易、记账等核心业务。

最后,比特币是一种自动控制的数字货币。比特币是一套自动化的软件代码,新币的发行、身份的验证、交易的确认、账本的记录等流程都是由比特币网络中的计算机节点(矿工,或称Miner)自动执行的,全程没有任何人工参与,需要终端用户(User)参与的只有比特币的买卖操作。每个用户都拥有一个比特币账号,这个账号由一对密钥及比特币的钱包地址(Bitcoin Addr)组成,比特币的买卖操作就是一个用户把比特币转到另一个用户的钱包地址中,如果一个用户把自己所有的比特币都转卖出去,就可以认为是清仓套现。

1.深入理解“挖矿”及其原理、机制

中本聪在设计比特币之初就限定了比特币的总量,可以想象这些比特币就好像黄金一样被埋在地下,等待着无数玩家(又称矿工)去挖掘(又称挖矿)。一枚比特币的诞生源自比特币矿工的辛劳挖矿,当然,这里的“挖矿”并非指真实的挖矿山的行为,而是矿工通过专有的机器(又称矿机)计算和挖掘出一个很难得到的随机数,谁先计算出来,谁就得到相应的比特币。如果看过斯皮尔伯格的《头号玩家》这部电影,你就能很快弄明白挖矿是怎么回事了。而无数矿机夜以继日地挖矿,挖掘出一枚枚新币的过程,就是比特币的发行过程。

如果想成为比特币网络中的一名矿工,就得先购买一套不错的装备——矿机。一开始,人们都用自己的计算机去做矿机,因为僧少粥多,所以最早的矿工们还能轻松挖到比特币,但随着比特币市值的一路飙升,大批淘金者蜂拥而入,同时,新币的数量在不断减少,基本上每4年就减少一半,这时人们基本上都得拼装备了,谁的装备越强,谁的挖矿速度就越快,矿工们不得不购买算力更强的装备。后来,很多矿工自发形成各种挖矿组织——矿池,最后,比特币的“矿山”成为一个完全数字化的战场,遍布全球的散户与各种“矿池巨兽”一起角逐,其场面像极了《头号玩家》里的“绿洲”。更有趣的是,《头号玩家》里的101组织是一个大玩家,不仅靠售卖游戏装备获利,还派人参与争夺游戏中的彩蛋;在比特币世界中也有这样的大玩家,也就是制造、出售矿机和拥有自己的矿池的玩家,其中的头号玩家是我国的比特币大陆(Bitmain)公司,比特币大陆公司2017年赚的钱在同期甚至超过知名的英伟达公司!有分析师认为:比特币大陆公司在2017年的运营利润为30亿~40亿美元,而英伟达同期的运营利润为30亿美元,比特币大陆公司在短短4年内取得的成绩,英伟达却用了24年,这就是新经济的速度吧。

现在,我们不太可能靠挖矿致富了,但可以尽力理解挖矿背后的原理。在前面已经了解到,挖矿就是各个矿机去计算和挖掘一个很难得到的随机数,实际上,这是一个纯粹的、拼蛮力、拼算力的竞赛。挖矿算法也被称为工作量证明(Proof of Work,PoW)算法,即矿机不断地重复一些简单的SHA256哈希运算,直到找到符合条件的目标哈希值。举个例子,给出以下游戏规则:

给定一个基本的字符串"Hello,world!",可以在这个字符串后面添加一个叫作Nonce的整数值,然后对新的字符串执行SHA256哈希运算,如果得到的哈希结果(以16进制的形式表示)是以“0000”开头的,就找到了符合要求的一个哈希值,谁先找到这个哈希值并上报对应的Nonce值,谁就是赢家,谁就能赢取奖品。

按照游戏规则,假设Nonce值是从零开始的,则我们不停地递增Nonce值,然后对新拼接的字符串执行SHA256哈希计算,所以需要经过4251次计算才能找到前4位恰好为0的哈希散列,部分计算的输出结果如下:

上述例子中的Nonce就是我们挖矿所要找的那个随机数!我们通过SHA256算法得到的是一个长度为256位(bit)的数值,可以把计算这个哈希值的过程类比为一次次“抛硬币”的过程。好比有256枚硬币,对每个硬币给定依次为1、2、3直到256的编号,每进行一次哈希运算,就像抛一次硬币,256枚硬币要同时抛出,要求编号1到N(0

在SHA256计算中,N每增大一次,计算目标Nonce的工作量就增加很多,矿机不得不花费更多的时间去完成计算,这就减慢了比特币的“造币”速度,因此在挖矿算法中,N对应的就是Difficulty(难度值)这个关键参数。Difficulty会根据全网算力的变化进行自适应调整,以保持造币的速度。中本聪规定每生成2016页账本(Block),挖矿的难度就自动增加一级,这就是前面所说的,比特币的新币发行量基本上保持每4年减半的节奏的真正原因。虽然寻找这个随机数需要大量的重复运算,但由于这个工作是矿工交给自己的矿机全天24小时自动执行的,因此只要装备好,矿工还是有机会“勤劳致富”的。其结果就是全球各地的无数矿工们乐此不疲地“挖矿”,然后在比特币交易市场中出售、变现,再购买更高级的矿机继续挖矿。

由于比特币的总量有限,所以比特币终有一天会被挖完,若要长久地鼓励矿工们为比特币网络“打工”,就需要挖矿以外的激励制度,这就是交易手续费(Transaction Fees),类似于银行转账业务中的手续费。在通常情况下,比特币的转账交易的确是免费的,但在某些情况下必须支付手续费才能完成转账,这是为了激发矿工们的热情,因为矿工打包、转账、交易需要耗费资源(带宽、存储、验证),对矿工们的这些付出进行付费是合理的,同时,针对小额比特币交易则强制收费,这样可以防止黑客用大量的小额比特币交易来冲击整个P2P网络,但收取的费用通常很少,比如0.000 1枚比特币。这就带来了另一个值得我们思考的问题,即比特币的总数虽然有限,只有2600万枚,但一枚比特币并不是一枚“硬币”,它是可以继续分割的,一枚比特币可以被分割到小数点后8位的程度,所以比特币的最小单位是0.000 000 01BTC,因此,有些人认为比特币仍然是一种可以膨胀的数字货币。

2.比特币的交易机制

在挖到比特币以后,最重要的就是兑现真实的货币了,毕竟矿工挖矿也是有成本的,特别是电力消耗及矿机长期高负荷运行所带来的损耗。此外,在比特币世界中充斥着大量的比特币投资者,对于这些投资者来说,最重要的就是能够像炒股票一样方便地买入和卖出比特币,以获取差价了。这就涉及比特币交易的问题。我们知道,每个比特币用户都有一个比特币钱包(Bitcoin Wallet),这个钱包有一个接收比特币转账的地址——Bitcoin Address(又称比特币地址),类似于支付宝账号或者银行卡账号,对比特币的交易(Bitcoin Transaction)就是将比特币从一个比特币地址提出,转到另一个比特币地址,在这个过程中不必将比特币转换成人民币等货币,但比特币的受让方必须支付等值资金给比特币的出让方,这就是比特币的场外交易,即一方通过支付宝、微信或银行转账将资金打给另一方。由于这种私下的场外交易存在很高的风险,因此需要一个第三方的交易市场来完成比特币的交易活动。在很长一段时间内,我国拥有全世界最大的交易市场,掌控着世界八成以上的交易量,但从2017年下半年起,比特币中国、火币网、OKCoin币行等几个国内知名的交易市场陆续关停,在我国境内不再存在合法的比特币交易市场。2018年,国外比较知名的数字货币交易市场有币安、Bittrex、Poloniex等。

如果认真阅读了上面这段关于比特币交易的说明,你就可能发现一个“疑点”,即在比特币钱包里有一个用来收取比特币的“比特币地址”,却没有账户余额的信息,这完全违背了我们对支付系统的理解!在我们的理解中,所有支付系统都是以账户余额为核心进行设计的,银行也好,证券交易系统也好,互联网第三方支付系统也好,都基于账户余额的设计思想,在数据库里每个账号都有一个余额属性,保存当前账户的资产金额。举例来说,鸣人的钱包里有100元,路飞的宝箱里有50元,当鸣人要购买路飞捕捞的一只澳洲龙虾交给Mycat总部的厨神做定制拉面时,鸣人需要支付30元给路飞,其转账交易过程如下。(1)平台检查鸣人的账户余额是否充足,如果不足30元就终止交易,转账失败。(2)若鸣人的账户余额充足,则在鸣人的账户里减去30元(不考虑手续费)。(3)在路飞的账户里增加30元。(4)交易成功,保存交易流水记录。

但是,在这个看似简单、直观的流程背后,有很多的约束条件及实现代价。(1)首先,我们需要一个高度可靠的关系型数据库,并且这个数据库严格遵循 ACID规范。(2)其次,我们需要编程来确保上述1到3的过程是在一个数据库事务中执行的,中间任何一步失败,则都需要回滚。

由于事务的约束和限制,我们需要一个中心化的账户系统来保存所有参与交易的账号信息,并且随着交易量的增加,系统中的交易流水记录也会迅速膨胀。试想一下,若全球有超过100亿个用户使用比特币,则这个中心化的账户系统的数据库会有多大?因此传统的、中心化的、基于关系数据库的账户余额的设计思路根本无法满足比特币的交易需求,于是中本聪丢弃了中心化的账户数据库的设计思路,独创了以 UTXO为核心的交易系统,彻底规避了传统交易系统的局限性。UTXO(Unspent Transaction Output,交易输出)的设计受到了业界的高度评价,斯坦福大学密码学与计算机安全教授 Dan Boneh对UTXO的设计给予了很高的评价。

要深入理解UTXO,最简单的办法就是把一枚比特币从诞生到在市场上流通的整个环节再理解一遍。还是以鸣人买龙虾为例,假设回到故事的起点,鸣人得到蛤蟆仙人的指点,要打败最终的Boss,需要组织史上最强打怪军团,这需要很多经费,而现在赚取经费的最好方式是挖矿;当然,鸣人天赋异禀,拥有火影多重影分身禁术,天生就是一名挖矿好手!按照当前的市值,鸣人只要挖100枚比特币就可以组建一只华丽的打怪军团。于是鸣人一路狂奔去挖矿,路上遇到赶赴好莱坞的黄飞鸿,鸣人看他轻功了得,于是说服他加入打怪军团,一路上又收了远方表弟路飞,三人很快抵达最大的比特币挖矿场地——比特币绿洲,有路飞与黄飞鸿保驾,鸣人施展火影多重影分身禁术,开启并行挖矿,不到1小时就挖出了120枚比特币,这120枚比特币的收入会在比特币的账本里被记录为一笔交易,每笔交易都有若干笔资金来源,即交易输入或者转账人,也都有若干笔资金去向,即交易输出或者收款人,这个交易输出对于收款人来说,就是未花费过的交易输出,即UTXO。如下所示为鸣人挖矿获取120枚比特币的交易记录,这个记录被称为生产交易或者CoinBase交易,经常是每个区块的第1个交易。CoinBase交易交易编号:#1001

由于打怪军团只需要100枚比特币的经费,所以,接下来鸣人分给路飞和黄飞鸿各10枚比特币,于是分别产生了两笔交易,这两笔交易的内容分别如下。普通交易交易编号:#2001普通交易交易编号:#3001

每笔交易都需要做到交易输入与交易输出平衡,因此,在编号为#2001的鸣人给路飞转账的交易中虽然只有一次转账,但也产生了两条记录。实际上,我们可以将UTXO理解为转账流水记录+余额的复式结构,每笔交易的UTXO必然是下一笔交易的输入项,在一系列交易后,在鸣人的账号上(比特币地址)最终登记了100枚未花费的比特币,路飞与黄飞鸿则各有10枚,此外,以区块链方式记录的账本数据有不可篡改的特点,这样我们就可以很方便、很准确地追踪每一笔资金的来龙去脉,如图1-2所示。图1-2

UTXO还具有隐私性,因为一个用户可以拥有很多个比特币地址来充当“收款人地址”,因此很难追查一个用户究竟有多少比特币。UTXO中的收款地址其实是比特币用户的公钥哈希值,用对应的私钥才能“解锁”。因此,只有拥有这个收款地址的用户才能用自己的私钥来解锁对应地址的钱包,然后将在这个地址中记录的“输出交易”转到另一个用户的收款地址,在这个过程中涉及复杂的数字证书与加解密问题,后面会深入讲解。中本聪考虑到比特币系统在几十年甚至数百年以后可能会产生更多的目前无法预见的交易类型,而不是简单的转账交易,因此在交易模块中引入了脚本系统以增强系统的适用性,我们可以将这视为数字货币系统中最早的“智能合约”,其之后在以太坊(Ethereum)及超级账本中被进一步发扬光大。

3.小结

在比特币平台中,当前的每时每刻都存在造币(挖矿)与交易(Transaction)两种行为,比特币平台中的交易与银行转账及支付宝转账在本质上没有什么不同,都是用户A转账给用户B,但比特币平台有以下几个明显特征。

◎交易使用的货币是比特币。

◎交易数据采用了高强度的数字加密技术,杜绝伪造与欺诈问题。

◎比特币网络是一个P2P对等网络,交易过程完全去中心化,不存在第三方的中介机构。

◎交易的手续费由确认该交易合法的矿工获取,人人都有机会参与赚钱。

◎交易的账本数据分布在每个矿工(节点)的矿机上,加入系统的每个节点都可以拉取并在本地保存一份完整的交易记录数据。

◎比特币系统具有很高的容错性,即使大部分节点崩溃,整个比特币平台仍然可以正常运行。

因此,比特币平台是一个完全建立在加密技术、P2P网络等核心技术上的去中心化的、自动化的数字货币平台。从某种意义上来讲,比特币也可以被看作“软件定义一切(Software Define Everything)”的理念在传统货币金融领域里的一次成功应用。1.1.2 从比特币到以太坊

比特币开辟了IT领域的一个全新天地,吸引了大量的资金与人才,这里不得不提的是出生于1994年的俄罗斯天才少年——维塔利克·布特林(Vitalik Buterin)。维塔利克·布特林在高中时开始为《比特币周报》(Bitcoin Weekly)撰写文章,探讨比特币的相关技术并以此赚取比特币稿酬,在17岁时创立《比特币杂志》并亲自撰写文章,这奠定了他日后成为比特币意见领袖的地位。2013年,19岁的布特林只上了8个月的大学课程,便毅然选择了与前辈比尔·盖茨及乔布斯一样的路——退学并投身到轰轰烈烈的比特币革命浪潮中。为了探索比特币技术在加密货币以外的应用,布特林加入了比特币2.0时代的转型工作中,与美国、西班牙、意大利等国的比特币开发者社群展开了深入交流。

在比特币2.0的研究推进过程中,布特林发现比特币平台存在先天性的设计缺陷,虽然有了脚本系统可以扩展新的交易类型,但这种脚本系统无法支持数字货币以外的其他应用,因此他设想了一个新的通用的区块链平台,在这个平台上所有开发者都可以构建和发布自己的区块链应用,而不仅仅局限在数字货币这一领域,于是在《以太坊白皮书:下一代智能连接与去中心化应用平台》一书中首次提到他的以太坊智能合约平台的最初构想。然而,布特林在满心欢喜地将这一大胆又极具创意的想法告知比特币开发社区,希望能融入现有的比特币区块链平台时,却吃了一个闭门羹,被比特币开发社区无情拒绝。作为同行,笔者很能理解这一结果,在众人眼里:

布特林连专科学历都算不上,还很年轻,没写过靠谱的代码,就靠一路“忽悠”,动不动就发表一些让不明真相的吃瓜群众无比激动的毫无技术含量(代码)的文章,就以为自己是行业大牛,异想开天地提出这么不靠谱的想法,还想让开发比特币系统的这些元老工程师(架构师)们被他指挥,真是脑袋被门夹了!

在被比特币开发社区拒绝后,布特林没有选择跳楼或者就此放弃梦想,而是召集了近20位伙伴,并投入自己的全部家当——10万美元奖学金,成立了非营利组织——以太坊基金会。布特林坚持以太坊应该属于所有人,不能被单一企业占有,因此在开发过程中不接受创投投资。2014年7月,以太坊基金会正式启动以太币的众筹募资活动,当时每枚比特币可兑换2000枚以太币,造成大轰动,12小时内热销700多万枚以太币,为期42天的众筹让以太坊团队募集到约31000枚比特币(市值约1840万美元),之后,以太坊的开发在2015年年中大功告成。2016年,22岁的布特林被《财星》杂志评选为2016年40岁以下的40位杰出人物之一。2018年年初,一枚以太币的价格首次突破了1000美元大关,以太坊市值1000亿美元。

布特林首次在以太坊中提出智能合约的概念,这进一步推动了比特币2.0时代的发展。2014年,布特林超越80后大神级前辈——Facebook的扎克伯格,获得2014年的世界科技奖!可以说,以太坊开启了区块链技术的新时代,让隐藏在比特币背后不为人知的区块链技术大放异彩,而当区块链这个新技术的独特价值被人们深刻发现和认知以后,一种新的中间件平台——区块链平台应运而生。区块链2.0时代的典型代表以太坊和区块链3.0时代的典型代表超级账本项目(Hyperledger),分别代表了区块链的两个重要的发展方向:面向公众的公有链和面向企业的联盟链。1.1.3 山寨币蜂拥而至

比特币的价格一路狂飙,让不少早期跟风的玩家(投资者)大赚一笔,而传说中的比特币之父——中本聪仅凭借一段代码就轻松成为身价千万的 IT新贵,更催生了无数想一夜暴富的编程高手,于是模仿比特币的各种山寨币如“雨后春笋般破土而出”。一部分山寨币,在严格意义上说是比特币的竞争者,而非俗称的“山寨货币”,因为它们多少都对比特币做了一些改进,但后来国内出现了很多真正意义上的山寨货币,这些山寨货币直接修改比特币源码的一些参数,就摇身一变成为新的数字货币。到2016年上半年,全球共诞生了600多种数字货币,市值总和接近100亿美元,除了“大师兄”比特币、“二师兄”以太币(ETH),还有“三师弟”瑞波币(XRP)与“四师弟”莱特币(LTC)紧随其后。2017年是数字货币爆发的一年,截至2017年年底,全球数字货币的总市值一度突破6000亿美元,年度最大涨幅达到3497.98%,数字货币种类增加至1334种,无论是从总市值规模还是从币种数量来看,都实现了爆发式增长。

1.山寨币是如何进行“山寨”的

山寨币首先“山寨”的是比特币的“挖矿”算法。之前讲到,比特币的“挖矿”是一种拼“蛮力”的工作量证明算法,在游戏刚开始的时候,比特币非常好“挖”,矿工们都用计算机挖矿,各自的速度也差不多,因此一切都很正常且很公平,只需下载比特币相关的客户端软件就可以自动挖矿。随着比特币价格的一路疯长,参与挖矿的人越来越多,因此使用普通计算机挖矿得到比特币的概率越来越小,有人看到其中的商机,便开始研究能更快地挖矿的专用设备,于是市场上出现了基于GPU显卡的挖矿设备,再后来出现了由ASIC定制芯片直接执行HA256算法的新一代专业矿机——SHA256矿机,运算速度远超显卡挖矿机。2012年,美国某挖矿组织宣称将开发出更强力的“挖矿机”,这引发了该国比特币爱好者的不满,因为在比特币的网络规则中,一旦某人掌握了全网51%的算力,这个人就有了更改区块链记录的“超级权限”,可以否定其他矿工挖矿的账本记录,剽窃其他矿工的劳动成果,这样一来就干扰了比特币世界的公平性。为维护比特币世界的算力平衡,号称我国比特币“四大天王”之一的南瓜张设计了一款名为“阿瓦隆”的超强悍的挖矿机。阿瓦隆也被称为“挖矿神器”,第一批阿瓦隆有300台,买到“阿瓦隆”的矿主都大发横财,一台阿瓦隆的价格也曾被炒到40万元人民币。在比特币专业矿机出现后,很快就出现了拥有大量专业矿机的“矿场”,这些矿场拥有巨大的挖矿能力,于是比特币的挖矿市场开始被少数公司制玩家把控,个人玩家难以分得一杯羹,而这一切都因为比特币挖矿采用了很简单的SHA256算法,为此,比特币的一些研究者开始考虑更为复杂的其他挖矿算法。

2.Tenebrix币、Fairbrix币及莱特币

创建于2011年的Tenebrix币,就是第一个尝试使用Scrypt加密算法挖矿的“山寨版”比特币,与SHA256算法仅仅消耗CPU的功效不同,Scrypt加密算法在执行的过程中会占用更多的内存,因此,ASIC定制芯片的矿机就失去优势了,从而实现了更为公平的挖矿竞争。但Tenebrix的不足在于其开发者自己也挖币,并且在挖到700万枚Tenebrix后才正式将Tenebrix发布,这种机关算尽的做法引发了很多人的不满。这时,程序员Charles Lee模仿 Tenebrix创建了 Fairbrix币,并表示自己不会瞒着大家先行挖矿,但不幸的是,在Fairbrix软件系统中产生了一个致命的Bug,使得很多原始块没有了造币能力,加之黑客攻击事件,导致Fairbrix币一开始就输在起跑线上。在吸取这次教训之后,Charles Lee在2011年创立了莱特币(Litecoin),成为莱特币之父。相对于比特币,莱特币有以下改进。

◎与比特币的2100万枚上限相比,莱特币的上限为8100万枚。

◎相对于比特币,莱特币可以提供更快的交易确认机制。

◎相对于比特币,莱特币因为采用了 Scrypt加密算法,所以更容易在普通计算机上挖掘。

莱特币的价格在飙涨7500%之后,Charles Lee居然清仓了!2017年12月21日,Charles Lee在Reddit上发帖称,其在最近几天出售了持有的全部莱特币并捐赠:

莱特币确实给我带来了很多财富,我现在已经财富自由了,不再需要将我在财务上的成功跟莱特币的成功捆绑在一起,别担心,我没有放弃莱特币,我仍然将所有时间花在莱特币上。当莱特币成功时,我仍然会以各种不同的方式获得奖励,而不是直接通过拥有莱特币。我认为这是继续监督莱特币发展的最好方式。

3.狗币

在紧跟莱特币之后大获成功的另一个数字货币是狗币(Dogecoin,Doge的名称源于日本的一只非常有名的柴犬Kabosu)。狗币诞生于2013年12月12日,它所使用的代码来自莱特币(山寨莱特币),比起昂贵的比特币,它的入门门槛更低,而且更搞笑(狗币的图案主题采用了一只搞笑的柴犬头像)。狗币没有走比特币的赚钱策略,而是很好地利用了美国的“小费文化”,加之狗币数量巨大(第一年挖出1000亿枚,以后每年50亿枚,没有上限)、价格低廉(2018年1月8日的价格为1毛钱一枚狗币!)、转账快速(只需一分钟)等特性,使得狗币很适合用于网络打赏等小费支付,参与狗币交易的人都把狗币作为一种表达分享和感恩的方式,因此,狗币在上线一周后就成为美国互联网中第二个受欢迎的“小费电子货币”。到了2017年,狗币的市值突然达到了10亿美元,要知道狗币的源码自发布以来的两年多里,都没怎么更新过!这次连狗币的创始人 Jackson Palmer都觉得数字货币绝对有泡沫!

4.比特币现金

挖矿巨头比特币大陆公司旗下的矿池 ViaBTC推出比特币现金(Bitcoin Cash,BCC), BCC修改了比特币的代码,支持大区块(将区块大小提升至8MB)。2017年8月1日20时20分,BCC开始挖矿,同时基于比特币网络的原链继续交易,这是比特币的新分支还是另外一种山寨币?业内论调不一。由于BCC和比特币同属于一个体系,拥有很多相似之处,如同“孪生兄弟”,所以BCC继承了比特币的基础设置、钱包等软件,只需非常简单的改动即可支持;而且由于BCC的分配制度,BCC直接继承了比特币的广大用户,而其他新兴货币只能通过自己的不断宣传来获得用户。正因为BCC有很多其他竞争币所没有的优势,所以才一跃成为新生货币市场的霸主,其报价在2017年的最高点达到比特币价格的1/4。美国大型数字货币交易所之一的 Coinbase在2017年年底宣布支持BCC交易,这代表BCC的应用性、安全性和稳定性逐渐被市场认可,比特币钱包供应商 Bitcoin.com的联合创始人兼首席技术官Emil Oldenburg也曾表示比特币的交易费用过高、交易处理时间过长,自己已经卖出所有比特币,转投到了更高效的 BCC中。

5.山寨币与矿机之战

在目前所有基于POW(工作量证明算法)的数字货币中,采用 SHA-256算法的只有比特币一家独大,而在采用Scrypt系算法的数字货币中,莱特币和狗币几乎占据了全部江山。在商业利益的驱使下,能够执行 Scrypt算法的基于ASIC定制芯片的矿机也诞生了,基本上给绝大多数Scrypt币下达了“死亡判决书”。后来出现的基于X11算法的数字货币,和莱特币的初心一样,都是为了抵抗 ASIC矿机扩张所带来的不公平性。X11挖矿算法最先来自暗黑币(DarkCoin),它的效率比较高,适合CPU和GPU(GPU效率更优)。相较于采用Scrypt系算法,采用X11算法的显卡温度在降低30%以上的同时耗电量降低30%,显卡不需要更大的电力来挖矿,挖矿成本显著减少,因此X11算法是目前对显卡最友好的挖矿算法。同时,X11算法阻止了ASIC矿机在短期内出现,允许CPU/GPU的用户挖更长的时间,基于以上实用特性,目前大量的新币种都已开始使用 X11算法。其中较出名的事件是一个自称LTC X11小组的组织对莱特币实施了硬分叉(硬分叉是指在某种数字货币网络中运行旧版本的节点无法识别运行了新版本软件的节点的交易区块数据,导致新旧节点各自延续自己认为正确的区块链,从而分裂成了两条链),在新的莱特币LTC X11中采用了X11算法,以解决矿机挖矿的不公平问题。实际上,在金钱利益的驱动下,能够执行X11算法的基于ASIC定制芯片的矿机最终也会出现,这只是时间问题。完全不依靠矿机进行挖矿的恐怕就要数POS(股权证明)算法了,比如未来币(NXT)不用挖矿,大户向散户不断推广,开钱包就能增加币数,这似乎更像传销了。1.1.4 不得不提的瑞波币

尽管比特币在2017年价格暴涨13倍,但在全球的数字货币中,同期内比特币的涨幅只能排名第14位。从默默无闻到举世瞩目,排名第一的瑞波币只用了不到一个月,在2017年就暴涨360倍,在2017年央视CCTV-2财经频道公布的350个资金传销组织名单中就包括瑞波币。据福布斯统计,截至北京时间2018年1月,瑞波币市值接近1300亿美元,在数字货币中排名第二,仅次于比特币,同时,瑞波币的联合创始人和最大股东克里斯·拉森(Chris Larsen)身价已经超过了590亿美元,暂时超过了马克·扎克伯格。

事实上,瑞波币的概念早在2004年就出现了,远早于比特币(2009年)。当时,一个名叫 Ryan Fugger 的人想开发一套去中心化的货币支付系统,因此在2005年创立了RipplePay.com,向全球用户提供安全的支付服务。到了2012年,克里斯·拉森与Ripple的共同创办人一起向 Ryan Fugger提出数字货币的概念,成立了 Ripple Labs公司的前身OpenCoin,宣称可以为大型金融机构提供以区块链技术为基础的国际金融交易支付解决方案(Ripple支付网络),并在2013年3月发行了虚拟货币——瑞波币。2015年,OpenCoin改名为Ripple Labs,负责管理瑞波币的发行。由于瑞波币背后有商业公司掌控和推动,所以瑞波币的价值更容易被操控,因此瑞波币看起来更像“传销”。

瑞波币与比特币在本质上是不同的,比特币是一种流通货币,而瑞波币仅限于在Ripple支付网络中使用,算是一种辅助工具。Ripple Labs要求每个Ripple账户都至少有20个瑞波币,每进行一次交易就会销毁十万分之一个瑞波币,这一费用对于正常交易者来说成本几乎可以忽略不计。由于每次交易都将销毁少量瑞波币,所以这意味着瑞波币的数量会逐渐减少,如果Ripple协议能够成为全球主流的支付协议,则交易网关对于瑞波币的需求就会更为广泛,就会导致瑞波币(预期)升值。截至2017年,全球有60个国家承认Ripple Labs,有11个金融网关正在使用Ripple支付网络,美国有13家银行可以自由兑换瑞波币,欧洲有850家银行和财务专家把瑞波币定位为金融货币。2018年1月,Ripple Labs官方发布公告:全球顶级的5家汇款公司已经计划在2018年将瑞波币用于支付。

瑞波币就如同两种法定货币之间的桥梁,企业可以使用瑞波币在全球执行所需的资金流动,且不需要支付额外的费用。当买卖双方都持有瑞波币时,对于像支付学费这样的大笔金额,交易瑞波币确实是一种实用的交易方式,根据Ripple Labs官网介绍,瑞波币的一大特色就是“快”,支付结算只需要四秒,与比特币超过一小时和以太币超过两分钟的结算时间相比,堪称目前交易最快的加密货币,比传统的银行系统要快很多。与比特币试图挑战国家的铸币权不同,Ripple挑战的对象是民间组织团体——SWIFT(环球同业银行金融电讯协会)。SWIFT是上述跨国转账中150元“电讯费”的真正收费者,提供安全、可靠、快捷、标准化、自动化的通信业务,大大加快了银行间的结算速度,目前全球大多数国家的大多数银行都已使用SWIFT系统,但代价是银行需要为跨行异地及跨国转账交易支付一笔电讯费给SWIFT协会,即跨国转账的手续费。2017年6月,Ripple Labs首席风险官克瑞格基德(Greg Kidd)这样向腾讯财经描述Ripple支付协议可以给我国消费者带来的“福利”:

中国家长给自己在美国上学的孩子汇款1万美元时,除了需要向银行按0.1%的比例支付手续费(约60元人民币),还需要向银行支付150元人民币的“电讯费”,但如果该银行采用了Ripple支付协议的话,就不用支付这150元人民币了。

Ripple这一去中心化的支付清算协议的期望是对抗目前全球银行通用的SWIFT协议,如果Ripple协议成为金融交易的标准协议,则通过这个支付网络可以转账任意一种货币,包括美元、欧元、人民币、日元甚至比特币,支付就会像收发电子邮件一样快捷、便宜,最重要的是没有所谓的跨行异地及跨国支付费用。1.1.5 数字加密货币的现状与前景

作为新兴事物,各种数字加密货币不断涌现,一路被各类资金追捧,同时,来自数字加密货币领域的投资回报率不断刷新历史榜单,很多人在极短的时间内暴富。在很多人眼里,这是一个具有无限可能的投资新领域,但也有很多人认为数字加密货币是一场彻头彻尾的数字化骗局,不亚于历史上曾经疯狂过的郁金香,甚至认为数字加密货币是一场打着高科技旗帜席卷全球的新型传销。ICO众筹就是这样一个充满争议的新事物,它的名字改编自证券界的Initial Public Offering(首次公开发行)一词,就本质上而言,ICO也是一种“公开发行”,只是把所发行的标的物由证券变成了数字加密货币。数字加密货币早期的发展过程离不开ICO众筹。

可查的最早的数字加密货币众筹 ICO项目发起于2013年7月,Mastercoin(MSC,万事达币,现更名为Omni)通过Meta-protocol拓展比特币的功能,募集5000枚比特币,用于开发新币种MSC;2013年12月,未来币募集21枚比特币(约等价于当时的6000美元);2014年7月,以太坊ICO募集超过30000枚比特币并创下历史纪录;2016年5月,TheDAO众筹等值1.5亿美元,破ICO世界纪录,但一个月即被黑客攻克,在历史上刻下了深深的双重惊叹号。其他失败的ICO虽然没有被人提起,但我们需要明白的是数字加密货币ICO的风险很高。国内也有不少ICO,即所谓的“认购币”,但大部分玩的是“跑得快”的庞氏游戏,其中最为知名的ICO项目是NEO,其前身为“小蚁股”,成立于2014年。在监管风波到来之前,NEO不仅是国内最大的ICO项目,同时跻身世界第12大数字加密货币,在2017年8月上旬,NEO价格激增,一度突破每枚50美元,相较年初增长了500倍!

央行相关人士在研究大量ICO白皮书后得出结论:90%的ICO项目涉嫌非法集资和主观故意诈骗,真正募集资金用作项目投资的ICO其实连1%都不到。2017年9月4日,中国人民银行等7个部门联合发布《关于防范代币发行融资风险的公告》,将ICO定性为“一种未经批准非法公开融资的行为”,监管部门同时表示,各类代币发行融资活动应当立即停止,已完成代币发行融资的组织和个人应当做出清退等安排。同年9月8日,NEO宣布退币,参与二级交易的投资人不在退还之列。

以比特币为代表的民间发行的数字货币正在全球疯狂蔓延,各国央行和政府对此看法不一。2017年6月,我国央行货币金银局官网发布了一条《关于冒用人民银行名义发行或推广数字货币的风险提示》,全文如下。

近期,个别企业冒用我行名义,将相关数字产品冠以“中国人民银行授权发行”,或是谎称央行发行数字货币推广团队,企图欺骗公众,借机牟取暴利。现就有关情况提示如下:

一、我行尚未发行法定数字货币,也未授权任何机构和企业发行法定数字货币,无推广团队。目前市场上所谓“数字货币”均非法定数字货币。

二、某些机构和企业推出的所谓“数字货币”以及所谓推广央行发行数字货币的行为可能涉及传销和诈骗,请广大公众提高风险意识,理性谨慎投资,防范利益受损。

三、我国的法定货币是人民币。人民币由中国人民银行统一印制、发行。以人民币支付我国境内的一切公共和私人的债务,任何单位和个人不得拒收。请广大公众树立正确的货币观念,爱护人民币,共同维护人民币的正常流通秩序。

早在2013年,我国央行就指明,比特币为“网络虚拟商品”,不是法定货币。而我国98%的比特币交易都是通过比特币交易平台进行的,但这些交易平台风险重重。2017年9月13日,中国互联网金融协会发布《关于防范比特币等所谓“虚拟货币”风险的提示》,在这份提示中明确说明各类所谓“币”的交易平台在我国并无合法设立的依据,比特币等所谓“虚拟货币”缺乏明确的价值基础,市场投机气氛浓厚,价格波动剧烈,投资者盲目跟风炒作,易造成资金损失,投资者需强化风险防范意识。2017年9月,我国监管当局要求境内比特币交易所制定无风险清退方案,并在同年9月底前关停。2017年9月14日,比特币中国发布公告称即日起停止新用户注册。2017年9月30日,数字资产交易平台停止所有交易业务,其他虚拟货币交易所也纷纷步其后尘,火币网、OKCoin币行、微比特等平台纷纷宣布将停止交易。

我国在宣布并关停国内比特币交易市场后,接下来就是堵住源头的行动了——关闭比特币矿场。2018年1月,我国开始了清理比特币的第二步计划:下令关闭国内的比特币挖矿业务,要求各地方政府“引导”辖内企业“有序退出”挖矿业务,受这一影响最大的公司是我国知名的比特币挖矿公司比特币大陆公司,它于2013年成立,大量制造和销售挖矿专用的芯片和矿机,受益于内蒙古、新疆等偏僻地区的便宜电力和廉价租金,迅速建成了自己的矿机集群,拥有一些很有影响力的比特币矿场。

韩国也是世界上最大的民间比特币交易市场之一,极大影响着主流数字货币的价格。2018年12月28日,韩国政府称,该国将推行额外措施,以监管比特币交易中的投机行为。这些措施包括禁止开设匿名账户,以及进一步讨论关闭数字货币交易所等。受此负面消息的影响,全球数字货币的价格遭腰斩,随后,近20万韩国民众在总统府官网的请愿书上签名,反对虚拟货币交易禁令。2018年1月22日,韩国政府表示将对数字货币交易收税,间接承认了数字货币交易所的合法地位。

2018年4月5日,印度央行宣布:其监管的金融机构不得再处理数字加密货币业务,并声明:印度央行反复警示包括比特币在内的虚拟货币用户、持有者和交易者,交易这些虚拟货币存在多种风险。鉴于相关风险,央行监管的实体不得为任何交易或结算虚拟货币的个人和企业实体处理和提供相关服务,此决定立即生效。印度央行还表示,已经提供数字加密货币服务的金融机构要在一定期限内终止服务,具体情况将另行公告。印度商业报纸《经济时报》此后评论称,印度国民将再也不能通过银行和电子钱包购买数字加密货币了。如果说银行等央行监管的实体都不得促进数字加密货币的买卖,那么个人将无法通过银行账户向数字加密货币的交易钱包中转款。

日本一开始极力拥抱数字货币,自2017年以来,向超过11家金融机构颁发了数字货币运营牌照,同年4月,日本对相关法律进行了修订,规定涉及数字货币业务的公司必须获得金融监管机构许可证。同时,日本《支付服务法案》正式生效,比特币作为虚拟货币支付手段的合法性得到承认。但到了2018年4月,日本央行面向公众发布“风险提示”,指出数字货币缺乏央行背书,不是传统货币,本身存在盗窃、投机等风险,并警告公众不要被“高科技形象”的浮云遮眼,也不要被“各种谣言”蒙蔽。日本一直引领币圈风气之先,官方和民间对数字货币都推崇备至,而这次“警告”显露出其态度的微妙变化。

放眼全球,在大多数国家,比特币既不是合法货币,也不是完全不受控制的,而是处于一种中间状态,同时,各国央行时刻提醒用户交易比特币的风险。有些国家虽然表示反对比特币,但是没有正式出台法律禁止,全球“禁止和明确限制比特币”的国家仅在少数,例如孟加拉国、玻利维亚、厄瓜多尔、吉尔吉斯斯坦等国,而一些限制比特币发展的国家允许个人持有比特币,但取缔比特币交易市场并禁止用比特币购买商品与服务。

由于比特币在世界各地的人气持续增长,一些政府逐渐意识到数字货币的潜力和优势,各国央行一方面大力限制或谨慎对待民间发行的各类数字加密货币,一方面在考虑发行自己的官方数字货币——中央银行数字货币(CBDC)的可能性。

展望未来,除了比特币引发的各国考虑发行本国中央银行数字货币的大势,比特币背后的区块链技术也在爆发式发展。目前,区块链技术正在快速探索的领域包括资本市场、金融服务、支付和汇款、衍生品交易、征信管理、政府治理、分享经济、供应链、审计、股票交易、物联网等众多环节。以去中心化为基石的数字货币成为大势所趋。2018年1月5日,Facebook创始人扎克伯格宣布自己在2018年的挑战计划是利用加密技术和数字加密货币改造平台,将去中心化技术应用到Facebook的服务中,让权力从中心化的集权系统中交还给人们。1.2 理解区块链的概念1.2.1 深入理解Blockchain

比特币的狂潮引发了人们对其底层运行机制和原理的探索,并且衍生出了Blockchain这个新概念,Blockchain被翻译为“区块链”,由此,区块链开启了独立于比特币的研究探索新方向。随着研究的深入,人们逐步意识到区块链这一新技术的独特价值,越来越多的商业服务和互联网应用开始搭上区块链这趟快车。

2018年,一场让人始料未及又具有颠覆性意义的技术革命疯狂来袭,主角就是区块链。区块链技术被认为是继蒸汽机、电力、互联网之后的下一代颠覆性的核心技术,如果说蒸汽机释放了人们的生产力,电力解决了人们的基本生活需求,互联网彻底改变了信息传递的方式,那么区块链作为建立信任的机器,将可能彻底改变整个人类社会的价值传递方式。区块链技术的热度,从整个互联网和金融行业对比特币的狂热,就可见一斑。Web浏览器拓荒者Marc Andressen指出:

在20年后,我们就会像讨论今天的互联网一样,讨论区块链。

Blockchain顾名思义,就是由一个个 Block(块)串联成的一个链条,在每个 Block里保存的是一笔笔交易(Transaction)数据,以比特币为例,每隔十分钟左右就会有矿机挖出新币。之前说过,挖出新币也是一种交易,被称为“Coinbase交易”,它作为这段时间内的第一笔交易,会连同在这段时间内产生的其他交易被“打包”为一个Block,每个Block与前后紧邻的Block相互链接,组成一个链表。从数据结构上来看,Blockchain非常类似于我们熟悉的传统链表的数据结构,如图1-3所示。图1-3

但Blockchain与普通的链表又有区别,因为链表一般是“水平”视角的,比如从左到右增加长度,Blockchain则是“上下”视角,从下到上一层层叠加Block,每增加一个Block,则Blockchain的高度+1。从另一个角度来看,区块链的高度代表区块链数据的“版本”,比如在高度为2的区块链与高度为3的区块链之间相差一个版本,如果某个节点本地记录的区块链高度为2,而与之相连的某个节点的区块链高度为3,则此节点只要从邻居节点那里拉取第3个Block数据,即可完成账本的同步。

那么,Blockchain设计的独特之处在哪里呢?

首先,Blockchain记录的交易具有很强的公信力,具备可信任与防篡改特性。可信任这一点是通过数字证书机制来保证的。以比特币为例,我们知道一个用户可用的比特币余额对应的是UTXO,这笔钱存放在该用户的某个比特币钱包地址中,并且这个地址只能用对应的私钥打开(解密),因此,只有该用户才能动用这笔钱来发起一个新的交易,在发起的新交易中,该用户的私钥签名信息也一同被登记到交易记录中,在有了数字证书签名后,在随后的传输及持久化保存到Block的过程中,任何节点都无法篡改这笔交易的记录,并且任一节点都可以通过该用户公开的公钥来验证这笔交易的合法性,然后予以承认并记录到账本中。此外,Blockchain里的每个Block除了用指针链条来记录前后关系,还用了基于哈希摘要的算法来加强这个链条,具体做法是在每个新生成的Block里都记录前一个Block内容的哈希值(32字节)。我们知道,由于哈希算法的特殊性,输入原文的任一字节发生变化,都会导致哈希值不同,因而任一Block的内容在被伪造变动后,它的哈希值都会发生变化,后续所有Block都必须继续伪造,从而引发连锁效应,这显然是极其困难的。

其次,在比特币的Blockchain里还自带“索引”设计。在比特币的平台里,平均每个交易的数据为250字节左右,每个Block平均包含2000个Transaction,为了能在这2000多个交易中快速查找和定位某个交易,比特币采用了一种特殊的二叉树结构Merkle Tree来实现“索引”,因为二叉树这种数据结构非常适合实现索引,所以常见的关系型数据库普遍采用二叉树做索引。Merkle Tree通常被称作Hash Tree,顾名思义,就是存储哈希值的一棵树。如图1-4所示,Merkle Tree的叶子是数据块(比如一个字符串)的哈希值,而非叶节点是其对应的子节点串联形成的字符串的哈希值,简单来说,非叶节点总是所有子节点内容的哈希值。图1-4

我们可以对Block中的每个交易计算32字节的哈希值,然后把它们当作所有叶子节点,以此构建出一棵完整的 Merkle Tree。在比特币平台上每个交易的数据平均为250字节,可以看出,Merkle Tree相当于把一个Block压缩到了1/8大小,这样一来,客户端程序如果只想验证某个交易是否完成或存在,则无须下载完整的Block数据,只需获取这个Block里的Merkle Tree,对目标交易计算哈希值,然后将哈希结果与 Merkle Tree 中各个中间节点的哈希值依次进行对比,就能够很轻松地确定这个交易是否存在,以及位于哪个叶子节点上,这对于不参与比特币挖矿的轻量级客户端来说尤为关键。图1-5和图1-6给出了包括Merkle Tree在内的Blockchain的完整示意图。图1-5

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载