首页> 中国专利> 用于区块链的互操作性的系统和方法

用于区块链的互操作性的系统和方法

摘要

本文公开了一种用于区块链的互操作性的系统和方法,从而允许以实时且安全的方式跨区块链使用智能合约。多个区块链相互连接并允许使用由其他连接的区块链在其上编写的智能合约,而无需重写和/或下载其他区块链上的智能合约。所公开的系统和方法使用分布式文件系统存储装置来安全地处理从一个区块链流向另一连接的区块链的信息。此外,每个连接的区块链都与不同的私钥和公钥相关联,以便对跨区块链流动的数据进行加密和解密。

著录项

  • 公开/公告号CN113169882A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 英诺普莱斯股份公司;

    申请/专利号CN201980081327.7

  • 发明设计人 凯斯卡·阿比吉特;

    申请日2019-11-09

  • 分类号H04L9/32(20060101);H04L29/06(20060101);

  • 代理机构32260 无锡市汇诚永信专利代理事务所(普通合伙);

  • 代理人石来杰

  • 地址 德国埃施伯恩法兰克福大街63号

  • 入库时间 2023-06-19 11:55:48

说明书

相关申请的交叉引用

本申请是基于2018年11月9日提交的美国临时专利申请号62/758,113并根据35U.S.C.199(e)要求优先权的非临时专利申请。

技术领域

本申请整体涉及分布式账本平台上的数据处理领域,并且具体地涉及区块链的互操作性。此外,本发明涉及智能合约跨一个或多个区块链平台的可重用性。

背景技术

近期,区块链技术的使用已扩展到加密货币以外,为智能合约的执行提供了框架。智能合约是各方之间的自执行协议,所有条款和条件均以代码编写,并根据未来的签名或触发事件自动执行。通过利用区块链技术,智能合约一旦附加到区块链上,就不能被撤销、拒绝或逆转。智能合约通常提供多种功能,只需在智能合约附加到的区块链上调用调用方法即可执行这些功能。随着越来越多具有不同处理和执行速度的区块链不断涌现,具有各种功能的多个智能合约正在编写中。然而,智能合约功能的使用仅限于托管所述智能合约的区块链。由于在不同区块链中普遍存在的智能合约的结构和语言不同,与一个区块链相关联的用户无法在另一区块链上使用智能合约的功能。此外,一些区块链具有更高的执行速度,导致嵌入在附加到该区块链的智能合约中的算法的执行速度更快,并且不同的区块链上的用户无法访问此类算法/方法。这限制了智能合约带来的好处,并阻碍了区块链的互操作性。

在主题区块链上执行来自另一区块链的智能合约方法的常用方法之一是将所述智能合约代码复制到第三方处理平台上、以主题区块链可接受的语言和结构重写代码并将其添加到主题区块链中。任选地,用户可在另一区块链上注册并在另一区块链上直接使用智能合约功能。

上述从其他区块链中重用智能合约的方法导致了重写整个智能合约时不必要的资源、时间和人力浪费。此外,不同的区块链具有不同的功能支持、算法和执行速度,因此来自其他区块链的智能合约代码不能被重写和/或复制到它们上面。此外,智能合约代码的这种重写不允许实时执行智能合约。

鉴于与用于近实时地跨区块链重用智能合约的现有方法和系统相关联的上述缺点,非常期望具有一种允许跨区块链实时重用智能合约的系统和方法。如下所述,本发明通过允许跨不同区块链使用智能合约而无需将智能合约代码从一个区块链重写到另一区块链,从而实现区块链之间的互操作性。

发明内容

本公开的实施方案提出了技术改进,作为对发明人在常规系统中认识到的上述技术问题中的一个或多个的解决方案。

在本发明的一方面,提供了一种用于在联网环境中彼此连接的区块链的互操作性的系统和方法。

在另一方面,提供了一种用于通过利用分布式文件存储系统并推迟在区块链上执行事务,从而使得其他区块链能够在区块链上使用智能合约方法来跨区块链实时重用智能合约的系统和方法。

在又一方面,本发明提供了用于使得能够通过加密区块链和分布式文件存储系统之间的通信来以安全的方式跨区块链使用智能合约的系统和方法。

从附图和结合所附权利要求书解释的说明性实施方案的详细描述,本公开的其他方面、优点、特征和目的将变得显而易见。

应当理解,本公开的特征易于以各种组合进行组合,而不脱离由以下详细描述和附图所限定的本公开的范围。

附图说明

当结合附图阅读时,将更好地理解以上发明内容以及以下对说明性实施方案的详细描述。为了说明本公开,在附图中示出了本公开的示例性构造。然而,本公开不限于本文公开的特定方法和手段。此外,本领域技术人员将理解,附图未按比例绘制。只要有可能,相同的元件都用相同的数字表示。

现在将参考以下附图仅以示例的方式描述本公开的实施方案,附图中:

图1是示意图,图1描绘了根据本公开的示例性实施方案的用于跨区块链重用智能合约的系统。

图2描绘了按照本公开配置的区块链的详细架构框图。

图3描绘了按照本公开的用于识别非主机区块链的方法索引。

图4描绘了按照本公开的在区块链上的初始智能合约内维护的列表的详细视图。

图5描绘了概述在本发明的优选实施方案中识别非主机区块链所涉及的步骤的流程图。

图6描绘了可通信地耦合到分布式文件系统存储装置的多个相互连接的区块链中正在操作的区块链。

图7A描绘了分布式文件系统存储中存储位置的内容。

图7B描绘了在识别非主机区块链之后,在主机区块链的初始智能合约中维护的列表中的条目。

图7C描绘了方法索引中的条目。

图8描绘了按照本公开的优选实施方案的正在操作的主机区块链和非主机区块链。

图9描绘了根据本公开的替代实施方案的正在操作的主机区块链和非主机区块链。

图10A描绘了本公开的替代实施方案中的分布式文件系统存储装置中的存储位置的内容。

图10B描绘了按照本公开的替代实施方案的在识别非主机区块链之后在主机区块链的初始智能合约中维护的列表中的条目。

图10C描绘了按照本公开的替代实施方案的方法索引中的条目。

图11描绘了密钥存储库的详细视图。

在附图中,采用带下划线的数字来表示带下划线的数字所在的项或与该下划线的数字相邻的项。不带下划线的数字与通过将不带下划线的数字链接到项的线所标识的项有关。当数字不带下划线并伴有相关箭头时,不带下划线的数字用于标识箭头所指的一般项。

具体实施方式

以下详细描述示出了本公开的实施方案以及它们可以实现的方式。尽管已经公开了执行本公开的一些模式,但本领域技术人员将认识到,用于执行或实践本公开的其他实施方案也是可能的。本领域技术人员将认识到本公开的实施方案的许多变化、替代和修改。应当理解,本发明不限于本文描述的特定方法、协议等,并且因此可变化。本文所用的术语仅用于描述特定实施方案的目的,并不旨在限制本发明的范围,本发明的范围仅由权利要求书限定。

除非另有说明或从上下文中暗示,否则以下术语和短语包括以下提供的含义。除非另有明确说明或从上下文显而易见,否则以下术语和短语不排除该术语或短语在其所属领域中已获得的含义。提供这些定义是为了帮助描述本文描述的方面的特定实施方案,并且不旨在限制要求保护的发明,因为本发明的范围仅由权利要求书限制。此外,除非上下文另外要求,否则单数术语应包括复数,而复数术语应包括单数。

如本文所用,术语“包含”用于指对本发明必不可少的组合物、方法及其各自的组分,但对包括未指定的要素开放,无论是否必不可少。

除非上下文另有明确指示,否则单数术语“一个/一种”和“该/所述”包括复数个对象。类似地,类似地,除非上下文另有明确说明,否则词语“或”旨在包括“和”。因此,例如,对“该方法/所述方法”的提及包括本文所述类型的和/或对于本领域技术人员而言在阅读本公开等之后将变得显而易见的一种或多种方法和/或步骤。

尽管在本公开的实践或测试中可使用与本文所述的那些方法和材料相似或等效的方法和材料,但下文描述了合适的方法和材料。术语“包含”是指“包括”。“例如”在本文用于指示非限制性示例。“例如”与“诸如”一词同义。

本发明要求一种用于跨区块链重用智能合约方法,从而允许区块链之间的互操作性的系统和方法。图1描绘了用于跨区块链重用智能合约方法的系统的示例性实施方案。按照图1的示例性实施方案,系统100包括服务器布置结构102,该服务器布置结构可通信地耦合到多个区块链104,该多个区块链包括主机区块链104a和非主机区块链104b。多个区块链中的每一个可通信地耦合到分布式文件系统存储装置106。按照本文所描述的示例性实施方案,图1所示的分布式文件系统为星际文件系统(IPFS)。然而,应当理解,出于本发明的目的,任何分布式文件系统存储都将以与IPFS类似的方式执行。术语“主机区块链”是指多个区块链中添加了请求执行智能合约方法的第一事务的区块链。此外,术语“非主机区块链”是指多个区块链中部署了所述智能合约方法的区块链。此外,104d描绘了多个区块链的新传入区块链。服务器布置结构102可操作以将事务108添加到多个区块链平台104中的任一个。可通过服务器布置结构102的前端单元108上的基于web的应用程序或基于移动的应用程序(图1中未示出)来添加事务108。在替代实施方案中,使用允许将事务添加到区块链的服务器布置结构上的第三方扩展。

此外,多个区块链中的每一个被配置为将添加到其上的事务的执行推迟预定时段。在预定时段之后执行事务,并且服务器布置结构可操作以通过前端单元接收针对所执行事务的输出。多个区块链中的每一个都部署有一个或多个智能合约,一个或多个智能合约包括多个智能合约方法,每个智能合约方法都与定义的输出有关。所述智能合约方法的示例可为getPastEvents(),其可用来查询自时间开始以来的事件日志。类似地,可在多个区块链中的每一个的一个或多个智能合约上编程各种智能合约方法。

在本发明的一个方面,多个区块链中的每一个在架构、配置、执行速度和部署在其上的一个或多个智能合约的功能方面彼此不同。所述不同区块链的示例为以太坊、EOS、Multichain、Stellar、Corda等。应当理解,多个其他区块链可形成所述系统的多个区块链的一部分。

在整个本公开中,术语“服务器布置结构”是指包括一个或多个处理器的一个或多个服务器的布置结构,该一个或多个处理器被配置为执行例如如先前所提及的各种操作。任选地,服务器布置结构包括能够执行各种操作的物理或虚拟计算实体的任何布置结构。术语“一个或多个处理器”可指一个或多个单独处理器、处理设备和与可由其他处理设备共享的处理设备相关联的各种元件。另外,一个或多个单独处理器、处理设备和元件布置在各种架构中,用于响应和处理驱动上述系统的指令。

此外,应当理解,可通过单个硬件服务器来实现服务器布置结构。服务器布置结构可替代地通过以并行或分布式架构操作的多个硬件服务器来实现。作为示例,服务器布置结构可包括诸如存储器单元、处理器、网络适配器等的部件,以存储和处理与文档有关的信息,并将处理后的信息传递给诸如客户端设备的其他计算部件。

服务器布置结构经由一个或多个通信网络可通信地耦合到多个区块链。术语“一个或多个通信网络”可以是彼此互连并且用作单个大型网络的单个网络的集合。此类单独网络可以是有线的、无线的或它们的组合。

此类单独的网络的示例包括但不限于局域网(LAN)、广域网(WAN)、城域网(MAN)、无线LAN(WLAN)、无线WAN(WWAN)、无线MAN(WMAN)、因特网、第二代(2G)电信网络、第三代(3G)电信网络、第四代(4G)电信网络、第五代(5G)电信网络和全球微波接入(WiMAX)网络互操作性。

此外,术语“前端单元”是指使得用户能够访问存储在区块链上的信息和/或存储区块链上的信息的图形用户界面单元或命令行界面。

在以下段落中,描述了可通信地耦合到服务器布置结构的多个区块链中的至少一个的结构。尽管描述是针对一个区块链提供的,但本领域技术人员应当理解,以类似方式配置可通信地耦合到服务器布置结构的多个区块链中的每一个。此外,进入系统的任何新传入区块链必须以如下所述的类似方式配置,以实现多个区块链之间的互操作性,如本发明所公开的。

图2描绘了按照本发明配置的多个区块链104a中的一个(为了描述图2,下文称为示例性区块链)的详细架构框图。多个区块链中的每一个具有相似的架构,并且以与示例性区块链相似的方式配置。示例性区块链包括一个或多个智能合约214和初始智能合约202,其中初始智能合约202包括至少一个数据结构存储库204。一个或多个智能合约214进一步包括一个或多个智能合约方法216。初始智能合约202可操作以在数据结构存储库204中存储添加到示例性区块链的一个或多个事务的列表206,其中一个或多个事务中的每一个都针对与一个或多个事务中的每一个相关的方法名称、执行状态和从IPFS返回的哈希映射。术语“智能合约方法”是指用于询问智能合约或更改其状态的一组代码。根据所需的输出,智能合约中可包含多个智能合约方法。作为非限制性示例,如在本发明的附图和流程图中所使用的,getpct()是用于计算百分比的智能合约方法,给定两个整数作为输入参数。在上面的示例中,getpct是智能合约方法getpct()的方法名称。

此外,初始智能合约202可操作以在数据结构存储库204中存储方法索引208,其中方法索引包括一个或多个方法名称、针对智能合约方法映射的一个或多个方法名称中的每一个、智能合约名称和区块链名称的索引。在整个本公开中,方法名称、智能合约名称和区块链名称是用于分别指代智能合约方法、智能合约和区块链的别名。别名可以是任何字符集、数字、字母数字代码、十六进制代码或任何能够引用和标识不同实体的命名系统。在一个实施方案中,智能合约名称可直接指代区块链上的智能合约,就像在EOS区块链中一样。任选地,替代地,智能合约名称可用来指代智能合约在区块链上的地址,如在以太坊区块链中一样。

方法索引208允许识别部署有包含智能合约方法的智能合约的非主机区块链,如在附加到主机区块链的事务中所接收的。本领域技术人员应当理解,初始智能合约202可部署任何普及的索引机制,包括但不限于发明的索引。优选地,存储在多个区块链中的每个区块链的初始智能合约202的数据结构存储库204中的方法索引208定期更新,并与多个区块链的所有其他区块链同步。

任选地,服务器布置结构202维护主方法索引210(图2中未示出)。主方法索引210是方法索引208的副本。系统100中的任何新传入区块链104d(如图1所示)与服务器布置结构102交互,以通过其应用二进制接口(ABI)提供部署的智能合约、可访问的智能合约方法及其相关参数的列表。这些详细信息以及合约地址对于与新传入区块链上的一种或多种智能合约方法进行交互至关重要任选地,可将具有新智能合约方法集的新智能合约添加到多个区块链中的现有区块链。因此,服务器布置结构102更新主方法索引210并将更新后的主方法索引广播到多个区块链104中的每一个。多个区块链中的每个区块链的初始智能合约202基于更新的主方法索引更新存储在其数据结构存储库204中的方法索引208。

在一个实施方案中,方法索引208直接存储在服务器布置结构102上。多个区块链中的每一个都与服务器布置结构102通信,以便识别部署有期望智能合约方法的非主机区块链。在任何新传入区块链的情况下,由服务器布置结构102保持方法索引的更新,替代地,所述方法索引208存储在区块链外部的链外存储介质中,由区块链验证,其中方法索引208可通过多个区块链中的每一个动态地有效地获取。

任选地,初始智能合约202被配置为包括验证指示器212,其中验证指示器212指示添加到区块链的事务的执行状态。在一个实施方案中,通过在事务成功执行的情况下设置的标志来实现验证指示器212。在执行推迟的情况下,将重置标志,直到执行事务为止。初始智能合约202使用验证指示器来更新在数据结构存储库204中维护的列表206中的事务的执行状态。

此外,初始智能合约202包括具有预配置权限的一个或多个标准方法调用218。术语“标准方法调用”是指来自智能合约的默认方法调用,预配置参数不能被任何区块链用户更改。任选地,可通过一个或多个智能合约包装器来实现标准方法调用。如在优选实施方案中所使用的所述标准方法调用的示例为“Write to IPFS”(写入IPFS)、“READ from IPFS”(从IPFS读取)。多个区块链中的每一个被配置为使用默认系统智能合约的一个或多个标准方法调用与分布式文件系统存储装置进行通信。如本文所用,术语“通信”是指从分布式文件存储系统读取和写入。分布式文件系统存储提供了一种用于存储和交换文档以进行对等传输的协议。此外,可在与分布式文件系统的各种公共记录有关的各种对等点上存储信息。对等记录互不依赖;这可确保分布式文件系统不会因任何对等记录的不正常运行而发生故障。一旦存储,信息的内容就不能更改。这使分布式文件系统安全。在将数据记录写在分布式文件存储系统上的情况下,从分布式文件系统返回地址哈希,该地址哈希指示数据记录的存储位置。可使用返回的地址哈希在分布式文件存储系统上读取数据记录。本领域技术人员应当理解,上面提到的标准方法调用是具有基本功能的示例性名称,其基本功能是指对分布式文件系统存储系统的写入和读取。

在整个本公开中,术语“初始智能合约”是指附加到区块链的预配置智能合约,并且包括在部署预配置智能合约时自动创建的一组对象定义。对于可通信地耦合到服务器装置的多个区块链中的每一个,初始智能合约都是必不可少的元素。进入系统的任何新传入区块链都必须部署初始智能合约。此外,术语“数据结构存储库”是指存储在区块链上的智能合约内部的数据元素的有组织的集合。这些数据元素可具有不同的类型和不同的长度。所述数据结构存储库可为线性数据结构或分层结构。作为非限制性示例,如在本公开的一个实施方案中所使用的,此类数据结构存储库是数据元素以键值对格式存储在数据结构存储库中的链表和数组。此外,术语“链外数据存储介质”是指不存储在区块链上的数据记录的任何存储装置。此类链外存储介质的示例为Enigma、Swarm等。在此类情况下,区块链从第三方解决方案(诸如Oracle)读取数据。

图3描绘了包括一个或多个方法名称的索引的方法索引208,其中一个或多个方法名称中的每一个都针对智能合约方法、智能合约名称和区块链名称进行映射。方法名称是智能合约方法的别名。功能描述描述了智能合约方法的功能。智能合约名称是指托管智能合约方法的智能合约。区块链名称是指在其上部署了智能合约的区块链。换句话说,非主机区块链是部署了智能合约方法的区块链。参考图3,方法索引208的示例条目如下:302是部署在区块链310上的智能合约308内的智能合约方法304的方法名称。306描述了智能合约方法和输入参数类型的功能。因此,可确定getpct是B2区块链上的智能合约@Maths中存在的智能合约方法getpct()的方法名称。此外,按照306,推断出智能合约方法需要两个整数作为float类型。

在一个实施方案中,在一个或多个区块链上可存在具有定义的功能输出的智能合约方法。尽管返回相同的功能输出,但此类智能合约方法可通过跨各个区块链的不同名称来表示。此外,跨各个区块链上的不同智能合约可存在一种或多种具有相同功能输出但名称不同的智能合约方法。可基于方法索引208的功能描述字段306来对具有相同功能输出的所述智能合约方法进行分组。有利的是,方法索引208包括用于返回相同功能输出的一个或多个不同智能合约方法的代表性名称标识符。

任选地,替代地,与第二智能合约方法相比,第一智能合约方法可能会返回相同的功能输出,但在输入参数类型方面可能会有所不同。此外,返回相同功能输出的一种或多种智能合约方法可能具有变化的执行速度和准确性。随后,方法索引208包括用于智能合约方法的输入参数类型、精度和执行速度的索引字段。在一个实施方案中,方法索引208可基于期望的输出功能性提供使用智能合约方法的建议。这是通过针对每个方法名称计算适用性索引来实现的。适用性索引基于若干参数,包括但不限于智能合约在部署有智能合约方法的区块链上的执行速度、智能合约方法的准确性、处理智能合约方法所需的资源量和能源量。

在本发明的一个实施方案中,用户可通过前端单元选择跨可通信地耦合到服务器布置结构的多个区块链可用的多个功能中的一个或多个。服务器布置结构被配置为基于计算出的适用性索引为所选择的功能选择最合适的智能合约方法。在另一实施方案中,可向用户提供针对所选择功能的一种或多种智能合约方法的推荐。

此外,示例性区块链与私钥和公钥相关联。示例性区块链被配置为在初始智能合约202内存储密钥存储库220,其中密钥存储库220包括多个区块链中的每一个和与所述区块链相关联的公钥的映射。只要新传入区块链构成多个区块链的一部分,密钥存储库220就会更新。密钥存储库220通过标准方法调用218中的一个暴露于任何传入的智能合约或初始智能合约。替代地,多个区块链中的每一个可通过其ABI(应用二进制接口)公开密钥存储库。为了生成所述私钥和公钥,可使用RSA加密算法、椭圆曲线数字签名算法(ECDSA)或本领域技术人员已知的其他加密算法。

图4描绘了列表206的详细视图,该列表包括添加到示例性区块链的一个或多个事务,其中一个或多个事务中的每一个都对应于方法名称、事务的执行状态和从IPFS返回的哈希。列表206的示例条目如下:402是添加到示例性区块链的事务,请求在部署在区块链410上的智能合约406内执行智能合约方法404。由408指示事务402的执行状态。根据初始智能合约的验证指示器确定事务402的所述执行状态。在事务402的执行完成之后,列表206进一步存储从IPFS 412返回的哈希。字段412中读为False的条目指示不返回IPFS哈希值。因此,可以确Txn0需要智能合约方法getpct(),并且执行状态是挂起的,因此没有从IPFS返回哈希。图4A描绘了处于另一状态的列表206,其中在字段412中存储由“Write to IPFS”标准方法调用返回的哈希地址QmahmHDpSXGKUNxVGre3ZGj9wG9pGwhb691SZdep4gV4XU。

在又一实施方案中,多个区块链中的每一个与分布式文件系统存储安全地通信。在分布式文件存储系统上写入信息之前,多个区块链中的每一个都使用其私钥对信息进行加密。这样可以确保信息始终以安全的形式存储在分布式文件存储系统中。按照本发明的实施方案,该信息是智能合约方法的方法名称、智能合约方法的关联参数、来自智能合约方法的执行的方法输出等。类似地,为了读取在来自分布式文件系统存储装置的信息中,多个区块链中的每一个使用对信息进行加密的区块链的公共密钥来解密信息,所述公共密钥在多个区块链中的每一个的密钥存储库中可用。

在操作中,由用户选择主机区块链,其中主机区块链是在其上注册用户并在其上发起操作的区块链。本领域技术人员应当理解,以与图2所描绘的示例性区块链类似的方式配置主机区块链。一旦选择了主机区块链,则服务器布置结构将第一事务附加到主机区块链,其中第一事务包括方法名称和一个或多个参数。所述一个或多个参数是与对应于方法名称的智能合约方法相关联的必需输入参数。此外,第一事务具有从主机区块链的初始智能合约调用一个或多个标准方法调用的预配置权限。第一事务尤其会调用主机区块链的初始智能合约中的“Write to IPFS”标准方法调用。“Write to IPFS”标准方法调用将方法名称和一个或多个参数写入IPFS中的第一存储位置。IPFS返回第一哈希地址,该第一哈希地址指示第一存储位置。随后,推迟第一事务的执行。将对应于第一事务的条目添加到主机区块链的初始智能合约的数据结构存储库中维护的列表中,其中该条目包括方法名称、第一事务的推迟的执行状态和第一哈希地址。通过验证指示器监视推迟的执行状态,该验证指示器通过在事务执行挂起时设置的标志来实现。

服务器布置结构被进一步配置为从主机区块链接收方法名称和第一地址哈希。这是通过向主机区块链添加查询事务来实现的,其中查询事务具有预配置的权限,以访问主机区块链的初始智能合约的数据结构存储库中维护的列表,并读取存储在与第一事务相对应的条目中的第一哈希地址。优选地,在第一预设延迟之后添加查询事务,其中第一预设延迟基于主机区块链和分布式文件存储系统的一个或多个标准方法调用的处理速度。

服务器布置结构识别非主机区块链,该非主机区块链应执行与方法名称相对应的智能合约方法。通过基于方法名称查询方法索引来完成对非主机区块链的识别。图5描绘了在本发明的优选实施方案中用于识别非主机区块链的方法500。在步骤502处,服务器布置结构从主机区块链的初始智能合约的数据结构存储库中维护的列表中检索附加到主机区块链的第一事务中包括的方法名称。在504处,服务器布置结构查询方法索引以定位与方法名称相对应的条目。在506处,选择针对在504处定位的条目列出的智能合约。最后,在508处,识别部署有包括智能合约方法的所述智能合约的非主机区块链,非主机区块链是在506处,在方法索引的所定位的条目中针对所选择的智能合约列出的非主机区块链。一旦识别了非主机区块链,就将非主机区块链名称添加到与主机区块链的初始智能合约的数据结构存储库中维护的列表中的第一事务相对应的条目中。在另一实施方案中,可使用用户在附加到主机区块链的第一事务中提供的区块链名称来完成对非主机区块链的识别。

在识别非主机区块链之后,服务器布置结构可操作以将第二事务附加到非主机区块链,其中第二事务包括第一哈希地址并且具有从非主机区块链的初始智能合约调用一个或多个标准方法调用的预配置权限。

附加到非主机区块链的第二事务通过传递第一哈希地址,从非主机区块链的初始智能合约调用“Read from IPFS”标准方法调用。非主机区块链的初始智能合约的“Readfrom IPFS”标准方法调用读取方法名称,以及IPFS的第一哈希地址处可用的一个或多个参数。由“Read from IPFS”标准方法调用返回方法名称和一个或多个参数,并将其存储在非主机区块链的初始智能合约的数据结构存储库中。识别非主机区块链上的包括智能合约方法的智能合约。随后执行智能合约方法,获得方法输出并存储在非主机区块链的初始智能合约的数据结构存储库中。此外,从非主机区块链的初始智能合约调用标准方法调用“Write to IPFS”,其中“Write to IPFS”标准方法调用将存储在非主机区块链的初始智能合约的数据结构存储库中的方法输出作为输入参数。“Write to IPFS”标准方法将方法输出写入IPFS中的第二存储位置并且返回第二哈希地址,该第二哈希地址存储在非主机区块链的初始智能合约的数据结构存储库中。服务器布置结构被进一步配置为在第二预设时间之后接收第二哈希地址,该第二预设时间基于方法和非主机区块链的处理时间。应当理解,第二事务被预配置为以顺序方式调用上述步骤。

随后,服务器布置结构可操作以将第三事务附加到非主机区块链,其中第三事务包括第二哈希地址并且具有从主机区块链的初始智能合约调用一个或多个标准方法调用的预配置权限。附加到主机区块链的第三事务通过传递第二哈希地址,从主机区块链的初始智能合约调用“Read from IPFS”标准方法调用。主机区块链的初始智能合约的“Readfrom IPFS”标准方法调用读取IPFS第二哈希地址处可用的方法输出,并返回方法输出,然后将方法输出作为第一事务的最终输出存储在主机区块链初始的智能合约的数据结构存储库中。此外,重置验证指示器,指示第一事务的执行状态为完成。通过查询与主机区块链的初始智能合约的数据结构存储库中维护的列表中的第一事务相关的条目记录,服务器安排接收最终输出。应当理解,第一事务的最终输出与方法输出相同,并且所使用的术语不同,只是为了突出显示附加到主机区块链的第一事务的最终输出。

以下段落公开了实现所要求保护的发明的示例场景。

图6和图7描绘了操作中的示例场景。参考图6,向可通信地耦合到服务器布置结构602的多个区块链中的一个区块链(出于本示例的目的,在下文简称为主机区块链604)注册的用户希望使用在主机区块链上不可用的智能合约方法。对于本示例,用户希望使用智能合约方法classify.documentsQ,该智能合约方法将文档分为专利和非专利文献(NPL)。主机区块链604可通信地耦合到分布式文件存储系统606,出于本示例的目的,该分布式文件存储系统为IPFS。本示例中的智能合约方法classify.documentsQ将四(4)个参数作为输入(paraml、param2、param3、param4),根据这些参数将文档分类为专利/NPL。用户使用服务器布置结构的前端单元602a输入用于分类为专利/NPL的文档608和智能合约方法名称,即classify.documents。前端单元602a从智能合约方法classify.documents()所需的文档606中提取四(4)个输入参数。

服务器布置结构602将第一事务Txn0 610附加到主机区块链604,其中Txn0 610包括智能合约方法名称即classify.documents和四(4)个参数(False、False、US和False)。Txn0 610在主机区块链604的初始智能合约612中调用“Write to IPFS”标准方法调用616。“Write to IPFS”标准方法调用616将classify.documents名称和四(4)个参数写入IPFS606中的第一存储位置620。

图7A描绘了在执行“Write to IPFS”标准方法调用之后IPFS中的第一存储位置620的内容。

此外,IPFS 606返回第一哈希地址QmTfCejgo2wTwqnDJs8LulpCNeCrCDuE4GAwkna93zdd7d。随后,推迟Txn0 610的执行。与Txn0 610相对应的条目被添加到在主机区块链604的初始智能合约612的数据结构存储库614中维护的列表622中。此外,初始智能合约612从方法索引624识别托管具有classify.documents智能合约方法的智能合约的非主机区块链B2。

图7B描绘了添加了与事务610相对应的条目702的列表622。

服务器布置结构602通过从主机区块链604中查询列表622的条目702来接收智能合约方法名称classify.documents和第一地址哈希QmTfCejgo2wTwqnDJs8LulpCNeCrCDuE4GAwkna93zdd7d。

参考图8,服务器布置结构602将第二事务Txn5 818附加到非主机区块链802,其中Txn5 818包括第一哈希地址QmTfCejgo2wTwqnDJs8LulpCNeCrCDuE4GAwkna93zdd7d。Txn5818通过传递第一哈希地址从非主机区块链802的初始智能合约804调用“Read from IPFS”816。“Read from IPFS”816读取第一地址哈希中可用的数据并返回classify.documents(False、False、US和False)。识别非主机区块链802上的包括智能合约方法classify.documents()的智能合约@Classifier 820。随后,执行classify.documents(),获得方法输出Patent并存储在数据结构存储库806中。此外,从非主机区块链802的初始智能合约804调用标准方法调用“Write to IPFS”814。“Write to IPFS”814标准方法调用将方法输出Patent写入IPFS中的第二存储位置830,并返回第二哈希地址QmMfCejgo2wPwgnNJs8LulpCNeCrYDuE4GAwlns31jed9a。服务器布置结构602被进一步配置为在第二预设时间之后接收第二哈希地址QmMfCejgo2wPwgnNJs8LulpCNeCrYDuE4GAwlns31jed9a。

随后,服务器布置结构602将第三事务Txn2 826附加到主机区块链604,其中Txn2826包括第二哈希地址QmMfCejgo2 wPwgnNJs8Lul pCNeCrYDuE4 GA wlns31jed9a.Txn2,通过传递第二哈希地址QmMfCejgo2wPwgnNJs8LulpCNeCrYDuE4GAwlns31jed9a从主机区块链604的初始智能合约612调用“Read from IPFS”标准方法调用618。“Read from IPFS”618读取IPFS中在830处可用的方法输出Patent,然后将其存储在主机区块链604的初始智能合约612的数据结构存储库614中,作为第一事务Txn0 610的最终输出。此外,将验证指示器622重置为0,从而将Txn0 610的执行状态指示为完成。通过从主机区块链查询列表622的条目702,由服务器布置结构602接收最终输出Patent。服务器布置结构602的前端单元602a上显示最终输出Patent。因此,输入文档608被分类为专利。因此,区块链的用户能够使用在另一区块链上可用但在用户注册到的区块链上不可用的智能合约方法,而无需重写所述智能合约方法。

在本发明的替代实施方案中,服务器布置结构将第一事务附加到主机区块链,其中第一事务包括方法名称和一个或多个参数。所述一个或多个参数是与方法名称相对应的智能合约方法所需的输入参数。此外,第一事务具有从主机区块链的初始智能合约调用一个或多个标准方法调用的预配置权限。通过将方法名称和一个或多个参数作为输入参数传递到标准方法调用,第一事务尤其会在主机区块链的初始智能合约中调用“Secure Writeto IPFS”(安全写入IPFS)标准方法调用。“Secure Write to IPFS”标准方法调用被配置为使用主机区块链的私钥、方法名称和一个或多个参数进行加密。然后将加密的方法名称和一个或多个参数写入IPFS。IPFS返回第一哈希地址,该第一哈希地址指示方法名称的第一存储位置以及IPFS上的一个或多个参数。随后,推迟第一事务的执行。将对应于第一事务的条目添加到主机区块链的初始智能合约的数据结构存储库中维护的列表中,其中该条目包括智能合约方法名称、推迟的执行状态和返回的第一哈希地址。通过验证指示器监视推迟的执行状态,该验证指示器通过在事务执行挂起时设置的标志来实现。

服务器布置结构被进一步配置为从主机区块链接收方法名称和第一地址哈希。这是通过向主机区块链添加查询事务来实现的,其中查询事务具有预配置的权限,以访问主机区块链的初始智能合约的数据结构存储库中维护的列表,并读取存储在与第一事务相对应的条目中的第一哈希地址。优选地,在第一预设延迟之后添加查询事务,其中预设延迟基于主机区块链和分布式文件存储系统的一个或多个标准方法调用的处理速度。

服务器布置结构识别非主机区块链,该非主机区块链应执行与方法名称相对应的智能合约方法。以与如图5所描绘类似的方式识别非主机区块链。在识别非主机区块链之后,服务器布置结构可操作以将第二事务附加到非主机区块链,其中第二事务包括第一哈希地址和第一区块链名称。第一区块链名称是主机区块链的别名。

附加到非主机区块链的第二事务通过传递第一哈希地址和第一区块链名称,从非主机区块链的初始智能合约调用“Secure Read from IPFS”(从IPFS安全读取)标准方法调用。非主机区块链的初始智能合约的“Secure Read from IPFS”标准方法调用被配置为从非主机区块链的密钥存储库中检索与第一区块链名称(即主机区块链)相对应的公钥。此外,“Secure Read from IPFS”标准方法调用使用主机区块链的检索到的公钥进行解密,并读取方法名称以及IPFS的第一哈希地址处可用的一个或多个参数。由“Secure Read fromIPFS”标准方法调用返回方法名称和一个或多个参数,并将其存储在非主机区块链的初始智能合约的数据结构存储库中。识别非主机区块链上的智能合约,该智能合约包括与方法名称相对应的智能合约方法。随后执行智能合约方法,获得方法输出并存储在非主机区块链的初始智能合约的数据结构存储库中。随后,从非主机区块链的初始智能合约调用标准方法调用“Secure Write to IPFS”,其中“Secure Write to IPFS”标准方法调用将方法输出作为输入参数。“Secure Write to IPFS”标准方法调用被配置为使用非主机区块链的私钥进行加密,并将方法输出写入IPFS中的第二存储位置。“Secure Write to IPFS”标准方法调用返回第二哈希地址,该第二哈希地址存储在非主机区块链的初始智能合约的数据结构存储库中。服务器布置结构被进一步配置为在第二预设时间之后接收第二哈希地址,该第二预设时间基于智能合约方法和非主机区块链的处理时间。

随后,服务器布置结构可操作以将第三事务附加到主机区块链,其中第三事务包括第二哈希地址和第二区块链名称。第二区块链名称是非主机区块链的别名。附加到非主机区块链的第三事务通过传递第二哈希地址和第二区块链名称,从主机区块链的初始智能合约调用“Secure Read from IPFS”标准方法调用。主机区块链的初始智能合约的“SecureRead from IPFS”标准方法调用被配置为从主机区块链的密钥存储库中检索与第二区块链名称(即非主机区块链)相对应的公钥。此外,“Secure Read from IPFS”标准方法调用使用非主机区块链的检索到的公钥进行解密,并读取IPFS的第二哈希地址处可用的方法输出。由“Secure Read from IPFS”标准方法调用返回的方法输出存储在主机区块链的初始智能合约的数据结构存储库中,作为第一事务的最终输出。此外,重置验证指示器,指示第一事务的执行状态为完成。通过查询与主机区块链的初始智能合约的数据结构存储库中维护的列表中的第一事务相关的条目记录,服务器安排接收最终输出。

参考图9,该图描绘了通过允许区块链之间的安全通信的系统的替代实施方案实现的将文档分类为在前述段落中描述的专利/NPL的示例场景。

服务器布置结构602将第一事务Txn0 610附加到主机区块链604,其中第一事务610包括智能合约方法名称即classify.documents和四(4)个参数(False、False、US和False)。Txn0 610在主机区块链604的初始智能合约612中调用“Secure Write to IPFS”标准方法调用902。“Secure Write to IPFS”标准方法调用902使用主机区块链604,的私钥来加密智能合约方法名称即classify.documents和四(4)个参数(False、False、US和False),并写入IPFS 606中的第一存储位置620。

图10A描绘了在执行“Secure Write to IPFS”标准方法调用之后IPFS中的第一存储位置620的内容。

此后,IPFS 606返回第一哈希地址QmIfJejgo2gTwqnMJs8Lul p VNedrCDuE4GAwkna 93zde9a。因此,推迟Txn0 610的执行。与第一Txn0 610相对应的条目被添加到在主机区块链604的初始智能合约612的数据结构存储库614中维护的列表622中。此外,初始智能合约612从方法索引624识别托管具有classify.documents智能合约方法的智能合约@Classifier的非主机区块链B2。

图10B描绘了添加了与事务610相对应的条目1002的列表622。

服务器布置结构602通过从主机区块链604中查询列表622的条目1002来接收方法名称classify.documents和第一地址哈希QmIfJejgo2gTwqnMJs8LulpVNedrCDuE4GAwkna93zde9a。

参考图8,服务器布置结构602将第二事务Txn5 818附加到非主机区块链802,其中Txn5 818包括主机区块链604的第一哈希地址QmIfJejgo2gTwqnMJs8LulpVNedrCDuE4GAwkna93zde9a和第一区块链名称B1。Txn5 818通过传递第一哈希地址从非主机区块链802的初始智能合约804调用“Secure Read from IPFS”816。

“Secure Read from IPFS”816被配置为从非主机区块链802的密钥存储库812检索与第一区块链名称B1相对应的公钥

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukOlDe7zhZj6+H0qtjTv

Ke4eCZOFPqriOcb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFnczWBQ7R

KNUSesmQRMSGkVbl/3j+skZ6UtW+5u09IHNsj6tQ51slSPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB,即主机区块链604的公钥。“Secure Read from IPFS”816解密在第一哈希地址QmIfJejgo2gTwqnMJs8LulpVNedrCDuE4GAwkna93zde9a处可用的信息并且返回classify.documents(False、False、US和False)。识别非主机区块链802上的包括智能合约方法classify.documents()的智能合约@Classifier820。随后,执行classify.documents(),获得方法输出Patent并存储在数据结构存储库806中。随后,从非主机区块链802的初始智能合约804调用标准方法调用“Secure Write to IPFS”814。“Secure Write to IPFS”814标准方法调用被配置为使用非主机区块链802的私钥进行加密,并将方法输出Patent写入IPFS中的第二存储位置830。“Secure Write to IPFS”814标准方法调用返回第二哈希地址QyIfJefgl9gYwqxABs8IvllVDedrCOuW8GHwkna93zde2f。服务器布置结构602被进一步配置为在第二预设时间之后接收第二哈希地址QyIfJefgl9gYwqxABs8IvllVDedrCOuW8GHwkna93zde2f,该第二预设时间基于智能合约方法classify.documentsQ和非主机区块链802的处理时间。

随后,服务器布置结构602可操作以将第三事务Txn2 826附加到非主机区块链604,其中Txn2 826包括非主机区块链802的第二哈希地址QyIfJefgl9gYwqxABs8IvllVDedrCOuW8GHwkna93zde2f和第二区块链名称B2。Txn2通过传递非主机区块链的第二哈希地址和第二区块链名称B2,从主机区块链B1的初始智能合约612调用“Secure Read from IPFS”标准方法调用618。“Secure Read from IPFS”618标准方法调用被配置为从主机区块链Bl的密钥存储库620检索与第二区块链名称B2相对应的公钥,即非主机区块链的公钥。此外,“Secure Read from IPFS”618使用检索到的非主机区块链B2的公钥进行解密,并读取在第二哈希地址QyIfJefgl9gYwqxABs8IvllVDedrCOuW8GHwkna93zde2f处可用的方法输出Patent。由“Secure Read from IPFS”618标准方法调用返回的方法输出Patent存储在主机区块链的初始智能合约的数据结构存储库中,作为第一事务的最终输出。此外,重置验证指示器,指示第一事务的执行状态为完成。通过从主机区块链604查询列表622的条目702,由服务器布置结构602接收最终输出Patent。

在本发明的另一实施方案中,提供了一种用于在区块链上执行动态智能合约的方法。术语“动态智能合约”是指包括一个或多个智能合约方法的智能合约,该一个或多个智能合约方法跨可通信地耦合到服务器布置结构的多个区块链中的多于一个区块链部署。动态智能合约的执行通过实时导入部署有动态智能合约的、与主机区块链分开的非主机区块链上可用的一个或多个智能合约方法来提供。

在上述段落中描述的实施方案的示例场景中,在操作中,动态智能合约包括三(3)个智能合约方法,分别为getpctQ、createsign()和classify.documents()。在上述3种智能合约方法中,主机区块链(即部署动态智能合约的区块链)上存在两(2)种。智能合约方法classify.documentsQ在主机区块链上不可用。

参考图12,在执行动态智能合约期间,在步骤1202处,接受智能合约方法classify.documents()以便基于执行序列进行处理。执行序列主要是指处理一个或多个智能合约方法以用于执行动态智能合约的顺序,并构成执行逻辑流的基础。执行逻辑流确定智能合约方法classify.documentsQ在主机区块链上是否可用。在智能合约方法在主机区块链上可用的情况下,执行逻辑流移至1218,在该步骤中处理智能合约方法。在所述智能合约方法在主机区块链上不可用的情况下,执行逻辑流移至步骤1204,在该步骤中将动态智能合约的执行推迟预定时间。在1206处,查询主机区块链的初始智能合约的方法索引,以定位与智能合约方法名称相对应的条目。此外,在1208处,根据所定位的条目,选择包括智能合约方法的智能合约。因此,在1210处,识别部署有所选择的智能合约的非主机区块链。在1212处,在非主机区块链上处理智能合约方法。在1214处,将来自非主机区块链上的智能合约方法的方法输出通过如图8或图9所述的分布式文件存储系统返回到主机区块链。在1216处,恢复动态智能合约的执行。执行逻辑流进一步确定是否还有剩余智能合约方法需要处理以完成动态智能合约的执行。如果动态智能合约的执行还有其他智能合约方法需要处理,则执行逻辑流循环回到步骤1202。否则,执行动态智能合约。

本领域技术人员应当理解,前述描述和实施方案描绘了两个区块链之间的互操作性,并且可将它们扩展到可通信地耦合到服务器布置结构的多个区块链。应当进一步理解,本文中的术语“第一”、“第二”等并不表示任何特定的角色、顺序或重要性,而是用于将一方与另一方区分开。

本文给出的任何示例或说明均不应以任何方式视为对与它们一起使用的任何一个或多个术语的局限、限制或明确定义。相反,这些示例或说明仅被认为是说明性的。本领域的普通技术人员将理解,与这些示例或说明一起使用的任何一个或多个术语将包括其他实施方案,这些实施方案可能会或可能不会在说明书中或其他地方给出,并且所有此类实施方案都旨在包括在该一个或多个术语的范围内。此外,词语“示例”或“示例性”在本文用来表示用作示例、实例或说明。本文中被描述为“示例性”的任何方面或设计不必被解释为相对于其他方面或设计是优选的或有利的。相反,词语“示例”或“示例性”的使用旨在以具体方式呈现概念。

说明书、实施方案和附图不应被视为限制权利要求的范围。还应当理解,在整个本公开中,除非在逻辑上另有要求,否则在示出或描述过程或方法的情况下,可以任何顺序、重复地、迭代地或同时地执行方法的步骤。本文所描述的功能或过程的至少部分可以合适的计算机可执行指令实现。

应当理解,本公开的特征易于以各种组合进行组合,并且可在不脱离本公开的范围的情况下引入附加特征。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号