1、新一代信息技术系列教材第 一 章目录区块链的发端与源起区块链的技术特点区块链的发端与源起1新一代信息技术系列教材 区块链导论区块链技术也称为分布式记账技术。众所周知,“记账”就是按时间的先后顺序,将个体、公司、组织等在一定时间内所发生的收和支出全部记录下来,供査阅者翻阅査看的行为。简单刻记/直观绘图结绳记事法单式记账复式记账法互联网时代记账工具分布式记账技术基于复式记账法思想,但又有很大的改进和提升,客观上大大推动了现代商业行为的发展。记账技术的更迭:新一代信息技术系列教材 区块链导论分布式记账技术新一代的记账技术区块链系统可以被视为带密钥的分布式和自动式记账账本,其核心是系统中每个节点都有一
2、份一模一样的账本,这些账本记录了系统所有发生的交易,并且能自动将新的交易数据添加到每个节点的账本中。和复式记账方式相比,区块链账本是多点同时记账,依靠共识机制确认,单个节点难以篡改账本记录。分布式记账优势:(1)通过多方记账的方式,增强数据安全性,防止单点故障(2)减少不同数据库之间的对账工作,提高效率和透明度新一代信息技术系列教材 区块链导论密码学最初是研究如何在敌方存在的情况下进行安全通信的一门科学。目的是分析和构建协议,使得通信双方在按照协议进行通信的过程中,能够防止第三方窃取通信内容。现代密码学是数学、计算机科学、电子工程、通信科学、物理学等多学科汇集的交叉科学,密码学技术被广泛应用于
3、电子商务、电子支付卡、数字货币、计算机密码、军事通信等众多领域。密码学最早起源于古希腊时代,经过长达几千年的研究,为如今的区块链密码学技术奠定了基础。新一代信息技术系列教材 区块链导论新一代信息技术系列教材 区块链导论l 20 世纪 90 年代发展出“密码朋克”(“Cypherpunk”)的概念。l 1992 年,Intel 的资深科学家蒂姆梅(Tim May)成立密码朋克组织。l 1993 年,蒂姆梅、美国加州大学伯克利分校(UCB)的数学家埃里克休斯(Eric Hughes)、开源软件的早期核心人物之一约輸吉尔摩尔(John Gilmore)共同创建“密码朋克邮件列表”。l 1993 年,
4、埃里克休斯(Eric Hughes)发表密码朋克宣言密码学研究赛博朋克构想密码朋克(Cypherpunk)(20世纪90年代)个体精神隐私保护新一代信息技术系列教材 区块链导论l 大卫乔姆(David Chaum)在 20 世纪 80 年代发明了乔姆育签名技术,并在 20 世纪 90 年代基于这种盲签名技术首次提出在网络上匿名传递价值的方式,将之命名为 Ecash。Ecash 通过银行的加密签名,以数字形式存储货币,必须依赖中心服务器系统。Ecash 的诞生在某种程度上可以说是加密货币的始祖。大卫乔姆新一代信息技术系列教材 区块链导论l 尼尔科布利茨(Neal Koblitz)和维克多米勒(V
5、ictor Miller)在 1985 年提出基于椭圆曲线的算法 ECC。这是一种新型的密钥算法,能够提供比 RSA 更高级别的安全。这个算法成为后来比特币的核心算法。尼尔科布利茨新一代信息技术系列教材 区块链导论l 斯图尔特哈勃(Stuart Haber)和斯科特斯托内塔(Scott Stornetta)在 1991 年发表论文如何为电子文件添加时间戳。在这篇论文中,他们提出用时间戳确保电子文档的安全这种技术保证了信息的可追溯和不可篡改,成为后来“区块链”数据结构的雏形。斯图尔特哈勃新一代信息技术系列教材 区块链导论l 菲利普齐默尔曼(Philip Zimmerman)在 1991 年发布邮
6、件加密软件“优良保密协议”(Pretty Good Privacy, PGP),并成立相关公司。PGP 是一个基于 RSA 公钥加密体系的邮件加密系统,能够保证邮件内容不被篡改,同时让邮件接受者信任邮件来自发送者。PGP 的使用范围很广,例如比特币白皮书的作者中本聪也是 PGP 的使用者,他的邮件都是通过 PGP 发出的。菲利普齐默尔曼新一代信息技术系列教材 区块链导论l 亚当巴克(Adam Back)在 1997 年发明了哈希现金(Hashcash)算法。这个算法用于电子邮件系统,要求在发送电子邮件之前,解一个数学题,以此来适度增加发送电子邮件的成本屏蔽大量的垃圾邮件。这个思想后来被 PGP
7、 的成员哈尔芬尼(Hal Finney)借鉴发明了可重用的工作量证明机制。亚当巴克新一代信息技术系列教材 区块链导论l 美国华裔工程师戴伟(Wei Dai)在 198 年提出了匿名的、分布式的加密货币系统 B- money, B- money 在很多关的技术上与后来的比特币非常相似,然而由于其某些技术细节(例如抵抗“双花”)难以实现,导致 B- money 最终没有成为现实。尽管如此,中本聪与戴伟(Wei Dai)之间的交流却相当多,并大量借鉴了 B- money 的很多思想。在比特币白皮书的参考文献中,B- money 的论文也赫然在列。戴伟新一代信息技术系列教材 区块链导论l 1998 年
8、,密码学家、智能合约概念的创造者尼克萨博(Nick Szabo),提出了比特金(Bit Gold)的设想。这种设想已经非常接近于比特币的体系构造,但由于 Bit Gold 的设想缺乏具体的代码实现,因此只停留在概念阶段,而没能成为“创世货币。尼克萨博新一代信息技术系列教材 区块链导论l 哈尔芬尼是比特币的早期核心贡献者,也是 PGP 公司的成员,并为 PGP 做出了重要的贡献。哈尔芬尼在 2004 年借鉴亚当巴克的哈希现金算法提出了可重用的工作量证明机制(Reusable Proofs of Work, RPOW),它直接影响了后来比特币的共识机制。l 除了这些先驱以外,约佩里巴洛(John
9、Perry Barlow,赛博自由主义政治活动家)菜斯利兰伯特(Leslie Lamport,拜占庭将军问题的提出者)、肖恩范宁(Shawn Fanning)和肖恩、派克(Shaun Parker,点对点网络工具 Napster 的发明者)、布拉姆科亨(Bram Cohen, Bit Torrent 的发明者)等都为比特币各项关键技术的发展做出了巨大贡献。在这些先驱以及更多科学家和工程师们的共同努力下,这些基于加密技术的创新和应用逐渐发展和成熟起来,为日后比特币和区块链的诞生奠定了坚实的基础。新一代信息技术系列教材 区块链导论新一代信息技术系列教材 区块链导论互联网发展史:苏联发射“伴侣号”美
10、国组建ARPA开始研究“包交换”技术ARPANET启动第一次使用“internet”一词TCP/IP协议NSF扩展MCI MailCompuserve1957年20世纪60年代1969年1974年20世纪80年代1989年超文本传输协议(HTP)超文本标记语言(HTML)网络浏览器商用互联网 exchange 斯坦福联邦信用社互联网大面积普及1990年1991年1994年2000年以后新一代信息技术系列教材 区块链导论新一代信息技术系列教材 区块链导论根本原因:现有的转账系统必须依赖中介机构进行处理和协调2008 年 11 月 1 日,一位网名为中本聪(Satoshi Nakamoto)的用户
11、在密码朋克社区上发表了比特币白皮书比特币:一种点对点的电子现金系统(Bitcoin: Peer-to- Peer Electronic Cash Systen),闻述了一个以点对点网络、分布式记账、工作量证明(PoW)共识机制、加密技术等为基础构建的电子现金支付系统。2009 年 1 月 3 日,中本聪通过运行这个版本产生了比特币的第一个区块,也就是创世区块创世区块的诞生标志着比特币主网正式上线,比特币从理论变为现实。比特币系统的发明是为了解决传统的银行转账过程中碰到的一些问题:账户和账户之间的转账交易成本高昂;存在利用信用卡撤销交易进行欺诈的行为;银行系统为了处理可能发生的纠纷会过度索取交易
12、双方的个人隐私信息等。新一代信息技术系列教材 区块链导论l 现有的金融系统中转账交易转账请求AB银行后台服务系统e.g. A与B都在某银行有账户,A向B转账100元检查A的账户余额是否大于100元是A账户+100元B账户 -100元拒绝A的转账请求否账本记录交易检查交易执行收取手续费新一代信息技术系列教材 区块链导论l 比特币系统中转账交易AB账本记录了 A 、B的账户信息和余额信息账本记录了 A、B的账户信息和余额信息双方验证交易有效完成转账e.g. 若系统用户只有A、B两人,A向B转账100元新一代信息技术系列教材 区块链导论e.g. 当系统用户规模扩大,A向B转账AB账本记账节点完成记账
13、,并将交易广播到整个网络其他节点接受信息并验证,如果没问题则加入自己账本该笔交易生效执行新一代信息技术系列教材 区块链导论比特币的诞生中本聪在邮件中提出“一种不需要第三方支持的新的点对点电子现金系统”,并贴出该电子现金系统的研究论文的地址。2009年1月,中本聪在一个小型服务器上挖出了比特币的第一个区块-创世区块,并获取了50个比特币的奖励,宣告了比特币的正式诞生。有趣的是,在创世区块中被写入了一串数字信息,还原为文本为:“The Times 03/Jan/2009 Chancellor on Brink of second baiout for banks”。当时正值英国的财政大臣被迫考虑第
14、二次出手解救陷入危机的银行,这句话是泰晤士报当天的头版标题。中本聪将这一事件在第一个区块链中永久的保留了下来。这既是对区块链产生时间的证明,也是对金融危机下银行系统脆弱的嘲讽。区块链的技术特点2新一代信息技术系列教材 区块链导论在以比特币为首的公有区块链系统中,它们自创世区块开始,所有区块包含的交易信息都是公开、透明的。在系统中每一笔交易从何地址转出、何时转出、转出金额、转人何地址等信息都被一一记录下来并且公开可査。依据这些信息,一个地址的总交易笔数、与何地址有过交易、转出总金额、余额等信息也可以被推断出来。区块链浏览器:区块链浏览器是一种区块链搜索工具。区块链浏览器的运营方本身已经下载好了完
15、整的账本数据。用户在区块链浏览器中输入相关字段,可以查到区块或交易的详细信息。典型的区块链公链系统,比如比特币和以太坊等都有许多区块链浏览器,这些浏览器通常是由开源软件团队自发开发的。新一代信息技术系列教材 区块链导论新一代信息技术系列教材 区块链导论父区块哈希值hash()数据父区块哈希值hash()数据创世区块父区块哈希值hash()数据区块链系统中的链式数据结构,是由包含交易信息的区块按照时间顺序从先到后链接起来的,这个数据结构被称为“区块链”。在区块链中,每个区块的区块头都包含一个名为“父区块哈希值”的字段,这个区块通过存储在这个字段中的值“链接”到前一个区块(父区块),并一直延续到创
16、世区块。如果黑客想篡改区块链中的数据,那么前一区块的哈希值将不会与该区块的哈希指针匹配;当然,黑客也可以通过篡改前一个区块的哈希指针来进行掩盖,但他会发现修改到区块链的头部-创世块时会遇到麻烦,因为创世块一般存储在黑客无法改动的地方。新一代信息技术系列教材 区块链导论区块链信息的可追溯性来源于区块链数据结构的特殊性。在区块链系统中,它的链式结构是从创世区块开始的,其后系统产生的所有区块都通过父区块的哈希值前后相连,并最终都能追溯到创世区块。由于每个区块都包含一段时间内系统进行的所有交易数据,因此系统完整的区块链数据就包含了自创世区块以来,系统所有进行的交易及交易前后的关联信息。当追溯一笔交易时
17、,能够顺着该交易所在的区块向前追溯所有这些历史区块信息。父区块哈希值hash()数据父区块哈希值hash()数据创世区块父区块哈希值hash()数据新一代信息技术系列教材 区块链导论区块链的集体维护主要指区块链系统在共识机制的作用下,激励新节点不断加入系统,并集体参与系统的维护和运作的特点。每一个区块链都会有一套“共识机制”,用来使众多互不相识的节点达成一致。具体来说,共识机制激励系统中的节点在参与系统运作时,令遵循这套机制的节点获得利益最大化,不遵循甚至作恶的节点则会付出较大代价而得不偿失。因此,区块链系统在没有单一机构的运作和管理下,依靠共识机制就能让系统自我运作起来,具备集体维护的特征。
18、比特币就是第一个这样的集体维护性组织。新一代信息技术系列教材 区块链导论n “中介化”:在一个组织或系统中,有一个中介机构负责整个系统的调配和服务。系统中所有的个体无论做什么、进行什么活动都要通过这个中介机构的调度。现有的互联网技术就是采用的这种方式工作,也就是俗称的“客户端/服务器”(Client Server)模式,简称为C/S模式。在这种用模式中,能为客户端应用提供服务(如文件服务、打印服务、通信 管理服务等)的计算机或处理器被称为服务器。与服务器相对应,提出服务请求的计算机或处理器就是客户端。这种系统中,服务器就是“中介”,客户端就是系统的“个体”。n “去中介化”:区块链系统中没有个
19、拥有特殊权限的中介服务器或单一机构。系统中每个全节点既是服务器也是客户端,在系统中的权利和义务都是对等的。它们既能作为服务器为需要服务的客户端服务,也可以作为客户端向其他节点提出请求。任意一个节点宕机或者失效都不会影响整个系统的运作。因此,区块链系统在架构上是去中介化/弱中介化的。第 二 章目录分布式系统区块链的分类区块链的应用分布式系统1新一代信息技术系列教材 区块链导论集中式系统由一台或者多台计算机组成中心节点,负责管理应用访问的数据存储、计算等资源;集中式系统一般采用中心化的数据库和服务器,优点是部署简单、开发运维容易,缺点是可扩展性不足;集中式系统还存在单点故障问题,如果中心节点出现故
20、障就意味着所有应用都将出现问题。新一代信息技术系列教材 区块链导论分布式系统是由若干独立的计算机节点组成的系统,这些计算机节点可以看成独立的系统组件,通过网络进行连接并在一定范围内有效共享资源,节点之间通过传递消息进行协调工作,共同完成系统内的工作任务。新一代信息技术系列教材 区块链导论定义包含两方面:系统内的计算机节点都是独立的,通过网络通信进行协调用户对于分布式系统的访问从功能逻辑上就像访问单个计算机系统一样(1)分布性:分布式系统内计算机节点可以分布在不同的位置。(2)可扩展性:分布式系统内节点数量可以根据应用需求进行动态増减,服务器也可以动态部署。(3)对等性:分布式系统没有中心化的控
21、制主机,组成分布式系统的所有计算机节点都是对等的;当某一个节点上存储的数据丢失时,可以从副本上读取该数据。(4) 并发性:分布式系统中的多个计算机节点通过网络进行连接并在一定范围内有效共享资源,某一时刻这些计算机节点可能会并发地操作一些共享的资源。分布式系统特征:新一代信息技术系列教材 区块链导论FLP 原理是一个关于分布式系统达成共识的重要理论,由费舍尔(Fischer)、林奇(Lynch)、帕特森(Patterson)三位学者在 1985 年提出,并以三人姓氏的首字母作为缩写命名。FLP 原理告诉人们,不要浪费时间去为异步通信的分布式系统设计在任意场景下都能实现共识的算法,这样的算法不存在
22、,理由是:在实际异步通信的分布式系统环境下,可能存在通信故障、延迟或者节点本身出现失效的情况,异步系统无法确保在有限时间内完成一致性。FLP 原理为分布式系统领域帯来一个较为悲观的结论,既然不存在这样的算法可以实现分布式系统的一致性,那么一致性问题就无法解决了么?后来埃里克布鲁尔(Eric Brewer)在 2000 年美国计算机学会(Association for Computing Machinery, ACM)组织的一个研讨会上提出了 CAP 原理猜想,之后林奇等人对 CAP 原理进行了证明。FLP 原理新一代信息技术系列教材 区块链导论CAP 原理CAP 原理定义了分布式计算系统的三大
23、特性:(1)一致性(Consistency):共享数据副本之间呈现出统一且实时的数据内容;(2) 可用性(Availability):所有的数据操作总会在一定时间内得到响应;(3)分区容错性(Partition):通常由于网络间连接中断而导致网络中的节点相互隔离无法访问时,被隔离的节点仍可正常运行。这三大特性无法同时实现,设计中需要弱化其中某个特性,而保证另外两个特性。对于结果一致性要求不是特别高的应用,可弱化一致性要求,比如延长达成一致性的时间。对于一致性要求高的应用可弱化可用性要求,比如系统发生故障时拒绝服务。大部分时候网络都是可靠的,网络分区出现概率小但很难完全避免,所以实际情况一般弱化
24、分区容错性新一代信息技术系列教材 区块链导论n 分布式系统的一致性:对系统内的所有计算机节点给定一组操作,按照约定的规则协议,节点之间对于操作后的最终处理结果达成某种共同认可的状态。分布式系统的一致性是设计分布式系统时应考虑的最核心问题。n 影响分布式系统最终全局状态结果一致性的因素:不同计算机节点处于不同的地理位置计算性能也存在差异对于相同数据任务完成计算耗费的时间无法保证一致:比如有可能出现少数节点处理较慢,而其他节点必须等待它们处理结;或者发生节点临时中断处理等异常情况,如出现节点宕机的情况。节点之间进行网络通信也有可能因为通信链路故障而导致消息接收延迟n 分布式系统一致性的目标:系统在
25、出现上面描述各种故障发生的情况下,依然能正常满足工作的要求,最终系统通过检测和处理,节点依然能达成全局一致性状态。新一代信息技术系列教材 区块链导论n 分布式系统的容错率:分布式系统的一致性表明,系统本身具有容忍一定数量节点发生错误行为的能力。这些发生错误行为的节点称为故障节点,占整个分布式系统全部节点数量的比例称为分布式系统的容错率。n 分布式系统达成一致性状态的基本要求:(1)收敛性:一致的结果在有限时间内能完成;(2)一致性:不同节点最终完成决策的结果是相同的;(3)有效性:决策的结果必须是某个节点提出的提案;分布式系统计算机服务可以正常使用的前提主要指分布式系统最终一致性是由分布式系统
26、内的节点执行的结果新一代信息技术系列教材 区块链导论在实际工程实践中,一般会放宽对一致性的要求,采用弱一致性替代强一致性。强一致性要求节点无论何时进行数据的读取操作,均会返回最新一次写操作后的结果数据,即系统对节点达成一致性结果的同步性要求很高。弱一致性一般指在满足一定约条件下达到最终一致性,即系统可以在未来某个时刻而不是马上达成一致性状态。弱一致性要求中比较典型的是最终一致性(Eventual Consistency),不保证任意时间点上节点的数据均相同,但需要在经过有限的时间后达到数据上的一致。这实际上可以通过放宽系统的目标要求,从而降低系统实现的难度。新一代信息技术系列教材 区块链导论分
27、布式系统内部存在地理位置分布不同的计算机节点,内部节点之间还存在复杂的通信行为,分布式系统节点或者节点通信出现故障都有可能影响到系统的安全性和系统最终完成计算任务的结果可信度。n 分布式系统的安全性主要体现在攻击者无法通过影响系统内的部分节点或者其他手段,造成分布式系统整体功能故障而无法继续正常工作。n 分布式系统的可信性系统最终完成计算任务得出的全局一致性状态结果对于所有节点及系统用户均是可信的。分布式系统一般通过系统内数据和服务副本的冗余性,即所有节点都存储一份状态数据的副本以及保证这个唯一的系统全局状态数据的不可篡改性来实现可信。区块链的分类2新一代信息技术系列教材 区块链导论公有链通常
28、不设置准入门槛,对所有人开放,任何人都可以自由访问公有链的数据,参与公有链的共识,并在公有链上创建应用,这也是“公有”的由来。目前公有链可以运用在数字资产等场景,如比特币、以太坊等。同时,公有链也可以应用在一些直接点对点交互需求的场景,如资产注册登记、发行、投票、资产管理等。公有链的公开透明使得其不太适合那些对数据隐私、商业机密要求较高的场景,更适合对信任、安全和持久性要求较高的场景,如用户对自主数据的控制、可信的商品溯源记录。公有链的应用也不局限于金融场景,还包括防伪溯源、数字身份、内容版权、物联网等。新一代信息技术系列教材 区块链导论联盟链服务于符合某种条件的成员组成的特定联盟,是由联盟成
29、员进行管理的区块链。其具有半开放的网络,只有经过认证许可的可信节点才能加入、退出网络;具有受控制的读写权限,只有特定权限的链上节点能发布和访问交易,只有一部分拥有权限的可信节点才能参与该联盟链的共识和记账。联盟链没有通过激励机制实现系统自治的强烈需求,各联盟链根据自身需求自主选择増加激励系统。联盟链的分布式程度和信息公开程度不及公有链,但也因此可更好地保护用户、交易隐私。同时由于交易只需要部分被授权的受信高算力节点进行验证共识,因此相较公有链,其性能较更高,成本更低。新一代信息技术系列教材 区块链导论私有链服务于特定企业、组织或个人,是由该企业、组织或个人进行管理的区块链。其具有相对封闭的网络
30、,只对指定实体或个人开放,只有相关节点在许可认证后才能加入、退出网络。私有链同时具有受控制的读写权限,只有特定权限的链上节点才能在链上发布和访问交易信息,只有一部分拥有权限的可信节点能参与共识和记账。与联盟链不同的是,私有链节点均属于同一企业或组织,节点之间信任程度更高,并且私有链共识范围更加狭窄,甚至可以仅由单高性能节点进行记账。私有链在三类区块链中分布式程度和信息公开程度最低,因此其性能最高,隐私性最强且交易成本最低。由于私有链较为集中的权限控制与管理并非真正的分布式系统,其一般只应用于企业内部,主要应用于数据管理、审计等金融场景。区块链的应用3新一代信息技术系列教材 区块链导论公有链对所
31、有人开放,任何人都可以参与访问公有链,并在公有链上创建应用。目前公有链主要应用在数字货币等场景,如比特币、以太坊等。同时,公有链也可以应用在一些具有点对点直接交互需求的场景,如资产注册、发行、投票、资产管理等。n 关于数字货币、加密货币和虚拟货币概念界定:数字货币(Digital Currency)指向的范围较广,它泛指数字化的货币。电子货币 Electronic Money)与数字货币的概念相类似,它同样指以电子化途径实现的货币,例如央行数字货币(Central Bank Digital Currencies, CBDC)。加密货币(Crypto Currency)其实是加密数字货币的简称,
32、是数字货币发展的一种分支它更强调货币使用了密码学技术。例如,基于公用链技术发行的比特币就是一种很经典的加密货币。虚拟货币(Virtual Currency)和数字货币范畴有一定的重合,但它强调这类货币不是真实的货币,通常不具有法偿性和强制性等货币属性。游戏中的点券、互联网公司发行供生态内使用的货币,都可以认为是虚拟货币,而比特币等有时也被认为是虚拟货币。新一代信息技术系列教材 区块链导论n 关于 Token:它原指令牌、通行证。在区块链中,它是指基于区块链创建的一种数字对象代表区块链的某种价值或某种权利,中文也被译作“通证”。一般 Token 是以加密货币形式存在的,但也有一些是传统的电子化凭
33、证。Token 指代的某种价值或某种权利的范围很广泛,例如货币、积分、票据、投票权、分红权、地产、证券、债券、某种资格、某类证明等各种权益证明。大部分加密货币和 Token 为了能够进一步提升其可信程度,会选择公有链作为载体去发行。但是也有一些 Token,会因为场景需要发行在联盟链或私有链上。此外,出于便于监管和可控的考虑,一些央行层面的数字货币会选择在联盟链或私有链架构上进行发行。新一代信息技术系列教材 区块链导论联盟链只对特定的参与组织开放权限,可以保护参与者的交易数据隐私,适合机构之间的交易、清结算和 B2B 场景。联盟链的应用场景非常丰富,主要包括金融和非金融领域:1) 金融领域:支
34、付、保险、清结算、股权登记、征信、供应链金融等金融场景对于信任要求较高,同时也需要保护数据隐私,适合作为联盟链场景。2) 非金融领域:非金融领域主要通过区块链不可篡改的特性来追踪、记录和共享数据,如区块链应用在商品溯源、电子政务、智慧城市、公益慈善、医疗健康等场景。新一代信息技术系列教材 区块链导论区块链的应用方式从其延生开始已经经过了三个发展阶段:第一个阶段是比特币为代表的点对点支付时代,主要实现高效率、点对点的支付过程,其主要应用场景包括支付、流通等;第二个阶段是以以太坊为代表的智能合约时代。区块链与智能合约相结合,实现在区块链上部署应用程序,包括可编程金融、分布式应用(Decentral
35、ization Applications,简称 DAPPS”)等落地;第三个阶段是“区块链+行业”应用的时代,即把区块链应用拓展到各个行业场景,以实现具体行业应用落地为目标,解决行业痛点,服务经济发展和社会进步。新一代信息技术系列教材 区块链导论目前区块链正在加速向第三阶段的行业应用推进,成为一种通用基础设施,加速与行业融合创新。区块链技术的优势:多方协作场景中以低成本建立信任区块链技术发展瓶颈:存储、计算等方面存在一定的资源和性能瓶颈区块链不只是单一技术,而是多种技术的综合集成,包括 P2P 网络通信、非对称加密技术以及分布式数据库技术等。同时,区块链应用还涉及多节点参与的协调问题,实施区块
36、链解决方案可能面临计算复杂度和存储冗余度都比较高的情况,区块链和其他技术结合可以有效降低复杂度,加速区块链应用落地进程。第 三 章目录3.2 数据层3.1 区块链的系统分层3.3 网络层3.4 共识层3.5 合约层3.6 应用层区块链的系统分层1新一代信息技术系列教材 区块链导论发送者A接收者B1. 借助何种应用完成转账2. 检查发送者余额与真实性3. 节点确认4. 通知接收者5. “收款凭证”的存储分层:拆分复杂问题,通过层级递进关系串联通用网络标准和方法:开放系统互联模型应用层表示层会话层传输层网络层数据链路层物理层图3-1 OSI七层网络模型网络通信模型:TCP/IP协议应用层传输层网络
37、层链路层图3-2 TCP/IP 四层网络模型层级之间存在传递关系新一代信息技术系列教材 区块链导论1. 独立性 每层具有独立的逻辑和功能2. 通用性各层规范和架构确定,有利于国际标准化工作展开,促进系统各部分的通用性和兼容性。3. 层级间具有递进关系需要满足分层的以下特点:应用层 分布式的链上应用 面向最终用户合约层 实现智能合约、脚本功能共识层 负责实现各账本的数据一致性 分布式系统特有层级 各节点达成一致,共识机制:PoW,PoS,BFT网络层 节点之间的网络连接和传输 点对点网络数据层 区块链模型基础 负责区块链数据存储“账本” 数据形成区块,以时间戳顺序存储在物理介质中 新区块验证并上
38、链图3-3 区块链五层分层模型新一代信息技术系列教材 区块链导论发送者A接收者B应用层例子:发送Token交易信息+签名信息选择APP,输入交易信息合约层交易信息+签名信息+合约内容调用Token合约共识层选出节点并进行信息验证,打包成区块节点信息+交易信息+签名信息+合约内容网络层节点广播区块给其他节点,并进行验证区块数据层区块上链新一代信息技术系列教材 区块链导论数据层2新一代信息技术系列教材 区块链导论区块链的本质:分布式账本数据结构数据模型数据存储合约层共识层网络层数据数据层层应用层新一代信息技术系列教材 区块链导论区块链:区块按照时间戳,由远及近地链接,形成一条链式结构的数据存储。1
39、. 区块结构区块链的数据组织单元是区块,不同的区块链的区块数据都会包含“区块头”和“交易”两个部分。区块头交易存放区块自身的元数据存放加密后的交易信息比特币幻数、区块大小、区块头、交易计数和交易以太坊 区块头、交易、区块头哈希新一代信息技术系列教材 区块链导论区块链:区块按照时间戳,由远及近地链接,形成一条链式结构的数据存储。1. 区块结构区块链的数据组织单元是区块,不同的区块链的区块数据都会包含“区块头”和“交易”两个部分。区块头交易存放区块自身的元数据存放加密后的交易信息比特币幻数、区块大小、区块头、交易计数和交易以太坊 区块头、交易、区块头哈希新一代信息技术系列教材 区块链导论区块头前块
40、哈希默克尔(Merkle)根时间戳向前一个区块的指针,将孤立的区块串联在一起,形成区块链存放着基于交易信息形成的哈希值记录当前区块产生的近似时间区块头新一代信息技术系列教材 区块链导论交易信息对交易信息的哈希对下层节点的进一步哈希交易与Merkle树Merkle树又称为哈希树,树中的每个节点存储的均为哈希值。Merkle树的结构特点:(1)易校验(2)扩展性强(3)证明成本低新一代信息技术系列教材 区块链导论区块链的形成:“前块哈希”的数据域,将父区块的区块头做哈希运算得到,将区块有序连接成区块链。特点:1.增加了篡改难度2.无法避免产生分叉!1. 交易输出(Unspent Transacti
41、on Output, UTXO)模型UTXO以“交易”为单位进行追踪和记录。比特币为代表,每笔交易有一个或者多个交易输出或输入。输出:交易的每一个输出即为一个新的UTXO,一个用户所拥有的比特余额为该用户的所有UTXO之和,这些UTXO零散地记录在不同的交易区块中。输入:交易的每一个输入即为前序交易的某个UTXO,所有交易的最初输入可以追溯了铸币奖励。每笔交易的输入与输出可以并行处理,并且一一对应。2. 账户模型账户不记录交易过程,只记录余额状态。特点:1. 区块体积小,网络传输量小,空间利用率高;2. 相比与UTXO模型,账户模型让网络中的轻节点更容易验证;3.并发处理能力比UTXO差。以太
42、坊为代表,账户模型中包含了:(1)外部账户 给用户操作,通过私钥信息操作账户实现转账、智能合约的创建,调用等功能(2)合约账户 不能自主发起交易,只能被外部账户调用新一代信息技术系列教材 区块链导论存储构架的演变:中心化服务器分布式数据中心或者云平台(多中心化)区块链:分布式存储,每个节点都能够存储全量账本。不同区块链,节点上的物理存储方式不同比特币:区块数据以文本形式存储;其他信息存储在键值(Key-Value, KV)数据库LevelDB中。以太坊:状态和索引数据都被存储在LevelDB中。联盟链Corda项目的数据存储在传统关系型数据库,TrustSQL项目数据采用MySQL及Maria
43、DB作为存储数据库。区块链项目面临着严峻的存储问题,需要新的技术手段,例如云平台、侧链、闪电网络等。网络层3合约层共识层网络网络层层数据层应用层网络层:泛指区块链系统的整个网络通信层,区块链数据通过网络层传播进行校验、存储等。主要实现组网、传播与校验功能。中心化模式:架构:客户端/服务端(Client/Server,C/S)或浏览器/服务端(Browser/Server,B/S)特点:1. 系统需要一个或多个中心化的服务器承担统一接收和处理请求的职能2. 优点:利于服务的统一管理与升级;保持服务一致性;3. 缺点:中心化的设备故障会导致服务瘫痪;节点多导致负载压力大。新一代信息技术系列教材 区
44、块链导论点对点网络(Peer-to-Peer, P2P)分布式网络架构,网络中的每一个节点都是对等的,可以充当服务提供方及服务获取方。单一或少量节点机器配套通信设备的故障不会影响整个网络的服务提供。优点:节点越多,服务质量越高,扩展性越强。缺点:数据一致性难以保障、资源无法统一管理、垃圾信息多等。新一代信息技术系列教材 区块链导论n P2P网络的核心技术:分布式哈希表用途:维护网络中节点清单和和节点能提供的服务清单分布式哈希表(Distributed Hash Table, DHT)诞生于2001年,核心思想是网络中的每个节点都 维护一部分索引信息,然后通过特定的规则将这些节点信息连接起来,使
45、得在查询或注册时,按规则触达相关节点或资源,不同的规则对应着分布式哈希表不同的协议。 优势:避免中心化索引和网络风暴n 分布式哈希表基础结构:哈希表,是一种以“键-值”形式进行存储和查询的数据结构。在存储时,存储信息经过哈希函数的处理生成一个映射地址,并将信息存储到这个地址中,读取时直接定位到该映射地址提取数据。新一代信息技术系列教材 区块链导论图3-12为哈希表存储结构,是一组数据1、3、4、7、8、20、55经过哈希函数H(k)=k%7进行散列得到。对于数值20,20%7=6,因此数值20存储在地址为6的地方。也有可能存在地址冲突的情况,例如1和8散列后地址相同,这种情况可以通过开放定址、
46、单独链表、再散列等方法解决。图中的采用的是单独链表法。通过哈希表存储的数据,可以实现在常数时间复杂度内完成数据读取,十分高效。在分布式网络中,每个节点都存储了一张哈希表,通过一定的规则关联形成了分布式哈希表。地址存储数据新一代信息技术系列教材 区块链导论n 分布式哈希表实现:Kademlia协议Kademlia协议在2002年设计,具有结构简单、性能好、安全性强的优点由于在分布式哈希表的网络中,每个节点只保存一部分资源的索引信息,当网络中有资源变更时不需要全网广播,只需要更新相关节点。问题1:如何在每个节点都知道部分信息的情况下实现对全网资源的触达与维护?Kademlia协议提出基于距离的解决
47、方案:每一个节点都维护一张哈希表,表中将网络的节点基于距离进行分组,每个分组下存放若干个节点代表。问题2:网络中的节点和资源如何建立关系?Kademlia协议将网络中的节点和资源均映射成160位的二进制码,编码等于或接近某个资源的节点,需要知道该资源的下载地址。Kademlia协议解决了点对点网络中的组网问题,将找资源变成找节点,将找具体节点变成找大类的代表。新一代信息技术系列教材 区块链导论l 数据传播 区块数据打包后需要广播给其他节点进行校验和记账。根据点对点分布式网络的特点,每个节点只会向其直接连接的节点发送区块信息。收到消息的节点会对区块进行校验,通过后加入该节点本地的区块链,并广播给
48、其他节点,如此循环,知道触达全网的节点。 以太坊中的数据传播方式: 1. 向相邻节点直接发送包含完整的区块内容的消息; 2. 向相邻节点发送只包含区块哈希的消息,收到区块哈希的节点再从发送节点请求对应的完整区块信息。新一代信息技术系列教材 区块链导论l 数据校验 点对点网络中,全节点会占用较大的存储量,轻量级节点会存储部分数据,所以轻量级节点需要向相邻节点请求数据来完成数据校验。 数据校验的内容:依据该区块链项目预定义的清单。 比特币的数据校验内容: (1)工作量证明检查 (2)区块头中Merkle根的值是否与依据区块体中交易信息计算得到一致 (3)区块大小再限制范围内 (4)第一笔交易以外的
49、其他交易不能是铸币交易 (5)交易的合法性共识层4新一代信息技术系列教材 区块链导论区块链系统作为一个分布式系统,其正常工作的核心问题是如何保证所有节点中的数据完全相同,并且能够对某个提案达成一致。解决方法:共识层包含了各种共识算法,负责实现区块链各个账本的一致性,即不同节点数据的一致性。一致性指不同节点中的数据内容是否完整并且相同,是系统对外呈现的状态是否一致。共识是一种实现一致性的方法、途径或手段;共识机制(共识算法)是为了达成共识需要使用的某种机制,快速准确地在各个节点实现区块数据一致性的机制和算法,通常是利用奖惩机制。主流的共识机制:1. 确定性算法:如拜占庭容错(BFT)2. 概率性
50、算法:如工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)区别:确定性算法下的新区块无法被滚回,而概率性算法的新区块,只有当被回滚的概率接近0时,才被视为确定性的。新一代信息技术系列教材 区块链导论拜占庭容错(Byzantine Fault Tolerance, BFT)算法可以解决分布式系统里拜占庭将军问题的容错算法。拜占庭将军问题:将军选择进攻还是不进攻?决策是否能达成一致,是决定胜负的关键。 诚实将军们决策的结果会被叛徒将军干扰:1.不进行表态;2.发表错误观点;3.主动干扰其他将军对局势进行误判。例如:有11位将军A1, A2, A3, A4, B1, B2, B3,