CN114881648A - 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 - Google Patents
面向跨链资产置换场景的基于预言机的区块链互联方法和设备 Download PDFInfo
- Publication number
- CN114881648A CN114881648A CN202210391749.8A CN202210391749A CN114881648A CN 114881648 A CN114881648 A CN 114881648A CN 202210391749 A CN202210391749 A CN 202210391749A CN 114881648 A CN114881648 A CN 114881648A
- Authority
- CN
- China
- Prior art keywords
- cross
- message
- chain
- aggregated
- request message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种面向跨链资产置换场景的基于预言机的区块链互联方法和设备,该方法包括:预言机主节点监听源区块链触发的跨链请求事件,对跨链请求阈值签名得到准备请求,发送给预言机监管/普通节点;每个预言机监管/普通节点对准备请求进行阈值签名得到待聚合请求消息,并将待聚合请求消息发送给其余预言机监管/普通节点;每个预言机监管/普通节点验证跨链请求内容,阈值签名总数达到设定数量时,聚合阈值签名;预言机普通节点生成聚合后消息,预言机监管节点验证跨链请求内容的合规性并生成聚合后消息;第一个得到聚合后签名的节点向目的区块链发送聚合后消息,验证节点共识并根据结果执行跨链交易。通过该方案能实现可控可信的跨链交易。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种面向跨链资产置换场景的基于预言机的区块链互联方法、设备及存储介质。
背景技术
根据CoinMarketCap的统计数据表明,截止2020年7月24日,全球共有5784种基于区块链技术的加密货币,加密货币总市值超过2850亿美元。此外,随着区块链技术的发展,区块链不仅是指以加密货币为主、所有节点均可加入和退出的公有链,还可以是允许部分授权节点加入和退出的联盟链、私有链。多种区块链繁荣发展使得区块链应用场景不再局限于加密货币,还延伸至金融、能源、物流等领域。
但是,区块链技术的繁荣发展使得多数区块链的底层架构各不相同,不同架构之间彼此无法进行链上数据的互联互通,最终导致区块链成为数据孤岛。以联盟链为例,当前国外主流的联盟链企业级区块链解决方案包括Hyperledger基金会的HyperledgerFabric以及摩根大通的Quorum平台,中国国内主流的联盟链企业级区块链解决方案包括微众银行的FISCOBCOS以及趣链的Hyperchain,这些区块链解决方案采取的解决方案和技术路线各不相同。若在不同的应用场景中部署不同的区块链,将导致各个应用场景无法互联互通,限制了区块链的多应用场景协同。
为解决异构区块链的互联互通问题,跨链技术成为当前的研究热点。在公有链或者联盟链的跨链技术应用场景中,最常用且难度最高的应用场景是跨链资产置换。源区块链和目的区块链需要保证跨链资产置换交易的真实性、原子性、最终一致性。其中,真实性是指跨链交易在源区块链上真实发生,原子性是指跨链交易在源区块链和目的区块链上的执行结果同时成功或者同时失败;最终一致性是指跨链交易执行的结果具有终局性。
当前主流的跨链技术包括中心化/多签的公证人机制、侧链/中继链、哈希锁定等,另外,围绕这些主流技术还衍生出许多跨链互操作性的解决方案。国外跨链解决方案主要是Polkadot和Cosmos。Polkadot采用中继链连接多条平行链,利用提交人、验证人、钓鱼人等多角色治理模型转发平行链的跨链交易并执行中继链共识。Cosmos利用共识引擎连接多个枢纽,使得跨链交易在多个枢纽之间进行安全路由和转发。中国国内跨链解决方案包括WeCross和Bixhub等。WeCross通过跨链分区、跨链路由及跨链适配实现跨链交易寻址和路由,并结合标准默克尔证明机制实现可信交互流程。Bixhub设计通用的链传输协议(IBTP),并配合网关和中继链的架构模式实现异构区块链跨链交互,其中网关解决跨链交易获取和提交问题,中继链结合IBTP解决跨链交易的验证和路由问题。
申请号为202010175290.9、名称为“跨区块链的数据互存方法、装置、设备及存储介质”的中国专利,通过源区块链与目的区块链中的中继节点监听跨链交易,并利用中继节点的加解密保证跨链交易安全可靠传输。但该方案需要对中继节点的随机性有较高要求,否则恶意攻击者仅需攻击中继节点即可篡改或者破坏跨链交易,使得源区块链的利益受损。此外,该方案无法对跨链交易进行监管。
申请号为201911302120.6的、名称为“基于可信预言机的跨链交换方法、系统及介质”的中国专利申请提高了网络整体的可靠性,降低了验证结果真实有效的复杂性,也提高了大多数正常流程请求处理的效率。但是,该方案基于可信预言机即TEE的跨链交换方法,通过TEE对区块链链上事件的监听执行跨链交换操作。在进行跨链交换时,由于TEE(可信执行环境)是可信预言机,其基本上无需考虑预言机篡改数据的问题。但是,这种方法对硬件要求较高,并且当TEE本身出现漏洞时,很难在短时间内进行修复,将导致重大损失。
申请号为202010048747.X、名称为“基于Fabric架构的同构联盟链跨链方法及装置”的中国专利结合密码学中的数字签名技术,可以使得同构的两条Fabric联盟链之间在跨链过程中,能够保证跨链过程中两条链上的数据真实性与一致性。但是,该方案主要基于HyperledgerFabric架构提出联盟链跨链方法,该方法属于同构链之间的跨链,由于区块链的底层架构相同,使得跨链的技术难度大大降低。不仅如此,HyperledgerFabric的架构中包含通道这一特性,不同通道之间的数据互通可以通过其内置方法获得,类似于同构链跨链原理。因此,该方法并不具有实用性。
因此,当前国内外的跨链解决方案仍处于探索阶段,大多数跨链互联互通解决方案以跨链资产置换和去中心化存储为主,无法进行监管,存在硬件要求高、缺乏实用性等问题,尚不能很好地供用户使用。
发明内容
本发明提供了一种面向跨链资产置换场景的基于预言机的区块链互联方法、设备及存储介质,以实现可控可信的跨链资产交易。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种面向跨链资产置换场景的基于预言机的区块链互联方法,包括:
预言机主节点监听源区块链触发的跨链请求事件并接收相应的跨链请求消息;
预言机主节点对所述跨链请求消息进行阈值签名,得到准备请求消息,并将所述准备请求消息发送给多个预言机监管节点和多个预言机普通节点;
每个预言机监管节点对接收的准备请求消息进行阈值签名,得到第一待聚合请求消息,并将第一待聚合请求消息发送给其余预言机监管节点;每个预言机普通节点对接收的准备请求消息进行阈值签名,得到第二待聚合请求消息,并将第二待聚合请求消息发送给其余预言机普通节点;
每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,在相应预言机监管节点接收的准备请求消息中的阈值签名和收集的验证通过的第一待聚合请求消息中的阈值签名的总数达到第一设定数量的情况下,对相应预言机监管节点接收的准备请求消息中的阈值签名和验证通过的第一待聚合请求消息中的阈值签名进行聚合,得到第一聚合后签名;每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,并在相应预言机普通节点接收的准备请求消息中的阈值签名和收集的验证通过的第二待聚合请求消息中的阈值签名的总数达到第二设定数量的情况下,对相应预言机普通节点接收的准备请求消息中的阈值签名和验证通过的第二待聚合请求消息中的阈值签名进行聚合,得到第二聚合后签名;
预言机监管节点验证准备请求消息或第一待聚合请求消息中的跨链请求内容的合规性,根据合规性验证结果、跨链请求消息及第一聚合后签名生成第一聚合后消息;第一个得到第一聚合后签名的预言机监管节点向目的区块链发送第一聚合后消息;根据跨链请求消息和第二聚合后签名生成第二聚合后消息,第一个得到第二聚合后签名的预言机普通节点向目的区块链发送第二聚合后消息;
验证第一聚合后消息中第一聚合后签名、第一聚合后消息中跨链请求消息、第二聚合后消息中第二聚合后签名及第二聚合后消息中跨链请求消息的有效性,并根据验证结果执行跨链交易。
根据本发明实施例的另一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。
根据本发明实施例的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
本发明实施例的基于预言机的跨链资产交易方法、计算机设备及存储介质,通过多个预言机节点了构建去中心化的预言机网络,与可信预言机网络相比,不需要要求较高的硬件,且提高了跨链交易的可信度。通过设置预言机监管节点能够实现对跨链交易进行监管。因此本发明能够实现可控可信的跨链资产交易。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的基于预言机的跨链资产交易方法的流程示意图;
图2至图4是本发明一具体实施例的基于预言机的跨链资产交易方法的流程示意图;
图5是本发明一实施例中的基于阈值签名的改进PBFT算法流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
需要预先说明的是,下述实施例或示例的描述或其中所提及的特征可以以相同或类似的方式,与其他实施例或示例中的特征组合,或替换其他实施例或示例中的特征,以形成可能的实施方式。另外,本文所使用的术语“包括/包含”是指特征、要素、步骤或组件的存在,但并不排除还存在一个或多个其他特征、要素、步骤或组件。
由于区块链需要多节点共同存储网络数据,在区块链的运行环境中只能执行确定的结果,无法主动与外界进行交互。区块链与用户交互的载体为智能合约,受限于区块链特性,智能合约只能按照预先设定的规则自动化执行确定的结果。为解决上述问题,本文引入预言机打破区块链与外部世界的壁垒。跨链预言机为跨区块链交易提供可能。预言机分为跨链预言机、计算预言机以及数据预言机,计算预言机将区块链中的计算任务卸载到链下节点,链下节点计算出结果后将结果返回至链上,以此缓解区块链的计算负载;数据预言机为区块链引入现实世界的真实数据,使得区块链与外部世界实时交互成为可能。
本发明关注跨链过程中资产置换场景,该场景需要保证以下三个特性,分别是交易真实性、交易原子性以及交易一致性。
交易真实性:保证跨链交易在源区块链上真实存在,即跨链交易请求经过源区块链节点的共识。本发明通过监听源区块链和目的区块链的预言机合约交易事件,保证源区块链发起的跨链请求和目的区块链执行的跨链接收请求是真实存在的。
交易原子性:保证源区块链和目的区块链上的交易同时发生或者同时失败,即当源区块链发起跨链交易请求后,若目的区块链执行跨链交易成功则永久锁定源区块链资产,若目的区块链执行跨链交易失败则返还源区块链资产。本发明通过两阶段共识机制使得跨链交易在目的区块链执行后需要给源区块链反馈,保证目的区块链的交易执行失败后需要返还资产。同时,本实施例通过设置跨链交易执行时间使得源区块链在长时间未收集到跨链回调请求的同时返还资产,以此保证交易原子性。
交易一致性:保证预言机网络对跨链交易达成共识,即源区块链的资产增加或减少某个数额,目的区块链的资产同等减少或增加某个数额。本实施例基于PBFT和阈值签名算法,使得跨链交易需要经过预言机网络中的预言机监管节点和预言机普通节点的双重共识后方可执行,保证跨链交易的一致性和合法性。
通过以上三个特性的分析,本实施例创新性地引入预言机解决资产置换场景中的跨链互联互通,并通过优化的基于PBFT和阈值签名的共识算法保证跨链交易的可靠性。此外,通过构建预言机网络中的多角色治理模型,保证跨链交易可管可控。
图1是本发明一实施例的基于预言机的区块链互联方法,或称跨链资产交易方法的流程示意图,如图1所示,该实施例的基于预言机的跨链资产交易方法可包括以下步骤S110~步骤S190。
需要预先说明的是,本发明各实施例的中可涉及预言机主节点、预言机监管节点及预言机普通节点,预言机监管节点和预言机普通节点均可以为多个。预言机监管节点可以供监管部门对消息进行管控。预言机普通节点相对于预言机监管节点,可以不具有管控功能。另外,预言机主节点可以与预言机普通节点进行轮换,例如,在预言机主节点出现问题无法正常工作或达到了设定任期,则可以从预言机普通节点选择节点替换原有预言机主节点,原有预言机主节点可以成为预言机普通节点。
下面将对步骤S110至步骤S190的具体实施方式进行详细说明。
步骤S110:预言机主节点监听源区块链触发的跨链请求事件并接收相应的跨链请求消息。
进一步地,本发明实施例的方法可以通过源预言机合约与现有的源资产合约对接,或者可以通过在现有源资产合约中写入所需对接信息进行对接。简单而言,在源区块链端可以通过预言机合约和原有源资产合约或改进的源资产合约与本发明实施例所基于的预言机对接。
示例性地,该步骤S110之前,即,预言机主节点监听源区块链触发的跨链请求事件并接收相应的跨链请求消息之前,图1所示的方法还可包括步骤:S1100,通过源资产合约调用源预言机合约,以根据源区块链的账户向源资产合约发起的初始跨链请求向源区块链网络发送跨链请求消息,从而使源区块链网络触发跨链请求事件;S1110,利用源预言机合约接收源区块链网络根据跨链请求消息返回的跨链交易标识,并经由源资产合约转发至源区块链的账户。
该步骤S1100中,在源区块链的账户向源资产合约发起初始跨链请求时,可以同时锁定源区块链账户中的相应资产。该初始跨链请求可包括跨链请求内容、跨链请求摘要、跨链操作、时间戳、源区块链标识及目的区块链标识。
该步骤S1110中,源预言机合约起到接口作用,将源区块链网络返回的跨链交易标识(跨链交易ID)经由源资产合约转发至源区块链的账户端。
该实施例中,源预言机合约可以起到接口作用,供源资产合约调用,使用本发明实施例的方法实现跨链交易,不影响原有源资产合约,使用方便。
步骤S120:预言机主节点对所述跨链请求消息进行阈值签名,得到准备请求消息,并将所述准备请求消息发送给多个预言机监管节点和多个预言机普通节点。
该步骤S120中,预言机监管节点可以供监管部门对交易进行监管,可以认为安全性较强,所以其数量可以较少,预言机普通节点的数量可以较多。预言机主节点通过阈值签名技术(BLS算法(Boneh-Lynn-Shacham算法))对跨链请求消息进行阈值签名,该阈值签名可以在后续聚合消息的过程中起到投票的作用。所述跨链请求消息可包括跨链请求内容、跨链请求摘要、跨链操作、时间戳、源区块链标识及目的区块链标识。所述准备请求消息可包括跨链请求消息、跨链请求摘要、预言机主节点标识、跨链请求标识、预言机主节点对跨链请求消息的阈值签名、及预言机主节点对跨链请求消息的阈值签名对应的公钥。其中,准备请求消息中的跨链请求消息可以即为前述跨链请求消息;准备请求消息中的跨链请求摘要可以是从跨链请求消息中提取得到;预言机主节点标识是指当前预言机主节点的标识(如视图编号);跨链请求标识(可为跨链请求序列号)可由预言机主节点生成。阈值签名可以通过先生成私钥和公钥,然后利用阈值签名算法对私钥进行签名得到。
具体实施时,可以通过广播发送准备请求消息。在此情况下,上述步骤S120中,将所述准备请求消息发送给多个预言机监管节点和多个预言机普通节点,具体可包括步骤:S1211,将所述准备请求消息广播发送给多个预言机监管节点和多个预言机普通节点。
在其他实施例中,可以利用其它的通信方式发送准备请求消息。
具体实施时,不仅可以进行阈值签名,还可以进行普通的签名,普通的签名可以表明节点的身份信息。在此情况下,上述步骤S120中,预言机主节点对所述跨链请求消息进行阈值签名,得到准备请求消息,具体可包括步骤:S1212,预言机主节点对所述跨链请求消息进行阈值签名,并附加该预言机主节点自己的签名,得到准备请求消息。
该实施例中,可以通过签名,让预言机监管节点和预言机普通节点得知预言机主节点的信息。
步骤S130:每个预言机监管节点对接收的准备请求消息进行阈值签名,得到第一待聚合请求消息,并将第一待聚合请求消息发送给其余预言机监管节点。
步骤S140:每个预言机普通节点对接收的准备请求消息进行阈值签名,得到第二待聚合请求消息,并将第二待聚合请求消息发送给其余预言机普通节点。
上述步骤S130中,第一待聚合请求消息可包括跨链请求内容、相应预言机监管节点对跨链请求消息的阈值签名及相应预言机监管节点对跨链请求消息的阈值签名对应的公钥。上述步骤S140中,第二待聚合请求消息可包括跨链请求内容、相应预言机普通节点对跨链请求消息的阈值签名及相应预言机普通节点对跨链请求消息的阈值签名对应的公钥。
每个预言机监管节点和每个预言机普通节点均可以接收到预言机主节点发送的准备请求消息。所有预言机监管节点和所有预言机普通节点中的每个节点可以利用类似于上述步骤S120的方法对其各自接收到的准备请求消息进行阈值签名,得到待聚合消息,该待聚合消息可以发送给其他同类型的节点,例如,每个预言机监管节点将其阈值签名得到的第一聚合请求消息发送给其余预言机监管节点,每个预言机普通节点将其阈值签名得到的第二待聚合请求消息发送给其余预言机普通节点。
具体实施时,可以通过广播发送准备请求消息。在此情况下,上述步骤S130中,将第一待聚合请求消息发送给其余预言机监管节点,具体可包括步骤:S1311,将第一待聚合请求消息广播发送给其余预言机监管节点。另一些实施例中,上述步骤S140中,将第二待聚合请求消息发送给其余预言机普通节点,具体可包括步骤:S1411,将第二待聚合请求消息广播发送给其余预言机普通节点。
在其他实施例中,预言机监管节点/预言机普通节点可以利用其它的通信方式发送准备请求消息给其余预言机监管节点/其余预言机普通节点。
具体实施时,不仅可以进行阈值签名,还可以进行普通的签名,普通的签名可以表明节点的身份信息。在此情况下,上述步骤S130中,每个预言机监管节点对接收的准备请求消息进行阈值签名,得到第一待聚合请求消息,具体可包括步骤:S1312,每个预言机监管节点对接收的准备请求消息进行阈值签名,并附加相应预言机监管节点自己的签名,得到第一待聚合请求消息。另一些实施例中,上述步骤S130中,每个预言机普通节点对接收的准备请求消息进行阈值签名,得到第二待聚合请求消息,具体可包括步骤:S1412,每个预言机普通节点对接收的准备请求消息进行阈值签名,并附加相应预言机普通节点自己的签名,得到第二待聚合请求消息。
该些实施例中,可以通过签名,让其余预言机监管节点/其余预言机普通节点得知发送消息的预言机监管节点/发送消息的预言机普通节点的信息。
步骤S150:每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,在相应预言机监管节点接收的准备请求消息中的阈值签名和收集的验证通过的第一待聚合请求消息中的阈值签名的总数达到第一设定数量的情况下,对相应预言机监管节点接收的准备请求消息中的阈值签名和验证通过的第一待聚合请求消息中的阈值签名进行聚合,得到第一聚合后签名。
步骤S160:每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,并在相应预言机普通节点接收的准备请求消息中的阈值签名和收集的验证通过的第二待聚合请求消息中的阈值签名的总数达到第二设定数量的情况下,对相应预言机普通节点接收的准备请求消息中的阈值签名和验证通过的第二待聚合请求消息中的阈值签名进行聚合,得到第二聚合后签名。
上述步骤S150中,预言机监管节点可以通过比较其从预言机主节点接收的准备请求消息和从其它预言机监管节点接收的第一待聚合请求消息,如比较消息内容或相关内容,来验证跨链请求内容,若一致可以认为相应预言机监管节点发来的第一待聚合请求消息可以参与聚合,若否,则可以认为不可以参与聚合。通过验证的第一待聚合请求消息达到一定数量,可以对其阈值签名进行聚合,或者可以加上该预言机监管节点从预言机主节点接收的准备请求消息一起对阈值签名进行聚合。该第一设定数量可由阈值签名算法中的阈值确定。
上述步骤S160中,预言机普通节点收集从其它预言机普通节点发来的第二待聚合请求消息,可以类似于预言机监管节点对接收的消息进行验证,验证通过的消息的数量达到一定数量,如第二待聚合请求消息的数量或准备消息与第二待聚合请求消息总数达到一定数量时,可以对阈值签名进行聚合。在此,区别主要在于,预言机监管节点对从其它预言机监管节点收集的消息进行聚合,而预言机普通节点对从其它预言机普通节点收集的消息进行聚合。
具体实施时,可以通过比较摘要的一致性来验证消息内容。
示例性地,上述步骤S150中,每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,具体可包括步骤:S1511,每个预言机监管节点通过判断接收的准备请求消息中的跨链请求摘要与接收的第一待聚合请求消息中的跨链请求摘要是否一致,对第一待聚合请求消息中的跨链请求内容进行验证。
示例性地,上述步骤S160中,每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,具体可包括步骤:S1611,每个预言机普通节点通过判断接收的准备请求消息中的跨链请求摘要与接收的第二待聚合请求消息中的跨链请求摘要是否一致,对接收的各第二待聚合请求消息中的跨链请求内容进行验证。
该些实施例中,通过比较摘要进行验证,可使得验证过程更快捷。
具体实施时,在消息附加有普通的签名的情况下,可以对签名进行验证,以验证消息来源节点的身份。可以利用现有的方法进行签名,并可以利用相应现有方法验证签名。
示例性地,上述步骤S150中,每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,具体可包括步骤:S1512,每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,并对各第一待聚合请求消息中的相应预言机监管节点自己的签名进行验证,在第一待聚合请求消息中的跨链请求内容和相应预言机监管节点自己的签名均验证通过的情况下,认为相应第一待聚合请求消息验证通过。
再例如,上述步骤S160中,每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,具体可包括步骤:S1612,每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,并对各第二待聚合请求消息中的相应预言机普通节点自己的签名进行验证,在第二待聚合请求消息中的跨链请求内容和相应预言机普通节点自己的签名均验证通过的情况下,认为相应第二待聚合请求消息验证通过。
步骤S170:预言机监管节点验证准备请求消息或第一待聚合请求消息中的跨链请求内容的合规性,根据合规性验证结果、跨链请求消息及第一聚合后签名生成第一聚合后消息;第一个得到第一聚合后签名的预言机监管节点向目的区块链发送第一聚合后消息。
步骤S180:根据跨链请求消息和第二聚合后签名生成第二聚合后消息,第一个得到第二聚合后签名的预言机普通节点向目的区块链发送第二聚合后消息。
上述步骤S170中,预言机监管节点可以对接收的准备请求消息或各第一待聚合请求消息中任何一个消息中的跨链请求消息的内容进行合规性验证,例如可以判断跨链请求消息的内容是否符合一定规则的要求,该规则可以由监管部门确定,若不符合该规则,则可以认为不合规,若符合则可以认为合规,所以,该些预言机监管节点可以供监管部门对资产交易的内容进行管控。若合规性验证结果为不合规,则得到的第一聚合后消息可以进行相应的控制,使得不能完成交易,如退回源区块链账户的资产;若合规性验证结果为合规,则得到的第一聚合后消息可以使得按原有交易流程来完成交易。另外,每个预言机监管节点都收集消息并进行验证及聚合,第一个完成这些操作的预言机监管节点可以发送相应的聚合后消息。
上述步骤S180中,预言机普通节点不需要进行合规性验证操作,第一个完成收集消息并进行验证及聚合的节点可以发送相应的聚合后消息。
步骤S190:验证第一聚合后消息中第一聚合后签名、第一聚合后消息中跨链请求消息、第二聚合后消息中第二聚合后签名及第二聚合后消息中跨链请求消息的有效性,并根据验证结果执行跨链交易。
上述步骤S190中,得到一个预言机监管节点的第一聚合后消息和一个预言机普通节点的第二聚合后消息后,可以对消息内容和聚合后的签名进行有效性验证,验证预言机监管节点和预言机普通节点的共识,可以利用现有的共识算法进行验证。若未通过验证,则可以拒绝交易,若通过验证,完成了预言机共识跨链请求交易,则可以继续进行目的区块链执行跨链交易、预言机共识跨链回调交易、源区块链回调请求等跨链交易过程。预言机共识跨链请求交易过程可以通过接口(如源/目的预言机合约)与现有源区块链发起跨链交易的过程、目的区块链执行跨链交易的过程衔接。预言机共识跨链回调交易过程可与预言机共识跨链请求交易过程类似,或者可以通过随机选择一个节点的方式实现。通过节点的共识,确保了交易的真实性。
具体实施时,上述步骤S190,即,验证第一聚合后消息中第一聚合后签名、第一聚合后消息中跨链请求消息、第二聚合后消息中第二聚合后签名及第二聚合后消息中跨链请求消息的有效性,并根据验证结果执行跨链交易,具体可包括:S191,利用目的预言机合约分别验证第一聚合后消息中第一聚合后签名和第二聚合后消息中第二聚合后签名的有效性,并通过判断第一聚合后消息中跨链请求消息和第二聚合后消息中跨链请求消息中跨链请求内容的一致性验证第一聚合后消息中跨链请求消息和第二聚合后消息中跨链请求消息的有效性;S192,在验证结果为有效的情况下,利用目的预言机合约调用目的资产合约,以根据第一聚合后消息向目的区块链网络发送监管后的跨链请求消息,从而在该监管后的跨链请求消息中的合规性验证结果为合规的情况下,使目的区块链网络根据监管后的跨链请求消息增加目的区块链的账户的资产,接收资产增加操作结果,触发跨链接收事件并根据资产增加操作结果和监管后的跨链请求消息发送跨链接收消息,或者,在该监管后的跨链请求消息中的合规性验证结果为不合规的情况下,使目的区块链网络触发跨链接收事件并根据监管后的跨链请求消息发送跨链接收消息;基于跨链接收事件和跨链接收消息执行跨链回调交易。
上述步骤S192中,跨链接收消息可包括跨链接收内容、跨链接收摘要、跨链操作、时间戳、源区块链标识及目的区块链标识。跨链接收内容可以包含是否允许永久锁定源区块链账户相应资产的相关内容,以确定是否允许最终完成本次资产交易。跨链回调交易可包括预言机共识跨链回调交易、源区块链跨链回调请求等过程。若合规性验证结果为合规可以允许进行对目的区块链账户资产进行变动的操作,跨链接收消息中消息内容可以包括不进行交易等相关信息使得源区块链账户退款,若不合规,则可以不进行该资产变动的操作,跨链接收消息中消息内容可以包含使得源区块链账户永久锁定相应资产等相关信息。在源区块链账户锁定相应资产,在目的区块链账户增加相应资产,确保了不同区块链交易资产的一致性。
进一步地,上述步骤S192中,基于跨链接收事件和跨链接收消息执行跨链回调交易,具体可包括步骤:
S1921,预言机主节点监听目的区块链触发的跨链接收事件并接收相应的跨链接收消息;
S1922,预言机主节点对所述跨链接收消息进行阈值签名,得到准备接收消息,并将所述准备接收消息发送给多个预言机监管节点和多个预言机普通节点;
S1923,每个预言机监管节点对接收的准备接收消息进行阈值签名,得到第一待聚合接收消息,并将第一待聚合接收消息发送给其余预言机监管节点;
S1924,每个预言机普通节点对接收的准备接收消息进行阈值签名,得到第二待聚合接收消息,并将第二待聚合接收消息发送给其余预言机普通节点;
S1925,每个预言机监管节点根据接收的准备接收消息对接收的各第一待聚合接收消息中的跨链接收内容进行验证,在相应预言机监管节点接收的准备接收消息中的阈值签名和收集的验证通过的第一待聚合接收消息中的阈值签名的总数达到第一设定数量的情况下,对相应预言机监管节点接收的准备接收消息中的阈值签名和验证通过的第一待聚合接收消息中的阈值签名进行聚合,得到第三聚合后签名;
S1926,每个预言机普通节点根据接收的准备接收消息对接收的各第二待聚合接收消息中的跨链接收内容进行验证,并在相应预言机普通节点接收的准备接收消息中的阈值签名和收集的验证通过的第二待聚合接收消息中的阈值签名的总数达到第二设定数量的情况下,对相应预言机普通节点接收的准备接收消息中的阈值签名和验证通过的第二待聚合接收消息中的阈值签名进行聚合,得到第四聚合后签名;
S1927,根据跨链接收消息和第三聚合后签名生成第三聚合后消息,第一个得到第三聚合后签名的预言机监管节点向源区块链发送第三聚合后消息;
S1928,根据跨链接收消息和第四聚合后签名生成第四聚合后消息,第一个得到第四聚合后签名的预言机普通节点向源区块链发送第四聚合后消息;
S1929,验证第三聚合后消息中第三聚合后签名、第三聚合后消息中跨链接收消息、第四聚合后消息中第四聚合后签名及第四聚合后消息中跨链接收消息的有效性,以使源区块链根据验证结果执行跨链回调交易。
上述步骤S1922~步骤S1924的具体实施方式分别可以类似于前述步骤S120~步骤S140,例如,可以通过广播方式发送消息,可以附加自己的签名等。跨链接收消息、待聚合接收消息中跨链接收内容与跨链请求消息、待聚合请求消息中跨链请求内容不同,使得前者可以在源区块链端进行回调请求操作,后者可以在目的区块链端进行跨链请求执行操作。
上述步骤S1925和上述步骤S1926分别可以类似于前述步骤S150和步骤S160。例如,在收集的消息附加有来源节点自己的签名时,可以对签名进行验证;再例如,可以通过验证从预言机主节点接收的准备接收消息和从其他同类型节点接收的待聚合接收消息中跨链接收消息摘要是否一致来判断内容是否一致。另外,可以利用阈值签名算法验证阈值签名。上述第一设定数量和第二设定数量可以根据需要进行选择。可以利用类似的方法进行阈值签名聚合。
上述步骤S1927可前述步骤S170的区别在于,步骤S1927可以不进行合规性验证,因为在前述步骤S170中已进行了验证。当然,在其他实施例中,步骤S1927中也可以利用类似于步骤S170的方式进行合规性验证。另外,步骤S1928可以类似于前述步骤S180。主要区别是在于因交易阶段不同而使消息的内容有所不同。
上述步骤S1929中,可以类似于前述步骤S190,可以利用源预言机合约或在源资产合约中写入相应代码起到源区块链与预言机衔接的作用,源预言机合约或改进的源资产合约的操作过程类似,主要区别在于,根据不同阶段消息内容的差异,相应操作有所差异。例如,该步骤S1929中,若跨链接收消息内容中包含不合规或目的区块链账户增加资产失败等相关信息,则可以对源区块链账户进行退款操作(可以是解锁),若跨链接收消息内容显示可以进行交易,则可以永久锁定源区块链账户的资产,从而完成交易,确保了交易的原子性。
上述步骤S1922中,准备接收消息可包括跨链接收消息、跨链接收摘要、预言机主节点标识、跨链接收标识、预言机主节点对跨链接收消息的阈值签名、及预言机主节点对跨链接收消息的阈值签名对应的公钥。
上述步骤S1927中,第一待聚合接收消息可包括跨链接收内容、相应预言机监管节点对跨链接收消息的阈值签名及相应预言机监管节点对跨链接收消息的阈值签名对应的公钥。
上述步骤S1928中,第二待聚合接收消息可包括跨链接收内容、相应预言机普通节点对跨链接收消息的阈值签名及相应预言机普通节点对跨链接收消息的阈值签名对应的公钥。
在其他实施例中,可以通过竞争选择一个节点执行预言机共识跨链回调交易。
更具体地,上述步骤S1928,即,验证第三聚合后消息中第三聚合后签名、第三聚合后消息中跨链接收消息、第四聚合后消息中第四聚合后签名及第四聚合后消息中跨链接收消息的有效性,以使源区块链根据验证结果执行跨链回调交易,具体可包括步骤:S19281,利用源预言机合约分别验证第三聚合后消息中第三聚合后签名和第四聚合后消息中第四聚合后签名的有效性,并通过判断第三聚合后消息中跨链接收消息和第四聚合后消息中跨链接收消息中跨链接收内容的一致性验证第三聚合后消息中跨链接收消息和第四聚合后消息中跨链接收消息的有效性;S19282,在验证结果为有效的情况下,利用源预言机合约调用源资产合约,以根据第三聚合后消息或第四聚合后消息向源区块链网络发送回调跨链请求消息,从而在该回调跨链请求消息中的合规性验证结果为合规且该回调跨链请求消息中的资产增加操作结果为成功的情况下,使源区块链网络根据回调跨链请求消息永久锁定源区块链的账户对应本次跨链交易的资产,或者,在该回调跨链请求消息中的合规性验证结果为不合规或该回调跨链请求消息中的资产增加操作结果为失败的情况下,使源区块链网络退还已锁定的源区块链的账户对应本次跨链交易的资产。
另一些实施例中,图1所示的方法还可包括步骤:在预言机主节点出现异常或任期届满的情况下,从所述多个预言机普通节点中选择一个节点作为新的预言机主节点,替代当前预言机主节点。以此可以增强预言机主节点的安全性。
另外,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
图2至图4是本发明一具体实施例的基于预言机的跨链资产交易方法的流程示意图,图2至图4显示了面向跨链资产置换场景的预言机跨链互联互通方法,参见图2至图4,该实施例的方法可包含三部分,分别是源区块链、预言机以及目的区块链。源区块链中包含源资产合约、源预言机合约以及源区块链网络;预言机部分包含源预言机节点聚合、预言机监听节点(预言机主节点)、预言机执行节点(包括预言机监管节点和预言机普通节点)以及目的预言机节点聚合;目的区块链中包含目的区块链网络、目的预言机合约及目的资产合约。该实施例的方法面向的跨链资产置换场景中,用户需要在源区块链和目的区块链中分别拥有一个账户,用以发送和接收资产。
该实施例的基于预言机的跨链互联互通方法可分为五个阶段,下面将对五个阶段分别进行说明。
第一个阶段是源区块链发起跨链交易阶段:用户利用源区块链的账户向源资产合约发起跨链请求并锁定相应资产,源资产合约随即调用源预言机合约发起跨链请求,上述两个跨链请求(跨链请求,包含所经历阶段的信息)将发送区块链网络进行共识并返回跨链交易ID(标识),触发跨链请求事件。
第二个阶段是预言机共识跨链请求交易:预言机监听节点(预言机主节点)监听到跨链请求事件后(即得到跨链请求),预言机监听节点对该跨链请求事件进行签名后,广播跨链请求事件(跨链请求)到预言机执行节点(预言机监管节点/预言机普通节点)中,预言机执行节点验证跨链请求事件的签名(预言机监听节点增加的签名),随后在该跨链请求事件上附加自己的签名并广播给其他预言机执行节点(其余预言机监管节点/预言机普通节点,节点类型与自己相同)。
第三个阶段是目的区块链执行跨链交易:目的预言机节点收集到多个预言机执行节点的签名后聚合并验证签名的有效性(利用既定的规则进行验证),随后根据验证的结果调用目的预言机合约写入交易;目的预言机验证跨链请求事件有效性后调用目的资产合约发起跨链请求,最终向目的区块链网络写入该笔跨链交易,目的区块链账户资产随之增加或减少,并触发跨链接收事件。
第四个阶段是预言机共识跨链回调交易:预言机监听节点监听目的区块链跨链接收事件(成功或失败),并对该链跨链接收事件签名后广播给预言机执行节点;预言机执行节点进行与第二个阶段的相同的操作。
第五个阶段是源区块链执行回调请求:源预言机节点收集到多个预言机执行节点的签名后聚合并验证签名的有效性,随后根据验证的结果调用源预言机合约,源预言机合约随后调用源资产合约回调跨链请求。若源资产合约的跨链请求在目的区块链中成功执行,则此时源区块链账户的相应资产永久锁定;否则,将返还给源区块链账户相应资产;若源区块链等待多时并未等到回调请求,则解冻源区块链锁定的相应资产。
通过上述五个阶段可以完成跨链互联互通过程。
由于预言机连接源区块链和目的区块链,若预言机采用单节点或者中心化网络将易导致恶意攻击者的目标由攻击成本高的区块链转向易攻击的预言机。因此,本实施例采用去中心化的预言机网络,利用基于阈值签名的改进PBFT共识算法(Practical ByzantineFault Tolerance,实用拜占庭容错算法)使跨链交易在预言机网络中需要达成共识才能向目的区块链写入跨链交易。
为实现跨链交易可管可控,预言机执行节点中分为两类节点,分别是执行预言机普通节点和预言机监管节点,以此保证跨链交易需要经过监管节点的认可才能达成共识。由于监管节点由监管部门运行维护,本实施例假设监管节点的抗攻击能力强、安全性高,因此可以只需要少量监管节点即可维护。
该过程对应到共识算法中即从预言机普通节点中选取主节点,在共识时分别需要预言机监管节点共识和预言机普通节点共识。预言机节点包括:预言机主节点(预言机监听节点)和预言机执行节点,预言机执行节点包括:预言机监管节点(多个)及预言机普通节点(多个)。图5是本发明一实施例中的基于阈值签名的改进PBFT算法流程示意图,参见图5,整个共识过程可分为四个阶段。
第一阶段为请求阶段:通过监听源区块链,预言机主节点监听源区块链触发的跨链请求事件并接收跨链请求消息;跨链请求消息可表示为<msg,digest,operation,timestamp,source,dest>,其中,msg和digest分别为跨链请求内容和摘要,operation为具体操作,timestamp为时间戳,source为源区块链标识,dest为目的区块链标识。
第二阶段为准备阶段,预言机主节点监听到源区块链的跨链请求事件并获得跨链请求消息后,对该跨链请求消息进行阈值签名,得到准备请求消息,并将准备请求消息<request,request.crequest.digest,viewID,seqID,blssig,nodePk>广播给预言机网络中的其他节点(预言机监管节点和预言机普通节点),其中request和request.crequest.digest为跨链请求及其摘要,viewID为视图编号(预言机主节点的标识),seqID为跨链消息序列号,blssig为预言机主节点对跨链请求消息的阈值签名,nodePk为该预言机主节点对跨链请求消息的阈值签名对应的公钥。
第三阶段为聚合阶段,该阶段分为预言机监管节点的聚合和预言机普通节点的聚合两个部分;两部分聚合过程类似,以下统称两类节点为预言机节点。预言机节点首先验证准备请求消息的签名,并验证准备请求消息的摘要是否与从预言机主节点接收的准备请求消息的摘要相等,并保存收到的准备消息的阈值签名、消息内容、及预言机节点公钥。当预言机节点收集到一定数量预言机节点发送的聚合消息时,对这些消息和消息签名进行验证和聚合。
预言机节点聚合的原理可如下所述。聚合可采用阈值签名的方法,例如,已知m个签名可以合成唯一的合法签名,在获取预言机网络中一定节点数量的签名支持可以达成共识。假设预言机网络中有m个预言机监管节点、n个预言机普通节点,预言机监管节点所需的阈值签名数量为m1,预言机普通节点所需的阈值签名数量为n1。预言机节点在聚合前首先根据随机的大数在乘法曲线G2生成相对应的点g2,点g2即对应预言机节点的公钥pk和私钥sk,其次利用私钥sk对消息进行签名生成乘法曲线G1对应的点g1,点g1即为签名,并且满足下列等式:
e(P,H(m))=e(G,S) (1)
其中,e()表示椭圆曲线算法,P=pk*G,G表示曲线,S=pk*H(m),H(m)为消息在曲线上对应的哈希值,m为待签名的消息。当预言机节点广播消息时即时每个节点需要对其他节点的消息进行签名,使得其成员密钥为(其中MKi表示成员i的密钥,pkprimary表示预言机主节点私钥,P表示根据私钥生成的公钥,i表示节点编号,H(P,i)表示节点i消息的哈希,pkj表示预言机监管节点j私钥,pkl表示预言机普通节点l私钥),收集到满足阈值数量(设定数量)的签名时,将所有签名聚合成唯一签名Sthrehold,其中,Sprimary表示预言机主节点签名,Si表示预言机监管节点i签名,Sj表示预言机普通节点j签名,将所有公钥聚合为唯一公钥Pthrehold,其中,Pprimary表示主节点公钥,Pi表示节点i公钥,Pj表示节点j公钥,并满足下列等式:
e(G,MKi)=e(P,H(P,i)) (2)
第四阶段为执行阶段,第一个验证通过的预言机监管节点和预言机普通节点,验证共识并将根据目的区块链的标识寻址到目的区块链,并执行跨链交易。
聚合完成后,可通过下列等式进行验证,判断是否获得预言机监管节点和预言机普通节点的共识。
其中,e(G,Sthrehold)表示椭圆曲线算法根据阈值签名生成的结果,H(P,m)表示节点m消息的哈希,e(Pthrehold,H(P,m))表示椭圆曲线算法根据哈希和公钥生成的结果,primary表示主节点,H(P,primary)表示主节点消息生成的哈希,e(Pprimary,H(P,primary))表示椭圆曲线算法根据主节点公钥及消息哈希生成的结果,Pi表示节点i公钥,H(P,i)表示节点i消息哈希值,e(Pi,H(P,i))表示椭圆曲线算法根据节点i公钥及消息哈希生成的结果,Pj表示节点j公钥,H(P,j)表示节点j消息哈希值,e(Pj,H(P,j))表示椭圆曲线算法根据节点j公钥及消息哈希生成的结果,表示从n到n1连续乘,表示从m到m1连续乘。
当获得预言机监管节点和预言机普通节点的共识后,目的区块链将执行跨链交易,以此保证跨链交易成功的同时可控。
通过上述四个阶段可以完成一次预言机网络的共识。
该实施例中,将预言机引入跨链互联互通的研究中,提出面向跨链资产置换场景的基于预言机的区块链可控互联互通方法,在保证跨链资产置换交易的真实性、原子性以及最终一致性的同时,对跨链交易进行监管,保证跨链交易的可信可控。该实施例引入跨链预言机作为区块链间的媒介,提出面向跨链资产置换场景的预言机跨链互联互通方法,通过构建去中心化的预言机网络,监听源/目的区块链的合约事件,通过基于改进的PBFT的预言机网络共识算法在目的区块链上执行跨链交易,并根据目的区块链的返回的结果判断源区块链相应资产是否永久锁定,以此保证跨链交易的原子性。该实施例,通过构建基于预言机的跨链互联互通架构,解决跨区块链资产置换场景,利用区块链网络的时间监听机制保证跨链交易真实存在,设计两阶段共识保证跨链交易在源区块链和目的区块链上同时成功或失败,通过基于PBFT和阈值签名的共识算法保证跨链交易在中间网络流通时不被篡改,设计预言机网络多角色治理模型保证跨链交易得到监管。
综上所述,本发明实施例的基于预言机的跨链资产交易方法、计算机设备及存储介质,通过多个预言机节点了构建去中心化的预言机网络,与可信预言机网络相比,不需要要求较高的硬件,且提高了跨链交易的可信度。通过设置预言机监管节点能够实现对跨链交易进行监管。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向跨链资产置换场景的基于预言机的区块链互联方法,其特征在于,包括:
预言机主节点监听源区块链触发的跨链请求事件并接收相应的跨链请求消息;
预言机主节点对所述跨链请求消息进行阈值签名,得到准备请求消息,并将所述准备请求消息发送给多个预言机监管节点和多个预言机普通节点;
每个预言机监管节点对接收的准备请求消息进行阈值签名,得到第一待聚合请求消息,并将第一待聚合请求消息发送给其余预言机监管节点;每个预言机普通节点对接收的准备请求消息进行阈值签名,得到第二待聚合请求消息,并将第二待聚合请求消息发送给其余预言机普通节点;
每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,在相应预言机监管节点接收的准备请求消息中的阈值签名和收集的验证通过的第一待聚合请求消息中的阈值签名的总数达到第一设定数量的情况下,对相应预言机监管节点接收的准备请求消息中的阈值签名和验证通过的第一待聚合请求消息中的阈值签名进行聚合,得到第一聚合后签名;每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,并在相应预言机普通节点接收的准备请求消息中的阈值签名和收集的验证通过的第二待聚合请求消息中的阈值签名的总数达到第二设定数量的情况下,对相应预言机普通节点接收的准备请求消息中的阈值签名和验证通过的第二待聚合请求消息中的阈值签名进行聚合,得到第二聚合后签名;
预言机监管节点验证准备请求消息或第一待聚合请求消息中的跨链请求内容的合规性,根据合规性验证结果、跨链请求消息及第一聚合后签名生成第一聚合后消息;第一个得到第一聚合后签名的预言机监管节点向目的区块链发送第一聚合后消息;根据跨链请求消息和第二聚合后签名生成第二聚合后消息,第一个得到第二聚合后签名的预言机普通节点向目的区块链发送第二聚合后消息;
验证第一聚合后消息中第一聚合后签名、第一聚合后消息中跨链请求消息、第二聚合后消息中第二聚合后签名及第二聚合后消息中跨链请求消息的有效性,并根据验证结果执行跨链交易。
2.如权利要求1所述的方法,其特征在于,预言机主节点监听源区块链触发的跨链请求事件并接收相应的跨链请求消息之前,所述方法,还包括:
通过源资产合约调用源预言机合约,以根据源区块链的账户向源资产合约发起的初始跨链请求向源区块链网络发送跨链请求消息,从而使源区块链网络触发跨链请求事件;
利用源预言机合约接收源区块链网络根据跨链请求消息返回的跨链交易标识,并经由源资产合约转发至源区块链的账户。
3.如权利要求1所述的方法,其特征在于,
将所述准备请求消息发送给多个预言机监管节点和多个预言机普通节点,包括:
将所述准备请求消息广播发送给多个预言机监管节点和多个预言机普通节点;
将第一待聚合请求消息发送给其余预言机监管节点,包括:
将第一待聚合请求消息广播发送给其余预言机监管节点;
将第二待聚合请求消息发送给其余预言机普通节点,包括:
将第二待聚合请求消息广播发送给其余预言机普通节点;
预言机主节点对所述跨链请求消息进行阈值签名,得到准备请求消息,包括:
预言机主节点对所述跨链请求消息进行阈值签名,并附加该预言机主节点自己的签名,得到准备请求消息;
每个预言机监管节点对接收的准备请求消息进行阈值签名,得到第一待聚合请求消息,包括:
每个预言机监管节点对接收的准备请求消息进行阈值签名,并附加相应预言机监管节点自己的签名,得到第一待聚合请求消息;
每个预言机普通节点对接收的准备请求消息进行阈值签名,得到第二待聚合请求消息,包括:
每个预言机普通节点对接收的准备请求消息进行阈值签名,并附加相应预言机普通节点自己的签名,得到第二待聚合请求消息;
每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,包括:
每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,并对各第一待聚合请求消息中的相应预言机监管节点自己的签名进行验证,在第一待聚合请求消息中的跨链请求内容和相应预言机监管节点自己的签名均验证通过的情况下,认为相应第一待聚合请求消息验证通过;
每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,包括:
每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,并对各第二待聚合请求消息中的相应预言机普通节点自己的签名进行验证,在第二待聚合请求消息中的跨链请求内容和相应预言机普通节点自己的签名均验证通过的情况下,认为相应第二待聚合请求消息验证通过。
4.如权利要求1所述的方法,其特征在于,
每个预言机监管节点根据接收的准备请求消息对接收的各第一待聚合请求消息中的跨链请求内容进行验证,包括:
每个预言机监管节点通过判断接收的准备请求消息中的跨链请求摘要与接收的第一待聚合请求消息中的跨链请求摘要是否一致,对第一待聚合请求消息中的跨链请求内容进行验证;
每个预言机普通节点根据接收的准备请求消息对接收的各第二待聚合请求消息中的跨链请求内容进行验证,包括:
每个预言机普通节点通过判断接收的准备请求消息中的跨链请求摘要与接收的第二待聚合请求消息中的跨链请求摘要是否一致,对接收的各第二待聚合请求消息中的跨链请求内容进行验证。
5.如权利要求1所述的方法,其特征在于,验证第一聚合后消息中第一聚合后签名、第一聚合后消息中跨链请求消息、第二聚合后消息中第二聚合后签名及第二聚合后消息中跨链请求消息的有效性,并根据验证结果执行跨链交易,包括:
利用目的预言机合约分别验证第一聚合后消息中第一聚合后签名和第二聚合后消息中第二聚合后签名的有效性,并通过判断第一聚合后消息中跨链请求消息和第二聚合后消息中跨链请求消息中跨链请求内容的一致性验证第一聚合后消息中跨链请求消息和第二聚合后消息中跨链请求消息的有效性;
在验证结果为有效的情况下,利用目的预言机合约调用目的资产合约,以根据第一聚合后消息向目的区块链网络发送监管后的跨链请求消息,从而在该监管后的跨链请求消息中的合规性验证结果为合规的情况下,使目的区块链网络根据监管后的跨链请求消息增加目的区块链的账户的资产,接收资产增加操作结果,触发跨链接收事件并根据资产增加操作结果和监管后的跨链请求消息发送跨链接收消息,或者,在该监管后的跨链请求消息中的合规性验证结果为不合规的情况下,使目的区块链网络触发跨链接收事件并根据监管后的跨链请求消息发送跨链接收消息;基于跨链接收事件和跨链接收消息执行跨链回调交易。
6.如权利要求5所述的方法,其特征在于,基于跨链接收事件和跨链接收消息执行跨链回调交易,包括:
预言机主节点监听目的区块链触发的跨链接收事件并接收相应的跨链接收消息;
预言机主节点对所述跨链接收消息进行阈值签名,得到准备接收消息,并将所述准备接收消息发送给多个预言机监管节点和多个预言机普通节点;
每个预言机监管节点对接收的准备接收消息进行阈值签名,得到第一待聚合接收消息,并将第一待聚合接收消息发送给其余预言机监管节点;每个预言机普通节点对接收的准备接收消息进行阈值签名,得到第二待聚合接收消息,并将第二待聚合接收消息发送给其余预言机普通节点;
每个预言机监管节点根据接收的准备接收消息对接收的各第一待聚合接收消息中的跨链接收内容进行验证,在相应预言机监管节点接收的准备接收消息中的阈值签名和收集的验证通过的第一待聚合接收消息中的阈值签名的总数达到第一设定数量的情况下,对相应预言机监管节点接收的准备接收消息中的阈值签名和验证通过的第一待聚合接收消息中的阈值签名进行聚合,得到第三聚合后签名;每个预言机普通节点根据接收的准备接收消息对接收的各第二待聚合接收消息中的跨链接收内容进行验证,并在相应预言机普通节点接收的准备接收消息中的阈值签名和收集的验证通过的第二待聚合接收消息中的阈值签名的总数达到第二设定数量的情况下,对相应预言机普通节点接收的准备接收消息中的阈值签名和验证通过的第二待聚合接收消息中的阈值签名进行聚合,得到第四聚合后签名;
根据跨链接收消息和第三聚合后签名生成第三聚合后消息,第一个得到第三聚合后签名的预言机监管节点向源区块链发送第三聚合后消息;根据跨链接收消息和第四聚合后签名生成第四聚合后消息,第一个得到第四聚合后签名的预言机普通节点向源区块链发送第四聚合后消息;
验证第三聚合后消息中第三聚合后签名、第三聚合后消息中跨链接收消息、第四聚合后消息中第四聚合后签名及第四聚合后消息中跨链接收消息的有效性,以使源区块链根据验证结果执行跨链回调交易。
7.如权利要求6所述的方法,其特征在于,验证第三聚合后消息中第三聚合后签名、第三聚合后消息中跨链接收消息、第四聚合后消息中第四聚合后签名及第四聚合后消息中跨链接收消息的有效性,以使源区块链根据验证结果执行跨链回调交易,包括:
利用源预言机合约分别验证第三聚合后消息中第三聚合后签名和第四聚合后消息中第四聚合后签名的有效性,并通过判断第三聚合后消息中跨链接收消息和第四聚合后消息中跨链接收消息中跨链接收内容的一致性验证第三聚合后消息中跨链接收消息和第四聚合后消息中跨链接收消息的有效性;
在验证结果为有效的情况下,利用源预言机合约调用源资产合约,以根据第三聚合后消息或第四聚合后消息向源区块链网络发送回调跨链请求消息,从而在该回调跨链请求消息中的合规性验证结果为合规且该回调跨链请求消息中的资产增加操作结果为成功的情况下,使源区块链网络根据回调跨链请求消息永久锁定源区块链的账户对应本次跨链交易的资产,或者,在该回调跨链请求消息中的合规性验证结果为不合规或该回调跨链请求消息中的资产增加操作结果为失败的情况下,使源区块链网络退还已锁定的源区块链的账户对应本次跨链交易的资产。
8.如权利要求6所述的方法,其特征在于,
所述跨链请求消息包括跨链请求内容、跨链请求摘要、跨链操作、时间戳、源区块链标识及目的区块链标识;
所述准备请求消息包括跨链请求消息、跨链请求摘要、预言机主节点标识、跨链请求标识、预言机主节点对跨链请求消息的阈值签名、及预言机主节点对跨链请求消息的阈值签名对应的公钥;
第一待聚合请求消息包括跨链请求内容、相应预言机监管节点对跨链请求消息的阈值签名及相应预言机监管节点对跨链请求消息的阈值签名对应的公钥;
第二待聚合请求消息包括跨链请求内容、相应预言机普通节点对跨链请求消息的阈值签名及相应预言机普通节点对跨链请求消息的阈值签名对应的公钥;
跨链接收消息包括跨链接收内容、跨链接收摘要、跨链操作、时间戳、源区块链标识及目的区块链标识;
准备接收消息包括跨链接收消息、跨链接收摘要、预言机主节点标识、跨链接收标识、预言机主节点对跨链接收消息的阈值签名、及预言机主节点对跨链接收消息的阈值签名对应的公钥;
第一待聚合接收消息包括跨链接收内容、相应预言机监管节点对跨链接收消息的阈值签名及相应预言机监管节点对跨链接收消息的阈值签名对应的公钥;
第二待聚合接收消息包括跨链接收内容、相应预言机普通节点对跨链接收消息的阈值签名及相应预言机普通节点对跨链接收消息的阈值签名对应的公钥。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8任一项所述方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110403685.4A CN113139808A (zh) | 2021-04-15 | 2021-04-15 | 基于预言机的跨链资产交易方法、设备及存储介质 |
CN2021104036854 | 2021-04-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114881648A true CN114881648A (zh) | 2022-08-09 |
Family
ID=76812875
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110403685.4A Withdrawn CN113139808A (zh) | 2021-04-15 | 2021-04-15 | 基于预言机的跨链资产交易方法、设备及存储介质 |
CN202210391749.8A Pending CN114881648A (zh) | 2021-04-15 | 2022-04-14 | 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110403685.4A Withdrawn CN113139808A (zh) | 2021-04-15 | 2021-04-15 | 基于预言机的跨链资产交易方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113139808A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115131022A (zh) * | 2022-08-26 | 2022-09-30 | 中国工业互联网研究院 | 基于区块链的数字资产交易方法、装置、设备及介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113762963B (zh) * | 2021-08-27 | 2024-07-16 | 中国银联股份有限公司 | 一种交易处理方法、装置、设备及存储介质 |
CN114202425A (zh) * | 2021-12-31 | 2022-03-18 | 杭州复杂美科技有限公司 | 预言机多主链跨链方法、设备和存储介质 |
CN115051808B (zh) * | 2022-06-10 | 2024-08-23 | 上海万向区块链股份公司 | 基于ecdsa签名算法的跨链交易验证系统和方法 |
CN115314324B (zh) * | 2022-10-11 | 2022-12-16 | 中国信息通信研究院 | 区块链网络中的节点监管方法和装置、设备 |
CN116029729B (zh) * | 2023-03-22 | 2023-06-06 | 安徽省大数据中心 | 基于动态接入应用链管理合约模式的跨链方法及系统 |
-
2021
- 2021-04-15 CN CN202110403685.4A patent/CN113139808A/zh not_active Withdrawn
-
2022
- 2022-04-14 CN CN202210391749.8A patent/CN114881648A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115131022A (zh) * | 2022-08-26 | 2022-09-30 | 中国工业互联网研究院 | 基于区块链的数字资产交易方法、装置、设备及介质 |
CN115131022B (zh) * | 2022-08-26 | 2022-11-29 | 中国工业互联网研究院 | 基于区块链的数字资产交易方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113139808A (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114881648A (zh) | 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
US10944624B2 (en) | Changing a master node in a blockchain system | |
TWI724780B (zh) | 用於區塊鏈系統中的主節點切換處理的方法及裝置 | |
CN111314067B (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
CN111598566A (zh) | 基于混合跨链的网络支付系统 | |
Kiayias et al. | A composable security treatment of the lightning network | |
CN109741068B (zh) | 网银跨行签约方法、装置及系统 | |
CN111741114A (zh) | 基于区块链的可监管跨链交互系统、方法及设备 | |
CN110111102A (zh) | 一种基于区块链技术的虚拟交通卡系统及发行交易方法 | |
CN110647583B (zh) | 一种区块链构建方法、装置、终端及介质 | |
CN114826766B (zh) | 基于区块链跨链的安全可验证服务提供方法及系统 | |
CN115378681A (zh) | 一种基于区块链的跨域身份认证方法及系统和设备 | |
CN114143021B (zh) | 一种基于区块链的新闻信息信用积分系统 | |
WO2020042929A1 (zh) | 一种区块链系统 | |
CN112699136B (zh) | 一种跨链存证方法及相关装置 | |
CN115865537B (zh) | 基于中心化系统管理的隐私计算方法、电子设备和存储介质 | |
CN112950180A (zh) | 一种基于联盟链的通证方法、系统、电子设备及存储介质 | |
CN111859465A (zh) | 基于区块链的轨道交通分布式智能运维系统及其运行方法 | |
CN115632774A (zh) | 一种基于门限签名的分布式预言机实现方法及系统 | |
CN115865705A (zh) | 基于监管机构的多方联邦学习系统、方法、设备及介质 | |
CN116186749A (zh) | 基于区块链的业务处理方法、装置、电子设备和可读介质 | |
CN112651819A (zh) | 一种实现金融联盟链银行对账系统 | |
Zahoor et al. | A Comparative Study of Distributed Ledger Technologies: Blockchain vs. Hashgraph | |
Cao et al. | Security in edge blockchains security in edge blockchains: Attacks and countermeasures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |