在区块链系统中使用域名方案进行跨链交互的制作方法

文档序号:18745686发布日期:2019-09-21 02:18阅读:147来源:国知局
在区块链系统中使用域名方案进行跨链交互的制作方法

分布式账本(DLS),还可被称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例(例如,加密货币)的情况下,DLS通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用DLS,并参与共识处理。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并包括访问控制层。

区块链用于加密货币网络,加密货币网络使得参与者能够利用加密货币进行买卖商品的交易和/或服务。常见的加密货币包括比特币。在加密货币网络中,记账模型用于记录用户之间的交易。示例性记账模型包括未花费的交易输出(UTXO)模型和账户模型(也称为基于账户的模型或账户/余额模型)。



技术实现要素:

本公开的实施方式包括计算机实现的用于区块链系统的域名方案的方法。更具体地,本公开的实施方式涉及用于在区块链系统中使用统一域名方案进行跨链交互。

在一些实施方式中,动作包括:由在所述统一区块链网络中与第一区块链实例和第二区块链实例通信地链接的所述中继识别第一区块链实例的区块链域名,其中,所述第一区块链实例的区块链域名是所述第一区块链实例的唯一标识,且唯一地对应于所述统一区块链网络中的所述第一区块链实例的链标识;识别所述第二区块链的区块链域名,其中,所述第二区块链实例的区块链域名是所述第二区块链实例的唯一标识,且唯一地对应于所述统一区块链网络中的所述第二区块链实例的链标识;从所述第一区块链实例的节点接收对访问所述第二区块链实例的访问请求,其中,所述访问请求包括所述第二区块链实例的区块链域名;基于所述第二区块链实例的区块链域名识别所述第二区块链实例的链标识,其中,所述第二区块链实例的链标识指示所述第二区块链实例的区块链网络配置;以及基于由所述第二区块链实例的链标识指示的所述区块链网络配置,为所述第一区块链实例提供对所述第二区块链实例的访问。

其他实施方式包括被构造为执行在计算机存储设备上编码的方法的动作的相应系统、装置和计算机程序。

这些和其他实施方式可以各自可选地包括以下特征中的一个或多个:

第一特征,可与以下任意特征组合,其中,识别所述第一区块链实例的区块链域名包括,使用所述第一区块链实例的区块链域名作为所述第一区块链实例的本地标识;并且其中,识别所述第二区块链实例的区块链域名包括,使用所述第二区块链实例的区块链域名作为所述第二区块链实例的本地标识。

第二特征,可与以下任意特征组合,基于所述第二区块链实例的区块链域名识别所述第二区块链实例的链标识,包括:基于所述区块链域名,根据本地存储于所述中继的查找信息识别所述第二区块链实例的链标识。

第三特征,可与以下任意特征组合,其中,基于所述第二区块链实例的区块链域名识别所述第二区块链实例的链标识,包括:基于所述第二区块链实例的区块链域名,从远程统一区块链域名服务器识别所述第二区块链实例的链标识。

第四特征,可与以下任意特征组合,其中,由所述中继基于由所述第二区块链实例的链标识指示的所述区块链网络配置,为所述第一区块链实例提供对所述第二区块链实例的访问,包括:由所述中继经由第二中继为所述第一区块链实例提供对所述第二区块链实例的访问;其中,由所述第二区块链实例的链标识指示的所述区块链网络配置是由所述第二中继基于同一个所述第二区块链实例的链标识识别的;以及其中,所述第二区块链实例是由所述第二中继基于由所述第二区块链实例的链标识指示的所述区块链网络配置访问的。

第五特征,可与以下任意特征组合,其中,由所述第二区块链实例的链标识指示的所述区块链网络配置是由所述第二中继基于同一所述第二区块链实例的链标识,根据本地存储于所述第二中继的查找信息识别的。

第六特征,可与以下任意特征组合,其中,由所述第二区块链实例的链标识指示的所述区块链网络配置是由所述第二中继基于所述第二区块链实例的区块链域名,从远程统一区块链域名服务器识别的。

第七特征,可与以下任意特征组合,其中,所述第一区块链实例的区块链域名包括第一人类可读标签;所述第二区块链实例的区块链域名包括第二人类可读标签。

本公开还提供了一个或多个非暂时性计算机可读存储介质,其被耦合到一个或多个处理器并且其上存储有指令,所述指令在被一个或多个处理器执行时,促使一个或多个处理器根据本文提供的方法的实施方式执行操作。

本公开还提供了用于实现本文提供的方法的系统。该系统包括一个或多个处理器,以及耦合到一个或多个处理器且其上存储有指令的计算机可读存储介质,所述指令在被一个或多个处理器执行时促使一个或多个处理器根据本文提供的方法的实施方式执行操作。

应了解,根据本公开的方法可包括本文中所描述的方面和特征的任意组合。也就是说,根据本公开的方法不限于本文具体描述的方面和特征的组合,而还包括所提供的方面和特征的任何组合。

在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。根据说明书和附图以及权利要求,本公开的其他特征和优点将显而易见。

附图说明

图1描绘了可用于执行本公开的实施方式的示例性环境。

图2描绘了根据本公开的实施方式的示例性概念架构。

图3描绘了根据本公开的实施方式的区块链实例的示例性统一区块链域名(UBCDN)。

图4描绘了根据本公开的实施方式的统一区块链网络中的示例性UBCDN管理方案。

图5描绘了根据本公开的实施方式的用于利用区块链实例的区块链域名来在统一区块链网络中进行跨链交互的示例性处理。

图6描绘了根据本公开的实施方式的用于认证区块链实例的UBCDN的示例性处理。

图7描绘了根据本公开的实施方式的区块链实例的UBCDN的所有者(UBCDN所有者)的示例性处理。

图8描绘了根据本公开的实施方式的用于在统一区块链网络中进行跨链交互的中继的示例性处理。

各附图中的相同附图标记表示相同元件。

具体实施方式

本公开的实施方式包括计算机实现的用于区块链系统的域名方案的方法。更具体地,本公开的实施方式涉及用于在区块链系统中使用统一域名方案进行跨链交互。

在一些实施方式中,动作包括:由在所述统一区块链网络中与第一区块链实例和第二区块链实例通信地链接的所述中继识别第一区块链实例的区块链域名,其中,所述第一区块链实例的区块链域名是所述第一区块链实例的唯一标识,且唯一地对应于所述统一区块链网络中的所述第一区块链实例的链标识;识别所述第二区块链的区块链域名,其中,所述第二区块链实例的区块链域名是所述第二区块链实例的唯一标识,且唯一地对应于所述统一区块链网络中的所述第二区块链实例的链标识;从所述第一区块链实例的节点接收对访问所述第二区块链实例的访问请求,其中,所述访问请求包括所述第二区块链实例的区块链域名;基于所述第二区块链实例的区块链域名识别所述第二区块链实例的链标识,其中,所述第二区块链实例的链标识指示所述第二区块链实例的区块链网络配置;以及基于由所述第二区块链实例的链标识指示的所述区块链网络配置,为所述第一区块链实例提供对所述第二区块链实例的访问。

为本公开的实施方式提供进一步的背景,并且如上所述,分布式账本系统(DLS)又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。尽管术语区块链通常与比特币加密货币网络相关联,但是本文所使用的区块链一般指在不参考任何特定用例的情况下的DLS。如上所介绍的,区块链网络可以被提供为公有区块链网络、私有区块链网络或联盟区块链网络。

在公有区块链网络中,共识处理由共识网络的节点控制。例如,数百、数千甚至数百万个实体可以协同运作公有区块链网络,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。在一些示例中,大多数实体(节点)必须对每个区块进行签名以使该区块有效,并被添加到区块链网络的区块链(分布式账本)中。示例性公有区块链网络包括比特币网络,其是点对点支付网络。比特币网络利用称为区块链的分布式账本。然而,如上所述,术语区块链通常用于指代分布式账本而不特指比特币网络。

通常,公有区块链网络支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链。也就是说,所有节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。示例性共识协议包括但不限于在比特币网络中实施的工作量证明(POW)。

通常,为特定实体提供私有区块链网络,该特定实体集中控制读写权限。实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为权限网络,其限制允许谁参与网络,以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制方案(例如,现有参与者投票添加新实体,监管机构可以控制权限)。

通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由授权的节点集控制,一个或多个节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并被添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并被添加到区块链中。

本文参考联盟区块链网络进一步详细描述了本公开的实施方式。然而,可以预期,本公开的实施方式可以在任何适当类型的区块链网络中实现。

鉴于以上背景,本文进一步详细描述了本公开的实施方式。更具体地,如上所述,本公开的实施方式针对用于在区块链系统中进行跨链交互的域名方案。

已经基于不同的区块链技术开发了各种区块链平台、环境或产品。示例性区块链产品包括以太坊和比特币。当前的区块链网络包括基于不同区块链产品部署的多个区块链实例。例如,当前的区块链网络包括各种区块链实例,诸如基于以太坊或比特币技术开发的公有区块链、私有区块链或联盟区块链。

每个区块链实例的当前访问模式要求从区块链的客户端节点(也称为客户端终端)或其诸如SDK的技术组件进行访问。为了准确连接到特定的区块链实例,客户端需要加载其区块链网络配置。这些区块链网络配置通常是哈希值、成员证书等。这些配置对于人类来说不具有可读性,并且难以识别这些配置用以标识哪些链。

本公开提供了区块链网络的域名方案。具体地,提供统一区块链域名(UBCDN)以用作区块链网络中的各区块链实例(也称为“区块链网络实例”或“链”)的唯一标识。区块链实例可以是,例如,基于区块链平台或技术(例如,以太坊)实施或部署区块链。每个UBCDN将区块链实例的域名(也称为“区块链域名”)与该区块链实例的相应网络配置(也称为“区块链网络配置”)唯一地绑定。在一些实施方式中,区块链网络配置可以由链标识代表或表示。区块链实例的客户端节点可以通过解析UBCDN以识别链标识,来获得相应的区块链网络配置。基于该区块链网络配置,客户端节点可以链接到特定区块链实例或以其他方式访问该特定区块链实例。

所描述的域名方案可以为统一(或全局)区块链网络中的区块链系统之间的交互提供统一协议,该统一区域链网络包括基于不同区块链产品或技术部署的多个或全部区块链实例。统一区块链网络中的全部区块链实例遵循相同的域名方案,并且被分配唯一的UBCDN。在一些实施方式中,统一区块链网络中的各区块链实例被分配单个UBCDN,不论该统一区块链网络中使用了不同平台、技术或是中继,所分配的UBCDN都能够被该统一区块链网络中的全部区块链实例识别。在一些实施方式中,UBCDN定义了区块链实例在统一区块链网络内的管理自治、权限或控制的范围。在一些实施方式中,统一区块链网络可以被对应视为IP网络中的因特网,而UBCDN可以被视为IP网络中的IP资源的域名与IP资源的IP地址的映射。

统一区块链网络中的每个区块链实例可以由相应的UBCDN唯一地标识,以便促进多链或跨链通信。例如,与现有的、诸如COSMOS的跨链实现不同,COSMOS使用中继链进行跨链交互,其中每个区块链在中继链网络内被分配一个标识(ID),但该ID只有本地范围,在其他中继链网络中无法重复使用,然而在以上描述的域名方案中,可以使用UBCDN,并且不管统一区块链网络中包含了多少中继链,UBCDN都能够被统一区块链网络中的所有区块链实例全局识别。

此外,以上描述的域名方案简化了用于在区块链系统中跨链交互的标识或寻址协议。例如,在以上描述的域名方案中,单个UBCDN足以唯一地标识区块链实例,并且可被统一区块链网络中的所有区块链实例全局识别,以在不同区块链网络之间进行交互,而在COSMOS中,当区块链实例结合多个中继链以使该区块链实例与其他区块链交互时,该区块链实例被分配多个不同的ID。

此外,UBCDN可以包括人类可读的标识或标签,帮助用户容易地记忆和获取区块链实例,从而促进区块链实例的采用或使用。例如,公有区块链、私有区块链或联盟区块链的所有者或运营商可以选择与其名称对应的区块链域名,有助于用户记住区块链实例的标识,并进一步便于翻译、解析或以其他方式识别与区块链域名对应的链标识,促进在统一区块链网络中进行跨链交互。

除了提供易于识别和记忆的名称来标识区块链实例外,UBCDN还使得甚至区块链实例的底层网络配置已改变(例如,通过系统更新或移动或迁移到网络地址拓扑中的其他物理位置)的情况下,区块链实例的区块链域名也得以保留。在发生这种改变或更新时,区块链实例的链标识可改变,而区块链域名可以保持相同。UBCDN所有者可以将区块链域名的映射改变至更新的链标识,并允许其他(例如,其他区块链实例或客户端节点)使用相同的区块链域名来寻址和访问该区块链实例。

图1描绘了可用于执行本公开的实施例的环境100的示例。在一些示例中,示例性环境100使实体能够参与到联盟区块链网络102中。示例性环境100包括计算设备或系统106、108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后台系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。

在所描绘的示例中,计算系统106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算系统。示例性计算设备包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算系统106、108承载一个或多个由计算机实施的服务,用于与联盟区块链网络102进行交互。例如,计算系统106可以承载第一实体(例如,用户A)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算系统108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),且计算系统106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。

图2描绘了根据本公开的实施方式的示例性概念架构200。示例性概念架构200包括实体层202、承载服务层204以及区块链网络层206。在描绘的示例中,实体层202包括三个实体,实体_1(E1)、实体_2(E2)、实体_3(E3),每个实体拥有各自的交易管理系统208。

在所描绘的示例中,承载服务层204包括用于每个交易管理系统208的接口210。在一些示例中,各交易管理系统208使用协议(例如,超文本传输安全协议(HTTPS))通过网络(例如,图1的网络110)与其对应的接口210通信。在一些示例中,每个接口210在相应的交易管理系统208与区块链网络层206之间提供通信连接。更具体地,接口210与区块链网络层206中的区块链网络212通信。在一些示例中,接口210与区块链网络层206间的通信是利用远程过程调用(RPC)进行的。在一些示例中,接口210“承载”用于各自的交易管理系统208的区块链网络节点。例如,接口210提供用于访问区块链网络212的应用编程接口(API)。

如本文所述,区块链网络212被提供作为包括多个节点214的点对点网络,所述多个节点214在区块链216中不可篡改地记录信息。尽管示意性地描绘了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。例如,每个节点214存储区块链的副本。在一些实施方式中,区块链216存储与在参与联盟区块链网络的两个或更多个实体之间进行的交易相关联的信息。

图3描绘了根据本公开的实施方式的区块链实例的示例性统一区块链域名(UBCDN)300。UBCDN 300可以包括区块链实例的区块链域名310和对应的链标识320。区块链域名310可以是人类可读的标签。链标识320可以指示区块链实例的区块链网络配置,并允许基于区块链网络配置访问区块链实例。在一些实施方式中,UBCDN 300可以包括附加字段或者表示为字符串或另一数据结构。

区块链域名310可以是用户友好的。例如,区块链域名310可以是基于文本的标签,其比对应的数字的链标识320(例如,在以太坊协议中使用的40字符十六进制地址)更容易记忆。在一些实施方式中,区块链域名310可以表示为字符串或另一数据结构。

在一些实施方式中,区块链域名310可以具有定义的句法,以进一步促进对底层区块链实例的源、所有权或组织的理解。例如,可以以与IP网络中的域名类似的方式设计区块链域名310。区块链域名310可包括一个或多个部分或标签。这一个或多个标签可以级联(concatenate),并且具有从名称中的右侧标签到左侧标签,域呈现降序的层次结构。左侧的各标签指定了右侧域的细分或子域。例如,区块链域名310“chain1.organization1”表示底层区块链实例chain1是域organization1的子域,属于organization1。在一些实施方式中,区块链域名310可以定义附加或不同的句法。

链标识320可以包括用于寻址和访问区块链网络中的区块链实例的可寻址标识。链标识320可以指示区块链实例的区块链网络配置,并允许基于区块链网络配置访问区块链实例。例如,可以基于以太坊技术部署多个区块链实例。区块链实例可以是,例如,主网链、测试链、私有链或联盟链。以太坊客户端可以通过加载以太坊区块链实例的创始区块(即第一块)来建立与以太坊区块链实例的连接。创始区块等同于以太坊区块链实例的唯一标识。因此,在一些实施方式中,可以提取以太坊区块链实例的创始区块的一个或多个字段(例如,哈希值)作为以太坊区块链实例的链标识320。在一些实施方式中,区块链实例的链标识可以包括区块链实例的创始区块的哈希值,以及标识区块链实例的网络ID。在一些实施方式中,例如,通过根据所使用的网络ID对区块链实例上的交易进行不同的签名,使得这些交易看起来与其他链上的交易不同。因此,网络ID指示可用于链接至或以其他方式访问区块链实例的附加网络配置。链标识320可以包括附加的或不同的组成部分或字段,例如,取决于区块链实例的底层区块链技术或平台。

UBCDN 300创建区块链实例的区块链域名310与其对应的链标识320的一对一映射。给定区块链域名310,可以翻译、解析或以其他方式识别其对应的链标识320,反之亦然。这样,节点可以基于链标识320指示的区块链网络配置来访问区块链实例。作为类比,区块链实例的区块链域名310类似于根据互联网协议(IP)资源的域名系统(DNS)的域名(例如,example.com),并且链标识320类似于IP网络中IP资源的IP地址。

在一些实施方式中,对于给定的区块链域名310,可以使用在本地、在查询的计算机内、或在统一区块链网络(例如,在中央UBCDN服务器中)中远程缓存或以其他方式存储的UBCDN查找信息,来翻译、解析或以其他方式识别其对应的链标识320。UBCDN查找信息可以包括多个UBCDN 300,每个UBCDN 300对应于多个区块链实例。UBCDN查找信息可以存储在例如查找表或其他数据结构中。统一区块链网络中的一个或多个节点(例如,客户端节点、共识节点或中继节点)或服务器可以存储UBCDN查找信息。通过基于UBCDN查找信息进行搜索,可以识别对应于给定区块链域名310的链标识320,反之亦然。

当UBCDN信息被缓存在本地时,UBCDN查找处理可以比例如在远程UBCDN服务器上执行远程UBCDN查找更快。在一些实施方式中,在后面的远程UBCDN查找中,用户在用户的计算设备(即客户端节点)的SDK中输入区块链域名310,例如“chain1.organization1”。客户端节点例如在链外通过互联网向远程UBCDN服务器发送包含区块链域名310“chain1.organization1”的请求或查询。在接收到请求时,远程UBCDN服务器在UBCDN查找信息中搜索与区块链域名310“chain1.organization1”匹配的条目,并识别对应于区块链域名310的链标识320。然后,远程UBCDN服务器对具有与区块链域名310对应的链标识320的客户端节点作出响应,例如通过将包括与区块链域名310对应的链标识320的响应发送到该客户端节点。

图4描绘了根据本公开的实施方式的统一区块链网络中的示例性UBCDN管理方案400。示例性UBCDN管理方案400可以为基于UBCDN的跨链通信提供增强的信任和安全性。在一些实施方式中,示例性UBCDN管理方案400依赖于公钥基础结构(PKI)来在统一区块链网络中建立信任。

例如,可以利用证书机构(CA)410(例如,PKI的运营商)。CA 410向UBCDN 430a、430b和430c(统称为UBCDN所有者430)的每个所有者发布域证书(“Domain Cert”)420a、420b和420c(统称为域证书420)。UBCDN所有者430可以是例如区块链实例的所有者或运营商。如图所示,UBCDN所有者430a是区块链域名“Example1.chain”的所有者,UBCDN所有者430b是区块链域名“Example2.chain”的所有者,并且UBCDN所有者430b是区块链域名“ExampleN.chain”的所有者。

在一些实施方式中,UBCDN所有者430可以通过向CA 410申请证书签名请求(图4中未示出)来获得域证书420。在一些实施方式中,证书签名请求是包含区块链域名、区块链实例的信息(例如,链标识或其他网络配置)以及UBCDN所有者430的公钥的电子文档。在验证UBCDN所有者430具有管理区块链实例的区块链域名的管理权利时,CA 410可以对该请求进行签名,从而产生公共域证书420。在一些实施方式中,域证书420可以提供给想要访问区块链域名(例如,“Example1.chain”)的底层区块链实例的任何节点(例如,客户端节点、共识节点或中继节点),并且向该节点证明CA 410信任UBCDN所有者430并且已经向UBCDN所有者430发布了证书。

域证书420可以包括UBCDN所有者430的区块链域名(例如,“Example1.chain”)和公钥。UBCDN所有者430是对应于该公钥的私钥持有者。CA 410可以使用CA自己的私钥对UBCDN所有者430的区块链域名和公钥进行数字签名。域证书420可以包括由CA 410对UBCDN所有者430的区块链域名和公钥签署的数字签名。

如关于图3所描述的,UBCDN可以包括区块链域名(例如,“Example1.chain”)和对应的链标识。UBCDN所有者430可以公布UBCDN并使用UBCDN所有者430的私钥来对UBCDN签名。在一些实施方式中,UBCDN所有者430公布一个或多个UBCDN消息(例如,UBCDN消息440a、450a、440),以便可以认证或验证UBCDN。

在一些实施方式中,UBCDN消息440可以包括UBCDN、所得到的UBCDN的数字签名以及域证书。域证书可以是从CA 410接收的相应域证书420。UBCDN可以包括区块链域名和链标识(例如,区块链域名310和链标识320,如关于图3所描述的)。如图所示,UBCDN所有者430a发布UBCDN消息440a,该消息440a包括区块链域名442a“Example1.chain”和对应的链标识444a“Chain Identifier V0”、数字签名446a及域证书448a。域证书448a可以是由CA 410发布并由UBCDN所有者430a从CA 410接收的域证书420a。数字签名446a可以来自UBCDN所有者430a利用UBCDN所有者430a的私钥对UBCDN(在该情况下,即,区块链域名442a“Example1.chain”和对应的链标识444a“Chain Identifier V0”)的签名。

类似地,UBCDN所有者430b发布UBCDN消息440b,UBCDN消息440b包括区块链域名442b“Example2.chain”和对应的链标识444b“Chain Identifier Vx”、数字签名446b及域证书448b。域证书448b可以是由CA 410发布并由UBCDN所有者430b从CA 410接收的域证书420b。数字签名446b可以来自UBCDN所有者430b使用UBCDN所有者430b的私钥对UBCDN(在该情况下,即,区块链域名442b“Example2.chain”和相应的链标识444a“Chain Identifier V0”)的签名。

在一些实施方式中,可以例如由统一区块链网络或第三方中的任何节点基于UBCDN消息验证UBCDN的有效性,来执行认证或验证处理。这可以确保安全性,这对于电子商务、尤其是与用于在区块链系统中进行跨链交互的移动支付交易相关的电子商务是很重要的。

在一些实施方式中,认证或验证处理可以包括,例如,验证区块链域名与域证书中的区块链域名相同;通过利用CA 410发布的域证书(例如,域证书420a)中的公钥来验证对UBCDN的数字签名(例如,数字签名446a),以及验证域证书(例如,域证书448a)是由可信CA 410发布的,来验证UBCDN所有者(例如,UBCDN所有者430a)是区块链域名(例如,区块链域名442a“Example1.chain”)的持有者。

在一些实施方式中,在例如基于认证或验证处理验证UBCDN的有效性之后,客户端节点可以将UBCDN用于在统一区块链网络中进行跨链交互。例如,客户端节点可以接收和读取UBCDN消息,验证UBCDN的有效性或合法性,并确认UBCDN是由UBCDN的所有者发布的;然后使用UBCDN唯一地识别和访问区块链实例,例如,通过识别UBCDN中与区块链域名对应的链标识。

图5描绘了根据本公开的实施方式的用于利用区块链实例的区块链域名在统一区块链网络中进行跨链交互的示例性处理500。在一些实施方式中,可以使用利用一个或多个计算设备执行的一个或多个计算机可执行程序来执行示例性处理500。为了清楚地呈现,以下描述结合本说明书中的其他附图的上下文一般地描述了处理500。例如,示例性处理500可以由第一区块链实例的客户端节点执行,例如,如关于图1所描述的联盟区块链网络102的计算系统106或108,或者如关于图2所描述的区块链网络212的节点214。然而,应当理解,处理500可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。在一些实施方式中,处理500的各个步骤可以并行、组合、循环或以任何顺序运行。

在510,第一区块链实例的客户端节点获得不同的第二区块链实例的区块链域名。在一些实施方式中,第一区块链实例和第二区块链实例基于不同的区块链平台来被部署。在一些实施方式中,第一区块链实例和第二区块链实例属于不同的所有者或运营商。第一区块链实例和第二区块链实例位于统一区块链网络中,该统一区块链网络包括由两个或更多个中继通信链接的多个区块链实例。

即使统一区块链网络包括两个或更多个中继,区块链域名也是第二区块链实例在统一区块链网络中的唯一标识。在一些实施方式中,对于统一区块链网络中的多个区块链实例中的每一个区块链实例,其仅具有唯一地标识该区块链实例的一个区块链域名。

区块链域名包括人类可读的标签。在一些实施方式中,人类可读的标签包括基于文本的标签。区块链域名唯一地对应于第二区块链实例的链标识。区块链域名和链标识可以由诸如UBCDN 300的UBCDN表示,如图3中所描述的。作为示例,区块链域名可以是区块链域名310,而链标识可以是UBCDN 300中的对应的链标识320。

在520,第一区块链实例的客户端节点基于第二区块链实例的区块链域名识别第二区块链实例的链标识,其中,第二区块链实例的链标识指示第二区块链实例的区块链网络配置。在一些实施方式中,第二区块链实例的链标识包括第二区块链实例的创始区块的哈希值和第二区块链实例的网络标识,例如,如关于图3所描述的。

在一些实施方式中,基于区块链域名识别第二区块链实例的链标识包括:基于区块链域名,根据客户端节点本地存储的查找信息来识别第二区块链实例的链标识。

在一些实施方式中,基于区块链域名识别第二区块链实例的链标识包括:基于区块链域名,从远程统一区块链域名服务器识别第二区块链实例的链标识。例如,第一区块链实例的客户端节点向统一区块链域名服务器发送请求或查询。该请求包括用于识别第二区块链实例的链标识的区块链域名。然后,第一区块链实例的客户端节点从统一区块链域名服务器接收该请求的响应,其中,该响应包括第二区块链实例的链标识。

在530,第一区块链实例的客户端节点基于由第二区块链实例的链标识指示的区块链网络配置来访问第二区块链实例。例如,第一区块链实例基于由第二区块链实例的链标识指示的第二区块链实例的创始区块的哈希值,经由第二区块链实例的客户端节点访问第二区块链实例。在一些实施方式中,第一区块链实例通过利用中继(例如,中继节点或中继链)或通信链接到第一区块链实例和第二区块链实例的其他应用,经由第二区块链的客户端节点来访问第二区块链实例。

在一些实施方式中,为了从第二区块链实例访问和获得数据,第二区块链实例的客户端节点可以进行诸如第二区块链的节点(例如,共识节点)的IP地址和端口号、以及第二区块链实例的创始区块的哈希值的网络配置。第二区块链实例的客户端节点可以通过第二区块链实例的节点的IP地址和端口号连接到第二区块链实例的节点。第二区块链实例的客户端节点可以读取、检索、下载或以其他方式获得第二区块链实例的节点的数据,并验证所获得的数据是否来自第二区块链实例,例如,基于第二区块链实例的简单支付验证(SPV)协议确定所获得的数据是否指向第二区块链实例的创始区块的哈希值。

在540,第一区块链实例的客户端节点基于第二区块链实例的区块链域名,在第一区块链实例和第二区块链实例之间执行跨链交易。在一些实施方式中,在第一区块链实例和第二区块链实例之间执行跨链交易包括:第一区块链实例将包括第二区块链实例的区块链域名和数据请求的跨链请求发送到通信链接到第一区块链实例和第二区块链实例的中继。中继接收该跨链请求并读取第二区块链实例的区块链域名,加载第二区块链实例的相应区块链网络配置,使用该配置连接到第二区块链实例。中继可以从第二区块链实例检索、下载或以其他方式接收所请求的数据,并将所请求的数据发送到第一区块链实例。

图6描绘了根据本公开的实施方式的用于认证区块链实例的UBCDN的示例性处理600。在一些实施方式中,可以使用利用一个或多个计算设备执行的一个或多个计算机可执行程序来执行示例性处理600。为了清楚地呈现,以下描述结合本说明书中的其他附图的上下文一般地描述了处理600。例如,可以由如关于图1所描述的联盟区块链网络102的计算系统106或108或者如关于图2所描述的区块链网络212的节点214执行示例性处理600。然而,应当理解,处理600可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。在一些实施方式中,处理600的各个步骤可以并行、组合、循环或以任何顺序运行。

在610,计算系统获得区块链实例的统一区块链域名(UBCDN)消息。在一些实施方式中,计算系统是统一区块链网络的第三方。在一些实施方式中,计算系统是与统一区块链网络中的区块链实例不同的第二区块链实例的客户端节点。

UBCDN消息可以是例如关于图4描述的UBCDN消息440。UBCDN消息包括区块链实例的UBCDN、UBCDN所有者对UBCDN的数字签名、以及UBCDN的域证书。

区块链实例的UBCDN包括区块链实例的区块链域名,其中,区块链域名是区块链实例在统一区块链网络中的唯一标识,该统一区块链网络包括由两个或更多个中继通信链接的多个区块链实例。区块链域名包括人类可读的标签和区块链实例的唯一对应于区块链域名的链标识。

在一些实施方式中,UBCDN的域证书包括区块链实例的区块链域名、UBCDN所有者的公钥、以及CA对区块链实例的区块链域名以及UBCDN所有者的公钥的数字签名。

在620,计算系统使用CA的公钥来验证UBCDN的域证书是否是由可信证书机构(CA)发布的。在一些实施方式中,通过利用与CA的公钥对应的CA的私钥对区块链实例的区块链域名和UBCDN所有者的公钥进行CA签名来获得CA的数字签名。在一些实施方式中,使用CA的公钥来验证UBCDN的域证书是否是由可信CA发布的,包括:使用域证书、CA的数字签名、以及CA的公钥来验证UBCDN的域证书是由CA发布的。

在630,响应于验证UBCDN的域证书是由CA发布的,计算系统使用UBCDN所有者的公钥来验证该UBCDN是否是由UBCDN所有者发布的。在一些实施方式中,UBCDN所有者使用与UBCDN所有者的公钥对应的私钥对UBCDN进行签名,来获得UBCDN所有者的数字签名。在一些实施方式中,使用UBCDN所有者的公钥来验证区块链实例的UBCDN是否是由UBCDN所有者发布的,包括:使用UBCDN、UBCDN所有者的数字签名、以及UBCDN所有者的公钥来验证UBCDN是由UBCDN所有者发布的。例如,UBCDN所有者可以使用所有者的私钥对UBCDN进行签名,并且例如根据签名算法生成数字签名。作为UBCDN消息的接收者的计算系统可以使用UBCDN、数字签名和所有者的公钥,例如,根据签名验证算法来确定UBCDN是否是由UBCDN所有者发布的。

在640,响应于验证UBCDN是由UBCDN所有者发布的,计算系统基于区块链实例的区块链域名,例如,根据如关于图5所描述的示例性处理500在区块链实例和第二区块链实例之间执行跨链交易。

图7描绘了根据本公开的实施方式的区块链实例的UBCDN的所有者(UBCDN所有者)的示例性处理700。在一些实施方式中,可以使用利用一个或多个计算设备执行的一个或多个计算机可执行程序来执行示例性处理700。为了清楚地呈现,以下描述结合本说明书中的其他附图的上下文一般地描述了处理700。例如,示例性处理700可以由UBCDN所有者430执行,如关于图4所描述的。然而,应当理解,处理700可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。在一些实施方式中,处理700的各个步骤可以并行、组合、循环或以任何顺序运行。

在710,区块链实例的UBCDN的所有者(UBCDN所有者,诸如UBCDN所有者430)从可信证书机构(CA)(例如,CA 410)获得区块链实例的UBCDN的域证书(例如,域证书420)。区块链实例的UBCDN包括区块链实例的区块链域名和区块链实例的唯一对应于区块链域名的链标识。UBCDN可以是例如UBCDN 300,如关于图3所描述的。区块链域名是区块链实例在统一区块链网络中的唯一标识,该统一区块链网络包括由两个或多个中继通信链接的多个区块链实例。在一些实施方式中,区块链域名包括人类可读的标签。链标识指示区块链实例的区块链网络配置。

UBCDN的域证书包括区块链实例的区块链域名、UBCDN所有者的公钥、以及CA对区块链实例的区块链域名和UBCDN所有者的公钥的数字签名。UBCDN的域证书可以是例如域证书420,如关于图4所描述的。

在720,UBCDN所有者例如使用UBCDN所有者的私钥,例如,根据签名算法来对区块链实例的UBCDN进行签名。

在730,UBCDN所有者公布区块链实例的UBCDN消息(例如,UBCDN消息440a或440b)。UBCDN消息包括区块链实例的UBCDN、由对UBCDN签名产生的UBCDN所有者的数字签名、以及UBCDN的域证书。

在740,UBCDN所有者识别区块链实例的更新的链标识,该链标识指示区块链实例的更新的区块链网络配置。例如,诸如创始区块的区块链实例的区块链网络配置可能发生改变或更新(例如,由于系统更新或一个或多个计算设备的物理位置的移动)。可以更新链标识以反映区块链实例的区块链网络配置的更新(例如,通过更新区块链实例的创始区块的哈希值)。例如,如图4中所示,对于相同的区块链域名442a“Example1.chain”,链标识444a“Chain Identifier V0”已被更新为链标识454a“Chain Identifier V1”,以反映区块链实例的区块链网络配置的变化。

在750,UBCDN所有者例如使用UBCDN所有者的私钥对区块链实例的更新的UBCDN进行签名。区块链实例的更新的UBCDN包括区块链实例的区块链域名和区块链实例的更新的链标识。例如,如图4所示,区块链实例的更新的UBCDN包括相同的区块链域名442a“Example1.chain”和更新的链标识454a“Chain Identifier V1”。

在760,UBCDN所有者公布区块链实例的更新的UBCDN消息。更新的UBCDN消息包括区块链实例的更新的UBCDN、由对更新的UBCDN进行签名产生的UBCDN所有者的更新的数字签名、以及UBCDN的域证书。例如,如图4所示,UBCDN所有者430a发布更新的UBCDN消息450a,该更新的UBCDN消息450a包括区块链域名442a“Example1.chain”和更新的链标识454a“Chain Identifier V1”、数字签名456a和域证书458a。域证书458a可以是由CA 410发布并由UBCDN所有者430a从CA 410接收的域证书420a。更新的数字签名456a可以由UBCDN所有者430a使用UBCDN所有者430a的私钥对更新的UBCDN(在这种情况下,即,区块链域名442a“Example1.chain”和更新的链标识454a“Chain Identifier V0”)进行签名得来。

图8描绘了根据本公开的实施方式的用于在统一区块链网络中进行跨链交互的中继的示例性处理800。统一区块链网络包括由两个或更多个中继通信链接的多个区块链实例。在一些实施方式中,可以使用利用一个或多个计算设备执行的一个或多个计算机可执行程序来执行示例性处理800。为了清楚地呈现,以下描述结合本说明书中的其他附图的上下文一般地描述了处理800。例如,可以由统一区块链网络中的中继执行的示例性处理800。然而,应当理解,处理800可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来适当地执行。例如,中继可以是节点(例如,如关于图1所描述的计算系统106或108,或者如关于图2描述的节点214)、区块链实例(例如,区块链网络102或区块链网络212)、或统一区块链网络中的另一计算机系统。在一些实施方式中,处理800的各个步骤可以并行、组合、循环或以任何顺序运行。

在810,与统一区块链网络中的第一区块链实例和第二区块链实例通信链接的中继识别第一区块链实例的区块链域名。第一区块链实例的区块链域名是第一区块链实例的唯一标识,并且唯一地对应于统一区块链网络中的第一区块链实例的链标识。在一些实施方式中,第一区块链实例的区块链域名包括第一人类可读标签。

在820,中继识别第二区块链实例的区块链域名。第二区块链实例的区块链域名是第二区块链实例的唯一标识,并且唯一地对应于统一区块链网络中的第二区块链实例的链标识。在一些实施方式中,第二区块链实例的区块链域名包括第二人类可读标签。

在一些实施方式中,中继可以为通信链接的每个区块链指定本地标识。该本地标识是针对该中继的使用而被指定的,并且不能被统一区块链网络中的其他节点或中继使用。在一些实施方式中,识别第一区块链实例的区块链域名包括:使用第一区块链实例的区块链域名作为第一区块链实例的本地标识或者使用第一区块链实例的区块链域名来替换第一区块链实例的本地标识。类似地,识别第二区块链实例的区块链域名包括:使用第二区块链实例的区块链域名作为第二区块链实例的本地标识,或者使用第二区块链实例的区块链域名替换第二区块链实例的唯一标识。

在830,中继接收用于访问第二区块链实例的访问请求。该访问请求包括第二区块链实例的区块链域名。

在840,中继基于第二区块链实例的区块链域名来识别第二区块链实例的链标识。第二区块链实例的链标识指示第二区块链实例的区块链网络配置。

在一些实施方式中,基于第二区块链实例的区块链域名识别第二区块链实例的链标识包括:基于区块链域名,根据中继本地存储的查找信息来识别第二区块链实例的链标识。

在一些实施方式中,基于第二区块链实例的区块链域名识别第二区块链实例的链标识包括:基于来自远程统一区块链域名服务器的第二区块链实例的区块链域名来识别第二区块链实例的链标识。

在850,中继基于由第二区块链实例的链标识指示的区块链网络配置,提供第一区块链实例对第二区块链实例的访问。在一些实施方式中,中继根据为跨链交互设计的通信协议提供第一区块链实例对第二区块链实例的访问。例如,中继可以加载由第二区块链实例的与第二区块链实例的区块链域名对应的链标识指示的区块链网络配置。中继使用区块链网络配置连接到第二区块链实例,从第二区块链实例获得第一区块链实例请求的结果,并将第一区块链实例请求的结果返回给第一区块链实例,例如,根据关于图5描述的示例性技术。

在一些实施方式中,由中继基于由第二区块链实例的链标识指示的区块链网络配置来提供第一区块链实例对第二区块链实例的访问包括:由中继经由第二中继提供第一区块链实例对第二区块链实例的访问。

在一些实施方式中,基于第二区块链实例的链标识,第二中继识别由同一个第二区块链实例的链标识指示的区块链网络配置。在一些实施方式中,第二中继基于由第二区块链实例的链标识指示的区块链网络配置访问第二区块链实例。换句话说,第一区块链实例可以使用第二区块链实例的相同域名,而不管是哪一中继或多少中继用于与第二区块链实例交互。

在一些实施方式中,基于第二区块链实例的链标识,第二中继根据第二中继本地存储的查找信息来识别由同一个第二区块链实例的链标识指示的区块链网络配置。

在一些实施方式中,第二中继基于来自远程统一区块链域名服务器的第二区块链实例的区块链域名来识别由第二区块链实例的链标识指示的区块链网络配置。

所描述的特征可以在数字电子电路中实现,或者在计算机硬件、固件、软件或它们的组合中实现。该装置可以在有形地体现在信息载体中(例如,在机器可读存储设备中)的计算机程序产品中实现,以由可编程处理器执行;可以由可编程处理器执行指令程序来执行方法步骤,以通过对输入数据进行运算并生成输出来执行所描述的实施方式的功能。所描述的特征可有利地以可编程系统上可执行的一个或多个计算机程序的形式实现,所述可编程系统包括被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及向它们发送数据和指令的至少一个可编程处理器。计算机程序是可以直接或间接地在计算机中使用以执行特定活动或带来某种结果的一组指令。计算机程序可以以包括编译或解释语言的任何形式的编程语言编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适合于在计算环境中使用的其他单元。

用于执行指令程序的合适处理器包括,例如,通用微处理器和专用微处理器,以及任何类型的计算机的唯一处理器或多个处理器之一。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还可以包括用于存储数据文件的一个或多个大容量存储设备,或可操作地耦合以与所述一个或多个大容量存储设备通信;这些设备包括磁盘,例如内部硬盘和可移动盘;磁光盘;和光盘。适合于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,如内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用集成电路(ASIC)补充或并入专用集成电路(ASIC)中。

为了提供与用户的交互,这些特征可以在计算机上实现,该计算机具有:用于向用户显示信息的显示设备,例如,阴极射线管(CRT)或液晶显示器(LCD)监视器;以及用户可以藉以向计算机提供输入的键盘和指针设备,该指针设备例如为鼠标或轨迹球。

这些特征可以在包括例如数据服务器的后端组件的计算机系统中,或者在包括例如应用服务器或因特网服务器的中间件组件的计算机系统中,或包括例如具有图形用户界面或因特网浏览器的客户端计算机的前端组件的计算机系统中,或者在它们的任意组合中实现。系统的组件可以通过诸如通信网络的任何形式或介质的数字数据通信连接。通信网络的示例包括例如局域网(LAN)、广域网(WAN)以及形成因特网的计算机和网络。

计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过例如所描述的网络的网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

另外,图中描绘的逻辑流程不需要所示的特定顺序或次序来实现期望的结果。另外,可以从所描述的流程中提供其他步骤,或者可以从所描述的流程中消除步骤,并且可以将其他组件添加到所描述的系统或从所述系统中移除。因此,其他实施方式在权利要求的范围内。

已经描述了本公开的多种实施方式。然而,应该理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在权利要求的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1