




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Blockchain区块链·技术导论CONCEPYPRINCIPLEANDAPPLICATION概念、原理与应用全套可编辑PPT课件课程设置及考核方式学时:32(理论课20,上机12)学分:2课程类别:专业限选课教材:《区块链技术导论》
大连理工大学出版社
曲毅主编期末分数:平时考勤30%
+课程作业完成情况70%163区块链——开启下一个十年的钥匙1)元宇宙(Metaverse)元宇宙一词诞生于1992年的科幻小说《雪崩》,小说描绘了一个庞大的虚拟现实世界,在这里,人们用数字化身来控制,并相互竞争以提高自己的地位,到如今看来,描述的还是超前的未来世界。元宇宙本质上是对现实世界的虚拟化、数字化过程,需要对内容生产、经济系统、用户体验以及实体世界内容等进行大量改造。但元宇宙的发展是循序渐进的,是在共享的基础设施、标准及协议的支撑下,由众多工具、平台不断融合、进化而最终成形。它基于扩展现实技术提供沉浸式体验,基于数字孪生技术生成现实世界的镜像,基于区块链技术搭建经济体系,将虚拟世界与现实世界在经济系统、社交系统、身份系统上密切融合,并且允许每个用户进行内容生产和世界编辑。
区块链——开启下一个十年的钥匙2)NFT(Non-FungibleToken)指非同质化代币,是用于表示数字资产(包括jpg和视频剪辑形式)的唯一加密货币令牌,可以买卖。它是寄生于现有区块链项目中,基于区块链智能合约发行并用以代表某种外部资产的资产支持通证。1)NFT基于区块链特性进行确权,获取身份标识,帮助每一个独一无二的东西进行版权确认。2)NFT基于区块链得以规范每一次链上交易。3)NFT将区块链上的数字资产落地于现实场景。4)NFT是区块链技术的一种应用,NFT是发行在区块链上的差异性数字资产区块链——开启下一个十年的钥匙NFT产业链分为基础设施、协议层、应用层3层,当前协议层蓬勃发展,热门项目陆续面世。
基础设施:为NFT提供技术支持。主要涵盖底层公链(Ethereum、Flow:构建应用程序的公链)、测链/Layer2、开发工具(Pixura:用于创建、跟踪和交换加密数字藏品)、代币标准、存储以及钱包(Metamask)
协议层:通过构筑协议来创造NFT资产,如:艺术品、游戏等。艺术/收藏品:Crytokitties(交易、繁殖电子猫)、NBATopshot(收集、交易NBA明星球员卡牌)、SuperRare(艺术/收藏品平台);游戏:
AxieInfinity(P2P游戏)、Decentraland(虚拟空间游戏等)。
应用层:基于NFT资产运用,如交易NFT的泛二级市场Opensea、NFT中国;金融和垂直领域如社区、数据服务等。
区块链——开启下一个十年的钥匙3)Web3.0
Web1.0:只读(1990-2004)
——
公司拥有的静态网站,用户之间的互动几乎为零。
Web2.0:能读能写(2004年-至今)
——社交媒体平台的出现,互联网公司除了向用户提供内容外,还开始提供平台来共享用户生产的内容,并参与用户间的交互。随着越来越多的人上网,少数互联网巨头开始掌控网络上海量的流量和价值。Web2.0还催生了广告驱动的盈利模式。虽然用户可以创作内容,但他们并不拥有内容或通过将内容变现来获益。
Web3.0:能读-能写-能拥有(2014-至今)区块链——开启下一个十年的钥匙3)Web3.0Web3.0被用来描述互联网潜在的下一阶段,一个运行在“区块链”技术之上的“去中心化”的互联网。Web3.0是网站内的信息可以直接和其他网站相关信息进行交互,能通过第三方信息平台同时对多家网站的信息进行整合使用;用户在互联网上拥有自己的数据,并能在不同网站上使用;完全基于web,用浏览器即可实现复杂系统程序才能实现的系统功能;用户数据审计后,同步于网络数据。在线游戏通过积分的方式,角色扮演者通过攻城掠寨、不断地修炼、花费大量的时间,他们在那里可以获得声誉和财富,而这个财富通过一定的方式可以在现实中兑换,正所谓人生如同一场游戏,互联网会让人们的生活变得更像游戏一样。第一章区块链的起源与本质第一章的学习要点了解与区块链技术密切相关的记账技术发展史;了解作为区块链技术根基的密码学发展史和“密码朋克”运动;了解区块链首个应用——比特币的诞生及发展过程;掌握区块链技术的基本特点。时下,“区块链”成为一大热词。“把区块链作为核心技术自主创新重要突破口”“加快推动区块链技术和产业创新发展”。最高层的前瞻判断,让“区块链”走进大众视野,成为金融资本、实体经济和社会舆论共同关注的焦点。在中央政治局集体学习中,技术前沿是重要内容。从网络强国到大数据,从媒体融合到区块链,中央政治局集体学习瞄准技术变革前沿,展现出中国最高决策层的方向把握力、前瞻判断力和未来预见力,引领着中国产业变革和经济转型的步伐。中央政治局这次集体学习,专门强调“区块链”,则为区块链的发展和应用打开了丰富的想象空间。那么,什么是区块链?从技术层面来看,区块链涉及到数学、密码学、互联网和计算机编程等很多技术问题。但从应用视角来看,可以越过具体的技术问题,运用“第一性原理”的思维方法,用基本的原理来思考复杂的现象。根据工信部中国电子标准化研究员软件工程评估中心的定义显示,“区块链是在点对点网络下,通过透明和可信规则构建不可伪造、不可篡改和可追溯的块链式数据结构,实现和管理事务处理的模式;区块链去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点,保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。而区块链巨大的应用场景,基本上都基于区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动。什么是区块链?EVOLUTIONOFBLOCKCHAIN区块链的进化区块链1.0区块链2.0区块链3.0区块链是一个分布式网络;可以帮助多个节点达成共识去记录和Token相关的事情;帮助所有人无门槛地构建属于自己的小经济系统。区块链1.0是以比特币为代表的数字加密货币,多用于金融相关行业区块链2.0是以太坊为代表的智能合约公链开发平台,用于开发DAPP区块链3.0是区块链+时代,它的应用范围将超越金融领域,扩展到身份认证、公证、审计、域名、物流、医疗、能源、签证等领域。区块链将成为未来社会之中最底层次的协议比特币为代表以太坊为代表区块链+时代BLOCKCHAINHASAWIDERANGEOFAPPLICATIONSCENARIOS区块链应用场景广泛金融政务服务物流溯源社会公益司法医疗教育共享经济能源证券交易发行交易清结算监管管理投票供应链金融预付款金融仓储融资应收账款融资保理业务支付实时转账跨境汇款金融衍生品股权互换期权期货担保征信财务数据管理地产租赁担保公共档案管理数字发票证据存证司法仲裁商品溯源保真质量监管处方管理药品安全寻人信息平台捐赠流程追溯学历认证资源共享智能电网碳证交易共享租车智慧租房1.1区块链的诞生捷径科技集团区块链的发端与缘起区块链技术是在密码学和“密码朋克”运动发展的硕果,2009年首个应用——比特币构建了第一个区块,标志着区块链技术的正式问世。1)记账技术的更迭区块链技术也称为分布式记账技术。“记账”就是按时间的先后顺序,将个体、公司、组织等在一定时间内所发生的收入和支出全部记录下来,供查阅者翻阅查看的行为。旧石器时代结绳记事法单式记账与复试记账法互联网记账工具区块链的发端与缘起2)密码学的发展区块链技术的诞生是伴随着比特币出现的,但实际上,比特币及区块链技术的出现并非偶然,而是由20世纪密码学的蓬勃发展演变而来的。量子计算舒尔算法(Shor)可解密——抗量子计算的密码算法将是未来密码学研究的新方向现代密码学的发展恩尼格码机量子计算与密码学区块链的发端与缘起3)“密码朋克”的建立密码学的飞速发展形成了一股新的思潮——希望结合赛博朋克构建,在计算化空间下使用密码学保护个人隐私。这一思潮的不断成长和发酵,在20世纪90年代发展出“密码朋克”(“Cypherpunk”)的概念。密码朋克运动的主要思想:无隐私、无自由隐私不是秘密,密码朋克不是黑客匿名通讯和支付系统是保护隐私必不可少的基础设施政府靠不住、公司靠不住,任何人类组织都靠不住信密码学、得永生阻碍密码学传播和民用的人没安好心撸起袖子自己干,用密码学和代码创建安全、自由的网络世界区块链的发端与缘起4)互联网技术的蓬勃进步区块链技术的发展是以互联网为基础的,互联网是区块链的载体,在互联网大面积应用和普及的情况下“万事俱备、只欠东风”的区块链技术破茧而出。区块链的发端与缘起5)首个区块链应用的诞生2008年11月1日,中本聪(SatoshiNakamoto)在密码朋克社区发表了比特币白皮书《比特币:一种点对点的电子先进系统》,阐述了一个以点对点网络、分布式记账、工作量证明(PoW)共识机制、机密技术等为基础构建的电子现金支付系统。2009年1月3日,中本聪通过运行比特币系统产生了比特币的第一个区块,也就是创世区块。比特币系统的发明是为了解决:转账系统必须依赖中介机构进行处理和协调的问题。1.2区块链的结构什么叫区块
区块(block),就是区块链中存储数据的基本单元,是一组信息或者数据的集合,由区块头head和区块体body构成。区块体只负责记录前一段时间内的所有交易信息,区块链的大部分功能都由区块头实现。区块头head区块高度:区块的编号,代表当前是第多少个区块当前hash标识:当前区块唯一的标识号码,相当于当前区块的身份证号前一个区块hash标识:当前区块前一个区块的身份证号时间戳:当前区块被创建的时间区块体body数据内容:当前区块实际需要存储的数据集合由于区块中的头部,存在前一个区块的标识,则意味着通过一个区块,可以找到其前一个区块,这样多个区块,在一起,就形成了一个链条就是我们所说的区块链。什么叫区块链简单来说,一个区块就是一页账单,上面记录了若干条交易数据而区块链就是把这些账单按照顺序“装订”起来的账本什么是哈希(hash)算法
哈希(hash)算法属于摘要算法(MessageDigtest)的一种。它可以将任意数据生成固定长度的16进制字符串。
摘要算法的原理是:
世界上没有完全一样的叶子,每一个叶子都有自己的特征,提取某叶子独一无二的特征就是摘要。
常见哈希算法:md5,sha1,sha256,sha512等,都是摘要算法.1,只要数据一样,那么不管计算多少次都会获得同一个字符串2,明文只要稍微改变,加密后的结果都会“面目全非”3,过程不可逆,无法从密文推导出明文哈希算法的特点1.3区块链的特性BLOCKCHAINFEATURES区块链特征BDAC独立性基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。开放性区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。去中心化区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。安全性只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。E匿名性除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。A.去中心化B.开放性C.独立性D.安全性E.匿名性区块链的特性—公开透明
从技术角度看,区块链是一种存储结构,数据被存储在不同的“区块”中,这些区块按照时间顺序串连成“链条”,形成“区块链”。以比特币为首的公有区块链系统中,自创世区块开始,所有区块包含的交易信息都是公开、透明的。系统中的每一笔交易从何地址转出、何时转出、转出金额、转如何地址等信息都被全部记录下来,并且公开可查。任何用户通过运行比特币或以太坊的全节点客户端,都能下载完整的账本数据并查看上述交易及账户信息。ID:0x39f12a8f3e30f79a8e34bef042d6747771f425c3bc393a4240d749d739b794b5区块链的特性—难以篡改
在区块链中,除了创世区块之外,每个区块都指向前一个区块。每个区块的区块头部都包含一个“父区块哈希值”,本区块的哈希值受到前一个区块(父区块)哈希值的影响,如果前一个区块的任何字段值发生变化,则本区块的“父区块哈希值”就会变化,同时本区块的哈希值也会跟着变化。以此类推,区块链中后续的区块信息全部都要全部变化。区块链规模越大,篡改工作量越大,同时,区块链中每一个全节点都存储着一份相同的区块链数据结构,要进行篡改,仅篡改一个全节点是不够的,需要同时篡改至少51%的全节点存储数据。
区块链的特性—可以追溯
区块链信息的可追溯性来源于区块链数据结构的特殊性。
在区块链系统中,它的链式结构是从创世区块链开始的,其后系统产生的所有区块都通过父区块的哈希值前后相连,并最终追溯到创世区块。由于每个区块都包含一段时间内系统进行的所有交易数据,系统完整的区块链数据就包含了自创世区块以来,所有进行的交易及交易前后的关联信息。当追溯一笔交易时,能够顺着该交易所在的区块向前追溯所有历史区块信息。区块链的特性—集体维护
区块链的集体维护主要指区块链系统在共识机制的作用下,激励新节点不断加入系统,并集体参与系统的维护和运作的特点。每一个区块链都会有一套“共识机制”,用来使众多互不相识的节点达成一致。共识机制激励系统中的节点在参与系统运作时,令遵循这套机制的节点获得利益最大化,不遵循甚至作恶的节点则会付出较大的代价而得不偿失。因此,区块链系统在没有单一机构的运作和管理下,依靠共识机制就能让系统自我运作起来,具备集体维护的特征。区块链的特性—去中心化/弱中心化
与传统C/S(Client/Server)模式不同,区块链系统中,没有一个拥有特殊权限的中心服务器或单一机构。系统中每个节点既是服务器也是客户端,在系统中的权利和义务都是对等的(peertopeer,p2p)。任意一个节点宕机或者失效都不会影响整个系统的运作,因此,区块链系统在架构上是去中心化/弱中心化的。区块链演示/watch?v=_160oMzblY8谢·谢·观·看Blockchain区块链·技术导论CONCEPYPRINCIPLEANDAPPLICATION概念、原理与应用第二章区块链的基础概念第二章的学习要点掌握分布式系统的概念,分布式系统和集中式系统的区别;充分理解分布式系统的一致性问题、FLP和CAP原理;掌握区块链的三种分类以及每类区块链的基本特征;了解公有链和联盟链的主要应用场景。2.1分布式系统捷径科技集团分布式系统的概念1)集中式系统架构,一般采用中心化的数据库和服务器,优点是部署简单、开发运维容易;缺点是可扩展性不足。2)分布式系统架构,一般由若干个独立的计算机节点组成,这些节点可以看成是独立的系统组件,通过网络进行连接并在一定范围内有效共享资源,节点之间通过传递信息进行协调工作,共同完成系统内的工作任务。分布式系统的基本特征1)分布性,分布式系统内计算机节点可以分布在不同的位置。2)可扩展性,分布式系统内节点数量可以根据应用需求进行动态增减,服务器也可以动态部署。3)对等性,组成分布式系统的所有计算机节点都是对等的。副本(Replica)是分布式系统最常见的概念之一,指的是分布式系统对于数据和服务的一种冗余处理方式。数据副本,指不同节点上持久化存储同一份数据,当某一个节点上存储的数据丢失时,可以从副本上读取该数据。服务副本,指多个节点提供同样的服务,每个节点都有能力接收来自外部的请求并进行相应的处理。4)并发性,分布式系统中的多个计算机节点通过网络进行连接,并在一定范围内有效共享资源,某一时刻这些计算机节点可能会并发地操作一些共享的资源。分布式系统—FLP原理FLP原理(1985,Fischer、Lynch、Patterson):不要浪费时间去为异步通信的分布式系统设计,在任意场景下都能实现共识的算法,这样的算法不存在(不可能原理)。在实际异步通信的分布式系统环境下,可能存在通信故障、延迟或者本身出现失效的情况,异步系统无法确保在有限时间内完成一致性。原理可参考:/article/17009.html分布式系统—CAP原理CAP原理(2000,EricBrewer):1)一致性(Consistency)共享数据副本之间呈现出统一且实时的数据内容。2)可用性(Availability)所有的数据操作总会在一定时间内得到响应。3)分区容错性(Partition)网络连接中断而导致网络中的节点相互隔离无法访问时,被隔离的节点仍可以正常运行。这三大特性无法同时实现,设计中需要弱化其中某个特性,保证另外两个特性。分布式系统的一致性分布式系统的一致性是设计分布式系统时应考虑的最核心问题,它是指,对系统内的所有计算机节点给定一组操作,按照约定的规则协议,节点之间对于操作后的最终处理结果达成某种共同认可的状态。分布式系统的一致性表明,系统本身具有容忍一定数量节点发生错误行为的能力,这些发生错位行为的节点称为故障节点,占整个分布式系统全部节点数量的比例称为分布式系统的容错率。一致性目标:系统在出现节点处理慢、宕机等各种故障时,依然能正常满足工作的要求,最终系统通过检测和处理,节点依然能达成全局一致性状态。达成一致性需满足一下几个基本要求:1)收敛性:一致的结果在有限时间内完成。——正常使用的前提2)一致性:不同节点最终完成决策的结果是相同的。——共识3)有效性:决策的结果必须是某个节点提出的方案——最终一致性的执行结果。分布式系统的安全可信计算机节点——地理位置分布不同——存在复杂的通信行为——节点或节点通信存在故障将影响到系统的安全性和结果的可信度。系统的安全性——在攻击者无法通过影响系统内的部分节点或者其他手段,造成分布式系统整体功能故障而无法正常工作。系统的可信性——系统最终完成计算任务得出的全局一致性状态结果对于所有节点及系统用户均是可信的。——通过系统内数据和服务副本的冗余性来保证全局状态数据的不可篡改来实现可信。1.2区块链的分类区块链的相关概念账本(Ledger):按照时序方法组织的事务数据集合。分布式账本(DistributedLedger):在分布式节点间共享并使用共识机制实现具备最终一致性的账本。集中式记账:引入一个超级记账机构。区块链的相关概念区块(Block):按时间次序构建的数据结构,第一个区块称为“创世区块(GennesisBlock)”,后续生成的区块用“高度”标识,一个区块的基本数据是区块头和区块体。区块的大小不是固定的,主要根据交易列表的大小来确定,考虑到带宽等因素,一般在1MB到几MB之间。区块链的相关概念节点(Node):计算机安装了区块链系统所需的软、硬件,并加入了区块链网络,可以称为一个节点。节点参与区块链系统的网络通信、逻辑运算、数据验证,并对客户端提供交易处理和数据查询的接口。节点采用公私钥机制、生成一串唯一的节点ID,保证它在网络上的唯一性。区块链的相关概念交易(Trade):认为是一段发往区块链系统的请求数据,用于部署合约,调用合约接口,维护合约的生命周期,以及管理资产和进行价值交换等,交易的基本数据结构包括发送者、接收者、交易数据等。用户可以构建一个交易,用自己的私钥给交易签名,发送到链上,由多个节点的共识机制处理,执行相关的智能合约代码,生成交易指定的状态数据,然后交易打包到区块里,和状态数据一起落盘存储,该交易即被确认,被确认的交易具备事务性和一致性。区块链的相关概念账户(Account):在采用账户模型设计的区块链系统中,账户代表用户、智能合约的唯一性存在。用户创建一个公私钥对,经过hash等算法换算即得到一个唯一性的地址串,代表这个用户的账户,用户用该私钥管理这个账户里的资产。区块链的分类准则根据系统是否具有节点准入机制,区块链可分为:许可链和非许可链许可链:授权网络,节点加入时需要注册并验证身份,权限受系统管理机构控制,节点退出时也需要系统管理机构的许可。——根据中心化程度分为联盟链和私有链。非许可链:完全开放的非授权网络,节点可以随时自由加入和退出网络——公有链公有链定义
公有链通常不设准入门槛,节点自由访问,参与共识,并在公有链上创建应用。公有链的公开透明令其不太适合那些对数据隐私、商业机密要求高的场景,更适合对信任、安全和持久性要求较高的场景。公有链应用
公有链可运用在数字资产等场景,比如比特币和以太坊等。也可以应用在一些点对点交互需求的场景,如资产注册登记、发行、投票、资产管理等。
在区块链中,Token(通证)是基于区块链创建的一种数字对象,代表区块链的某种价值或权利,一般以加密货币的形式存在,例如货币、积分、票据、投票权、分红权、地产、证券等各种权益证明。Token为提升可信程度,会选择公有链作为载体去发行。私有链定义与应用
私有链服务于特点企业、组织或个人,是由该企业、组织或个人进行管理的区块链。其具有相对封闭的网络,只对制定的实体或个人开放,只有相关节点在许可认证后才能加入、退出网络。私有链同时具有受控制的读写权限,只能特点权限的链上节点才能在链上发布和访问交易信息,只有一部分拥有权限的节点才能参与共识和记账。与联盟链不同,私有链节点均属于统一企业或组织,节点之间信任程度更高,并且私有链共识范围更加狭窄,甚至可以仅由单高性能节点进行记账。私有链在三类区块链中分布式程度和信息公开程度最低,因此性能最高,隐私性最强且交易成本最低,一般用于企业内部的数据管理、审计等金融场景。区块链应用的发展趋势区块链的应用方式从其诞生开始经历了三个发展阶段。第一阶段:比特币为代表的点对点支付时代。主要实现高效率、点对点的支付过程,主要应用场景包括支付、流通等。第二阶段:以太坊代表的智能合约时代。区块链与智能合约相结合,实现在区块链上部署应用程序,包括可编程金融,分布式应用(DecentralizationApplications,DApps)等落地。第三阶段:“区块链+行业”应用时代,以实现具体行业应用落地为目标,解决行业痛点,服务经济发展和社会进步。——目前正在此阶段,正成为一种通用基础设施,加速与行业进行融合创新。区块链不是一个单一技术,而是多种技术的综合集成,包括P2P网络通信,非对称加密技术以及分布式数据库技术等。同时,区块链应用还涉及多节点参与的协调问题,实施区块链解决方案可能面临计算复杂度和存储冗余度都比较高的情况,区块链和其他技术结合可以有效降低复杂度,加速区块链应用落地进程。联盟链定义
联盟链属于许可链的范畴,服务于符合某种条件的成员组成的联盟,是由联盟成员进行管理的区块链。其具有半开放的网络,只有经过认证许可的可信节点才能加入、退出网络。其具有受控制的读写权限,只有特定权限的链上节点才能在链上发布和访问交易,只有一部分拥有权限的可信节点才能参与该联盟链的共识和记账。联盟链没有通过激励机制实现系统自治的强烈需求,各联盟根据自身需求自主选择增加激励机制。联盟链的分布式程度和信息公开程度不及公有链,但也因此可以更好地保护用户、交易隐私。同时由于交易只需要部分被授权的授信高算力节点进行验证共识,因此性能较公有链更高,成本较公有链更低。联盟链应用联盟链只对特定的参与组织开放权限,可以保护参与者的交易数据隐私,适合机构之间的交易、清结算和B2B等场景。联盟链的应用场景非常丰富,主要包括金融和非金融领域:1)金融领域:支付、保险、清结算、股权登记、征信、供应链金融等金融场景对于信任要求高,同时也需要保护数据隐私,适合作为联盟链场景。2)非金融领域:非金融领域主要通过区块链不可篡改的特性来追踪、记录和共享数据,如区块链应用在商品溯源、电子政务、智慧城市、公益慈善、医疗健康等场景。联盟链-HyperledgerFabric平台2015年,Linux基金会启动了Hyperledger项目,目标是发展跨行业的区块链技术。HyperledgerFabric是Hyperledger中的一个区块链项目,是分布式账本解决方案的平台,以模块化架构为基础,支持不同组件的可插拔。包含一个账本,使用智能合约并且是一个通过所有参与者管理交易的系统。智能合约:为了持续的进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制。智能合约不仅仅可用于在区块链网络中打包信息,它们也可以被用于自动的执行由参与者定义的特定交易操作。联盟链-HyperledgerFabric平台共
识:保持网络中所有账本交易的同步流程,就是共识。确保账本仅在交易被适当的参与者批准时更新,并且当账本更新时,它们以相同的顺序更新相同的交易。成员管理MSP(MembershipServiceProvider)
MSP用来登记所有的成员。账本数据可被存储为多种格式,共识机制可被接入或者断开,同时支持多种不同的MSP.通道(Channel)
参与者可以建立通道channel,同一个channel中的参与者,才会拥有该channel中的账本,而其他不在此channel中的参与者则看不到这个账本。共享账本(SharedLedger)共享账本包含世界状态(worldstate)和交易记录(transactionlog)。在HyperledgerFabric网络中的每一个参与者都拥有一个账本的副本。1.世界状态组件描述了账本在特定时间点的状态,它是账本的数据库。2.交易记录组件记录了产生世界状态当前值的所有交易,它是世界状态的更新历史。3.账本则是世界状态数据库和交易历史记录的集合。联盟链应用—食品供应链
在传统的供应链模式中,有关实体的信息对供应链中的其他人来说并不完全透明,这就导致了不准确的报告和缺乏互操作性问题。电子邮件和印刷文档提供了一些信息,但它们不可能包含完整详细的可见性数据,因为很难在整个供应链中去追踪产品。这也使消费者几乎不可能知道产品的真正价值和来源。食品行业的供应链环境复杂,多个参与者需要协作将货物运送到最终目的地——客户手中。下图显示了食品供应链(多级)网络中的主要参与者。
该供应链的每个阶段都会引入潜在的安全问题、整合问题和其他低效问题。目前食品供应链中的主要威胁仍然是假冒食品和食品欺诈。
基于Hyperledger区块链的食品跟踪系统可实现对食品信息全面的可视性和和可追溯性。更重要的是,它以一种不变但可行的方式来记录产品细节,确保食品信息的真实性。最终用户通过在不可变框架上共享产品的详细信息,可以自我验证产品的真实性。联盟链-HyperledgerFabric平台身
份(Identity):区块链网络中的不同参与者包括对等点(peers)、订购者(orderers)、客户端应用程序(clientapplications,)、管理员(administrators)等。作用:确定了对资源的确切权限以及参与者在区块链网络中拥有的信息的访问权限。主体(Principal)
身份和相关属性的联合提供了一个特殊的名称。像userID或groupID,但更灵活一些,因为它们可以包含参与者身份的广泛属性,例如参与者的组织、组织单位、角色甚至参与者的特定身份。会员服务提供者(MSP)
要使身份可验证,它必须来自受信任的权威机构。Fabric中使用会员服务提供者(MSP)组件实现,采用传统的公钥基础设施(PKI)分层模型,它定义了管理该组织的有效身份的规则。
PKI和MSP以相同的方式协同工作——PKI提供身份列表,而MSP说明其中哪些是参与网络的给定组织的成员。PKI类似卡片提供商——它分发许多不同类型的可验证身份。(如发行A卡、B卡、C卡)MSP就像商店接受的卡提供商列表,确定哪些身份是商店支付网络的受信任成员(参与者)。MSP将可验证的身份转变为区块链网络的成员。(如商店仅支持A卡、B卡)联盟链-HyperledgerFabric平台公钥基础设施(PublicKeyInfrastructure,PKI):是一组互联网技术,可在网络中提供安全通信。区块链网络不仅仅是一个通信网络,它依赖于PKI标准来确保各种网络参与者之间的安全通信,并确保发布在区块链上的消息得到正确的身份验证。PKI由向各方(例如,服务的用户、服务提供商)颁发数字证书的证书颁发机构组成,然后使用它们在与环境交换的消息中进行身份验证。PKI四个关键要素数字证书(DigitalCertificates)公钥和私钥(PublicandPrivateKeys)证书颁发机构(CertificateAuthorities)证书吊销列表(CertificateRevocationLists)联盟链-HyperledgerFabric平台数字证书(DigitalCertificates):数字证书是一种文档,其中包含与证书持有者相关的一组属性。最常见的证书类型是符合X.509标准的证书,它允许在其结构中对一方的识别细节进行编码。Mary身份信息Subject包含了若干属性,另X.509证书中还有其他属性。Mary是SUBJECT证书的主人,突出显示的SUBJECT文本显示了关于Mary的关键事实。Mary的公钥在证书上显示,私钥没显示,私钥必须保密。所有属性都可以使用称为密码学的数学技术记录下来,这样篡改就会使证书失效Mary的X.509证书可看成一张无法更改的数字身份证。联盟链-HyperledgerFabric平台证书颁发机构(CertificateAuthorities,CA):CA将证书分发给不同的参与者。这些证书由CA进行数字签名,并将参与者与参与者的公钥绑定在一起(以及可选的完整属性列表)。证书可以广泛传播,因为它们既不包括参与者的私钥,也不包括CA的私钥。因此,它们可以用作信任锚,以验证来自不同参与者的消息。CA有两种形式:根CA和中间CA。中间CA的证书由根CA或其他中间机构颁发,允许为链中任何CA颁发的任何证书建立“信任链”。它限制了根CA的暴露,减少了危及整个信任链的风险。联盟链-HyperledgerFabric平台证书吊销列表(CertificateRevocationLists,CRL):它只是对CA知道由于某种原因而被吊销的证书的引用列表.当第三方想要验证另一方的身份时,它首先检查颁发CA的CRL以确保证书没有被吊销。使用CRL检查证书是否仍然有效。如果冒名顶替者试图将受损的数字证书传递给验证方,则可以首先根据颁发CA的CRL检查它,以确保它没有失效。联盟链-FISCOBCOS平台FISCOBCOS区块链社区是由微众银行发起的联盟链社区。自2017年成立以来,项目已成功支持政务、金融、农业、公益、文娱、供应链、物联网等多个行业的数百个区块链应用场景落地,收集到的标杆应用超过200个基于FISCOBCOS平台的典型案例有:人民网基于FISCOBCOS区块链技术推出的“人民版权”平台;BSN(区块链服务网络)启动全球商用,FISCOBCOS成为首个完成适配的国产区块链底层。同时,FISCOBCOS针对中国本土国情打造了完整国密算法体系,支持国密SM1、SM2、SM3、SM4等全部标准;构建了全套监管解决方案,实现穿透式监管,所有数据可监管、可审计、可追溯;支持场景式隐私保护,其一站式隐私保护解决方案,提供全周期敏感数据隐私保障,且支持零知识证明和同态加密算法。联盟链-FISCOBCOS平台FISCOBCOS发起方和主要参与者均是国内本土企业,更加符合国内开发者的开发习惯。FISCOBCOS的特点是自主可控,已实现从国密算法、操作系统、芯片架构到服务器平台的完整国产化支持,包括无缝适配国产麒麟操作系统、全部模块支持ARM架构,并在计算、网络、存储等各环节采用国密算法,实现区块链访问全流程国密防护。对比维度HyperledgerFabricFISCOBCOS适用框架适合不同领域的通用框架通用框架、符合金融级的应用标准配套技术有外部第三方开发的技术组件有区块链中间件平台WeBASE、分布式身份解决方案WeIdentity、分布式事件驱动架构WeEvent、跨链协作方案WeCross、场景式隐私保护解决方案WeDPR、ChainIDE、FISCOBCOS区块链工具箱、AnsibleforFISCOBCOS自动化生成企业级部署文件等配套技术模块共识机制通过不同的角色实现共识,排序采用raft共识pbft/raft/rpbft权限管控基于策略的权限控制基于角色的权限控制,权限控制最终体现在账户对表的操作上性能支持少数节点;TPS=3400(依赖于测试环境,结果仅供参考)所采用的rPBFT共识算法,可以在安全性和效率之间动态调整参数,减少节点规模对共识算法的影响,因此理论上节点不受限制;TPS=20000(依赖于测试环境,结果仅供参考)跨链支持主流BaaS厂商支持跨链;存在同构跨链方案WeCross跨链方案(开源);支持同构、异构跨链,例如支持FISCOBCOS和HyperledgerFabric之间的异构跨链加密算法存在第三方支持方案;计划支持国密支持国密开源协议Apache2.0GPL3.01.3区块链的应用区块链的优势1.信息不可篡改
一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过一定比例(取决于共识机制,例如比特币是51%)的节点,否则单个节点上对数据库的修改无效,因此区块链的数据稳定性和可靠性极高。
区块链最容易被理解的特性是不可篡改的特性。不可篡改是基于“区块+链”(block+chain)的独特账本而形成的:存有交易的区块按照时间顺序持续加到链的尾部。要修改一个区块中的数据,就需要重新生成它之后的所有区块。2.天然非中心化:对等网络,热备和容灾3.用户身份匿名:固定算法,无需信任4.整体的开放性:公开透明5.社区自治理:协商一致的规范和协议区块链的劣势区块链的特点让区块链不具备对接现有金融体系的成本优势,使其无法满足经济金融中大量的交易活动的需求,如产权交易活动、房产交易活动、证券登记托管等。1.不可撤销区块链中,如果误操作,或者丢失密码,损失将无法挽回。2.私密性由于区块链是分布式,交易账本必须公开透明,没有隐私可言。3.存储空间由于需要掌握所有历史记录,交易数量大的时候,性能受影响。4.延迟性分布式的特点,需要大家认证,因此,存在交易的延迟。5.当数据量越大伴随的性能问题每次交易为了验证你确实拥有足够的钱而需要追溯历史每一笔交易来计算余额。6.能耗问题区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。区块链的应用方向区块链通过密码学、共识机制、价值交换解决了人与人之间价值交互的信任及公平性问题,是对现有互联网技术的升级补充。基于区块链的优缺点分析,区块链应用有五个重要的目标:促进数据共享、优化业务流程、降低运营成本、提升协同效率、建设可信体系。
应用方向参考标准:
一个好的区块链技术应用场景一定会涉及到多个信任主体,需要有去信任中介的方式来合作。
一定是主体之间有比较强的合作关系,这是商业的需要。
与中心化系统相比,区块链技术效率低下,一般来讲只能用于中低频交易场景,是否可以满足交易需求。
激励体制与商业模式一定要完备、可持续发展。“+区块链”:老问题将本增效;
“区块链+”:解决新问题。区块链的应用方向1.存证。区块链“不可篡改”的特点,为经济社会发展中的“存证”难题提供了解决方案。只要能够确保上链信息和数据的真实性,那么区块链就可以解决信息的“存”和“证”难题。2.共享。区块链“分布式”的特点,可以打通部门间的“数据壁垒”,实现信息和数据共享。3.信任。区块链形成“共识机制”,能够解决信息不对称问题,真正实现从“信息互联网”到“信任互联网”的转变。4.协作。区块链通过“智能合约”,能够实现多个主体之间的协作信任,从而大大拓展人类相互合作的范围和深度。区块链通过创造信任来创造价值。区块链创造了信任,因为储存于其中的信息和数据不可篡改并全网见证,从而使得信任不需要第三方机构背书,能够通过点对点自动完成;区块链推动了合作,因为分布式数据可以实现所有节点信息共享,而智能合约能够协同交易双方的行为。区块链拓展了人类的信任基础,除了第三方担保和强制执行,区块链第一次使得人类的信任可以基于人类自己发明的逻辑和数学,提高了人类合作的能力。谢·谢·观·看Blockchain区块链·技术导论CONCEPYPRINCIPLEANDAPPLICATION概念、原理与应用第三章区块链的基础技术第三章的学习要点理解区块链的组成技术;理解区块链的总体架构;熟悉区块链的数据结构;了解区块链技术的发展。3.1区块链的总体架构捷径科技集团区块链系统的复杂性假设A和B之间要进行一笔转账,这是区块链上最简单的一个操作,但实际上其中的大量步骤需要区块链来完成。1)A需要借助什么样的应用来完成转账?2)由谁来检查A地址中的余额,又由谁来核验真实性?3)在区块链这个分布式系统中,众多节点如何就A转账给B这件事达成一致?4)由谁来通知B收到了这笔转账?5)B又该把“收款凭证”存在哪里?——如何将一个系统的复杂问题简单化?分层是一个好方法,通过分层,可以将区块链系统拆分成若干个局部问题,并用层级间的递进关系串联起来互联网分层模型1977年,为了推动国际网络的通用化,国际标准化组织(ISO)实施了一项开发通用网络标准和方法的计划,称为开放系统互连模型(OSI,OpenSystemsInterconnectionModel)ISO创建OSI模型,希望不同供应商的网络能够相互协同工作,但迄今为止,这仍然是一个伟大的目标!分层模型的特点1.独立性每一层都是相对独立的,它具有独立功能。理论上每一层只需关注层级间的接口,而无须关注其他层的实现细节。当其他层出现变化时,如果接口不变,则不会影响到相邻层级。2.通用性模型中的各层规范和架构的确定,有利于国际标准化工作的展开。当来自不同开发者的各模块都遵循统一的标准时,整个系统各部分的通用性、兼容性会变得更好,对于一个较新的系统,这样通用性尤为重要。区块链六层模型区块链基础架构分为六层:数据层(DataLayer)、网络层(NetworkLayer)、共识层(ConsensusLayer)、激励层(Incentivelayer)、合约层(ContractLayer)和应用层(ApplicationLayer)。区块链系统的转账流程
假如A向B发送一个Token,A首先选择一个应用层的应用,例如某个区块链钱包App,利用这个App输入交易信息(B的区块链地址和转账数量),应用将这些交易信息加上A的签名信息传递到合约层,并调用这个Token合约,交易信息、签名信息和合约内容会向下传递。下一步,共识层会通过共识机制选出一位节点,该节点验证A的签名有效性以及A地址中是否有足够的余额,如果没问题则执行这笔转账;然后,该节点会将当前时刻内的多笔交易(包括A的那一笔)结果打包,并加上自身的节点信息,形成一个“区块”;接着,节点利用点对点网络(网络层)广播这个区块给网络中的其他节点;最后,当其他节点验证区块无误后,会将新的区块放到区块链的尾端(数据层)。这样,A的这笔转账就被记入到区块链中。对于B来说,只要A的转账被记入到了区块链上,就已经代表着其收到了这枚Token。B可以通过查询区块链浏览器或者借助应用的提示来获悉这一点。同时,存储在区块链上的交易记录就是B的“收款凭证”,当他需要再将这枚Token发送给其他人时,将重复上述操作。——区块链分层模型在各层间有明显的传递关系。区块链各层以及各层内协议的集合,就是区块链的整体架构,分层模型不包括具体技术实现。3.2区块链的数据层数据结构—区块结构
对于不同的区块链,区块数据内容会略有不同,但均会包含“区块头”和“交易”两个部分。区块头用于存放区块自身的元数据,是区块功能性信息的存储地;交易部分存放加密后的交易信息,是区块内容性信息的存储地数据域描述长度幻数(Magic)区块分隔符,其值为常量0xD9B4BEF94字节区块大小(BlockSize)当前区块占用字节数4字节区块头(BlockHeader)当前区块的头部信息80字节交易计数(TransactionCounter)当前区块包含的交易数量1~9字节交易(Transaction)当前区块记录的交易细节可变表3.1比特币区块数据结构数据结构—区块头
区块头对数据域同样没有统一的标准要求,但其起着存放区块关键信息的作用,一般会包含前块哈希、默克尔根(Merkle)、时间戳等信息.哈希计算
哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息,通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。
目前常见的Hash算法包括国际上的MessageDigest(MD)系列和SecureHashAlgorithm(SHA)系列算法,以及国内的SM3算法。
例如计算
“helloblockchainworld,thisisyeasy@github”的SHA-256Hash值,
得到的结果将是
“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”
对于某个文件,无需查看原始内容,只要其SHA-256Hash计算后结果相同,则说明该文件内容极大概率就是一样的。/qq_45882032/article/details/125337385数据结构—交易与Merkle树
区块头之外,区块中的另一核心信息即为交易信息。在区块链技术中,通常会以Merkle树或者基于Merkle树的数据结构记录交易数据。在区块链网络中,Merkle树被用来归纳一个区块中的所有交易信息,最终生成这个区块所有交易信息的一个统一的哈希值,区块中任何一笔交易信息的改变都会使得Merkle树改变。默克尔(Merkle)树Merkle树是数据结构中的一种树,可以是二叉树,也可以是多叉树,它具有树结构的所有特点。它将区块链中的数据分组进行哈希运算,向上不断递归运算产生新的哈希节点,最终只剩下一个Merkle根存入区块头中,每个哈希节点总是包含两个相邻的数据块或其哈希值。优点:首先是极大地提高了区块链的运行效率和可扩展性,使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效地运行在智能手机甚至物联网设备上;其次是Merkle树可支持“简化支付验证协议”(SPV),即在不运行完整区块链网络节点的情况下,也能够对交易数据进行检验。假设区块中有A、B、C、D4笔交易信息,将这4笔交易信息分别求哈希值:lA节点的哈希与B结点的哈希,又组成了它们父节点的哈希值H(AB);lC节点的哈希与D结点的哈希,又组成了它们父节点的哈希值H(CD);l最后HAB节点与HCD节点又组成了根结点的哈希H(ABCD);lH(ABCD)就是MerkleRoot,它归纳总结了所有的交易信息。它会保存在区块头里面。简单支付验证简单支付验证(SimplePaymentVerification,SPV):一个在轻客户端环境下,验证交易有效性的过程。全节点(FullNode):全节点是一个程序,需把整条区块链数据下载到本地。轻客户端(ThinClient):点本地只保存与其自身相关的交易数据(如区块头)。适合在收集、平板电脑、嵌入式系统等空间和功率受限的设备。SPV的目标是验证某个支付是否真实存在,并得到了多少个确认。比如:小华收到来自小刚的一个通知,小刚声称已经从其账户中汇款一定数额的钱给了小华。如何快速验证该支付的真实性,是SPV的工作目标。轻节点与SPV不能混淆为一个概念:轻节点仍需下载每个新区块的全部数据并进行解析,获取并在本地存储与自身相关的交易数据,只是无须在本地保存全部数据而已(不仅是支付验证,而且用于管理节点自身的资产收入、支付等相关信息)。而SPV节点不需要下载新区块的全部数据,只需要保存区块头部信息即可。简单支付验证——验证过程安装轻客户端,通常就是把它当成一个钱包软件(账户的转入与转出)用,SPV要解决的就是在轻客户端条件下的支付确认问题。
账户的转出:轻客户端构建交易,并且签名交易,再广播到全网。
账户的转入:网上交易很多,但是轻客户端只会去下载跟自己的账户相关的交易。不管是转入还是转出交易,下载到轻客户端本地都是相对孤立的交易,因为本地没有保存区块体。那么如何去验证交易生效了呢?SPV过程:
(1)轻客户端要发起一个专门的确认请求,把这个交易广播给网络上邻近的全节点。
(2)全节点收到交易后,会去搜索这个交易属于哪个区块,然后会运算这个区块的Merkle树。这时,Merkle树最大的优势现在就发挥出来了,因为要确认一个交易是不是从属于一个Merkle根,是不需要把整个Merkle树都发送给轻节点的,而只需要发送跟当前交易相关的部分Merkle树即可。
(3)轻节点接收到这个部分Merkle树之后,在自己本地在运算一下这个交易的哈希,然后根据部分Merkle树上的各个哈希值,一路运算获得Merkle根,如果这个值跟自己的区块头中的正好吻合,交易验证就成功了。
所以整个SPV过程是靠全节点帮忙去验证交易的,轻节点自身不能验证交易,但是通过确认其他全节点都接受了这次交易,就间接完成了交易确认。
弊端:于SPV没有保存全部区块的节点信息,需要和其他节点配合才能进行验证,所以SPV节点存在被诱导连入了一个虚假的网络中的情况,存在被恶意攻击的可能。数据模型—交易模型主流区块链数据模型主要有两类:一是,比特币为代表的交易模型——未被使用的交易输出(UnspentTransactionOutput,UTXO)模型;二是,以太坊为代表的账户模型。铸币奖励Coinbase铸币奖励CoinbaseUTXOUTXOUTXOUTXO主流交易模型区块链有Corda,BigchainDB等,交易模型天然契合区块链的链式结构,但制约了功能的扩展性。数据模型—账户模型相比于交易模型,账户模型更贴近于传统金融对资金的处理模式,更容易理解。账户中的记录不再是交易记录而是账户的余额状态。对智能合约的支持为区块链技术带来了更强的灵活性,越老越多的项目采用账户模型,如Fabric,Ripple,TrustSQL地址余额数据存储基于区块链的完全分布式存储方案(每一个加入的节点均可以存储全量账本数据),不同区块链,节点内物理数据存储方式也不同。3.3区块链的网络层点对点网络
点对点(Peer-to-Peer,P2P)网络是一个完全分布式的网络架构,网络中每一个节点的地位都是相等的,都可以充当服务提供方及服务获取方,没有“主从”或者“中心化服务器”的概念。P2P网络的特点,能为区块链体系提供各类较为成熟的网络层技术,成为支持区块链网络架构的必然选择点对点网络—分布式哈希表问题:当有节点要提供或者获取服务时,网络中的其他节点如何获指其需求或能力?也就是说,谁来维护网络中的节点清单和节点能提供的服务清单呢?
2001年,分布式哈希表(DistributedHashTable,DHT)技术的诞生提供了高效率的解决方案。核心思想:网路中的每一个节点都维护一部分索引信息,然后通过特定的规则将这些节点连接起来,在查询或注册时,按规则触达相关节点或资源,这种方案避免中心化索引和网络风暴,而不同的规则对应着分布式哈希表不同的协议,如CAN,Chord、Kademlia等点对点网络—分布式哈希表基础结构分布式哈希表的基础结构是哈希表。哈希表是一种以“键-值”形式进行存储和查询的数据结构。在存储时,将要存储的信息经过哈希函数的处理生成一个映射地址,并将信息存储到这个地址中,读取时直接定位到该映射地址提取数据。点对点网络—Kademlia协议
应用分布式哈希表的网络,每个节点只存储一部分资源的索引信息,好处在于有资源变更时,不需要全网广播,只需要更新相关节点。问题:如何在每个节点只知道部分信息的情况下,实现对全网资源的触达与维护?Kademlia(Kad)协议提供了一个巧妙的基于距离的路由解决方案:将找资源变为找节点(节点ID),将找具体的节点变为找大类的代表(ID公共前缀),解决了点对点网络中的组网问题。数据传播和校验
1.数据传播当矿工节点打包生成区块链后——传播给网络中其他节点进行校验和记账——并不是广播网络中所有节点——节点只知道网络中部分节点信息——向直接连接的节点发送区块信息——收到信息后校验——校验通过的区块链接入本地区块链,并重复上述广播过程,直至触达全网。2.数据校验理论上每个节点都可以承担路由、传播、验证、存储等功能,但在实际中,分全节点和轻节点。全节点可以不依赖网络中其他节点,对收到区块做数据校验;轻节点需要向邻节点请求数据完成校验。数据校验的内容是依据该区块链项目预定义的清单对区块做校验,以比特币为例,包含:1)工作量证明检查2)区块头中merkle根的值是否与依据区块体中交易信息计算得到的一致。3)区块大小在限制范围内。4)第一笔交易以外的其他交易不能是铸币交易(加入区块的第一笔交易是一个特殊交易,叫作铸币交易)。5)交易的法性3.4区块链的共识层共识和一致性
共识层包含了各种共识算法,负责实现区块链各个账本的数据一致性。在分布式系统中,没有单一节点来协调区块数据在所有节点上的一致性,为了解决这个问题,必须要有一个众多节点都接受的规则,这个规则就是“共识机制”,简单来说,共识层的主要作用是决定谁来进行记账。FLPCAP异步通信一致性可用性分区容错性共识和一致性
区块链数据一致性问题往往指不同节点中的数据内容是否完整并且相同。区块链作为一个分布式系统,如何保证所有节点中的数据完全相同,并且能够对某个提案达成一致是系统正常工作的核心问题。
当分散的节点通过网络达成一项以有益于整个群体为目标的协议时,称为“达成共识”。总的来说,一致性代表的是区块链系统要达成的目标和结果状态;而共识是一种实现一致性的方法、途径或手段。共识和一致性
共识机制或者共识算法的含义是,快速准确的在各个节点实现区块链数据一致性的机制和算法。一般通过奖惩机制来鼓励区块链系统的节点不参与作恶,并持续服务网络。目前主流的共识机制分为两类:确定性算法:拜占庭容错(BFT)概率性算法:工作量证明POW,权益证明POS,委托权益证明DPOS
两者区别在于,确定性算法是区块链增加了新区块后,新区块就已经被确定,无法被回滚;概率性算法增加新区块后,当新区块被回滚的概率接近0时,才被认为是确定的。BFT拜占庭容错算法
拜占庭容错(ByzantineFaultTolerance,BFT),是分布式领域常用的容错技术,当出现各种故障或受到攻击时,计算机或者网络都可能会出现难以预料的异常,BFT是处理这种异常的解决方案。拜占庭将军问题,一个为了描述分布式系统一致性问题而抽象出来的例子。成功:大家都选择进攻或都选择撤离,只要步调一致,达成共识即可。失败:一部分将军进攻,另一部分将军没有进攻,没有达成一致。BFT拜占庭容错问题问题:由于将军们分布在不同的地方,如果将军中存在叛徒,诚实将军们决策的结果会被干扰。叛徒会以欺骗手段使得部分将军做出和最终决策不一致的指令。1)不进行表态——给诚实将军决定造成影响2)发表错误的观点——叛徒可以故意发表错误观点3)
主动干扰其他将军对局势的判断。假如有11为将军
A1、A2、A3、A4、B1、B2、B3、Z1、Z2、Z3、Z4。视角A1~A4B1~B3Z1~Z4投票比结果A1~A4进攻不进攻进攻8:3进攻B1~B3进攻不进攻不进攻4:7不进攻诚实将军:进攻诚实将军:不进攻叛徒实用拜占庭容错机制
一般情况下,出现故障和错误的节点被称为拜占庭节点,接收正确信息同时正确传送信息的节点称为非拜占庭节点。实际工作中,实用拜占庭容错机制(PracticalByzantineFaultTolerance,PBFT)常用来解决分布式系统中的共识
问题。
PBFT是一种状态机副本复制算法,每个状态机的副本都保存了服务的状态,同时也实现了客户端所有合法请求的操作,能够保证在满足分布式系统活性和安全性的前提下,允许(n−1)/3个节点出错(数据丢失、不工作等),其中n为分布式系统中所有参与共识过程的节点数量.即该算法能够保证系统在(n−1)/3个节点出现故障或恶意操作的情况下,依然能正确达成分布式共识。
什么PBFT算法只能容忍(n-1)/3个作恶节点?
节点总数是
n,其中作恶节点有
f,那么剩下的正确节点为n-f,意味着只要收到n-f个消息就能做出决定,但是这
n-f
个消息有可能由
f
个是由作恶节点冒充的,那么正确的消息就是
n-f-f
个,为了多数一致,正确消息必须占多数,也就是
n-f-f>f,但是节点必须是整数个,所以
n
最少是
3f+1个。实用拜占庭容错机制PBFT算法的过程如下:(1)客户端向主节点发送请求操作消息,主节点接收到请求操作消息并校验正确后,保存该消息,并依据该请求操作消息生成预准备消息,广播给各备份节点.(2)各备份节点接收到预准备消息并校验正确后,保存该消息,并以该预准备消息为依据,生成准备消息广播给主节点和其他备份节点.(3)各存储副本的节点接收到准备消息并校验正确后,保存该消息,并以该准备消息为依据,生成提交消息给客户端、主节点和其他备份节点.(4)各存储副本的节点接收到(2n+1)/3个提交消息并校验正确后,则执行来自客户端的请求操作消息里的操作.(5)客户端接收到(n+2)/3个提交消息,验证正确并接受后,便认为该消息已被副本节点集群所承认与执行.这里的客户端接受(n+2)/3个提交消息而不是(2n+1)/3个的原因在于失效的节点数量不超过(n−1)/3,因此(n−1)/3+1个一致响应必定能够保证结果是正确的.POWPoW(ProofofWork)是工作量证明,是指节点通过消耗计算资源,计算一项较难完成但容易验证的工作,并以此证明获取区块链记账权的共识机制。区块链导论SHA-256哈希0ed7c0af1b7cc693c2d012b198d2a4ea200c781e9a22a9a4d0c413cee1fa6079容易
难PoW要求节点利用计算能力区寻找一个随机数,使得该随机数和特定数字的哈希计算满足一定条件(如前5位是0)。如规定:当前区块哈希等于“交易内容+前一区块哈希+当前区块高度+时间戳+随机数Nonce”POW工作原理1)将一个新的铸币交易添加进系统,并计算出Merkle根哈希2)利用随机数Nonce,上一个区块哈希值,当前Merkle根哈希及其他的字段组成区块头。3)将每一个区块头进行双重SHA-256运算,并且使得随机数Nonce加1,会得到一个结果值,把网络目标值(例如要求前5位是0)和得到的数值进行比较。如果两者比较之后,得到的值小于等于目标哈希值,标志这这个随机数是符合条件的,第一个算出此随机数的矿工可以获得该区块的记账圈;当得到的值大于目标哈希值时,重复上述步骤PoS/DPoS为了适应特殊场景,如高频应用或节约电力,Proof证明可以被替换为消耗其他资源,解决效率不足和资源浪费问题。区块链社区——币龄(coindays):个人拥有货币coin数量*拥有货币的天数(days)权益证明(ProofofStake,PoS):以持有币龄为消耗资源,作为获得记账权,打包新区块的证明。在PoS系统中,拥有更高币岭的节点会有更高的概率挖出新区块。当挖出新的区块后,其币龄会被消耗掉。同时,获得记账权的节点可能会按照预设规则得到一定的区块奖励。优势:1)PoS不会造成过多的电力浪费,因为PoS不需要靠比拼算力挖矿。2)PoS更难进行51%攻击。拥有51%币才能发起攻击,网络受到攻击却会造成自己利益受损,显然很不划算。缺点:1)PoS算法无法100%摆脱挖矿的约束,仍需少量电费2)币龄越大的节点,越容易获得记账奖励,这会使得权益高度集中,产生马太效应。PoS/DPoS委托权益证明(DelegatedProofofStake,DPoS)是一种保证区块链网络安全的共识机制,尝试去解决工作量证明(PoW)和权益证明(PoS)体系的缺陷。DPoS严格限制参与共识节点的数量,达到一定门槛的节点才能参与。未参与共识过程的Token持有者则可以使用token进行投票,将权益委托给候选节点,获得票数高的候选节点,可以实际参与区块链的出块、打包。DPoS有点像议会制度或人民代表大会制度。如果代表不能履行他们的职责,比如轮到他们记账时,他们没能完成则会被除名,网络会选出新的节点来取代他们。DPoS的每个客户端都有能力决定哪些节点可以被信任。相较PoW(工作量证明机制),DPoS大幅提高区块链处理数据的能力,甚至可以实现秒到账,同时也大幅降低维护区块链网络安全的费用,从而使数字资产的交易速度接近Visa等中心化结算系统。更多共识机制1)权威证明(ProofofAuthority,PoA)是一种声誉共识算法,被选为区块链验证者需要凭借个人声誉(权威)而不需要抵押token。它为区块链网络引入了实用、高效的解决方案,尤其适用于私有链。2)身份证明(proofofIdentity,PoI)是一块表示加密事实的数据,它允许任何持有私钥的用户和一个认证的身份相对应,然后和指定的交易进行连接。同个群体的每个个体都可以创建PoF(只有一个区块的数据),然后将它展示给任何节点。3)权重证明(proofofweight)是一类很宽泛的共识算法。其基本理念是在权益证明系统中,用户所拥有的网络中token百分比,表示了该用户“发现”下一个区块的概率。3.5区块链的合约层智能合约
智能合约是一种由机器实现的协议或程序,旨在以数字化手段传播、验证或执行合同的计算机协议,它无须第三方即可执行可靠且不可逆的交易。用户A用户B第三方商店(信誉保证)智能合约(区块链支持)
智能合约由代码形成,并部署在极难篡改的区块链上自动执行,双方没有任何办法欺诈或者耍赖,始终能够保证“一手交钱、一手交货”。传统合同无法强制执行,而智能合约可以。脚本语言区块链早期,比特币区块链网络,没有智能合约——采用简单的、基于堆栈的脚本语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CQAP 3013-2023临床试验数据管理质量核查要点
- T/CNFA 013-2021床垫质量安全等级评定
- T/CMEAS 010-2023标准化病人(SP)医学教育项目建设与应用指南
- T/CMA HG019-2020轮胎试验路面摩擦系数测量方法摆式仪测定法
- T/CICE 002-2020建筑装饰装修工程施工工艺规范
- T/CGCC 18-2018食品用脱氧剂
- T/CECS 10354-2024智慧集成供水设备
- T/CECS 10019-2019聚氨酯拉挤复合材料支架系统
- T/CCS 003-2023煤矿科技术语煤矿智能化
- T/CCMA 0071-2019轮胎式装载机驱动桥传动部件疲劳试验方法
- 2025年苏州市中考英语二模模拟试题(六)(含解析)
- 2025年耐热玻璃器皿行业深度研究报告
- 护理影像学试题及答案总结
- DB65-T 4623-2022 分散式风电接入电力系统管理规范
- 水电使用合同协议书
- 退休终止劳动合同协议书
- 中国兽药典三部 2020年版
- 实验室质量管理体系与试题
- 婴幼儿期的食物过敏识别与管理考核试题及答案
- 上海市社区工作者管理办法
- 国开(甘肃)2024年春《地域文化(专)》形考任务1-4终考答案
评论
0/150
提交评论