在过去的几年里,人们对区块链技术的兴趣急剧上升。因此,大量的时间和金钱被用于创建“杀手区块链”或“杀手DApp”。事实上,IDC预计2019年全球区块链消费将超过29亿美元!不幸的是,这些区块链项目都是在真空中构建的。开发团队一直在使用他们自己的共识算法、他们自己的验证器池和他们自己的自定义应用程序创建他们自己的协议。这种竖井式的方法不利于区块链的安全性、效率和用户体验(我的意思是谁想为每个应用程序管理单独的代币??)显然,是时候开始集成我们的区块链基础设施并构建一个连接的、可伸缩的基础设施了。幸运的是,在这方面已经取得了一些重大进展,这就是本文的全部内容。就让我们一探究竟吧!
当我第一次开始学习区块链互操作性时,我有四个核心问题:
1. 系统的互操性作到底意味着什么?
2. 在早期互联网的构建过程中,互操作性是一个问题吗?如果是,解决方案是什么?
3. 集成区块链基础设施的真正好处是什么?
4. 到目前为止,针对区块链互操作性提出了哪些解决方案,谁在构建这些解决方案?
这些问题提供了对该主题的强大基础理解,所以我决定将它们作为本文的大纲。像往常一样,你可以自由地跳过,阅读你最感兴趣的部分!
1. 互操作性到底意味着什么?
让我们从基础开始:互操作这个术语实际上是什么意思?根据Search Microservices的说法,互操作性只是指“不同系统、设备、应用程序或产品以协调的方式连接和通信的能力,而无需最终用户的努力”。
对于软件来说,互操作性是指能够自由交换数据、共享文件和使用相同协议的应用程序。对于电信来说,互操作性指的是能够无缝地将信息从一个供应商传递到另一个供应商的网络。您可能已经推断出,加密互操作性意味着信息可以自由地从一个区块链网络传递到下一个。这种集成将允许区块链用户跨链交换值和任意数据。
这个定义的后半部分同样重要。区块链互操作性不应该要求终端用户做任何额外的工作。这意味着用户不必为每个跨链交易使用交易所,也不必为每个代币维护单独的钱包,等等。相反,应该从一个入口点连接和访问所有内容。事实上,在一个理想的世界中,单个区块链网络的复杂性将被抽象出来,最终用户将简单地访问“区块链”,就像我们目前访问“互联网”的方式一样。实现这种程度对于区块链的采用将是一个巨大的步骤,并且只有在我们拥有一个连接的区块链生态系统时才有可能实现。但我有点超前了。我们将很快讨论集成区块链网络的好处。不过,在此之前,让我们先来了解一下这个问题的历史背景。
2. 互操作性和早期互联网
马克·吐温曾说过一句臭名昭著的话:“历史不会重演,但它经常相似。”不管他是否真的这么说过,这个表达都非常适用于区块链技术,因为早期的互联网和我们当前区块链基础设施的发展有很多相似之处。最直接的相似之处之一是互操作性的概念。因此,我认为强调互操作性对互联网的采用和可扩展性的影响是很有趣的。
互联网的诞生(1963-1974)
让我们从头开始。互联网最初是由美国国防部资助的一项实验。1963年,国防部高级研究计划局(ARPA)信息处理技术办公室(“IPTO”)第一任主任J.C.R. Licklider首次提出了这个概念。Licklider支持这样的想法,即我们可以创建一个由相互连接的计算机组成的“星系间网络”。不幸的是,这一理论花了几年时间才付诸实践。这发生在1967年,当时拉里·罗伯茨发表了现在被称为阿帕网的最初设计。
在首次出版两年后,ARPA在四个学术机构安装并连接了第一个网络节点:加州大学洛杉矶分校、加州大学圣巴巴拉分校、斯坦福大学和犹他大学。当时,网络的功能仍然非常有限(仅限于发送消息、发送文件和打印到远程打印机)。虽然这种有限的功能在一定程度上阻碍了该网络的早期发展,但更多的研究机构慢慢加入进来。到1971年底,阿帕网已从4个节点发展到15个节点。到1973年底,这一数字增至35人,到1976年底增至63人。
随着阿帕网在20世纪70年代中期的不断扩展,研究人员在最终决定网络控制协议之前,对各种网络协议进行了实验。大约在同一时间,一些机构开始创建自己独特的网络。值得注意的是,密歇根大学创建了“功绩网络”,法国政府资助了“基克拉迪斯网络”,杜克大学的两名学生创建了Usenet。显然,计算机网络开始吸引学术界和政府机构的大量兴趣。唯一的问题是每个网络都被限制在网络内部通信。这意味着,对于使用密歇根大学功绩网络的人来说,无法通过加州大学洛杉矶分校的ARPANET与他们的同行进行沟通。这个问题严重限制了早期互联网的覆盖面和实用性。听起来熟悉吗?
那么解决方案是什么呢?为了实现拥有无所不在的计算机网络的目标,很明显,要么现有的网络必须“获胜”,要么这些孤立的网络需要一种相互通信的方式。1974年,文顿•瑟夫(Vinton Cerf)和罗伯特•卡恩(Robert Kahn)证明,后者将是最务实的选择。
TCP改变了互联网(1974-1983)
1974年,文顿·瑟夫(Vinton Cerf)和罗伯特·卡恩(Robert Kahn)发表了一篇开创性的论文,题为《分组网络互连协议》(a Protocol for Packet Network Intercommunication)。在这本书中,他们首先详细介绍了连接不同网络所面临的挑战。这些挑战本质上归结为这样一个事实:每个网络都有自己的一套规则来标识节点和传输数据。更具体地说,每个网络都有唯一的地址、不同的最大数据传输大小、不同的故障检测程序等等。同样,这听起来与连接我们现有的区块链基础设施(即每个区块链网络都有自己独特的共识机制、最大块大小等)所面临的挑战非常相似。
更重要的是,Cerf和Kahn的论文针对这些互操作性挑战提出了一个解决方案。这个解决方案是一个全新的网络协议,称为传输控制协议(简称TCP)。TCP由以下核心组件组成:
· 网关: 为了使数据从网络A传递到网络B,需要重新格式化数据以满足网络B的标准。网关被设计用来处理这个重新格式化的过程。此外,他们还负责分解超过下一个网络最小大小要求的数据包(我知道这很令人兴奋!)
· 排序: 如上所述,TCP被设计为一个“包交换协议”。这意味着协议将数据分解成一组更小的数据包,然后在网络上路由这些数据包。为了有效地做到这一点,接收计算机需要能够按照正确的顺序重新包装它们。TCP通过在每个传出数据包的头部添加一个序列号来处理这个过程。然后,接收方计算机上的TCP协议可以使用这些序列号将数据包恢复到正确的顺序。
· 寻址:TCP还负责跨网络(或多个网络)路由此数据。为了做到这一点,它需要知道将数据发送到哪里。为此,TCP为每个网络和网络上的每个节点分配了一个惟一的ID。然后,它使用这些标识符在网络上路由信息。
几年后,这个排序/路由功能被分成两个独特的协议。TCP仍然负责分解/重新排序数据包,而新创建的互联网协议(“IP”)负责将数据路由到整个网络(因此我们使用“IP地址”来区分每个互联网连接的设备)。这就是现在所知的TCP / IP协议套件,它是我们整个互联网基础设施的骨干!
这里重要的是,通过标准化数据传输方法并使用网关作为网络之间的桥梁,TCP能够连接对数据传输有不同需求的竖井网络。
指数级增长(1984 -现在)
在看到协议的潜力后,ARPANET决定将其底层协议从NCP切换到TCP。这一转变发生在1983年1月1日(这一天现在被亲切地称为“国旗日”)。从左边的图表中可以看出,国旗日代表了互联网连接设备发展的转折点。
这种加速增长可以归因于几个方面。TCP / IP发布几年后,美国国家科学基金会(NSF)使用协议套件构建了NSFNET,该网络在当时发展成为最健壮的计算机网络。此外,全球各地的研究机构开始使用该协议来建立自己的联网计算机网络。随着更多地理区域的联网,互联网的实用性呈指数级增长,最终推动了对这项技术的更多关注和资金投入。TCP使这种良性循环成为可能,这就是我们今天享受互联网无处不在的原因。
3.区块链互操作性的好处
还记得我说过,在互联网的历史上有一个节点,实际上有两个选择:(1)一个网络“胜出”,(2)我们连接现有的网络?区块链技术目前也处于同样的岔路口,这一次,答案似乎有些显而易见。尽管比特币的极大化主义者言辞激烈,但值得怀疑的是,是否会有一条“万能”链,能够针对每一个可能的用例进行优化,并成为整个区块链基础设施的支柱。因此,合乎逻辑的下一步必须是将它们连接起来。但是这样做的实际好处是什么呢?
一般来说,互操作性有两个核心好处:它改进了用户体验并支持网络专门化。让我们更深入地研究这些概念。
可用性
这一点很明显。互操作性的目的是允许用户无缝地将信息从一个区块链传递到另一个区块链。这通常可以分为两类:价值交换和任意数据交换。价值交换是指用户不依赖于集中的代币交换而直接将ETH交换给BTC的能力。通过启用不可信的对等价值交换,互操作性将大大减少费用负担、等待时间和交易复杂性。
第二类是任意数据交换,指的是“区块链到区块链的API调用”。该功能将允许开发人员编写跨链智能合约。这样做将使智能合约能够启动链间代币传输、创建表示其他区块链代币或真实世界资产的合成资产、与构建在其他区块链网络上的应用程序通信,等等。这种程度的链间通信将显著改进UX,因为用户将不再负责自己传输或重新创建这些信息。
网络专门化
互操作性的第二个好处是网络专门化。这个不太直观,我再讲一些背景知识。
目前,如果开发人员想要构建分散的应用程序,他们有两种选择:(1)他们可以从头创建特定于应用程序的区块链,(2)他们可以在现有的区块链网络上构建。从头开始构建区块链是一项艰巨的任务,因为它需要从头开始编写所有代码,并引导一个由矿工、用户等组成的社区。即使这样,新应用程序也无法与区块链生态系统的其他部分通信。当然,大多数开发人员选择选项2,并在现有的基于虚拟机(“基于vm”)的区块链(如Ethereum)上构建应用程序。这样做,他们就不需要构建自己的区块链,并且可以与构建在相同平台上的其他应用程序进行“现成的”互操作性。
不幸的是,尽管基于vm的区块链可以处理一系列令人印象深刻的功能,但它们有几个重要的限制:(i)它们具有更大的攻击面,这降低了网络安全性;(ii)它们的伸缩性不是很好;最后一个限制可能是最重要的。虽然以太坊和其他类似平台已经被构建来适应广泛的用例,但是它们实际上并没有针对任何特定的用例进行优化,这意味着开发人员必须使他们的应用程序适应平台的任何瓶颈、限制和治理结构。在某些情况下,这可能类似于将谚语中的方钉装进圆孔中。
那么解决方案是什么呢?你现在可能已经猜到了。解决方案是简化创建特定于应用程序的区块链网络的过程,并支持它们之间的互操作性(我们将在下一节中讨论Polkadot是如何做到这一点的)。这将带来三个重要的好处:
· 自定义: 可以完全定制特定于应用程序的区块链。这意味着开发人员可以选择编码语言、协商一致机制、权限设置、编程功能等等。这将允许开发团队为他们独特的用例优化网络的安全性、私密性、效率、灵活性和复杂性。这将增强构建在其上的应用程序的性能和功能。
· 可扩展性: 承载多个应用程序的大型基于vm的智能合约平台存在“交易冲突”的风险。这是一种描述同一代币可能同时在多个交易中使用风险的奇特方法。为了降低这种风险,智能合约平台按顺序执行交易,而不是同时执行所有交易。然而,如果每个应用程序都构建在特定于应用程序的独特区块链上,而不是单一的智能合约平台上,交易就可以同时执行。当您在整个区块链生态系统中考虑这个示例时,您可以开始想象特定于应用程序的体系结构将会多么高效/可扩展。
· 安全性: 当从头创建一个新的网络时,吸引最优数量的验证节点可能是一个挑战。如果验证节点的数量不够理想,则网络安全级别也不够理想。实现区块链互操作性的一种方法是使用一个中继链体系结构来集中网络安全功能(我们将在下面的中继一节中对此进行更详细的讨论)。使用这个模型,每个连接到中继链的区块链都可以共享一组验证器。这显著增加了为每个单独的区块链网络供电的验证节点的数量,并使验证过程更加有效。
令人兴奋的是,几个团队已经在尝试创建这个相互连接的基础设施层方面取得了很大的进展。这就是我们将在本文的最后一节中深入探讨的内容。
4. 互操作性的当前状态
既然我们已经很好地理解了互操作性的好处,让我们继续讨论最后一个问题:已经提出了哪些解决方案来连接我们的区块链基础设施, 以及谁在构建它们?在过去的几年里,不同的团队从不同的角度攻击互操作性。在此期间,有三种潜在的解决方案脱颖而出:原子互换、公证计划和中继链。
原子交换(也称为哈希时间戳)
原子交换使用一种称为哈希时间戳的技术来支持直接的对等代币交换。原子交换是我们三个解决方案中最基本的一个。简单地说,原子交换允许您直接与另一个人交换代币,而不需要信任的第三方。换句话说,如果Alice想用5个BTC交换Bob的100个LTC,他们可以使用原子交换来执行对等转移,而不会有任何对手方的风险。
那么它到底是如何工作的呢?它使用一种称为哈希时间戳的技术。我们把它分解一下。在哈希时间戳中,每个参与者将各自的代币锁在一个智能合约中。如果双方同意对方已经向智能合约发送了适当的金额,则代币将被分发给双方。但是,如果任何一方不同意智能合约中锁定的金额,那么智能合约将过期,双方都不会收到代币。
为了获得更多的粒度,让我们回到前面的示例。为了让Alice和Bob使用原子交换将5个BTC交换为100个LTC,他们将执行以下步骤。首先,Alice会选择一个大的随机数(我们称之为“q”)并对其进行哈希。然后她会创建一个智能合约,说她将发送5个BTC给Bob,并用q的哈希锁定该智能合约。如果Bob查看智能合约并同意Alice锁定了适当的数量,他将创建第二个智能合约,声明他将发送Alice 100 LTC并使用相同的哈希锁定它。最后,如果Alice同意Bob也锁定了适当的数量,她将使用q解锁100个LTC,这样Bob就会知道q的值并使用它解锁他的5个BTC。当然,总有一方不履行协议的可能。如果发生这种情况,那么合约将过期,交易也不会发生。
原子掉期已经变得非常流行,现在在一些最著名的交易所 (“DEX’s”)上使用,包括0x、Lightning Labs和Komodo。使用原子交换可以减少链间交易的费用负担,并避免与交换相关的一些安全问题。尽管如此,原子交换也有一些缺点。最重要的是,它们速度很慢,只能用相同的哈希算法在链之间进行交换,而且目前只能用于支持基本智能合约的区块链。
公证计划(即单向及双向挂钩)
实现互操作性的第二种方法称为“公证计划”。从技术角度来看,公证员制度是最简单的解决方案(至少根据Vitalik的观点)。这种方法依赖于一组受信任的验证节点(称为“公证人”)来验证跨链的交易。从本质上讲,公证人向一个区块链提供了一个保证,即某个事件发生在一个单独的区块链上。例如,它们可以用来检查一定数量的代币被锁定在区块链A上,以便可以在区块链B上综合创建它们。
公证人制度的一种常见类型称为联邦挂钩旁证(我们将其简称为“FPS”)。FPS本质上使用多签名钱包在区块链之间创建单向和双向挂钩。这听起来可能有点混乱,让我们回到之前的例子。如果Alice想用FPS把她的5个BTC换成100个LTC,她可以把她的5个BTC发送到一个由公证员联合会控制的多签名地址。然后,这组公证人负责批准交易。一旦获得批准,就可以在litecoin区块链上综合创建资产,供Alice使用。相反,Alice (或任何与她交换莱特币的人)可以销毁这些合成币。如果发生这种情况,那么公证人将把之前锁在多sig钱包中的5个BTC发送给毁灭者。这种创建和销毁合成大笔的能力开启了一系列新功能,包括代币化链外资产的能力、创建稳定值代币的能力,当然还有代币互操作性。
那么,目前哪些项目使用公证人制度呢?最有信誉的将是内部分类和流动。
· Interledger是Ripple实验室创建的一种协议。它主要模仿TCP / IP,并使用一个“连接器”网络来促进互操作性。它目前正在运行,已经有一些公司在它的基础上建设,包括 Coil, StrataLabs, Kava,等。
· Liquid是一个与货币挂钩的联邦侧链,它建立在比特币网络之上,以促进快速的链间转账和对现实世界资产(如法定货币)的代币化。随着35个项目(主要是交易所、交易部门和金融机构)的建立,Liquid”开始获得一些吸引力。此外,Liquid预计将在近期完成几项值得注意的集成,包括与Tether和BitMEX的集成。
当然,如果我不讨论公证制度的弊端,那就是我的失职。这里的核心缺点是这个过程并不是完全不可靠的。当然,您不需要依赖集中式交换。然而,本质上您只是用一组公证人的信任替换了集中实体中的信任。如果超过要求的公证人比例是恶意的,那么整个系统仍然可能受到危害。
中继链
我们需要讨论的最后一种互操作性技术称为中继链。在我看来,这是迄今为止最令人兴奋的解决方案。顾名思义,中继器用于简单地将信息从一个区块链“传递”到下一个区块链。在公证方案上使用中继的优点是,它完全消除了对一组可信中介的需要。
那么它到底是如何工作的呢?基本上, 中继器是一个智能合约区块链(我们称之为区块链),作为光客户机在一个单独的区块链(我们称之为区块链B)为背景,光客户机是一个连接到一个完整的智能合约区块链网络节点。因此,通过充当区块链B上的轻客户机,中继器能够理解事件变化并将信息传递给区块链A。
那么目前谁在使用这种接力技术呢?最有名的项目可能是BTC Relay。BTC Relay是一个基于以太的智能合约,它连接到比特币区块链上的一个完整节点,以提取和存储BTC块头。它宣称的目标是使用这些块头在以太坊上构建一个迷你版的比特币区块链。这种特殊的中继技术的唯一缺点是它仅限于单向互操作性(即BTC中继只能将BTC信息拉到ETH区块链上,反之亦然)。
中继链使用“hub=and-spoke”体系结构:中继链是作为每个成员链上的轻客户机的“hub”。幸运的是,可以克服这个限制,创建一个支持双向互操作性的中继体系结构!这就是所谓的“中继链”。从本质上说,中继链是一个惟一的区块链网络,它充当所有连接到它的区块链网络上的轻客户机(我们将把这些称为“成员链”)。中继链有效地成为将所有成员链连接在一起的中心集线器,促进了值和任意数据的交换。
那么谁在建造这些中继链呢?目前,Polkadot 和 Cosmos是这一领域的领先者。这些项目都专注于开发它们的核心中继链基础设施,以及一个健壮的软件开发人员工具包(“SDK”),它简化了创建和连接新成员链的过程。正如我们在前一节中讨论的,这种方法的好处是(i)简化了创建定制的、特定于应用程序的区块链的过程,(ii)提高了总体可扩展性,因为交易可以同时执行而不是按照顺序执行。
有趣的是,虽然这两个项目都使用了中继链架构,但它们都采用了非常不同的方法。
· Polkadot: Polkadot正在设计它的中继链来处理建立在它之上的任何成员链的一致性和网络功能。这意味着所有的Polkadot成员链将共享一组公共的验证器。因此,这些成员链将从强大的安全性中获益,并且不需要引导自己的验证节点集。然而,该模型的缺点是成员链对状态更改没有最终发言权。相反,该电源驻留在中继链的验证器中。
· Cosmos: Cosmos正在采取一种不同的方法。它的中继链仅用于在成员链之间中继数据。这意味着每个成员链负责引导自己的验证器社区并运行自己的协商共识机制。这种方法的好处是,成员链可以在很大程度上控制哪些验证器保护其区块链。此外,成员链将对任何状态更改拥有最终发言权。
如果您正在寻找关于这些解决方案之间差异的更多信息,我强烈建议您阅读本文。重要的是,这两个项目都处于区块链互操作性的最前沿,并且很可能对它们自己独特类型的区块链项目/开发人员具有吸引力。
最后,如果我不简要地提到中继链体系结构的缺点,那就不完整。中继链面临的主要挑战是,它们不容易与现有的区块链网络(如以太坊和比特币)互操作。虽然这些项目都很清楚这一点,但它们可能无法在短时间内确定优先级。
结论
以上就是我关于互操作性文章的全部内容,希望您能从中获益!我知道有大量的信息需要处理,但我的结论是:
1. 从可用性的角度来看,互操作性是至关重要的,如果我们想要实现主流的区块链采用,就必须优先考虑互操作性。
2. 在这方面有令人印象深刻的势头。虽然我们目前的解决方案没有一个是完美的,但我们应该期望在未来几年看到快速的改进,这将导致一个连接更紧密、可伸缩的区块链基础设施。
评论
查看更多