联盟链和公链是互斥的吗?

原创
1872 天前
1603

公链,顾名思义就是公有,它是指对全世界所有人开放的,任何人都可以读取数据、发送交易且交易能够获得有效确认的共识区块链。

联盟链是指由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。

公链和联盟链,作为区块链江湖中的两大帮派,了解它们两者之间的差异以及各自适用的场景是每个关心区块链的用户必学的入门知识。

11月1号晚20:00,博士大爆炸第2期暨BlockMania AMA 第24期,清华大学博士、Trias首席算法科学家胡志琳做客直播间,详细介绍了公链和联盟链的异同,深入解读公链与联盟链互通以及如何保障互通安全性。

以下为AMA全程回顾

1.什么是公链、什么是联盟链?从技术和场景应用上有什么不同?

公有链是完全去中心化的一种区块链。任何人既可以进行交易也可以读取信息。任何人都可以参与链上的交易确认和共识机制。各个节点可以随时加入节点也可以随时退出节点。


公有链的特点是:

1)访问门槛低

只要你有计算机,只要计算机能联网,都能够访问。

2)数据公开透明且无法篡改

公有链是高度去中心化的分布式账本,每个人在任何节点的行为都是可以查看的,而且基于庞大的用户体系,想要篡改交易数据,几乎不可能实现。

3)匿名性

由于节点之间无需彼此信任,所有的操作都可以匿名进行,很好地保护使用者的隐私。

4)免受开发者影响

公有链数据的读写是不受任何人控制和篡改的,就连程序开发者也无权干涉用户。所以,极大程度上保护了用户免于程序开发者的影响。

公有链也有一定缺点,比如交易速度慢。支付宝转账可以即时到账,但公链上由于确保交易信息真实性的原因需要6个区块确认时间(比特币为例)确认该交易真实方可成效,在这一过程会影响交易速度。

联盟链则是指由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。

联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。

联盟链的特点是:

1)权限设计要求更复杂,可信度更高。

2)比公有链处理速度要快,因为节点的数量和身份都已经规定好了,所以可以使用相对松散的共识机制,因此数据的处理速度就会比公有链大大提高。

3)尽管联盟链速度加快,但相比公有链来说联盟链并不是完全去中心化的。因为理论上联盟之间可以联合起来修改区块链数据。由于节点少,如果权限设计不周则容易出现权力集中和安全问题。

联盟链和公链的应用场景不同。公有链适用于对可信度、安全性有很高要求,而对交易速度要求不高的场景。联盟链更适合对隐私保护、交易速度和内部监管等具有很高要求的应用,比如适合组织机构间的交易和结算,应用代表有超级账本(Hyperledger)。

 

2.有一种观点是,联盟链是公链的未完全进化版本,您觉得联盟链和公链是否能共存?是否有了公链就不再需要联盟链了?

人们往往都把区块链与大数据、云计算、AI放在一块,来讲述新技术对于经济的促进作用。但目前区块链爆发的能量,展现出来的能力,跟其他三个还没法比。

究其原因,承载区块链应用的公链和联盟链存在很大限制。公链的性能、数据安全与隐私保护、可扩展性、智能合约等都还远谈不上成熟,还无法承载互联网上主流的商业活动。现在的记账技术隐私性还没法完全保证商业机密不被泄露,导致上链隐忧仍存。

联盟链曾百花齐放,比起公有链,需要在安全、隐私、性能、应用型、可靠性等方面进行针对性的打磨和加强。比如说安全方面,银行作为国家的法定交易所、金融机构以及有价值数据的机构,不可能把数据、隐私、财务信息全部放在公有的环境上。

但目前为止,联盟链技术还是着力于核心与协议层面的技术发展,作为一种综合解决方案仍显不足,在技术定型与落地上都还存在非常多的掣肘。对作为基础设施的联盟链技术,还没有一个得到同行业公认的测评标准,且各行业对区块链技术在功能与性能上也无清晰需求。

不同业态的多样化业务需求对联盟链的通用性提出了极高要求,既存的“模板”都有被“作废”的可能。另外,如何从底层设计上平衡联盟链中的各方利益及话语权,践行权力分配与管理也是一大难题。

因此,基于目前的区块链发展状况,公有链和联盟链会在相当长的一段时间内并存,并不存在谁取代谁,谁更有优势的问题,但总的来说,谁解决了需求谁就是有价值的。

从技术上来看,联盟链将公有链项目的技术设计吸收进来,联盟链的技术和软件工程思想,又给公有链技术予以启发和由此诞生了如分片处理和状态通道的策略技术。二者是互相促进,并肩前行的。

从行业视角来看,公链和联盟链从原先的技术差别,逐渐延伸到应用阵营的区隔。公链囿于其难以攻克的技术难题和应用场景的极大局限,一直脱不开“币”的影子,目前还在充当极客的新世界期望和投机客暴富梦想的载体。而联盟链则凭借效率和技术难度的高性价比,被贴上了产业价值的标签,成为区块链落地应用底层技术的首选,商业化进程也更为明朗。

以太坊 V 神曾将公链的希望寄托于“未来的经济危机”,而联盟链项目却有机会被深入和落地,很大原因在于现在很多商业领域的土壤会更适合联盟链落地和生长。因为有联盟链的存在,反而更能促进区块链技术的发展,有人说公链和联盟链未来会融为一体,那么联盟链就是公链落地的另一种方法,也是区块链技术的希望所在。

 

3.我听说Trias在公链和联盟链的融合上做出深入的尝试。为何要实现联盟链与公链的互通?互通的必要性和意义又在哪?

Trias认为,公链与联盟链的融合是大方向。

公链和联盟链都有各自的优势,又各有各的桎梏,未来公链和联盟链会进一步融合,即在公链基础上架设联盟链,把二者的优势进行互补。

不论对于公有链还是联盟链来看,互通互联是实现价值互联网的关键。区块链不缺链,缺的是对产业的技术支撑和落地。区块链非常需要跨链的技术,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。

Trias定位于做区块链一站式服务平台,给各个公链提供跨链技术,它致力于降低跨链成本和难度。区块链是价值网络空间的核心基础设施,区块链应用不应该只局限于和止步于联盟链的应用,将价值圈在一个小范围中,人们需要链间的互通技术,对不同区块链进行连接和扩展,构建价值网络的高速公路。

Trias 在Leviatom -1可信层公链基础上搭建联盟链,联盟链不需要再各自建各自的链,提供信任服务。而是把经过验证、经过博弈考验的信任服务放在基础公链上,在基础公链上搭建各自联盟链。

各自联盟链上面可能有一些私有的数据,私有的部署。而公链上面是非私有的数据,是脱了敏的数据,而且数据主要用于存证和基础的信任服务。这样,把公链与联盟链进行融合,可以实现更加复杂的商业逻辑。

具体来说,Trias Leviatom-1层的意义就是把机器可信和数据(账本)可信分开,实现了机器可信,所有机器可以联通,像是互联网上的一层新的可信协议。在此基础上,再建各自独立的数据域(账本)。用-1层实现对账本可靠性的保障(每个账本不需要太多节点来对抗 51攻击,这个交给了 -1层,它有很多节点,而且能对抗90攻击),同时用-1层实现账本之间的数据交换。

基于我们-1层链实现的区块链云设施的生态服务,本质上是一个链接云/数据中心/边缘计算/PC/物联网设备的区块链,用于跑分布式账本/智能合约平台/企业级应用/其它SaaS,这些统称为DSaaS。

Trias公链链接的联盟链可以解决三个问题:

(1)联盟链在公链网络上的一键复制,实现联盟链项目快速实施交付甚至是无代码交付,这时联盟链本身就是我们公链的DSaaS。例如1)一键发以太坊/fabric;2)-1层链接的是一个跨云基础设施,让这个以太/fabric跑在多云上,从而消除这个区块链底层云平台的中心化。

(2)联盟链数据冗余成本问题。若用公链来实现对联盟链安全性的增强,那么联盟链的设计实现可以更简化,用更小的成本(比如更少的共识节点数,数据冗余度)来达到同等安全强度;

同时这个问题衍生到联盟链安全能力输出的问题。公有云的诞生来自于服务器集群空余计算/存储能力的对外出租,一个大型联盟链或许也能为其它联盟链输出闲散的安全能力。这也就是为什么联盟链的底层(-1层)可以链入外界公链。

(3)让联盟链之间相互验证对方联盟链的安全,实现数据互换。

现在我们可以直接支持原生的以太坊应用,因为我们上面跑了一个以太坊,然后应用是不用变的,甚至其实更理想状况是每个应用它可以根据自己的需要修改以太坊,然后让以太坊这个账本更好为他服务。

在这种情况下,对于传统的如果现在任何一个开发者他都可以去跑一个以太坊,那他要解决的问题是如何向他的用户证明他的以太坊没有被别人攻击。这个是很难的,因为他如果要有一个私有以太坊的话,他按照以太坊的方式,他可能得跑2000个节点,来才能让以太坊抵御有足够强大的抵御攻击的能力。因为还是这样,每个以太网节点都有可能撒谎。 

现在的情况是有的项目已经开发了以太坊或者是开发了hyperledger,我们希望他们的以太坊和hyperledger在我们的链上都能直接不用做修改的跑起来,并且更快而且更安全。

其实另外一个优势是更省钱,因为他不用依赖太多节点的以太坊,或者是不用依赖太多的hyperledger节点,因为底下我们有一个可信的网络。而且当节点减少的时候,它共识肯定是更快的。而且这个优势就不单指节点的算力本身,更主要是对企业来说,可能更重视这些,因为他会更安全。 

 

Trias将可信技术与跨链技术相结合,实现公链到联盟链之间的可信链接,以此为这种互通的安全性做保障。我们从三个层次出发,来具体构建公链到联盟链之间链接的可信性:

(1)网络节点的可信远程证实

负一层的公链在联盟链的底下,在共识之前,先对对方的节点进行可信判断。其实区块链的共识协议就是一个我们双方通过问问题来判断对方真实实力的一个过程,也其实有另外一个办法可以让我们更好地判断对方的真实实力,或者是真实的想法,就像装了一台测谎仪,如果有恶意程序,马上测谎仪就亮了,所以基于可信节点的公链就不用那么复杂的共识协议。 

其实白名单技术能解决节点上的认证问题是这个技术里面的核心,也是最强的地方。当所有的链第一时间内排除恶意节点,让所有的链在共识的时候,我们保证参与共识的节点基本上都是对的节点,理论上来说所有人都是对的话,大家任何一个人说的话都是真话,就不用那么复杂的事情,但我们也不会完全相信所有东西都是可靠的,至少我们可以极大程度的降低共识的难度,我们用这个方法让其他链跑得更快,并且同时更安全。 

可信计算(Trusted Computing)是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台。

通过建立一种特定的完整性度量机制,使计算平台运行时具备分辨可信程序代码与不可信程序代码的能力。可信计算组织(TCG,Trusted Computing Group)将可信定义为:一个实体是可信的,如果它的行为总是以预期的方式朝着预期的目标。TCG的可信计算技术通过在硬件平台上引入可信平台模块(TPM,Trusted Platform Module)来提升计算机系统的安全性。可信计算技术依赖于内嵌在平台上的协处理器TPM。TPM至少需要具备四个主要功能:对称/非对称加密、安全存储、完整性度量和签名认证。数据的非对称加密和签名认证是通过RSA算法来实现的,而完整性度量则是通过高效的SHA-1散列算法来完成,对称加密可以使用任意算法,既可以使用专用协处理器也可以使用软件来完成。

可信计算的主要思路是首先基于安全芯片建立终端平台信任,然后通过远程证明建立平台间的信任,最后将信任延伸到网络。远程证明是一个综合完整性校验和身份认证的过程,向验证者提供了一份可信的平台状态报告。远程证实模块主要用于统一管理所有节点的证实关系以及白名单,协助前端展示各主机的可信状态等功能。

主要功能包括:

1.白名单管理

支持主机白名单的生成、查询、更新、删除等操作,通过分析运维策略自动生成白名单,可以配置不同的可信策略更新白名单,并可以通过主机ip,文件hash等方式查询白名单。

2.证实管理

控制主机之间互相证实,支持主机可信状态查询,启动证实,停止证实操作。

3.监控报警

在证实过程中,一旦发现有主机可信状态异常,能够在秒级内感知,并发出报警。

(2)网络间的可信跨域

「可信计算组织」 (Trusted Computing Group,TCG)的前身为「可信计算平台联盟」 (Trusted Computing Platform Alliance,TCPA),重组为TCG后加强了对软件安全性的关注,可信计算研究进入了发展的新高潮。2004年5月,TCG成立了可信网络连接分组(Trusted Network Connectionsub Group,TNC-SG),相继研究和制定了可信网络连接(Trusted Network Connection,TNC)的架构和相关规范标准。

基于TNC基础架构,根据高可信网络对信息交互和共享更高的要求,设计了跨域远程双向认证与接入控制协议流程,有效地实现了远程双向认证与跨域接入控制。并在此基础上设计了跨域认证和授权管理系统,实现了跨安全管理域的统一身份认证,可有效地支持跨域授权管理,全面提升高可信网络信息系统的数据安全防护和安全共享能力,实现可信网络跨域环境下信息资源的高效共享。

跨域认证采用双向身份认证,既要保证网络的安全,也要保证终端能接入到一个可信的网络中。在实施过程中采用了CAP—TTLS协议实现双向身份认证,在TLS隧道建立阶段通过验证服务器提供的证书,证明了网络的可信性,确保终端接入到一个可信的网络中。在随后的TLS隧道内认证终端的身份并度量平台完整性,确保了终端的合法性。TLS隧道的会话密钥是在TLS建立阶段由会话双方协商出来的,只有会话双方可以获得,使用该密钥加密的消息不可能被第三方获得,从而保证隧道内进行的身份验证和平台完整性度量过程的安全性。基于隧道的保护,内层的身份认证方法和平台度量在安全方面的考虑就较少了,以传递认证过程中的数据交换为主,尽可能减少协议复杂性和传输开销。

(3)跨链

链接我们现在有设计,但还没有实现。这部分和传统区块链的跨链技术密切相关。现在仍然在不断完善的Cosmos和波卡跨链技术,都是我们的参考,例如以下跨链技术:

公证人机制(Notary schemes): 公证人也称见证人机制,公证人机制本质上是一种中介的方式。具体而言,假设区块链A和B本身是不能直接进行互操作的,那么他们可以引入一个共同信任的第三方作为中介,由这个共同信任的中介进行跨链消息的验证和转发。公证人机制的优点在于能够灵活地支持各种不同结构的区块链(前提是公证人能够访问相关方的链上信息),缺点在于存在中心化风险。

哈希锁定(Hash-locking): 哈希锁定技术主要是支持跨链中的原子资产交换,最早起源自比特币的闪电网络。其典型实现是哈希时间锁定合约HTLC(Hashed TimeLock Contract)。哈希锁定的原理是通过时间差和隐藏哈希值来达到资产的原子交换。哈希锁定只能做到交换而不能做到资产或者信息的转移,因此其使用场景有限。

侧链/中继链(Sidechains / Relays): 侧链是指完全拥有某链的功能的另一条区块链,侧链读取和验证主链上的信息。主链不知道侧链的存在,由侧链主动感知主链信息并进行相应的动作。而中继链则是侧链和公证人机制的结合体,中继链具有访问需要和验证进行互操作的链的关键信息并对两条链的跨链消息进行转移。从这个角度看中继链也是一种去中心的公证人机制。

同时我们也会精心设计-1层的,通过提供网络节点可信以及网络间的可信跨域,来努力简化和支持在公链生态下广大开发者所贡献的更好的跨链技术,这个也是所有区块链研发者共同需要攻克的难题。这里讲一下其中的一个设计思路供大家参考:各条联盟链之间的资产转移可以通过链上SPV智能合约进行。同时各条联盟链还互相引用彼此的默尔克树,这大大降低了攻击成功的可能性。通过Merkle roots 共享信息实现跨链共识,连接多条联盟链分担计算负载。

在链接公链和联盟链的技术研发中,每一个细节都是需要深入研究的技术点,因为涉及到密码学、安全分析证明等难题,故在这个技术方向上充满了需要时间去打磨的挑战性前言技术课题。我们会首先明确方向,循序渐进的深入研究,号召更多优秀的开发者参与到我们的公链中来,一起解决这些有难度的前沿问题。

在下一步的工作中,我们将针对完整性度量机制基于静态完整性、缺乏动态度量的现状,提出较为完整的系统度量模型,深入研究动态度量技术。我们还会继续跟踪目前业界尚不成熟的跨链技术,持续深入研究如何实现用可信技术来优化传统的跨链技术,研究如何在链接公链和联盟上解决各种工程问题。