探讨跨链资产转移中的区块链网关、网桥和授权哈希锁
面对Bitcoin, ETH, DeFi, NFTs的大部份项目都达到了ATH(历史新高)的时候,我们会问还有被低估的吗?有这样一句话——人往往会高估一年时间发生的变化,但低估五年时间发生的变化。未来5年会发生什么事情呢?这的确考验我们的想象力,这也是每个项目产品的基本假设。
本文作者提出的区块链网关的概念源自于,他对未来链世界的构想类似于我们现在的互联网:每条链都像一个局域网,而链与链之关是独立不可见的,他们之间的通信,就像现在局域网与局域网之间的通信,需要通过统一标准的网关,来实现原子层面的通信。
除了技术层面外,如何确保跨链资产价值一致?本文网关技术层外引入价值层,引入稳定币,作为虚拟资产跨链转移的价值中介。
作者还提出了,把AML/KYC合规放在网关节点进行。这些都是对跨链资产转移的一些新思考。
Blockchain Gateways, Bridges and Delegated Hash-Locks
Author(s): Thomas Hardjono
URL: http://arxiv.org/abs/2102.03933
本论文,我们讨论了网关作为跨链的互操作性手段的概念。我们讨论了网关节点设计和网关协议的可扩展性这两个关键原则,即(i)作为IP数据路由中自治系统原则的模拟的不透明账本原则,和(ii)作为Internet体系结构中端到端原则的模拟的价值外化原则。我们通过描述两个对等网关间的单向资产移动协议来说明标准网关协议的必要性,在两个区块链都是私有/许可的且外部实体无法访问其账本的严格条件下。讨论了网关和网关协议的几个方面,包括网关标识、网关证书和证书层次结构、网关的被动锁定事务以及使用委托哈希锁扩展网关功能的可能性。
1 简介
区块链系统之间的互操作性是目前区块链技术和分布式账本技术(DLT)广泛采用面临的挑战之一。如果不同的区块链系统(采用不同的内部账本架构、共识范式和不同的处理激励机制)无法在互联网规模上进行互操作,那么区块链愿景所提供的去中心化的承诺就无法实现。在文中,我们进一步探讨了区块链网关的概念,将其作为连接不同且不兼容的区块链网络的一种手段[1]。
在第2节中,我们从区块链网络的自治性和跨链虚拟资产流动问题的需求角度出发,激励了对网关的需求[2]。第三节提出了网关节点设计和网关协议的可扩展性两个关键原则。在第4节中,我们用一个网关协议来说明,该协议执行虚拟资产表示从一个区块链到另一个区块链的单向移动。第5节讨论了区块链网关正确设计的各个方面和面临的挑战。我们还探讨了区块链网关在第6节中可能实现的其他功能,包括向第三方区块链使用授权哈希锁,以协助移动可替换虚拟资产和可能与该资产相关的价值。
我们力求使本文能为广大读者所阅读,因此避免使用属于特定区块链的详细技术结构。假设读者对区块链、共享账本、共识算法和公钥技术有一些基本知识。为了方便起见,我们可以互换使用术语“区块链”和“DLT”。
2 用于互操作性、自治性和资产移动的网关
目前区块链和DLT系统正呈现出与上世纪80年代局域网技术相似的成长烦恼模式。如今,全球区块链项目数量激增(如[3]调查的三十多个系统)。尽管从表面上看,区块链项目的这种明显扩散似乎是一种新现象,但实际上,这是新兴技术发展自然循环的一部分。在局域网技术和局域网内数据路由协议的早期,也经历了类似的发展周期。那个发展时期的企业局域网技术的例子包括IBM SNA, DECnet, Ethernet等。
互联网历史上的一个里程碑时刻是在DARPA的支持下定义IP数据报(IP datagram)结构[4],以及他们对可生存网络(the survivable network )/抗毁性自愈网络的目标[5,6]。因特网的体系结构将每个网络视为一个自治系统(AS),每个AS将运行自己的内部路由协议。给定的自治系统甚至可以包含多个LAN,其中每个LAN可以实现不同的物理层(PHY级)协议(例如SNA中的令牌环、DECnet中的CSMA/CD等)。这种方法允许每个自治系统开发和部署自己的技术选择,以满足从IP数据报进入自治系统到离开自治系统的传输标准IP数据报的目标。每个自治系统都可以*操作其选择的内部(域内)路由协议(例如RIP、IS-IS、OSPF等)[7]。为了互联自治系统,为用户提供端到端的可靠服务,在对等自治系统之间部署了称为边界网关路由器(border gateway routers)的特殊路由器。在给定的自治系统中,边界路由器的主要功能是向相邻自治系统的对等边界路由器公布可用的路由。诸如边界网关协议(BGPv4)[8]之类的协议就是为此而开发的。
为了使基于区块链的服务能够在全球范围内扩展,区块链网络必须能够按照标准化的协议和接口(API)彼此进行互操作。我们认为,区块链网络需要一个区块链网关,以便以类似于IP网络中边界网关路由器的方式进行互操作。此外,正如边界网关路由器使用BGPv4协议以对等方式彼此交互一样,我们认为需要区块链网关协议来允许虚拟资产和相关信息以安全和隐私保护的方式在区块链网络上移动。我们在下面的总结对区块链网关和区块链网关协议的需求:
实现区块链互操作性:区块链网关为运行不同共识协议和账本数据结构的区块链/DLT系统之间的互操作性提供接口。网关面向其区块链/DLT系统,并向外部对等(相对)网关公开标准接口(API)。面向外部,网关与对等网关实现网关到网关协议。面向内部,网关执行与其区块链/DLT系统相关的内部资源(如共识协议、账本管理、密钥管理等)。网关允许私有区块链/DLT系统与公共区块链/DLT系统交互。
确保区块链网络自治:使用网关作为区块链网络之间的接口点,允许每个区块链网络发展,新的创新和新技术可以在区块链网络内部部署,而不会影响其他外部区块链。通过这种方式,区块链网络真正表现为一个自治网络,与IP互联网的最初愿景是一样的。
支持虚拟资产流动:虚拟资产在区块链网络中的流动需求日益增长,这种需求只会随着CBDC代币化货币的增长而增加[9]。区块链的使用允许开发创新的资产流动协议,这些协议可以通过标准化API的网关实现。此类资产移动协议可以针对特定的资产类型进行设计,并根据世界上不同的监管辖区通过网关进行操作。
AML/KYC法规和国际税收的执行点:作为虚拟资产进入(离开)区块链网络的“着陆点”的网关成为AML/KYC法规的执行点[2]。此外,对于资产的跨境流动,这些门户也成为“检查站”,可以解决和实施国际监管和税收问题。
实现与原有系统的集成:在网关的对等方之间使用标准化网关协议,允许其中一个区块链替代原有系统(例如金融数据库系统),而不会影响远程对等方。也就是说,可以使用标准化的网关协议来隐藏网关背后存在原有系统的事实。网关隐藏了它所面对的系统内部的复杂性—无论是传统数据系统还是新的区块链/DLT系统。
3 区块链网关架构
在本节中,我们将讨论区块链网络中资产流动背景下的网关概念。我们的观点是基于这样一个事实:(i)现在有并且将来会越来越多地有多个自治的区块链网络;(ii)这些区块链中的许多都是私有的,具有读/写权限的账本;并且(iii)这些区块链(公共和私人)之间的互操作性将是一个核心必要条件,它将决定区块链和DLT技术作为原有和交换经济价值数字表示的手段的可行性。
区块链网关体系结构的设计有许多挑战,其中三个是:(i)实体身份-即区块链生态系统中实体数字身份的正确验证;(ii)原子资产流动-即安全,虚拟资产的数字表示从一个区块链到另一个区块链的原子和高效流动;以及(iii)网关的可靠性和从崩溃中安全恢复的机制。
3.1 区块链网关定义、角色和功能
区块链网关是区块链网络中的计算机系统,用于协助虚拟资产移入(移出)区块链网络[1,10]。网关作为其区块链网络中的节点,对区块链的共享账本具有读/写访问权限,可以参与区块链的共识机制。网关是双向的,因为它在与其区块链交互时被称为面向内部,在与属于不同区块链网络的远程对等网关交互时被称为面向外部。两(2)个对等网关联合执行网关协议,该协议通过网关从一个区块链到另一个区块链的中介来实现虚拟资产流动的相关步骤。
根据定义,网关只属于一个区块链网络,当面向内部(向内)时,它必须对该区块链网络中的实体进行识别和认证。对于内部交互,网关至少有一个区块链交易签名公钥/私钥对。当面向外部时,网关必须具有与远程对等网关交互时使用的网关标识公钥/私钥对。该密钥对允许网关可被对等网关识别和认证(有关网关标识密钥的讨论,请参阅下面的第5.2节)。
根据FATF定义,节点的合法所有者和运营商被称为虚拟资产服务提供商(VASP)[2]。网关的VASP所有者使用VASP标识公钥/私钥对。假定网关标识公钥和VASP标识公钥之间存在某种形式的加密绑定。
在较高的层次上,对等网关有三(3)个角色和功能(图2):
协议和状态信息转换:区块链网关执行基于账本的状态信息从一个区块链到另一个区块链的转换。分类帐中的状态信息与虚拟资产的所有权相关,虚拟资产通常与当前所有者的公钥(地址)相关联(绑定)。 源区块链内的分类账可采用不同于目标区块链中使用的分类账数据结构的不同数据结构(表示虚拟资产)。因此,源区块链中的网关可能需要以标准格式将信息传递给目标区块链中的网关,以允许互操作性。看看图2,区块链B1中的网关G1可以从其账本L1翻译信息,而区块链B2中的网关G2则为其账本L2执行相同的任务。网关G1和G2之间使用的网关协议应该定义一种标准格式,该格式可以将信息从分类账L1准确地传递到L2。
资产流动期间账本一致性维护:网关单独维护其区块链系统中账本的一致性,与虚拟资产移入(移出)区块链系统有关。两个对等网关必须共同维护各自账本中状态信息的一致性。 在G1和G2协助虚拟资产移动的背景下,分类账L1和L2之间的一致性是指G1和G2分别防止区块链B1和B2中资产的双重存在(导致双花)。
监管政策执行点:网关扮演政策执行点(PEP)[11,12]的角色,用于执行实施与资产类型和法律管辖相关的法规的规则(政策)。 虚拟资产在区块链之间的流动实际上可能跨越监管和治理边界,因此,有关资产和相关实体的法律地位的信息可能位于区块链的分类账之外。网关的功能还包括从有关资产和实体的永久来源获取经验证的信息。
3.2 跨链资产流动问题的三部分
在当前工作中,我们将用于跨链资产流动的网关协议问题细分为三(3)个部分或子问题,其中三个步骤必须以原子方式执行到完成(见图2):
(1) 源区块链上资产的终止:必须在源分类账L1上记录信息,以表明与其最后所有者(发起人地址)相关联的资产在源区块链中不再存在(即不再可访问)。如图2中的步骤1所示。
(2) 区块链到区块链转移承诺:调解(即委托执行)资产转移的网关必须交换合法承诺执行资产移动相关步骤的签名消息。如图2中的步骤2所示。
(3) 目标区块链上资产的铸造再生:必须在目标分类账L2上记录资产实例已引入分类账并与该区块链中的所有者(受益人地址)关联的信息。如图2中的步骤3所示。
由于区块链的分类账仅在基础上追加运行[13,14],这意味着与传统数据库不同,无法“删除”已记录(确认)在分类账上的信息。这意味着,在现实中,虚拟资产的“销毁”和“铸造”任务必须使用区块链使用的相同的仅附加机制来实现。换言之,区块链技术中使用的相同交易处理范式应用于体现资产销毁和铸造的概念。我们将在第5.1节中进一步讨论“标记”分类账以进行资产销毁和铸造的可能机制。
需要注意的是,跨区块链资产转移不是在本地转移(同一区块链),上记录资产的所有权转移到给定地址(公钥),而是转移动B1区块链外的B2。L1先将资产转移到网关G1的地址。由于目标区块链B2可能位于不同的监管和治理管辖区内。因此,发起人在区块链B1上发起的交易必须包括受益人地址和受益人地址所在的区块链标识符。此组合信息(包括G1和G2的公钥)必须记录在分类账L1和L2上,包括区块链B1和B2都是私有/许可的情况。分类账L1和L2上的记录必须确保几乎没有争议的余地(例如,在发起人、受益人、G1所有人和G2所有人之间),并且事后审计可以在双方进行。
3.3 设计原则
区块链系统的互操作性影响构建在区块链之上的服务的可伸缩性。为了开发可扩展的区块链网关协议,网关的互操作性体系结构有许多设计原则[10]:
不透明账本原则:必须假设每个区块链系统的内部账本和其他资源对外部实体不透明(隐藏)。要使外部实体可以访问的任何资源都必须通过其具有适当授权的网关显式访问。
这个原理类似于IP网络中的自治系统原理[5],其中本地子网中的内部路由对其他外部自治系统不可见。遵守这一原则导致网关到网关协议的设计不依赖于特定区块链系统特有的内部构造。
价值外部化原则:实现跨区块链资产移动的网关到网关协议必须不知道(忽略)被移动虚拟资产的经济或货币价值。
这一原则类似于互联网体系结构中的端到端原则[15],其中通信方的上下文信息被放置在通信实例的端点。因特网的内部路由结构不知道每个数据报属于哪个应用程序。这一原则允许网关协议设计为效率、速度和可靠性—独立于虚拟资产感知经济价值的变化。在虚拟资产移动的情况下,假设各区块链系统的发起人和受益人就资产的经济价值达成了共同协议。
假设区块链系统内的资源(如账本、密钥、共识协议、智能合约等)对外部实体不透明,以便允许不依赖于特定区块链系统内部构造的弹性和可伸缩的协议设计。这确保了网关之间的虚拟资产移动协议不受这些内部技术构造的限制或依赖。网关在两个方向上交互,即面向出站或外部的其他对等网关和面向入站的区块链系统。因此,网关的作用也是掩盖(隐藏)它所代表的区块链系统内部结构的复杂性。总的来说,这种方法确保给定的区块链系统作为一个真正的自治系统运行。
不透明账本/资源原则的要点是在最严格的条件下设计跨区块链资产移动协议,即两个区块链都是私有的,并且它们的账本、密钥、数据结构和智能合约(即它们的内部资源)彼此不可访问,以便相同的协议也可以在不太严格的情况下使用。因此,两个私有区块链之间的交互只能通过各自的网关和网关实现的接口(即标准化API)实现。这种想法是,如果一个资产移动协议(即网关协议)能够在两个私有区块链系统之间安全高效地运行(互不可见对方的账本/资源),那么当一个或两个区块链都是公共/无权限的时,该协议也会运行。
3.4 区块链网关协议:理想的原子性
从状态(分类帐)一致性的角度来看,区块链网关协议有许多理想的属性[16]:
原子性:资产移动必须完成承诺或完全失败(失败意味着原始区块链中的资产所有权没有变化)。
一致性:资产移动(成功或失败)必须始终保持两个区块链系统处于一致状态,其中所涉及的资产仅位于一个区块链中。协议失效不得导致资产“双重存在”(导致两个区块链系统分别出现双重支出)。
隔离:当资产发生移动时,不能修改资产所有权。也就是说,必须使用某种来源区块链资产的临时禁用(例如锁定分类账、托管到网关等)。这是为了防止所有者(请求跨链资产移动的所有者)在执行网关协议时在本地重复使用资产。
持久性:一旦在源区块链和目标区块链上成功承诺了资产移动,无论后续网关崩溃,该承诺必须保持真实。
无论是一个还是两个区块链系统都是正确的,私人(许可)或公共(无许可)这些属性都必须成立。
3.5 区块链网关协议:理想的安全特性
从安全性和不可否认性的角度来看,区块链网关协议有许多要求:
标识和身份验证:区块链网关必须能够使用相关的网关标识密钥、信任锚和其他实体标识符方案相互标识和身份验证。这意味着用于与其他对等网关进行外部交互的网关标识密钥对必须不同于其内部用于其分类帐的事务交易签名密钥对。
保密和隐私的安全通道:区块链网关之间的所有通信必须通过安全通道执行,使用标准的安全通道建立协议(例如IPsec[17–19],SSL/TLS[20,21])。
资产移动的不可否认性:区块链网关之间交换的消息的相关部分必须使用网关标识密钥对进行数字签名,以便整个协议交换产生关于资产移动的不可否认性证据。网关必须保存这些消息的日志,以便在将来发生法律纠纷或相关监管机构进行查询时,可以重建完整的流。
崩溃后恢复到安全状态:在资产移动过程中,一个网关(或两者)的崩溃不得导致与资产或实体信息(如发起人和受益人身份)有关的信息丢失或泄漏。网关恢复机制必须始终将网关置于安全状态。
我们将在第5.2节中讨论网关标识和密钥。
4 单向网关协议的原子性
如今,在公共(无许可)区块链中的“原子交换”领域有相当大的研究兴趣(例如,见[22–26])。然而,目前在解决各种基础设施构建区块(消息、数据格式和流)的标准化以支持允许“交换”发生的区块链之间的互操作性方面,努力很少。
在本节中,我们将讨论一个基本的区块链网关协议,该协议支持虚拟资产在各个端点的网关节点的帮助下从源区块链到目标区块链的单向移动。我们将单向移动作为一个构建块来关注,理解到它应该可以用于实现双向条件交换,同时满足一般原子性要求(第3.4节)和安全性要求(第3.5节)。作为一个公共构建块,网关协议必须在一个或两个区块链都是私有(许可)系统的情况下可操作。对于两个网关之间的提交建立,我们使用经典的两阶段提交范式(2PC或3PC)[27–29],这是一个被广泛理解和部署的范式(例如在分布式数据库系统中)。
在高层次上,网关协议用于将资产的数字表示从一个区块链系统移动到另一个区块链系统,目的是保持各个区块链账本的一致性。因此,网关节点必须在两个方向上进行交互:(A)面向内部网关必须执行相关任务,以确保其账本中状态的一致性;(b)面向外部网关必须与对等远程网关进行交互,以获得有关虚拟资产移动的协议。
在下面,我们将网关协议分为三(3)个阶段[10,16],并讨论每个阶段需要执行的任务。第一阶段由区块链B1中的发起人(Alice)触发,该发起人试图将资产转移到B2中的受益人(Bob)(见图3)。假设每个网关都保留一个持久日志,记录它接收或传输到对等网关的所有消息。这允许网关从崩溃中恢复,并使用日志中的信息重新启动网关协议。
4.1 第一阶段:身份验证、资产确认和参数交换
第一阶段的主要目的是验证与要移动的资产有关的各种信息、发起人和受益人的身份、拥有和操作网关的实体(VASP)的身份和法律地位、网关的身份以及建立安全网关所需的会话参数交换G1和G2之间的通道。
该阶段首先假设网关G1已在区块链B1中被选中(当选),并且网关G2已在区块链B2中被识别。以下是此阶段需要执行的各种检查的摘要:
G1和G2之间的安全通道建立:这包括网关设备标识的相互验证和安全通道建立相关参数的交换。在需要设备认证[30–32]的情况下,在进入下一阶段之前,必须在G1和G2之间执行相互认证协议。
验证网关所有权:网关G1和G2必须有一种方法来验证其各自的所有权(即VASP1分别拥有G1和VASP2拥有G2)。所有权验证机制的示例包括网关设备X.509证书到VASP实体证书的链接、网关和VASP的目录以及其他方法。
所有者合法状态验证:网关G1和G2必须有一种方法来验证拥有网关的VASP的合法状态。在某些司法管辖区,受监管的VASP仅与其他受类似监管的VASP进行交易可能会受到限制[33]。用于验证VASP法律状态的机制示例包括LEI编号[34]、VASP目录[35]、VASP的扩展验证(EV)X.509证书[36、37]和其他。
识别和验证正确的资产配置文件:网关G1和G2必须有一种方法来识别和引用要移动的虚拟资产的定义。我们使用术语资产概况[38]来指代这一定义。某些司法管辖区可能会限制某些类型虚拟资产的移动,因此G1和G2必须引用同一资产定义。
路由规则信息交换:在执行有关发起人和受益人信息的路由规则政策的司法管辖区,网关G1和G2必须交换此信息[2]。
协商资产移动协议参数:网关G1和G2必须就资产移动协议中使用的参数达成一致。示例包括资源的端点定义、承诺流的类型(例如2PC或3PC)、每个分类帐中的锁定持续时间以及其他[39]。一个重要参数是每个相应区块链网络内交易的平均预期确认时间(例如分类账L1中的时间