探讨跨链资产转移中的区块链网关、网桥和授权哈希锁
面对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中的时间?1,分类账L2中的时间?2,以及网关协议的时间?3,如图2所示)。
4.2 第2阶段:资产锁定或托管的证据
在此阶段,网关G1必须向网关G2提供足够的证据,证明区块链B1上的资产在分类账L1上的G1的控制下处于锁定状态(或托管),并且不会受到其当前所有者(发起人)的双花。此证据的目的是为了解决G1和G2(即分别拥有和经营G1和G2的实体)之间的争议,以防后来发现双花。此外,此阶段用于为发生实际承诺的第三阶段准备两个网关。
此阶段有几个一般步骤(见图3):
源区块链中的资产锁定:所讨论的资产必须被锁定(或托管)到网关G1,并且在区块链B1中由G1独占控制。如图3中的步骤2所示。
锁定资产的机制取决于区块链的特定架构。例如,可以使用被动事务创建锁,其中网关G1在分类帐上发布一个事务,该事务向其他节点(例如,挖掘或锻造节点)发出信号,以延迟同一资产上的其他未决事务,直到锁定的持续时间结束。我们将在第5.1节中对此进行进一步讨论。机制的其他示例包括发端人(Alice)到网关G1的直接托管(即到区块链B1上G1的公钥)。
交付签名锁证据:网关G1–在区块链B1中对资产拥有专断的锁定–必须向网关G2交付签名证据,表明资产已锁定到G1。必须使用网关标识密钥对对证据进行签名,该密钥对是目标网关G2已知的,也可能是其他全局实体已知的。如图3中的步骤3所示。
证据的形式取决于源区块链中使用的锁的机制,但应包括:(i)已确认锁定(托管)的分类账L1上的交易/区块编号;(ii)区块头的哈希(假设标头中包含Merkle树哈希);(iii)发端人的公钥哈希,以及受益人;(iv)网关G1的区块链公钥散列;(v)时间戳;以及其他。目标区块链上的网关G2可以选择被动地将收到的证据记录在其本地分类账L2上(如图3中的步骤4所示)。
收到证据的确认:网关G2必须返回一个签名消息,确认在上一步中收到了证据(图3中的步骤5)。本确认书的目的是在G2不诚实的情况下为网关G1提供开脱罪责的证据(封面)。因此,该消息携带先前锁定证明消息的散列(在步骤3中),并且必须使用G2的网关标识密钥对对其进行签名。
4.3 第3阶段:资产流动的最终承诺
第三阶段的目标是在网关G1和G2之间建立交易承诺,即它们将各自执行完成资产从区块链B1到区块链B2的单向移动所需的相关任务。这里的承诺一词是在经典的2PC模型[27,28]的意义上使用的,在这个模型中,双方都执行持久的行动——遵循原子性属性(第3.4节)。在只追加分类账/append-only ledgers的情况下,G1和G2将把2PC(3PC)承诺的结果记录在各自的本地分类账L1和L2中。
此阶段有几个步骤(见图3):
提交准备和确认:遵循2PC(3PC)模型,网关G1在2PC提交上下文中充当协调器。这意味着G1的任务是确保其他网关(在本例中为G2)已准备好在其分类帐L2上执行提交。这在图3中表示为步骤6和步骤7。
分类账L1中锁定或托管的最终确定:由于资产移动源自区块链B1–网关G1是承诺协调员–锁定(托管)的最终确定必须首先在分类账L1上进行。这意味着在步骤8中,网关G1必须在分类账L1上记录资产已在网关G2的协助下移动到区块链B2中分类账L2上的受益人地址(公钥)。我们将在第5节中进一步讨论被动事务和escrow。
交付最终锁定/托管的证据:一旦锁定(托管)定案记录(确认)在分类账L1上,网关G1必须将L1上已确认的锁定/托管的证据交付给网关G2。
由于账本不透明的假设(见第3.3节),网关G2对账本L1的不可见性,因此必须完全信任网关G1的签名断言,即锁(托管)终结已在L1上确认。在步骤9中从G1传递到G2的签名断言必须包含在上一步骤8的分类帐L1上确认的全部信息(数据)–即使网关G2无法验证信息的真实性。这样做的目的是在G1网关作弊并且发生资产双花的情况下,为G2网关(及其所有者/运营商VASP2)提供开脱罪责的法律证据。
分类账L2中资产再生:基于步骤9中交付的G1的签名断言,网关G2对区块链B2中分类账L2上的资产再生执行。L2上记录的信息必须包括G2收到的签名信息/数据(或哈希值),以保护G2(即作为免责证明)免受不诚实的G1或不诚实的受益人的伤害。如图3中的步骤10所示。
根据分类账L2的数据结构(即块结构),网关G2可能必须将签名断言中的数据映射到L2上使用的格式。如果L2上的块大小不能容纳来自G1的完整断言数据(来自上一步),那么应该使用断言的哈希值来代替–完整签名的断言将在受保护的存储中进行链外存储。
报告资产再生承诺(确认最终):一旦在分类账L2上确认资产再生交易,网关G2可以选择向网关G1报告新的区块/交易详细信息(在L2上)。如图3中的步骤11所示。
这一步骤并非严格意义上的2PC模型的一部分,但在跨私有(许可)区块链的资产流动的背景下,它提供了一种从法律角度(如法律审计)跟踪未来资产流动的方法。
新资产位置的本地记录:假设网关G2向G1提供资产新位置的报告(即L2上的新区块/交易详细信息),网关G1可以将此数据记录在分类账L1上。
5 讨论
虚拟资产在区块链网络之间的移动是一个复杂的问题,因为它跨越三(3)个“层面” ,这些“层面”根据当前社会经济惯例和特定领域的法律/治理规则(规定)共同提供虚拟资产经济价值来解释世界。我们将这三个层面称为:(i)技术(技术协议)层面,(ii)价值层面(即经济或金融价值)(iii)法律和治理管辖权层面(见图4)。
在下文中,我们将讨论与上述区块链网关体系结构和网关协议相关的各个方面和挑战。
5.1 资产的消灭/销毁和铸造再生:锁Locks &和Escrows
如前面第3.2节所述,在技术层面(协议层),所提出的区块链网关体系结构实现了资产销毁消灭和铸造再生的概念。因此,在区块链协议层,我们定义如下:
虚拟资产的单向跨区块链移动包括源区块链账本中的资产表示销毁消失,以及目标区块链账本中的资产表示铸造再生,作为原子操作进行。
通过对网关节点的思考,有几种技术手段可以实现分布式账本上虚拟资产的“消灭”和“再生”的概念。这两个操作必须以原子方式执行,从而使两个分类帐的数据保持一致。
原子性相关要求(第3.4节)要求在源区块链上对相关资产使用临时“锁”,以临时禁用该资产并防止重复支出/双花。
这就引出了一个问题,即如何在分类账上使用“锁”,根据定义,分类账是只附加/append-only 的数据结构[13,14]。临时锁的分类帐记录必须由源区块链中的网关G1传送到目标区块链中的网关G2,作为资产已开始原子移动的证据。
资产临时锁定或停用的两种可能机制如下:
有条件的托管交易:区块链上资产的托管交易根据某些条件将资产的所有权从其当前所有者更改为受信任的第三方。托管的时间安排可以是分配一段时间,在这段时间内必须满足条件。在跨区块链资产移动的文中,该条件与网关G1和G2通过执行网关协议而介导的原子承诺有关。如果网关协议在设定的时间期限内完成,则托管完成,资产恢复所有权。如果网关协议未能在时间????内结束,则资产将还原回发起人。
实现escrows的精确方法取决于区块链采用的协议(例如哈希锁、时间锁、多西格、智能合约等的组合)和分类账上的资产表示(例如可fungible/替换、non-fungible/不可替换)。然而,不管是哪种确切的机制,托管必须在分类账上确认,因此所有有权访问分类账的实体都可以看到。
被动阻止和禁用事务:被动阻止事务(针对资产)是指在分类账上引用资产的一种事务,目的是临时阻止或推迟其他节点/事务对同一资产的其他操作。被动阻止交易包含一个持续时间,一旦交易在分类账上得到确认,该持续时间即开始计算。它不会更改资产的所有权(即最近与资产关联的公钥)。
被动阻止事务可以超时(即阻止不再有效),也可以由匹配的被动禁用事务使阻止事务的效果永久化。一旦禁用交易在分类账上得到确认,相关资产就不再被视为在区块链上处于活动状态。
这两种机制都提供了一种临时“锁定”资产的方法,并提供了使锁定在分类账上永久化的后续选项(即通过使资产从此无法访问而使其失效)。此外,在这两种方法中,有证据表明这些行为永久地记录(附加)在分类账上。举例来说,网关协议的第2阶段(第4.2节和图3)在L1上使用了一对“锁”。在步骤2中,网关G1发布了一个临时资产禁用,随后在图3的步骤8中完成。如果匹配的步骤8从未关闭步骤2(例如,由于网关崩溃),则锁定效果将超时,并将被其他节点忽略。
与源区块链上的资产禁用对称,同一资产必须通过两个基本步骤引入目标区块链,即网关G2执行的通知步骤和终结步骤。通知步骤“宣布即将到来”的资产将被分配到目标区块链分类账L2上的受益人地址(公钥)。此通知事务是被动的,因为它充当要在分类帐L2上重新记录的日志条目。它不是将资产的所有权转让给受益人。理想情况下,G2发布的被动通知事务应包括网关G1向G2传递的锁定/禁用信息、相关时间戳和受益人的地址(公钥)。
为了使资产在区块链B2中完全再生,G2必须发布最终交易,在分类账L2上正式记录资产对受益人公钥的所有权转让。定案交易必须包括相关信息,包括分类账L2上确认的先前通知交易的散列信息,作为参考相关特定资产变动的手段。继续上面的说明,被动通知事务显示为网关协议中的步骤4(第4.2节和图3)。终结事务在网关协议中显示为步骤10(第4.3节和图3)。如果步骤4从未被匹配的步骤10关闭(例如,因为网关崩溃),那么公告事务将超时并在此后被忽略。
5.2 区块链网关标识、签名密钥和证书
在联合执行网关协议(第4节)时,网关G1和G2必须对协议中的消息执行多个数字签名。这些数字签名表示网关所有者按照规定的协议执行资产移动的承诺。在网关所有者之间发生争议的情况下(可能涉及发起人和受益人),签名变得至关重要。因此,需要有机制以加密方式将网关的公钥与其所有者(VASP)的身份绑定,从而使网关执行的数字签名[40]对其所有者具有法律约束力。图4提供了实体标识的高级说明,我们在图5中对此进行了扩展。
我们定义了至少四(4)种与网关及其所有者相关联的公私密钥对(图5):
VASP身份密钥对:VASP(虚拟资产服务提供商)使用此公钥-私钥对与作为法律实体的VASP身份的其他实体进行交互(链外)。如图5(a)所示。在区块链系统上签署交易时,VASP应使用不同的密钥对。VASP标识公钥可以在扩展验证(EV)X.509证书中表示(有关VASP的EV证书的讨论,请参见[36,37])。
网关标识密钥对:网关在与对等远程网关(即面向出站)交互时使用此公私密钥对。其中,它用于与对等网关建立安全通道,并对两个网关之间交换的各种协议消息进行签名。如图5(b)所示。
理想情况下,网关标识公钥应在标准X.509证书中表示,附加字段包含VASP标识公钥的哈希(或VASP标识证书的哈希)或序列号VASP标识证书。网关X.509证书应在VASP X.509标识证书下颁发。此证书链接或链接表示VASP对网关的所有权。
网关交易签名密钥对:该公私密钥对被网关用作其内部账本上签名交易。根据区块链的要求,公钥可以在绑定到VASP身份证书的X.509证书中表示。如图5(c)所示。
网关设备证明密钥对:此公钥-私钥对是网关用于签署与网关实现基础硬件/软件堆栈[42]相关的证明证据[41]的设备级密钥对(有关区块链网络内节点证明的讨论,请参阅[31])。理想情况下,密钥对应该绑定到网关的硬件上,使得攻击者很难(不经济地)物理删除、导出或替换私钥。一些行业组织已经开发了硬件绑定密钥的解决方案[43–46]。如图5(d)所示。
5.3 VASP和网关的证书层次结构
当网关打开与另一个区块链系统中的对等远程网关的连接时,各个网关的一个直接要求是验证网关设备的合法所有权(即哪个VASP拥有网关)和验证VASP的合法状态(见第4.1节)。根据FATF的定义[2,47],我们将通用术语“VASP”用于网关的所有者和经营者。
一种可能的解决方案是网关采用X.509数字证书[48,49],并且证书作为TLS握手/TLS handshake的一部分进行交换[20,50]。这种交换X.509证书的方法是自2000年中期以来互联网在线商务行业的常见做法。CA/浏览器(CAB)论坛还定义了扩展验证(EV)字段,其中包含主题(即企业实体)的业务相关信息[51]。VASP目前也采用了类似的EV证书方法,其中VASP业务信息(如商业登记、法定地址、LEI号等)被添加为X.509证书中的EV字段[36,37]。
在网关身份公钥的情况下,我们认为需要一个证书层次结构,它可以将网关X.509身份证书与所有者的X.509 EV身份证书相关联或绑定,并允许任何实体快速执行这些证书的“链验证”(证书链上)。这种设备/运营商组合的证书层次结构并不新鲜,电缆调制解调器行业已经部署了二十多年,现在由名为Cable Laboratories(Cable Labs)的行业联盟管理[52,53]。开发此解决方案是为了允许DOCSIS1.2[54](或更高版本)电缆调制解调器设备与其由区域电缆提供商/运营商公司拥有的前端设备(电缆调制解调器终端服务或CMT)执行相互认证。WiFi和无线LAN设备的类似方法见[55,56]。
图6提供了一个潜在的证书层次结构的示例,它植根于一个行业联盟。证书层次结构的一个目的是允许任何VASP相关证书(在层次结构下颁发)的接收者能够快速验证证书,同时保证VASP的法律地位已由财团验证[37]。另一个目的是允许VASP自由地颁发一些相关的证书,例如网关身份证书(用于其网关)和客户签名密钥证书(用于其密钥由VASP托管的客户)。
对VASP证书和网关证书的深入讨论超出了当前工作的范围,将在未来的工作中处理。
5.4 区块链网关崩溃恢复
使用网关的一个重要问题是,由于崩溃或其他可用性问题,网关可能不可用。为了预测网关崩溃,崩溃恢复方案或策略应该是网关设计的一部分。该设计还应通过网关所针对的区块链体系结构(即向内)进行通知。崩溃恢复方案的总体目标是保持理想的原子性(第3.4节)和安全性(第3.5节)。如前所述,网关必须保留其在执行资产移动协议(例如ODAP协议[39])时从对等网关接收(并发送到)的所有消息的持久日志。
崩溃恢复需要考虑相关的几个方面:
网关恢复的选择:需要一种机制来确定恢复网关,该网关将重新启用远程对等网关以完成网关协议(资产移动)会话。有几种方法或策略可以采用。一种方法可以是自愈,这意味着同一网关设备恢复(例如重新启动)并从日志中最后一个可能的检查点拾取会话。另一种方法是使用主备份网关,检测主网关的崩溃并接管网关协议的重新启动[57]。另一种策略可以是选择恢复网关,例如通过使用一致性算法本身。
事件日志的可靠存储和对日志的访问:需要有存储设施来存储从对等网关接收(发送到)的消息的日志,以便整个序列可以重构到崩溃发生的时点。关于区块链网络中网关存储日志,有几种可能的方法。这包括(i)将日志数据放在主分类账上(即交易分类账),(ii)将日志数据链外存储,并将每个分录散列到主分类账上(出于数据完整性目的),(iii)在区块链网络内建立专门的“元数据”分类账,仅用于记录日志数据,以及其他方法。
一个关键的要求是日志条目可以被恢复网关访问(即可读)。应该定义写入(读取)日志的标准化API,其中日志机制(在API后面)的实现可以是本地构造[58]。
安全通道重建:恢复网关必须与其对等远程网关建立安全通道,才能完成网关协议(资产移动)会话。如果恢复网关是与原始主网关(即自愈节点)相同的设备,则根据安全通道协议(如TLS、IPsec等)及其配置,恢复网关可能能够恢复安全通道(即TLS会话恢复)。但是,如果恢复网关与原始网关是不同的设备,则必须使用远程对等网关创建新的安全通道。
5.5 区块链网关可发现性
网关G1(前置区块链B1)发现其对等网关G2(前置区块链B2)的能力与虚拟资产行业中VASP发现的当前基本挑战密切相关[37]。
更广泛地说,发起人和受益人的可发现性问题与旅行规则合规性/Travel Rule compliance perspective的角度有关[59],因为发起人VASP必须在向受益人传输资产之前获取并验证受益人的个人数据和受益人VASP的法律地位。自1996年《银行保密法》(BSA-31 USC 5311-5330)以来,遵守资金旅行规则一直是银行业和代理银行的规范。VASP(如加密交易所)不仅需要遵守旅行规则,还需要证明对私钥的控制[60],这是控制区块链网络上虚拟资产的手段。因此,VASP的可发现性及其法律地位使得网关节点的合法所有权(以及对网关的控制)的问题可以在前面图4中总结的资产移动范例的所有三个平面上得到更简洁的回答。
下面是与全球范围的网关可发现性问题相关的一些挑战和要求的简短列表。为了让网关G1发现正确的网关G2(及其协议端点),我们假设执行资产移动的决定(从B1中的发起人到B2中的受益人)是在价值平面上做出的。
网关设备的持久全局标识符:为了让一个网关发现另一个网关,每个网关设备必须具有(被分配)一个全局唯一的持久标识符,该标识符在崩溃和重新启动后仍然有效。网关标识符必须独立于网关设备的网络寻址机制(即IP地址),因为网络层地址可能会改变。它还必须独立于身份公钥/私钥对,因为这些密钥可能会随着时间的推移而被替换(例如,正在存档的老化密钥)。网关标识符最初可以通过加密方式从其密钥中派生(例如,见[61]),但其使用不得依赖于密钥的存在。从监管审计的角度来看,还需要标识符的持久性,其中过去的日志可能涉及网关标识符和网关所有者,即使网关可能不再可操作(例如,死硬件)。
可以采用几种持久标识符分配范式,例如DOI[62]、KERI[63]和硬件派生标识符(例如,派生自TPM硬件的EK公钥[43,64]、派生自硬件密钥“锁存器”[65,66]等)。
网关标识符与网络层地址的绑定:需要一种机制将持久网关标识符与网关的网络层地址(即IP地址)绑定。
示例机制包括使用DNS/DNSSEC记录[67–69]、处理系统记录[70–72]、DID数据结构[73]、X.509证书等。诸如[37]的VASP目录建议之类的方法可以被扩充,以包括生态系统中每个VASP拥有的网关的标识符。
解析器服务:对应于网关标识符和网络层地址之间的绑定,需要有匹配的解析器服务,可以从网关标识符“映射”到其当前IP地址。解析程序服务的示例包括DNS/DNSSEC[67–69]、Handle system[72]和其他服务。
6 更长远的构想
在本节中,我们将讨论与区块链网关、网关体系结构的潜在变化以及外部构造(如见证区块链/witness blockchains)的使用相关的许多主题,以便为第3节中定义的基本网关模型提供更大的灵活性。
6.1 第三方见证人区块链
有几位作者指出了公共见证人区块链的好处,该区块链纯粹是一个附加的区块链,可以携带任何固定长度的数据,任何人都可以“写入”(例如,参见[23,74,75])。事实上,这个想法可以追溯到Haber 和 Stornetta在1991年提出的初级哈希链模型的目的[13,14],其中包括在当地报纸上定期印刷哈希树的根(例如十六进制字符串)。因此,这种见证区块链的主要目的是作为一种分散的公证服务,其中带有时间戳的对可以记录在仅附加的公共分类账上。
在两个网关G1和G2之间联合执行的网关协议的上下文中,这种公共见证人区块链可以以几种方式使用:
网关协议消息的摘要日志:见证人区块链可用于存储作为网关协议一部分在G1和G2之间交换的消息的散列(参见第4.2节和第4.3节)。在G1和G2(即其所有者分别为VASP1和VASP2)之间发生未来争议的情况下,见证人区块链成为经过公证的证据存储。
移动资产的转发地址:在[1]中提出了转发地址的概念,作为协助搜索某些类型虚拟资产的“当前家”的一种手段。在区块链B1和B2都是私有/许可的情况下,以及在资产是不可替代资产的情况下(例如,房地产所有权、商品所有权证书等)[76,77],这一点尤为重要。
因此,查看图3,第3阶段的最后一步(步骤12)是将资产在区块链B2的新位置记录到分类账L1。这里,网关G1(或G2)还可以将来自步骤12的信息的子集记录到公共见证人区块链上。除其他外,该信息可以包括:(i)资产类型标识符,(ii)资产的数字表示的散列(例如不可替换),(iii)受益人公钥的散列,以及(iv)区块链系统标识符(例如B2)。
这允许外部查询者将来对B1处资产所有权的查询重定向到见证区块链,查询者将发现资产的最新位置(现在在B2处)。
6.2 专用区块链网络的桥梁
我们将区块链网桥定义为私有区块链网络中的部分网关,在用户(例如发起人)发起的跨链资产移动的上下文中,该网关被授权在用户(例如发起人)的授权下公开(导出)其内部分类账中的数个数据元素。因此,桥节点仅提供信息管道功能,而不是完全网关意义上的事务功能。与完整网关不同,网桥节点只能从其内部账本中读取(而不能写入)。
在跨区块链资产移动的上下文中,发起人(Alice)可以利用桥接节点向外部实体(例如受益人Bob)提供关于发起人对给定资产的所有权的证据,而不允许受益人访问私有分类账。在网关协议的第一阶段(第4.1节)开始之前,可能需要此类证据。由于发起人(例如用户)可能被私有区块链(例如联合体)的治理禁止与外部实体共享分类账数据,因此桥接构造是实现与指定外部实体(例如受益人)授权共享分类账中修订交易数据的一种方法。导出的分类帐数据的位置应该由私有区块链的治理部门预先批准,并且可以包括公共见证人区块链(第6.1节)。可以使用多种机制来选择网桥节点,包括共识协议实例。
以准备从Alice(发起人)到Bob(受益人)的跨区块链资产移动为例,区块链网桥节点的一些任务如下:
交易数据编校:网桥节点必须删除某些信息字段,这些信息字段可能会披露与当前跨区块链资产移动无关的其他内部实体的信息。
例如,如果分类账L1上过去的事务历史记录指示上一次本地资产移动是从Charlie的公钥到Alice的公钥(表示Alice现在是资产的当前持有者),那么网桥节点必须从它将导出的信息中编辑(删除)Charlie的公钥。这是因为Charlie的公钥与当前从区块链B1中的Alice到区块链B2中的Bob的跨区块链资产移动无关。
如果区块链B1中的本地分类账L1使用数据加密技术(例如,零知识证明方案[78]或加密的私有通道[79])进行保护,则网桥节点必须首先解密相关的块/事务,然后再对其进行编校(假设其具有解密这些块/事务的能力和密钥)。
导出数据加密:为了保护被导出信息的隐私(如Alice In blockchain B1是当前资产所有者的事实),网桥节点可以在导出到公共见证人区块链之前对数据进行加密。
例如,导出的数据可以在见证人区块链上加密为受益人的公钥,只允许受益人查看数据。
保留授权令牌:区块链网桥节点(即VASP)的所有者必须受到保护,以防将来来自不诚实的发起人的争议(例如Alice拒绝授权导出她的分类帐数据)。因此,区块链网桥节点还必须保留和归档发起方用于授权网桥节点的授权令牌(例如OAuth2.0令牌[80,81])。
网桥节点导出账本数据的用户授权和同意的话题超出了当前工作的范围,将在以后的工作中处理。
6.3 网关和授权委托哈希锁
网关可以实现的一个潜在功能是在网关可以访问的第三方远程区块链(图8中表示为B4)处访问哈希时间锁契约(Hash Time Lock Contracts,HTLC)——通常称为“哈希锁”[26]智能合约。这种方法对于涉及可替代1资产的案例可能有用,在这种情况下,跨区块链移动涉及到在远程区块链B4同时发生的共同面值的价值交换(例如,法币支持的stablecoin)。散列锁[26]定义为ℎ=?(?),其中?是强加密散列函数,而?是在持续时间?ℎ内解锁它的密钥。哈希锁可以在强制超时的区块链系统上使用智能合约实现。
向网关协议添加远程哈希锁的过程如图8所示,其中哈希锁智能合约HL4假设位于“远程”区块链B4。散列锁构造假定位于B4,因为根据不透明账本原则(第3.3节),区块链B1和B2对外部不可访问。因此,即使B1具有实现哈希锁的智能合约功能,它也只能由B1中的实体读取(即可以调用)(对于区块链B2,反之亦然)。我们将这种远程散列锁称为“授权委托”散列锁,因为它本质上是发起者(Alice)对网关G1的所有者(即VASP实体V1)的委托授权,以使G1调用B4上的智能合约散列锁。假设具有分类帐L4的区块链B4可被G1和G2读取/写入,G1和G2分别在VASP实体V1和V2的控制下运行。
在协助可替代资产从一个私有区块链转移到另一个私有区块链时,授权委托哈希锁可能发挥重要作用。在图8的示例中,区块链B4可以实现VASP V1(网关G1的所有者)和VASP V2(网关G2的所有者)可以接受的稳定币(或CBDC)。G1和G2在枝术层面上联合执行网关协议(将可替代资产表示从区块链B1移动到B2)必须与价值层面上的价值转移同时进行。因此,看看图8,事实上有两个平行的流动发生(一个流动在技术平面上,一个流动在价值平面上)。因此,网关的作用是将这两个流相互链接或“联合”,以便在两个平面上实现一致性。这两个单向流必须同步,以便在两个分类账中实现一致性,而不造成任何价值损失(除了某些交易费用)。因此,稳定和共同价值面额的需要不仅在我们目前的单向资产流动的情况下至关重要,而且也是双向原子交换和交易概念的核心[74],在整个交换过程中,中介面额必须保持不变(不波动)[82]。这就是为什么比特币加密货币[83–85]不能成为原子交换的中介货币。以太坊平台[88]中的以太[86,87]也存在类似的限制。
基本思想是G1使用哈希锁HL4作为手段,以确保网关G2(即VASP V2)在网关G2在区块链B2处重新生成资产表示之前,以B4中稳定币/stablecoins的形式获得支付。使用哈希锁HL4,网关G1将稳定币连接数锁定到区块链B4内G2的地址。如图8中的步骤(a)所示。金额?是Alice在B1中的可替代资产在区块链B2转移给Bob的等值。如果网关G2未能在时间?ℎ过期之前在B2(Bob可见)重新生成资产表示,则B4中的稳定币/stablecoins将恢复为G1(即VASP V1)。
在网关协议的联合执行过程中(参见图3),网关G1必须向网关G2指示在远程区块链B4处已经为G2搁置了stablecoins(哈希锁定)。此消息可以包含在图3的第2阶段的步骤3(托管证据)中,这将激励G2完成网关协议的执行。由于G2可以访问区块链B4上的分类帐L4,因此它可以看到(读取)完整的智能合约HL4以及这样一个事实,即HL4的一个实例已被G1调用,稳定币指向G2(在输入机密?后发布)。
在网关协议执行的第3阶段即将结束时,网关G1将机密?传递给网关G2,以允许网关G2(VASP V2)在区块链B4处接收stablecoins。如图8中的步骤(b)和步骤(c)所示。在B4接收到stablecoins后,网关G2发出(重新生成)ledger L2上的虚拟资产,分配给B2处Bob的公钥。这个秘密?的发布可以合并到网关协议中,例如在图3的步骤9(commit final)中。这允许G2在图3的步骤10中重新生成ledgerl2中的资产。
需要注意的是,尽管通过远程区块链B4的哈希锁收到了?单位的stablecoins付款,但VASP V2(网关G2)始终有可能不诚实,并故意未能在区块链B2的分类账L2中重新生成虚拟资产。在这种情况下,网关G1可以利用以下事实来反驳这种不诚实的行为:(a)网关G2在图3的第2阶段的步骤7中发出了签名的prepare commit消息,以及(b)区块链B4中的分类帐L4上的证据,即网关G2已经收到了数量为?的stablecoins的支付。
7 结论
如果区块链技术要成为未来全球虚拟资产行业的基础设施,那么目前新兴的行业就需要开始应对围绕区块链互操作性的挑战。目前,我们已经讨论了区块链网关的必要性,作为实现不同区块链网络互操作性的一种手段,并支持虚拟资产的跨区块链移动。
互操作性的一个关键组成部分是基于标准化API和网关协议为网关节点设计良好的体系结构,这些节点将各种区块链网络互连。我们讨论了网关的一些设计原则,特别是在源区块链和目标区块链都是私有/许可的严格条件下。
另一个关键因素是标准网关到网关协议,它实现了虚拟资产从一个区块链到另一个区块链的移动,满足了经典的ACID属性(原子性、一致性、隔离性和持久性)。我们将讨论一个网关协议的例子,该协议遵循经典的两阶段提交范式,用于资产的单向移动。单向协议可用作构建块,以实现跨两个私有区块链系统的“原子交换”。
最后,我们讨论了网关部署的几个方面,包括网关标识和证书、网关崩溃恢复以及网关在全球范围内的可发现性问题。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场