分享

联盟链

 懒人葛优瘫 2019-11-01
什么是联盟链?

区块链目前分为以下三类:1、“公有链”(Publicblockchain);2、“私有链”(Privateblockchain);3、“联盟链”(Consortiumblockchain)。三类区块链主要区别:公有链:对所有人开放,任何人都可以参与;联盟链:对特定的组织团体开放;私有链:对单独的个人或实体开放。

联盟链(ConsortiumBlockchain)是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。该联盟链的每个参与方不用担心自己数据存在哪里,自己产生的数据都只有自己看到,只有通过对方授权的密钥才能看到其他参与者的数据,这样就解决数据隐私和安全性问题,同时能够实现去中心化。

区块链里有各种链,但目前最有实践意义的可能是联盟链。相比于私有链的运作空间和效率,联盟链的价值更大;而相比于公有链的那种完全去中心化的不可控和隐私安全问题,联盟链变得更灵活,也更有可操作性。

联盟链的特点

私有链和联盟链之间的设计隐私权限会有不同,联盟链中的权限设计要求往往会更为复杂。

1.低成本运行和维护

2.高交易速度及良好的扩展性

3.联盟维护、比私有链更具可信度

随着应用场景的需求更复杂,区块链技术变得越来越复杂。但无论是公有链、许可链还是混合链都没有绝对的优劣,往往需要根据不同的应用场景来选择适合的区块链类型。

一些专家学者表示,整个社会中,联盟区块链其实更有前景,因为它更好的发挥互联网的互联互通,共享信息的作用,它的意义在于让大家达成了共识,同时促成更快的建立生态联盟,更好的利用区块链技术去改变工作模式和生活模式。

联盟链的多链架构特点与挑战

安全性

多链架构对安全性是有高要求的。安全性的要求主要来源于两方面,一方面来源于区块链自身安全,包括网络通信安全、数据安全、应急处理等等。另一方面来源于跨链机制安全,包括消息有效性及互操作的合法性控制。

一般而言,为了安全考虑,机构节点会在网络通信层、落盘存储层、数据隐私等方面进行多层次安全防护,以加强区块链网络安全。同时,联盟链也拥有严格身份许可管理和权限管理机制。一方面,参与区块链共识的节点都具有唯一的公开的链上身份信息和链下可追溯的机构身份。另外一方面机构的用户都是经过严格的KYC机制过滤,即是说区块链交易的参与者都是可确定的。在特殊情况下,参与机构们可以在链下有一致行动的应对能力。因此参与机构对联盟链网络有高度把控能力。

因此如何实现跨链机制的安全性是多链架构中的重要考量。在协议设计上需要达到以下几点:

消息的高效路由机制

消息发送方的身份证明

消息接收方的存在证明

消息有效性的自我证明

消息的生命期管理

一致性

一致性是分布式系统中重要的目标之一。在联盟链中采用的PBFT类共识算法较为高效的解决了多节点参与情况下的典型分布式一致性问题,如消息无序、参与方异常、网络分化等同时,在允许一定比例的拜占庭参与方的前提下,做到了最终一致性

在跨链场景中,跨链交易的一致性问题有所简化。因为每次交互可以认为只有两方参与(不讨论一对多的跨链交易)。其中参与一方在执行跨链交易前,必须先确认消息的合法性。而由于联盟链一般对区块附带签名,且不会运行时分叉切换。故消息的合法性验证较为容易。因此,一致性问题退化为跨链交易原子性问题。

交易原子性问题也分为两种类型的解决方法,强原子性和最终原子性。

强原子性方法的其中一种是发生跨链交易时,交互的两条链针对当前区块,临时组成一条链,两条链的共识节点组成这个临时链的共识节点组,两条链的所有共识节点都参与出块签名,签名数据和出块条件都满足两边需要,两边共识算法要保持一致或兼容,且新跨链的区块能同时无缝接入两条链。另一种是验证人的实现方式,额外选出一组双方认可的第三方验证人组处理跨链交易,且第三方链处理后的账本数据被交易双方所认可为各自账本的一部分。上面所列可以归结为一次共识过程解决跨链原子性问题,解决问题的着力点在共识算法创新上。目前业界L0的实现类似方法一。

最终原子性方法是类似中继链,和哈希锁定的方式。通过双向锁定、资产托管的方式来实施过程控制。总而言之,可以归结为多次共识过程的思路。

在具体实现中,采用哪种方法,需要根据参与方角色、业务场景特点、可用性要求、性能要求、时间进度要求等来做综合考量。

可用性

可用性代表的是区块链网络的数据可访问性。

在多链无跨链的场景中,业务请求根据不同路由规则访问不同的单链,某个单链的不可用只会影响本链请求,其余链的请求依然可以正常处理,因此多链架构极大提升了整体可用性。然而在跨链场景却变得复杂。某个单链的不可用不仅影响本链的请求,还影响了其他链的发出的跨链交易请求,导致其他链自身交易处理失败,进一步降低整体可用性。

根据分布式系统的CAP理论。系统设计中,在分区容错性必须接受的现实情况下,需要对可用性和一致性做折中和权衡。在联盟链跨链交易场景中,具体而言,有几点需要考量

交易时延的要求

交易对原子性的要求

交易状态的背书对一致性的影响

治理模型失败的影响

联盟链为什么需要多链架构

联盟链中对多链架构的需求可以归总为以下两点:

应用的需要

现有区块链技术在单链架构下存在性能、容量、隐私、隔离性、扩展上的瓶颈。

想象一个用户数以亿计的类VISA的支付应用,每秒交易请求高达几万笔,每日交易笔数高达几亿笔,用户交易达到秒级响应体验。在现有区块链技术下,数据存储采用链式本地存储导致无法平行扩展,共识机制采用同步式状态机模型导致无法高效处理交易,同时受限于网络中单节点的性能极限,因此单链架构无法满足应用的性能、容量、用户体验及其他要求。

另外一些应用内部需要根据业务功能的需要对数据做平行切分,以达到数据隔离的业务要求和安全要求,由于当前区块链技术体系中的单链中的每个全节点都拥有全网所有数据,因此无法满足此类应用要求。

另外区块链的互操作性本身就是一些应用的基础需求。想象一个理财应用,用户可以用某项资产交换不同机构的理财产品,不同的资产就需要在多条链上做转移、交换。还有一些ORACLE应用同样需要多链间的跨链喂入交互,譬如汇率牌价、天气、股价、特定指标等等。

因此联盟链的某些应用在单链上无法完整实现,需要在多链架构下的可扩展性、隔离性、高性能、互操作等特性的帮助下实现。

组织治理、成员协同的需要

联盟链是个广泛的治理共同体。但依旧允许广泛共同体下存在多个不同的小集体,既是允许机构或行业做更深度的治理收敛,同时多个不同的小集体又共享联盟链的基础设施。如果实际操作中以一个治理收敛为一条链,那多链既是更符合实际的治理场景。例如下图所示:

联盟链的蜂起

区块链最早作为比特币的底层技术而广为人知。比特币的概念在2008年诞生,2014年以后人们发现将其底层剥离出来的区块链技术,进行改造,增加新特性后,可作为基础设施适用于更多的应用场景。这时诞生了很多类似于比特币网络的,任何节点无须任何许可便可以随时加入或者脱离网络的区块链项目,我们称之为公有链项目。

世界上各大金融机构开始关注区块链技术,并且在分析后认为区块链技术有可能在金融各个领域中发挥减少成本、增加效率的作用。在金融领域的场景中,因为无法直接使用性能较为低下、数据透明公开、全网记账的公有链技术,所以在2016年就出现了大量不局限于金融行业,各种以联盟链为目标的区块链项目。随着时间的发展,由比特币起源的,作为联盟链的区块链技术与作为公有链的区块链技术各自独立的发展出了新的特点。

在2016年最早公开联盟链代码的是由Linux基金会发起的开源HyperLedger(超级账本)平台。HyperLedger旨在成为跨行业的区块链技术的标准,多个不同行业的公司都在HyperLedger平台上贡献提交了自己的代码。其中最活跃最被认可的,作为基础设施的项目是由IBM推出的Fabric项目。

相关厂商内容落地微服务架构必备锦囊从C#看开放对编程语言发展的影响Netflix的工程文化:是什么在激励着我们?百度贴吧之父:产品经理的发现和成长ApacheKafka的过去,现在,和未来相关赞助商

Fabric提供基于PKI的身份管理,实施交易的权限管理,这样防止了任何节点都可以发起交易。首先通过RegistrationAuthority(RA)注册获得许可,然后通过EnrollmentCertificateAuthority(ECA)获得注册安全证书(ECert);第三步,通过TransactionCertificateAuthority(TCA)获得交易安全证书(TCert);最终只有使用以上安全证书的二者之一签名的节点才能发起交易请求。

在联盟链的业务需求中,无法像比特币一样,让所有的交易参与方都看到所有的交易数据,对于数据隐私保护的要求是毋庸置疑的。目前在传统解决方案中我们一般使用物理隔离的方法,既交易数据只保存在相关参与方各自的物理空间里。但是区块链技术带来优势的特点正是交易的参与方使用“达成共识的同一个账本”,如何在保证“同一个账本”的前提下,保护交易数据隐私呢?

在Fabric的架构中,一方面是利用PKI技术来对交易方身份与交易数据进行加密,另一方面是利用节点对交易数据的访问控制,实现交易数据的权限隔离。从加密层面上具体来说就是通过注册,交易两级安全证书体系及交易证书序号随机生成来实现交易方的身份隐私保护。通过对智能合约的名称、内容、交易内容、交易的执行状态实施多级加密,仅有交易相关方拥有解密所需密钥来实现交易内容的隐私保护。

从权限隔离的层面上是将节点分为了验证节点与非验证节点,非验证节点只能接受并处理与自己相关的交易数据。只有验证节点才能进行共识,运行交易,维护账本,而非验证节点则只能维护节点间的安全上下文,代表客户向成员服务或验证节点请求服务,向应用交付事件。

在2016年11月30日,名声大噪的国际大银行区块链联盟R3也开源了独创的分布式账本平台Corda。在Corda的平台中,交易数据已经不记录于单位时间产出的一个个数据块中,因此其账本并非常见的区块构成的链式结构,但是仍然具有区块链技术的分布式,数字签名,UTXO余额追踪方式,共识机制等特点。

关于数据隐私保护,Corda在账本层面各个节点之间的数据传输是并非全网广播,只有交易的关联方才能收到相应的信息。Corda实际上也是利用权限隔离来保护隐私,通过设置公证人角色的节点来记录账本,但即便是公证人也无需保存全账本。只有当公证人所拥有的数据无法处理交易时,公证人才会从别的节点获取所需要的数据来计算交易的哈希根。

Corda也采用了名为部分屏蔽的加密保护方案,对记录交易历史的Merkel树结构进行剪枝后只留下原始数据的哈希运算结果,而现阶段的技术是无法通过哈希运算结果逆向推出原始数据的。公证人从别的节点获取原始数据的哈希值来计算最终的交易哈希根。通过权限隔离,加密保护的手段,Corda保证了只有交易的公证人,相关方才能看到原始数据,保护了数据隐私。

但是区块链项目使用的加密算法都无法抵抗量子计算,通过加密手段来对数据隐私进行保护有一个潜在的长期问题,那就是随着量子计算的发展,这些加密后的共享数据会在量子计算技术成熟后被破解。

2016年11月份DAH(DigitalAssetHoldings)发布了DigitalAseetPlatform的非技术白皮书。在这个平台里面,交易数据已经被物理隔离在相关的参与方的节点里。交易数据通过各个节点独自拥有的私有合约存储(PCS)进行物理隔离,各个节点通过一个全网共享的全局同步日志(GSL)来保持各自账本数据状态。

至此,我们看到区块链上对数据的隐私保护技术,从2016年早期的加密保护到后来的权限隔离,发展到了物理隔离。

联盟链上同样不能使用公有链普遍使用的POW(工作量证明算法)共识机制。为了满足对高吞吐量,低耗能的需求,同时联盟链中的节点比公有链的节点有更强的安全与性能保证,很多联盟链使用了技术成熟的Raft,PBFT等共识算法来达成共识。这样可以实现快速生成新的区块,达成不分叉的秒级共识。这样联盟链系统每秒的吞吐量也可以从十位数上升到千位数。

尽管公有链、联盟链、私有链各有很多技术特点、应用场景、治理方式和目标上的差异,它们依然拥有区块链技术的以下基因:

点对点、分布式网络;密码学为基石;块链式;状态机式共识机制;一致性共享账本

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多