深度探索区块链:Hyperledger技术与应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-19 22:57:28

点击下载

作者:张增骏

出版社:机械工业出版社

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

深度探索区块链:Hyperledger技术与应用

深度探索区块链:Hyperledger技术与应用试读:

前言

为什么要写这本书

区块链是在全球范围内受到极高关注的技术。简而言之,区块链就是防篡改并且由大家共同维护的账本,其中包含不断增长的数据记录列表。根据现在的发展趋势,区块链将在商用领域得到广泛应用。

超级账本(Hyperledger)是Linux基金会旗下的区块链开发平台项目,致力于发展跨行业的商用区块链平台技术。超级账本项目自创立伊始便吸引了众多行业的领头羊,包括金融、银行、互联网、运输、制造等行业。目前,超级账本项目在全球拥有超过100个成员,包括IBM、Cisco、Intel、J.P.Morgan、荷兰银行、SWIFT、R3等。基于区块链技术、智能合约及其他相关技术,超级账本项目致力于建立新一代的分布式账本交易应用平台,从而在简化与商业流程相关的事务的同时,建立起商业信任、透明、审查等能力。Hyperledger Fabric子项目是以IBM早期捐献出的Open Blockchain为主体搭建而成的,是一个带有可插入各种功能模块架构的区块链实施方案,其目标是建立一个更加标准化的开源区块链开发平台,类似OpenStack之于云计算。开源地址是:https://github.com/hyperledger/fabric。Fabric主要框架的核心开发语言是Go语言,它非常适合联盟链,具有更高的商业应用前景。

从2015年开始,由于在IBM中国实验室工作,我开始接触区块链技术和IBM的Open Blockchain项目(即Hyperledger Fabric的前身),并开始为中国的金融用户推荐它,帮助这些用户借助区块链的技术价值来实现科技和业务的创新。到了2016年下半年,Hyperledger Fabric开发平台阶段性地稳定在0.6版本,无论是IBM还是云图智链(后来被智链ChainNova并购),都在很多行业应用场景中开始实践Fabric 0.6版本。那时在国内,绝大多数的金融企业都在尝试通过Hyperledger Fabric 0.6平台来开发属于自己的区块链应用,我在那个时候有机会参与了不少相关的区块链项目,涉及领域包括数字积分、资产托管和交易、保险、高价值商品溯源等。也正是从那时起,萌生了编写一本书来解释Hyperledger原理,介绍各项开发组件,并通过真实案例还原区块链开发全过程,让更多的人觉得区块链或者Hyperledger离自己并不遥远。于是,当时我们几个作者从社区、不同的开发项目,以及各个开发团队中开始收集和整理资料,完成了基于0.6版内容的大部分写作工作。

但恰逢此时,Hyperledger的第一个商用版本1.0准备推出,我们也第一时间从Linux基金会得到了这个消息。从当时1.0版本的计划来看,推出它的目的主要有两个方面:一是Hyperledger希望以这个版本为基调,作为企业级区块链平台;二是为了解决0.6版本中出现的一些问题,1.0版本进行了很大的改变和调整,可以说这个变化是翻天覆地的,以至于我们半开玩笑地说从0.6版本到1.0版本甚至没有可直接升级的路径。当时我还在IBM工作,第一时间找到了云图智链的张增骏老师等几位作者和出版社的高婧雅编辑,和他们商量是否需要调整写作方向和内容,因为在此之前实际上张增骏老师已经在上一个版本的写作中付出了很多的时间和精力。几乎是在十分钟之内我们就一致决定要基于Hyperledger Fabric 1.0版本重新组织材料,重新编写这本书,因为我们希望自己投入的时间和付出的精力为社区、众多开发者和广大对区块链技术感兴趣的读者带来一本真正实用的书,而不是仅仅为了把我们几个人的名字留在封面上。数月后的今天,我们把初审过的稿件提交给出版社。这个过程中由于Hyperledger开源社区和代码版本不断迭代内容也不断调整,经历了更多我们之前没涉及的新行业和应用场景,甚至经历了我个人工作角色的变化,我们几个作者最终坚持完成了本书的写作。当然必须承认,由于能力和经验不足,本书还有很多提升空间,内容本身也难免出现表达不准确的地方。本书希望抛砖引玉,欢迎读者多提宝贵意见,指出本书存在的技术错误,争取在下一版本中能纠正错误,不断完善,进一步提升质量。同时,我们还会一直基于Hyperledger这个平台不断地进行产业实践,后面还会以本书为起点策划系列丛书,把我们在工作学习过程中得到的启发和经验分享给读者。

本书作者大多来自智链ChainNova,均具有多年IT工作、实践经验。智链ChainNova与超级账本社区一直有非常紧密的合作。2017年智链ChainNova研究院联手Linux Foundation和IBM,共同主办了HyperLedger Fabric商用正式版本1.0发布后Hyperledger开源社区第一次线下会议(北京Meetup),Hyperledger全球副总裁、亚太区负责人Julian Gordan和多家国内知名金融企业、科技企业高层出席。在2018年,智链ChainNova正在计划携手Linux Foundation、北京大学和IBM共同主办超级账本黑客马拉松大赛(HyperLedger Hackathon)。同时为了进一步活跃Hyperledger社区,我们还即将承办多项开源社区活动,欢迎读者积极参与。相信读者将在学习区块链技术和Hyperledger的过程中获益匪浅。本书特色

笔者是Hyperledger社区成员,参与超级账本社区的日常工作,了解超级账本发展和技术细节的第一手资料。本书以Fabric商用正式版本1.0作为底层平台,其中也凝结了我们在Hyperledger开发理论和实际操作方面的经验。

本书深入讨论Hyperledger的核心技术,帮读者分析原理、关键实现与使用,是为数不多深入探讨和研究区块链的书籍之一。

我们的目标是把本书作为高校、科研院所、职业培训、企业技术学习的教材,向社会普及Hyperledger,培养更多的Hyperledger开发人才。读者对象

·区块链从业者

·区块链应用开发人员

·其他区块链技术爱好者(金融/Fintec从业者、产品经理、企业管理者等)

·计算机及相关专业师生如何阅读本书

本书共有12章内容,大体可以分为三篇内容。

准备篇(第1~2章),介绍区块链的基本概念,感受区块链的魅力。

第1章 本章是区块链技术与生态的概览,涉及区块链的基本概念、演进、主流平台,并着重分析企业级区块链平台的应用场景,有助于读者对区块链和Hyperledger Fabric 1.0(以下简称Fabric)的设计理念有整体性的了解。

第2章 本章介绍Fabric的安装、部署与调试。抛开复杂的底层技术细节,简化复杂的部署过程,快速体验Fabric的强大功能,以便有直观的感受。

核心篇(第3~9章),从系统架构开始讲解内部实现机制。

第3章 本章基于Fabric 1.0讲解区块链的架构,这是后续章节的基础,高屋建瓴地看待各个部件之间的关系和运行逻辑。本章涉及系统逻辑架构、网络节点架构、典型的交易流程、消息协议结构、策略管理和访问控制等内容,后面章节会从技术角度逐一“拆解”。

第4章 本章介绍基于Gossip的P2P数据分发机制,包括节点启动与成员管理、主节点选举与基于反熵的状态同步、身份认证与管理、多路分用与分区处理过程、消息的多种验证策略等。

第5章 本章介绍最为基础的分布式账本技术,它涵盖账本数据、索引数据、状态数据、历史数据等的实现技术。

第6章 本章介绍如何在排序服务上实现多通道的数据隔离,包括创建通道、节点加入通道等。排序服务采用插件化设计,可以根据业务场景的需求采用不同的共识算法。本章后面的内容详细介绍了排序服务的接口,以及实现了排序服务接口的Solo和Kafka模式。

第7章 本章介绍Fabric 1.0支持的多链及其内部的实现,多个链同时运行是一个系统工程,本章从数据存储、链码、命令行工具和SDK实现等多个方面分析如何支持多链。

第8章 本章介绍成员管理机制。它分为两个部分,第一部分详细介绍了MSP机制,包括MSP成员的验证、目录结构和配置最佳实践等;第二部分介绍可选的Fabric CA,包括服务端的安装部署和客户端的使用,还介绍了服务端提供的RESTful接口。

第9章 本章介绍Fabric 1.0上智能合约的实现。包括的内容有链码的生命周期管理、内置的系统链码、链码的相互调用、背书节点和链码的有限状态机等。

应用篇(第10~12章),从安装部署和应用开发的角度,通过一个票据背书的案例讲解如何基于Hyperledger Fabric 1.0开发区块链应用。

第10章 本章介绍Fabric 1.0的应用开发模型。从应用开发的角度看,开发者需要关注两部分:一部分是基于不同语言的SDK开发和区块链网络交互的应用程序;另一部分是实现超级账本的智能合约。本章详细介绍HFC SDK各个模块及其主要功能,链码的主要接口及其功能。

第11章 本章介绍多种Fabric 1.0的部署方式,包括分别基于Vagrant、Virtualbox、Docker的运行环境,以及BYFN脚本的使用。详细说明如何手动构建Fabric 1.0网络等。

第12章 本章通过一个票据背书示例,讲解如何实际开发一个基于Fabric 1.0的区块链应用。通过本章的实践,读者能够掌握区块链应用开发的方方面面,然后就可以动手开发具体的项目了。读者反馈与勘误

欢迎读者朋友反馈,请让我们知道你对本书的看法——你喜欢哪些地方,不喜欢哪些地方。读者反馈对于我们很重要,因为这将帮助我们继续写作使你获益的书籍。反馈意见请发送E-mail至jessie@chainnova.com,并在邮件主题中指明书名,我们将尽力解决问题。如果你有专长领域,并对写书或为书做出其他贡献感兴趣,请访问www.chainnova.com参见作者指南。特别致谢

首先感谢本书的其他作者——张增骏老师、朱轩彤老师和陈剑雄老师。他们在工作之余,挤出宝贵时间为本书贡献了他们对区块链技术和Hyperledger的理解和洞察。特别感谢张增骏老师在工作本身比较繁忙的前提下,为本书花费了很多精力,他不仅在内容上积极供稿,还在审定、修改和校正方面下了很多工夫。朱轩彤老师博闻强识,本身具有很强的行业背景,对科技产业的发展又格外关注,这些在本书第1章中得到了充分体现。智链首席科学家陈剑雄也对本书的内容给出了很多宝贵的意见和建议,同时对本书合作的达成给予了支持。

万分感谢超级账本执行董事Brian Behlendorf先生,北京大学陈钟教授和中国信息通信研究院云计算与大数据所何宝宏所长在百忙之中拨冗为本书做序,让我感觉特别荣幸。他们在各自领域都是最顶尖的专家,同时对区块链技术都有深刻且独到的见解。还有苏州同济金融科技研究院马小峰院长、中国电子学会区块链专委会孙贻滋秘书长和超级账本中国技术工作组杨保华主席为本书写来热情洋溢的推荐,令人备感温暖。

在成书的过程中,和我一起工作和合作的很多专家对本书都给予了不同程度的支持和帮助,像Linux基金会超级账本亚太区副总裁Julian Gordon和中国地区顾问龙文选先生,北京大学(天津滨海)新一代信息技术研究院马修军副院长,中国信息通信研究院云计算与大数据所魏凯主任和卿苏德博士,IBM的各位领导和专家,以及其他各个单位的领导和大咖,在此抱歉不能一一尽述。

非常感谢机械工业出版社华章公司的编辑高婧雅,她的敬业精神和编辑效率令我由衷敬佩,她的反馈、建议、鼓励和帮助引导我们克服诸多困难完成全部书稿。同时,本书的推广得到了CSDN及其副总裁孟岩先生、InfoQ及其总编辑郭蕾先生这些好朋友的大力支持。

最后,因为工作和写作,牺牲了很多本该陪伴家人的时间。我要特别感谢我的家人长期以来对我的默默支持和理解。

谨以本书献给我最亲爱的家人,多年以来帮助、支持我的师友,以及众多热爱区块链技术的朋友!董宁2017年12月第一篇准备篇第1章区块链概述1.1 区块链的前世今生

区块链的发展历史比较短暂,最初仅仅作为支持数字货币比特币交易的技术。目前,区块链技术已经脱离比特币,在金融、贸易、征信、物联网、共享经济等诸多领域得到初步应用。由于区块链技术可以防止数据篡改,所以不仅可以用安全而透明的方式追踪比特币的活动,还能在区块链网络中追踪其他类别的数据,因此可以帮助私人公司或政府部门建立更值得信赖的网络。用户可在这个网络中分享信息和价值,未来它还将得到更广泛的应用。1.1.1 区块链的历史起源——比特币

比特币起源于2008年全球金融危机期间中本聪(Satoshi Nakamoto)撰写的论文《Bitcoin:A peer-to-peer electroniccash [1]system》(《比特币:一种点对点的电子现金系统》)。在这篇著名的论文中,重点讨论了比特币系统,区块链被描述为用于记录比特币交易的账目历史。事实上,中本聪关于比特币的白皮书虽然整体思想是开创性的,但其中使用的技术工具,如P2P(Peer-to-Peer)、分布式存储、非对称性加密等早已存在,他提出的是一个集成性的、系统性的、可供实践的解决方案。

实际上在这篇论文中并没有明确提出区块链的定义和概念,甚至还没有“区块链”(Blockchain)这个词,只有“区块”(Block)和“链”(Chain)。但在论文中涉及了几个对区块链技术影响深远的观点:

·点对点、去中心化的可靠交易;

·反欺诈;

·基于密码学原理的电子交易凭证管理;

·分布式的时间戳服务器;

·足够的安全能力支持系统。

在2009年他公开了最初的实现代码,第一个比特币于2009年1月3日18:15:05生成,但真正流行起来是2010年后的事情。设计和实现一种数字货币绝非易事,但是由于比特币设计精妙,诞生还不到十年,就在世界各地迅猛发展,从小众成功走向主流。

在日本和韩国比特币的交易特别火爆,比特币价格在震荡中不断刷新纪录。2009年10月最早有纪录的比特币价格仅为0.00076美元。不到8年时间,2017年上半年比特币这个全球最热门的加密货币的价格创历史新高,首次超过2000美元。收益远远超过黄金、地产,甚至有人预测其价格还将大幅攀升。此外,2017年5月勒索病毒WannaCry席卷全球,全球150个国家及地区的数十万台计算机遭到攻击,事件并没有给比特币市场造成直接的损失,反倒让比特币也跟着火了一把。

据报道,多国政府开始给予比特币合法身份。2017年4月,日本正式生效新规,比特币成为一种合法的支付方式;2017年7月,澳大利亚政府承认比特币为货币,并废除比特币的商品与服务税。1.1.2 欢迎来到区块链的世界

在比特币系统成功运行多年后,2014年前后,部分金融机构开始意识到,作为比特币运行的底层支撑技术——区块链,实际上是一种极其巧妙的分布式共享账本技术,对金融乃至各行各业带来的潜在影响甚至可能不亚于复式记账法的发明。对区块链的初步认识来自2014年10月大英图书馆的一次技术讨论会。在这次会议中,人们对比特币的现状和未来以及区块链在金融等领域的应用前景进行了深入的探讨。

自此,区块链技术开始在全球崭露头角。可以把2015年称为世界区块链元年,因为在这一年经济领域关注到了它。划时代的标志是《华尔街日报》刊文称区块链是最近500年以来在金融领域最重要的突破,而《经济学人》杂志在封面《信任的机器》一文中介绍区块链为创造信任的机器。文章指出,区块链并非仅仅是一项加密技术或者数字货币,在信息不对称、不确定的环境下,它还可以建立满足经济活动赖以发生、发展的“信任”生态体系。作为比特币底层技术的“链”,其价值远大于比特币本身。区块链可以让人们在没有中央权威机构监督的情况下,对彼此协作建立起信心。区块链是一种共享账本技术,实现了在分布式商业网络里多方参与的双边交易中的去中介化。简单来说,它是一台创造信任的机器。

进入2016年,业界开始大规模认识到区块链技术的重要价值,并通过智能合约技术将其用于数字货币以外的分布式应用领域。世界经济论坛甚至预测,到2025年,世界GDP的10%都将存储在区块链上或者应用区块链技术。

政府部门也行动起来关注区块链。2016年1月,英国首席科学家建议英国政府把区块链技术列为英国国家战略,随后包括中国人民银行在内的多国政府和央行对区块链进行了研究。2017年,欧洲议会发布了一份新的报告——《区块链如何改变我们的生活》,总结了区块链技术的能力和挑战以及对社会价值可能带来的影响,其中特别指出智能合约的重要作用。

虽然直到今天,我们还不知道中本聪究竟是谁,但毫无疑问他开启了一个新的时代。许多商业组织和行业机构投入了大量资源来研究区块链。全球领先的信息技术研究和顾问公司Gartner公布了2016年新兴科技技术成熟度曲线(Hype Cycle for Emerging Technologies,[2]2016),如图1-1所示。2016年区块链正处于期望膨胀期,距离成熟期需要5~10年。在未来,全球区块链技术仍然会保持比较高的发展趋势。图1-1 2016年新兴科技技术成熟度曲线1.1.3 区块链演进趋势

本质上,因为区块链的链与链之间具有隐私、安全、共识、自治、价值共享的特性,所以在技术层面上解决了互联网上的价值传递问题。同时,区块链又具有底层开源和改变业务规则、创新业务多方共识等逻辑,因此区块链是未来整个IT架构和互联网转型的重要支撑。[3]

Melanie Swan所著的《区块链:新经济蓝图及导读》一书在业界引起了巨大的反响。她在书中提出了对区块链版本划分的方法,即按照区块链已经完成的以及将要完成的功能划分成区块链1.0、2.0和3.0三个阶段。这种版本划分方式基本上反映了区块链技术成熟发展的大脉络,目前也得到了业界广泛的认可。

1)我们可以把比特币理解为区块链技术的一个应用场景,也就是区块链1.0阶段。但是如果仅有比特币,区块链也只是一种数字货币,并不能达到今天的火爆程度,可以说比特币是当今区块链的“杀手级”应用,但是区块链可以做的事情远远超过比特币,很有可能产生其他“杀手级”应用。

2)区块链2.0的重要标志就是被金融领域所接受并得到广泛应用形成的金融互联网,让价值交换变得便捷、直接,节省时间、节省成本。目前区块链2.0在实际场景中的应用,有两个重要因素:资产数字化(上链过程)与智能合约。

区块链2.0更关注智能合约(Smart Contract)所体现的业务价值。在区块链的背景下,智能合约当作是一种运行在区块链之上的通用计算模式,这样智能合约的内涵就不一定必须要和传统的合同概念相关联,反而可以是任何的计算机程序。智能合约实际上是通过高级编程语言把现实世界的业务逻辑在区块链上加以实现。智能合约通过在区块链上增加应用功能拓展了其适用范围和生存空间,如此就可以通过区块链来描述众多实现当中的业务场景。

当前,技术和产业处于区块链2.0阶段。在摩根士丹利公司的一份报告中提到了他们对区块链技术在金融行业被采用的路线图展望,对区块链2.0,其展望大致持续到2025年:

·2014年—2016年是评估阶段。银行和其他金融基础设施中介机构对许可制的共享账本技术的效率、机会等进行评估;

·2016年—2018年对区块链进行概念原型验证测试。主要的测试目标是验证技术的可行性,将区块链技术和传统方式在性能、成本、速度、规模等方面进行对比;

·2017年—2020年预计基于区块链的共享架构开始出现;

·2021年—2025年在区块链技术证明有效的基础上,会有更多的金融资产转向区块链技术。

3)区块链3.0要把区块链的应用范围拓展到各行各业,支持广义的资产交互和登记,进入万物互联,设备民主的“区块链+”时代。

互联网使得全球之间的互动越来越紧密,伴随而来的是巨大的信任鸿沟,未来将进入到需要真正的强信任背书的大数据时代。通过使用区块链技术,任何人都没有能力也没有必要去质疑数据的质量和真实性。区块链技术具有全新的理念和逻辑结构,并且它每天还在发展变化过程中,因此,随着区块链能够为信任提供价值的场景改变,它自身也将进入不同的阶段。或许未来的某一天,区块链可能还将迈进更新的阶段。1.2 区块链概念

区块链(Blockchain)技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。Wikipedia给出的定义为:

A blockchain,originally block chain,is a distributed database that maintains acontinuously-growing list of data records hardened against tampering andrevision.It consists of data structure blocks—which hold exclusively data ininitial blockchain implementations,and both data and programs in some of themore recent implementations—with each block holding batches of individualtransactions and the results of any blockchain executables.Each block containsa timestamp and information linking it to a previous block.

简而言之,区块链技术让参与的系统中任意多个节点,通过密码学算法把一段时间系统内的全部信息交流数据计算和记录到一个数据块(Block)中,并且生成该数据块的指纹用于链接(Chain)下个数据块和校验,系统中所有的参与节点共同认定记录是否为真。1.2.1 区块链本质

区块链,实质是由多方参与共同维护的一个持续增长的分布式数据库,也称为分布式共享账本(Distributed Shared Ledger),其核心在于通过分布式网络、时序不可篡改的密码学账本及分布式共识机制建立彼此之间的信任关系,利用由自动化脚本组成的智能合约来编程和操作数据,最终实现由信息互联向价值互联的进化,如图1-2所示。图1-2 从传统集中记账方式(左)到分布式总账(右)

区块链是一种与传统集中记账方式不同的记录技术。参与到区块链系统上的节点,可能不属于同一组织、彼此无须信任;区块链数据由所有节点共同维护,每个参与维护的节点都能获得一份完整记录的拷贝。与传统的记账技术相比,其特点包括:维护一条不断增长的链,只可能添加记录,而发生过的记录不可篡改;无须集中控制而能达成共识,实现上尽量采用分布式;通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护用户信息和记录的隐私性。1.2.2 区块链工作原理

所谓区块链,正是由多个区块组成的链状数据结构及存储方式。每个区块分为区块头和区块体,区块头主要用来实现区块链接的前一区块哈希值(Hash Value),而区块体主要包括交易账本,如图1-3所示。图1-3 区块链的账本

以交易场景为例,区块链的工作原理如下:

1)客户端将发起一笔交易,经数字签名后广播给网络上的其他节点并等待确认;

2)网络中的节点对收到的数据记录信息进行校验,通过校验后,数据记录被记录到一个区块中;

3)全网所有接收节点对区块执行共识算法,区块通过共识算法过程后正式纳入区块链中存储,全网节点均表示接受该区块。表示接受的方法,是将该区块的随机哈希值视为最新的区块哈希值,新区块将提供永久和透明的交易记录并以该区块链为基础进行延长,实现资金转移。1.2.3 区块链技术特点

具体来说,区块链技术作为创造信任的机器,主要有以下特点。

·分布式结构。区块链构建在分布式网络基础之上,账本并不是集中存放在某个服务器或数据中心,也不是由第三方权威机构来负责记录和管理,而是分散在网络中的每一个节点上,每一个节点都有一个该账本的副本,所有副本同步更新。

·信任机制。区块链技术通过数学原理和程序算法,使系统运作规则公开透明,实现交易双方在不需要借助第三方权威机构信用背书下通过达成共识,建立信任关系。

·公开透明。区块链对其上的节点可以做到开放、透明。任何人都可以加入区块链,也能查询区块链上的区块记录;同时所有用户看到的是同一个账本,能看到这个账本所发生和记录的每一笔交易。

·时序不可篡改。区块链采用带有时间戳的链式区块结构存储数据,具有极强的可追溯性和可验证性;同时由密码学算法和共识机制保证了区块链的不可篡改性。1.2.4 区块链层次模型

区块链技术的模型包括由自下而上的数据层、网络层、共识层、激励层、合约层和应用层,共有6层。

数据层、网络层、共识层是区块链的必要元素。

1)数据层:最下层是“数据层”,它封装了底层数据区块的链式结构,以及相关的非对称公私钥数据加密技术和时间戳等技术,这是整个区块链技术中最底层的数据结构。

2)网络层:中间是网络层,包括P2P组网机制、数据传播机制和数据验证机制等。

3)共识层:第三层是共识层,封装了网络节点的各类共识机制算法。

而激励层、合约层和应用层不是区块链的必要元素,一些区块链应用并不完全包含上面3层结构。

第四层是激励层,它将经济因素集成到区块链技术体系中来,包括经济激励的发行机制和分配机制等,主要出现在公有链当中。

第五层是合约层,它封装各类脚本、算法和智能合约。

第六层是应用层,它封装了区块链的各种应用场景和案例,未来的可编程金融和可编程社会也将搭建在应用层中。1.2.5 区块链共识算法

区块链并不是某种特定技术,而是一种类似于NoSQL(非关系型数据库)这样的技术解决方案的统称。共识机制算法是区块链的核心技术,因为这决定了到底由谁来记账,而记账方式将会影响整个系统的安全性和可靠性。目前已经出现了十余种共识机制算法,其中较为知名的有PoW(Proof of Work,工作量证明),PoS(Proof of Stake,权益证明),DPoS(Delegate Proof of Stake,股份授权证明)机制以及拜占庭将军容错共识等。当然,没有一种共识机制是完美无缺的,同时这也意味着没有一种共识机制是适合所有应用场景的。

1)PoW(工作量证明):就是挖矿,主要应用包括比特币和以太坊前三个阶段等。依赖机器进行数学运算来获取记账权,即通过与或运算,计算出一个满足规则的随机数,获得本次记账权,发出本轮需要记录的数据,全网其他节点验证后一起存储。优点是完全去中心化,节点自由进出;缺点是资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,达成共识的周期较长,因此不适合商业应用。

2)PoS(权益证明):由Quantum Mechanic 2011年在bitcointalk首先提出,它是PoW的一种升级共识机制,在Peercoin、NXT和以太坊第四个阶段等应用。根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快寻找随机数的速度,因此节点记账权的获得难度与节点持有的权益成反比,但它依然是基于哈希运算竞争获取记账权的方式。其优点是相对于PoW在一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升;缺点是还需要挖矿,本质上没有解决商业应用的痛点,可监管性也比较弱。

3)DPoS(股份授权证明):与PoW和PoS不同,DPoS不需要再挖矿了,而是类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账,持股人拥有所持股份对应的表决权。优点是大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证,降低运行网络的成本和维护网络安全的费用,增强网络效能;缺点是整个共识机制还是依赖于代币的,然而很多商业应用是不需要代币存在的。

在区块链加密技术出现之前,互联网上的信息拷贝是零成本的,数字资产具有无限可复制性,如果没有可信赖的第三方监督,我们根本无法确认一笔数字现金是否被花掉,因此可能出现重复支付的问题。

为了解决这个问题,区块链参照了“拜占庭将军问题”[5](Byzantine failures)的算法。该问题是一个协议问题,指拜占庭帝国军队的将军们必须全体一致决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒,而将军们只能依靠信使来传递信息。如何才能防止受到叛徒欺骗而做出错误决策呢?数学家设计的算法是让将军在接到上一位将军标有进攻时间的信件之后,写上同意或反对并盖上自己的图章,然后把信转发给其他所有的将军,在这样的信息周转之后,最后会出现一个盖有超过半数将军图章的信息链,以保证将军们在互不信任的情况下达成共识。

莱斯利·兰伯特把拜占庭将军问题引入到点对点通信中。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决问题要求的规范。

区块链的技术原理参考了拜占庭将军问题的算法,通过盖戳的形式来进行公证。网络上的每一个参与者的计算机里都会有一份总账的备份,也都能在这本总帐里记上一笔,并且所有的备份都是在实时地、持续地进行更新、对账,以及同步着拷贝,即全网记账。每个节点都可以竞争盖戳,互相认证。这使得一个不可信网络变成了一个可信的网络,使得所有参与者可以在某些事情上达成一致。1.2.6 区块链并不一定去中心化

理想化的区块链系统,是由许许多多节点组成的点与点的网络结构,似乎既不需要中心化的硬件设备,也不需要任何管理它的机构。在很多文献中都提出区块链是去中心化的(Decentralized),即整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。

需要指出的是,区块链并不一定是去中心化的。实际上,软件系统的网络架构一般有3种模式:单中心、多中心、分布式,Decentralized只表明不是单中心模式的,它可能是多中心或弱中心,也可能是分布式的。把Decentralized翻译成“去中心化的”可能与最早由中国大陆“币圈”所做出的翻译偏差有关,实际上在中国台湾地区大多译为“分散式的”而不是“去中心化的”。因此,把Decentralized翻译成“分布式”或者“多中心化”,可能更切合今天技术和金融场景应用的实际。

在人类历史上,信息传播的延迟和谬误会导致信息不对称,这形成了各种中心化的强权组织和阶级分化。虽然信息社会特别是社交媒体的出现已经减弱了这种情况,但是目前仍无法达到绝对的信息对称。我们期待在区块链搭建的机器社会中进行深刻且迅速的社会关系变革,形成绝对信息对称,但是至少目前在机器社会还难以实现,即不能完全去中心化。

2016年The DAO受攻击事件也表明,完全去中心化至少在现阶段是不可行的。The DAO是一个基于以太坊公有链的众筹项目,成为史上最大的众筹项目。然而由于其智能合约的漏洞,导致The DAO被黑客攻击并转移走价值6000万美元的数字货币,最后不得不黯然落幕。这给以太坊生态系统带来了很多负面影响。此次事件之后,很多人对区块链的“去中心化”进行了反思:在挽回这个损失的过程中,原有的去中心化机制未能解决问题,最后还是通过“集中式”的方式,强制以太坊进行“硬分叉”完成交易回滚。

如果我们仔细研究中本聪的论文,就会发现其中只有Peer-to-Peer(P2P),而没有Decentralized一词。业界也正在逐渐对区块链并不一定去中心化形成共识。在2016年6月召开的W3C区块链标准会议上,以太坊的核心开发团队EthCore明确表示,不再使用Decentralized这个词,而是用P2P、Secure、Serverless这类纯技术性词语。

但是如果简单地宣称去中心化,会被误读成是在某种程度上存在着一种既想从事金融活动,又不愿意接受金融监管的倾向。1.3 区块链技术平台

目前,全球有数个区块链技术平台,其中比特币(Bitcoin)、以太坊(Ethereum)、瑞波(Ripple)和Linux基金会的开源项目超级账本(Hyperledger Fabric)比较有代表性。

此外,还有比特股(Bitshare)、恒星(Stellar)、R3 Corda等国外区块链技术以及国内一些公司研发的区块链应用平台。1.3.1 比特币

比特币(Bitcoin)是最早、全球使用最广泛的区块链技术,具有最去中心化、最多分布节点、最公平等特点。

比特币提出了一个不需要信用中介的数字货币系统,通过数字签名(Digital Signatures)使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。同时为了防止双重支付(Double-Spending),它提出了一种采用工作量证明机制的点对点网络来记录交易的公开信息,该网络通过随机散列(Hashing)对全部交易加上时间戳(Time),将它们合并入一个不断延伸的基于随机散列的工作量证明(Proof of Work)的链条作为交易记录,形成的交易记录将不可更改。只要诚实的节点能够控制绝大多数CPU的计算能力,就能使攻击者难以改变交易记录。节点之间的工作,大部分是彼此独立的,只需要很少的协同。每个节点都不需要明确自己的身份,可以随时离开网络,若想重新加入网络也非常容易。节点通过自己的计算力进行投票,表决它们对有效区块的确认,它们不断延长有效的区块链来表达自己的确认,并拒绝在无效区块之后延长区块以表示拒绝。可以说,比特币包含了一个点对点数字货币系统所需要的全部规则和激励措施。

在比特币这种去中心化的公有区块链系统中,在相互间没有信任基础的前提下需要有一种完成点对点交易的共识机制。比特币发行的共识机制基于工作量证明算法(挖矿),使用过程基于点对点支付和全局记账,货币有效性基于追溯验证算法。“挖矿”过程就是把系统中没有记录的现有交易打包到区块里,通过系统提供的计算“挖矿”难度的随机数不断遍历,最先达到条件的会获得记录区块的权利。随后节点将该区块记录通过网络发布广播,全网其他节点在验证该区块满足条件,同时区块记录的交易符合规定后,分别把该区块记录的信息更新到自己节点的区块链上,从而形成全网账本的共识。

比特币区块链核心技术的框架采用C++语言开发,共识算法采用PoW算法,工作量(挖矿)证明获得记账权,容错50%,实现全网记账,公网性能TPS小于7,开源地址为:https://github.com/bitcoin/bitcoin。比特币发行并运行到现在,说明了区块链技术在数字货币领域的可行性,但其并不能完全代表区块链技术,它只有唯一的数字资产(比特币),而且没有图灵完备的编程语言平台,允许开发人员建立更广泛的分布式账本系统应用。

比特币区块链推出的时间比较早也不够强大(如不支持智能合约)。现在当人们提到“区块链”时,往往已经与比特币网络没有直接联系了,除非特别指出是承载比特币交易系统的“比特币区块链”。但比特币仍是区块链最早也是截至目前数字货币方面最大并且在全球各地经常提及的应用。

在比特币源代码基础上,照搬或进行较小改动之后,还出现了一些区块链技术体系,其中包括一些山寨币,例如彩色币(染色币)等,还有以锚定比特币为基础的比特币侧链等。1.3.2 以太坊[3]

以太坊是一个通用的数字代币平台,它通过一套图灵完备的脚本语言(Ethereum Virtual MachineCode,EVM语言)建立应用,采用多种编程语言实现协议(编程并不需要直接使用EVM语言,而是使用类似C语言、Python、Lisp等高级语言,再通过编译器转成EVM语言),采用Go语言编写的客户端作为默认客户端(即与以太坊网络交互的方法,支持其他多种语言的客户端)。以太坊ETH的开源地址:https://github.com/ethereum。

以太坊的核心目标是智能合约,它可以看作是一个以太坊系统里的自动代理人。它有一个自己的以太币地址,当用户向合约地址发送一笔交易后,该合约就会被激活,然后根据交易中的额外信息,合约运行自身的代码,最后返回一个结果,这个结果可能是从合约地址发出的另外一笔交易。需要指出的是,以太坊中的交易不只是发送以太币而已,它还可以嵌入相当多的额外信息。如果一笔交易是发送给合约的,那么这些信息就非常重要,因为合约将根据这些信息来完成自身的业务逻辑。智能合约的引入对区块链2.0有着极大的推动作用,而作为早期推动智能合约的区块链平台,以太坊一度为广大区块链社区所看好。智能合约配合友好的界面和一些额外的小支持,可以让用户基于合约搭建各种千变万化的DApp应用,这样使得开发人员开发区块链应用的门槛大大降低。以太坊架构图如图1-4所示。图1-4 以太坊架构图

以太坊合并了很多对比特币用户来说十分熟悉的特征和技术,同时自己也进行了很多修正和创新。比特币区块链纯粹是一个关于交易的列表,而以太坊的基础单元是账户。以太坊区块链跟踪每个账户的状态,所有以太坊区块链上的状态转换都是账户之间价值和信息的转移。账户分为两类:

·外部账户,由私人密码控制;

·合约账户,由它们的合约编码控制,只能由外部账户“激活”。

对于大部分用户来说,两者的基本区别在于外部账户是由人类用户掌控——因为他们能够控制私钥,进而控制外部账户。而合约账户则是由内部编码管控。如果它们是被人类用户“控制”的,那也是因为程序设定了它们被具有特定地址的外部账户所控制,进而被持有私钥控制外部账户的人控制着。“智能合约”这个流行的术语指的是在合约账户中编码——交易发送给该账户时所运行的程序。用户可以在区块链中部署编码来创建新的合约。

以太坊迭代周期比较快,使得依赖于以太坊特别是以太坊公网的商业应用比较容易受到攻击。The DAO(The DistributedAutonomous Organization,去中心化自治组织)是区块链业界最大的众筹项目,它在短时间内就募集了价值1.3亿美元的数字货币。2016年6月17日,由于其编写的智能合约存在重大缺陷,运行在以太坊公有链上的The DAO智能合约遭遇攻击。导致300多万以太币资产被分离出The DAO资产池。The DAO官方交流社区DAOhub称,在黑客风波结束及所有的以太币被解锁后,返还所有的以太币,并关闭The DAO。1.3.3 瑞波

瑞波(Ripple)是开放源码的点到点支付网络,它可以轻松、廉价、安全、跨国界地进行转账。转账对象可以是互联网上的任何一个人,无论他在世界的哪个地方;被转账的可以是清算货币、虚拟货币、数字资产或任意一种有价值的资产。

瑞波使用的共识机制是RPCA,可以通过特殊节点的投票,在很短的时间内对交易进行验证和确认。瑞波客户端不需要下载区块链,它在普通节点上舍弃掉已经验证过的总账本链,只保留最近已验证的总账本和一个指向历史总账本的链接,因而同步和下载总账本的工作量很小。

作为世界上第一个开放的支付网络,瑞波于2015年下半年对外公布了其InterLedger协议项目,该项目的目标就是打造全球统一的支付标准,创建统一的网络金融传输协议。通过瑞波支付网络可以转账任意一种货币,包括美元、欧元、人民币、日元或者比特币,简便、易行、快捷,交易确认在几秒内完成,交易费用几乎是零,没有所谓的跨行异地以及跨国支付费用。而且由于是P2P软件,所以没有任何个人、公司或政府操控瑞波,任何人都可以创建一个账户。

目前,瑞波币和以太坊之间正在争夺世界第二大加密货币的地位,胜负尚未决出。2017年早些时候,瑞波网络已实现在3.7s内能够完成7万笔交易。瑞波公司为其瑞波共识账本(RCL)和互联账本协议(ILP)引入了新的功能(托管和支付通道),这提高了瑞波币(XRP)的交易吞吐量,这些改进使得瑞波网络的可扩展性达到了Visa的级别,也就是其交易吞吐量将可与Visa抗衡。1.3.4 区块链商用平台:超级账本

超级账本(Hyperledger)是Linux基金会的区块链项目,致力于[4]发展跨行业的商用区块链平台技术。超级账本项目自创立伊始便吸引了众多行业的领头羊,包括金融业、银行、互联网行业、运输业、制作业等。目前,超级账本项目在全球拥有超过100个成员,包括Cisco、IBM、Intel、J.P.Morgan、荷兰银行、SWIFT等。基于区块链技术、智能合约及其他相关技术,超级账本项目致力于建立新一代的分布式账本交易应用平台,从而在简化商业流程和法律事务的同时,建立起商业信任、透明、审查能力。旗下的Hyperledger Fabric子项目是以IBM早期捐献出的Open Blockchain为主体搭建而成,当时共向HyperLedger贡献了44000行开源代码。

HyperLedger Fabric是一个带有可插入各种功能模块架构的区块链实施方案,目标是打造成一个由全社会共同维护的开源超级账本。开源地址:https://github.com/hyperledger/fabric。Fabric的主要框架核心开发语言是Go语言,其更适合于联盟链。早在2016年IBM宣布,计划提供开源代码并持续向超级账本项目(Hyperledger Project)贡献区块链代码。IBM将提供经过IBM测试与认证的超级账本区块链代码,以及在多种技术平台上进行安装的方法,以便开发者可以在容器(Container)内执行超级账本的代码,并开始快速构建商品溯源、贸易融资、信用证、供应链以及企业贷款等区块链网络。

可以说,Hyperledger是对传统区块链模型的革新,在某种程度上是允许创建授权和非授权的区块链。Hyperledger还通过提供一个针对身份识别、可审计、隐私安全和健壮的模型,使得缩短计算周期、提高规模效率和响应各个行业的应用需求成为可能。

利用超级账本平台,用户可以轻松地搭建起企业级的区块链网络。在这个网络中,每名成员都可以访问实时更新、加密过的账本,并能查询及发起交易。一旦交易经过共识流程的验证,它就会立即加入到网络中所有的账本中,并且不能更改。交易结果迅速、私有、保密且易于审计。另外,早期的超级账本还定义了协议规范:Open Blockchain Protocol Specification,并以此建立了区块链平台Hyperledger Fabric,并可以用于一系列B2B和B2C交易相关的行业案例中。为了满足这些功能及要求,Hyperledger Fabric的实现利用了下述概念:

·智能合约(smart contracts)

·数字资产(digital assets)

·记录存储系统(system of record repositories/stores)

·基于共识的去中心化网络(decentralized consensus-based network)

·可插拔的共识算法及共识模型(pluggable consensus algorithms/models)

·加密安全机制(cryptographic security)

这些概念和功能让Hyperledger Fabric架构结合了3个范畴:成员管理、区块链和智能合约(Chaincode)。这3个范畴是按逻辑划分的,而不是在物理上对独立过程、地址空间或(虚拟)机器的组件分割。(1)成员管理服务

成员管理提供了诸多服务,包括身份管理、网络隐私、保密及审查。对于非准入型区块链,参与者不需要提供认证许可,所有的节点都平等地发起交易、验证交易及累积账本。也就是说,在非准入型区块链中没有身份的区别。成员管理服务结合PKI技术和去中心化/共识,将非准入型区块链转变为准入型区块链。在准入型区块链中,参与者通过注册获取身份认证许可(注册证书),并且通过参与类型区分类别。通过使用身份认证许可,用户可以向交易认证中心(TCA)申请伪匿名认证许可。只有使用这样的许可信息(即交易证书)用户才可

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载