HyperledgerFabric概述

HyperledgerFabric概述
综述
Hyperledger Fabric是⼀个模块化的分布式账本解决⽅案⽀撑平台,提供⾼度的保密性、弹性、灵活性与可扩展性。它的⽬的是⽀持不同组件的可插⼊实现,并适应经济系统中存在的复杂性。Hyperledger Fabric提出了⼀个独特的⾼弹性且可扩展的体系结构,此结构使Fabric区别于其他区块链解决⽅案。在Fabric对企业级区块链的未来规划中,它的架构允许被全⾯审查且开源。
我们建议新⼿⽤户⾸先阅读接下来的内容以熟悉区块链如何⼯作,并熟悉Hyperledger Fabric的组成与功能。
区块链是什么
分布式账本
区块链⽹络的核⼼是分布式账本,⼀个记录⽹络中发⽣的所有交易的分布式账本。区块链账本经常被描述成“去中⼼化”,这是因为它被⽹络中的多个参与者复制,且由所有参与者共同维护,我们将见证去中⼼化与协作将如何成为反映现实世界中企业交换商品与服务的强⼤属性。
除了去中⼼化与协作外,记录到区块链中的数据只能被添加,区块链使⽤加密技术来保证⼀旦交易被添加到账本便不能被修改。这⼀特性使参与者能够很容易的确定数据来源,因为参与者可以确定数据在写⼊后没有被更改过,这也是为什么区块链有时会被描述为系统的证明。哺乳服装
智能合约
为了⽀持数据更新的⼀致性,也为了整体的启⽤账本功能(交易、查询等)——区块链⽹络使⽤智能合约来提供对账本的访问控制。
智能合约不仅仅作为封装并简化信息的核⼼机制,还可以允许参与者⾃⾏编写从⽽处理某些⾃动执⾏的事务。⽐如说,智能合约可以记录⼀个物品的运输成本,当双⽅同意后将交易写⼊账本,交易资⾦在收到物品时⾃动易⼿。
共识
共识过程是保持⽹络中账本交易同步的过程,⽤以保证账本只有当交易被参与者批准后才会更新,且更新对所有参与者同步进⾏。
我们后续会学到更多关于账本、智能合约与共识相关的知识。从此刻起,可以把区块链想象成⼀个共享复制的、通过智能合约来更新的、通过共识来保持⼀致性的交易系统。
区块链能做什么
如今的交易系统
当前的交易⽹络,相对于商业交易诞⽣之初便存在的交易⽹络来说,只有⼩⼩的进步。业务⽹络的成员彼此进⾏交易,且分别维护各⾃的交易记录。交易的物品必须注明来源——业务出售的物品需拥有⼀串标题以供验证其所有权。虽然现代技术已经将这⼀过程从⽯器与纸质时代拖⼊了硬盘与云平台,但是底层结构是⼀样的。建⽴协同管理⾝份与交易流程的系统这⼀构想的来源可以想象成如下场景:对证券交易的清算是费时且费⼒的(处理世界体积的数万亿美元的编号),合同的背书和执⾏必须⼿动,且系统中每个数据库各⾃存储信息,隐含了单点失效的风险。
即使需求的可见度与信任度都⾮常清晰,使⽤当前的零碎的技术⼿段建⽴⼀个跨越业务⽹络的系统以实现信息和流程共享也是⾮常困难的。
区块链的不同之处
如果商业⽹络中有标准的⽅法来在⽹络上建⽴⾝份,执⾏交易并存储数据,来替代以“现代”交易系统所代表的效率低下的“⽼⿏窝”,效果会怎样呢?如果建⽴⼀个资产来源仅仅通过查看⼀个⼀旦写⼊⽆法更改,可以信任的交易列表便可以认证的系统,效果会怎样呢?
玻璃砖墙>高纯度的氧化铜
这就是区块链⽹络。⽹络中的每个参与者都保持了⾃⼰的账本副本。除了账本信息共享之外,更新账本的过程也会共享。不像如今的系统,某⼀个参与者的私⼈程序⽤于更新⾃⼰的私账,区块链系统则使⽤共享程序来更新共享账本。通过共享账本进⾏业务协作,区块链⽹络可以降低时间、成本与个⼈隐私风险,且在流程中提升可见度与信任度。
现在你知道为什么区块链有如此巨⼤的作⽤了吧,还有很多重要的细节,他们都与这些共享信息与流程的基本思想有关。
什么是Hyperledger Fabric
电动刻字笔
Linux基⾦会于2015年成⽴超级账本,以推进跨⾏业的区块链技术。相对于申报⼀个区块链标准,它⿎励通过社区合作的⽅式来发展区块链技术,带着知识产权,⿎励开源,且随着时间的推移来采⽤不同的标准。
Fabric是超级账本区块链中的⼀个项⽬,与其他的区块链技术⼀样,它具有⼀个账本,使⽤智能合约,且是⼀个参与者可以分别管理⾃⾝交易的系统。
Fabric与其他区块链系统最⼤的不同在于它是隐私的、许可的⽹络。相对于像其他区块链那样通过“⼯作量证明”来验证⾝份(允许任何⼈加⼊⽹络),Fabric的成员通过会员注册服务提供商来加⼊⽹络。
蜂蜜包装盒
Fabric提供了多种可插拔的选择,账本数据可以以多种形式存储,共识机制可切换,且⽀持不同的会员服务。Fabric还提供了创建通道的能⼒,允许⼀组参与者创建⼀个单独的账本交易。这对于⼀些不想让其竞争对⼿(同为参与者)知道其每⼀笔交易的参与者来说尤其重要,如果两个参与者间创建了⼀个通道,那么其他参与者不会拿到此通道的数据。
共享账本
超级账本的总账⼦系统包括两部分:世界状态与交易⽇志。Fabric的每个参与者都持有⼀份账本副本。世界状态部分描述了账本在某个时间点的状态。它是账本的数据库。交易⽇志部分则记录了导致当前世界状态的所有交易,是世界状态的历史记录。账本是世界状态与交易⽇志的结合。
账本的世界状态有可替换的数据存储区,默认是Level-DB键值数据库。交易⽇志不需要可插拔,它只是简单的记录了账本交易前后的数据。智能合约
Fabric智能合约写在链码中,且当外部应⽤与账本互动时被调⽤。⼤多数情况中,链码只与账本的数据库部分互动(查询等),即世界状态,⽽不是交易⽇志。链码可以被多种语⾔编写,当前⽀持Go与Java,未来会发布更多语⾔的⽀持。
私密性
私密性依赖于⽹络的需求,对于⼀个B2B⽹络的参与者来说,对共享的信息量尤其敏感。相对于其他开放⽹络,Fabric⽹络⽀持私密性的关键业务需求。
共识
交易必须按照它们发⽣的顺序写⼊账本,即使它们可能发⽣在⽹络中不同的参与者⾝上。为了做到这⼀点,必须建⽴交易的排序服务,且有⼀套抵制错误交易(恶意)写⼊账本的⽅法。
这是⼀个已经在计算机科学中被研究的⽐较彻底的领域,有许多⽅法可以实现它,且每种⽅法都有不同的取舍。⽐如PBFT(实际拜占庭容错)提供了⼀个机制使得⽂件副本互相交流来保持⼀致,哪怕出现⼀定数量的背叛。再⽐如在⽐特币中,排序发⽣在⼀个叫做采矿的过程中,在这个过程中,竞争的计算机竞相解决⼀个密码难题,它定义了所有交易处理随后建⽴的顺序。
Hyperledger Fabric已经被设计成允许⽹络建⽴者选择⼀个共识机制最能代表参与者之间存在的关系。与私密性⼀样,有各种各样的需求:在关系上是更⾼度结构化的⽹络,还是更为对等的⽹络。
我们将会学习到更多的Fabric共识机制,⽬前包括SOLO,Kafka,未来很快会应⽤SBFT(简易拜占庭容错)。Hyperledger Fabric功能
Hyperledger Fabric是⼀种独特的分布式账本实现技术(DLT),提供企业级的⽹络安全性、可扩展性
、保密性与性能,是⼀个模块化的区块链架构。Hyperledger Fabric提供了如下的区块链功能:
⾝份管理
为了实现许可⽹络,Fabric提供了会员⾝份服务,在⽹络中管理⽤户ID与参与者的⾝份。访问控制列表可以通过授权特定的⽹络操作来提供额外的权限层。例如,⼀个特定的⽤户ID可以允许调⽤链码的应⽤程序,但禁⽌部署新的链码。关于Fabric⽹络的⼀个真理是,成员彼此认识(⾝份),但他们不知道对⽅在做什么(隐私保密)。
隐私保密
Fabric允许商业利益的⾓逐,允许要求私密交易的任何团体在同⼀许可⽹络共存。私有通道限制了消息传递路径,可⽤于为⽹络中特定⼦集的参与者提供交易的隐私性和机密性。通道上的所有数据(包括交易、成员和通道信息)对于未显式地授予对该通道访问权限的任何⽹络成员来说都是不可访问的。
⾼效处理
Hyperledger Fabric通过节点类型来分配⽹络⾓⾊。为了为⽹络提供并发性和并⾏性,交易处理与交易排序分开执⾏。在排序之前处理交易使每个对等节点能够同时处理多个交易。这种并发执⾏提⾼了每
个对等节点的处理效率,加快了交易向排序服务的交付。
除了实现并⾏处理外,劳动⼒的分⼯使得排序节点免于⼤量的交易处理与账本维持⼯作,⽽对等节点则从排序共识⼯作负担中解脱出来。⾓⾊的这种分叉也降低了授权和验证所需的处理要求;所有对等节点不必信任所有的排序节点,反之亦然,因此对其中⼀个节点的处理可以独⽴于另外⼀个节点进⾏验证。
智能合约
链码应⽤的编码逻辑会被通道中具体类型的交易调⽤。链码定义了资产所有权转移的参数,例如,保证所有所有权转移交易依照相同的规则与要求。系统级链码区别于链码,它定义了整个通道的操作参数。⽣命周期与配置系统链码定义了通道规则,背书与验证系统链码定义了背书与验证交易的要求。
模块设计
Fabric实现了⼀个模块化的架构,为⽹络设计师提供功能选择。模块化还包括⾝份认证,共识算法以及加密算法。其结果是⼀个通⽤的区块链架构,在任何⾏业和公共领域都可以采⽤,以确保其⽹络可以在跨市场、监管以及地理边界时能够协同操作。Hyperledger Fabric模型
本节概述了关键的设计特点以使得Fabric履⾏承诺成为⼀个全⾯的、可定制的、企业级的区块链解决
⽅案:
资产:资产定义可以在⽹络中交易⼏乎所有具有货币价值的东西,从⾷品到古董汽车再到货币期货。
链码:链码的执⾏可以划分为交易排序、限制信任等级要求、跨界点类型认证与优化⽹络性能与可扩展性⼏个部分。
账本特点:不可改变的共享账本记录了每个通道的整个交易历史,并包含了⽤于⾼效审计与解决争议的类SQL查询功能。
通道私密性:对于要求在公⽤⽹络上交换资产的相互竞争的企业与受管制的⾏业,通道机制使多层次的交易具有⾼度的隐私性和机密性。
安全性与会员服务:会员服务提供可信的区块链⽹络,参与者了解所有交易可以被监管者与审计者检测与跟踪。
共识:独特的共识机制满⾜企业级的灵活性与可扩展性的需求。
资产
资产范围涵盖了从有形资产(房地产和硬件)到⽆形资产(合同和知识产权)全部内容。Hyperledger Fabric提供了使⽤链码交易修改资产的能⼒。资产在Fabric中可以表⽰为⼀个键值对的集合,随着状态记录变更作为交易写⼊通道的账本中。资产可以⽤⼆进制或JSON形式表⽰。
你可以很轻松的在Fabric应⽤中定义并使⽤资产,通过使⽤⼯具:Hyperledger Composer。
链码
链码是定义资产与修改资产的指令。换句话说,它是业务逻辑。链码通过执⾏⾃⾝逻辑来查询或修改键值对或者其他数据库信息。链码函数通过数据库当前状态执⾏,且通过交易提案初始化。链码执⾏的结果是⼀系列键值写(写集),该写集将会被提交⾄⽹络并应⽤于所有节点中。
账本特点
账本是Fabric中所有的有序的、防篡改记录。状态转换是参与者进⾏链码调⽤后提交的结果。资产键值对集合的每笔交易结果都会以创建、更新、删除的形式提交。
总账有区块链以区块的形式来存储不可改变的、有序的记录,且有⼀个状态数据库来存储当前Fabric状态。每个通道有⼀个账本,通道中每个成员节点维护⼀个账本副本。
使⽤基于Key的查询、范围查询、复合键查询来查询或更新账本。
只读查询⽀持丰富的查询语句(CouchDB)。
只读的历史查询——实现数据追溯场景。
交易包含读取链码键值对(读集),以及写⼊链码键值对(写集)的版本。
交易包含所有背书节点提交⾄排序服务的签名。
交易被打包排序成区块,并通过通道从共识节点传⾄对等节点。
对等节点通过背书政策标准来验证交易。
在增加区块前,需要执⾏版本检查以确保数据在链码执⾏时间段没有被篡改。
当交易被验证并承诺后,便不可改变。
每个通道的账本都包含配置区块,它定义了政策标准、访问控制列表与其他相关信息。
通道包含了会员服务提供商实例,因此加密证书能传递到不同的证书颁发机构。
通道私密性
差速防坠器
Hyperledger Fabric在每个通道的基础上雇佣了不可改变的账本与链码,它可以操纵与修改当前资产状态(⽐如更新键值对)。账本在通道区域内存在——可以在整个⽹络中共享(假设所有参与者在同⼀个通道操作)——或者它可以私有化,只包含⼀组特定的参与者。
在后⼀种场景中,这些参与者将创建⼀个单独的通道,从⽽隔离他们的交易和账本。为了解决需要弥合总透明性和隐私之间的差距的场景,链码只能安装在需要访问资产状态进⾏读取和写⼊的节点(也就是说,如果⼀个链码没有被安装在节点上,它将⽆法与账本对接)。为了进⼀步混淆数据,链码内部数据可以在写⼊到账本之前加密,这可以使⽤常见的加密算法如AES等。
安全性与会员服务
Hyperledger Fabric⽀撑了⼀个所有参与者已知⾝份的交易⽹络。公钥基础设施在这⾥被⽤来⽣成绑定到⽹络中不同组织与应⽤客户端的加密证书。因此,它可以更⼴泛地在通道级别上操纵和控制数据访问控制。正是Fabric这种“许可”的概念,与通道的存在和功能,形成了隐私性与保密性这个关键问题的解决⽅案。
共识
在分布式账本技术中,⼀致性最近成为单个函数中特定算法的同义词。然⽽,共识不仅仅包含同意交
易秩序,还包括在Fabric在整个交易流程的扮演基本⾓⾊,包括从提案和背书,再到排序,验证和承诺。简⾔之,⼀致性被定义为包含在⼀个块中的⼀组交易的正确性的⼀系列验证。
当打包后的交易的顺序以及结果通过标准检查后,才达成共识。这些验证发⽣在交易执⾏的整个⽣命周期中,这些标准包括:判定何种成员须⽀持何种交易类的使⽤,通过系统链码来保证这些标准的实施与维护等。对于最终承诺的确认,节点将雇佣这些系统链码来确保通过了⾜够多的验证。此外,在将任何包含交易的区块添加到账本之前,都会进⾏版本检查,最后的检查提供了对双花操作和其他可能危及数据完整性的威胁的保护措施。
除了⼤量的背书、验证与版本检查之外,还有⼀些不断进⾏的⾝份认证发⽣在交易流程的各个⽅⾯。例如:访问控制列表在分层的⽹络层中实现(从排序到通道),消息体被各种组件多次签名,检查并认证为⼀个交易提案。总的来说,共识不仅仅局限于某⼀批交易的顺序,⽽是⼀个总体特征,是⼀个交易从提案到承诺的过程中不断验证的副作⽤。

本文发布于:2024-09-23 06:36:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/141935.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:交易   账本   链码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议