CN110033243B - 基于区块链智能合约的主链存证方法、系统及存储介质 - Google Patents
基于区块链智能合约的主链存证方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110033243B CN110033243B CN201910167609.0A CN201910167609A CN110033243B CN 110033243 B CN110033243 B CN 110033243B CN 201910167609 A CN201910167609 A CN 201910167609A CN 110033243 B CN110033243 B CN 110033243B
- Authority
- CN
- China
- Prior art keywords
- main chain
- transaction
- chain
- side chain
- contract
- 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.)
- Active
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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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
-
- 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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开基于区块链智能合约的主链存证方法、系统及存储介质,该方法步骤为:侧链存证者生成区块链主链上的存证服务帐户及私钥,并向该帐户转入资金;使用主链存证服务帐户在主链上部署Relay存证合约;在侧链存证者节点上部署主链存证模块,周期性获取侧链的新区块头信息并存储到主链上Relay存证合约;在侧链用户的本地节点部署主链存证验证服务模块,获取需要验证的交易哈希值和该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证。本发明基于智能合约实现主侧链数据存证和验证,解决主链扩容问题,同时保证侧链公信力和可靠性,可广泛应用于区块链领域。
Description
技术领域
本发明涉及区块链技术领域,尤其是一种基于区块链智能合约的主链存证方法、系统及存储介质。
背景技术
区块链是比特币的基础支撑技术,首次出现在中本聪所撰写的文章《Bitcoin:apeer-to-peer electronic cash system》(比特币:一种点对点的电子现金系统)中,文中详细描述了如何建立一套去中心化的、不需要信任基础的点对点交易体系的实现方法,但实际上并没有明确提出区块链的定义和概念。根据Wikipedia(维基百科)上的定义,其将区块链类比为一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的、不可篡改的数据记录。区块链这个分布式数据库的特点是去中心化、开放、自治、不可篡改。因此区块链技术与去中心化应用息息相关,非常适合为去中心化应用提供存储功能。
虽然区块链可以用来存储数据,但它解决的核心问题是多方的互信问题。单纯从存储数据角度来看,区块链的效率可能不高,而且很多实际的应用场景中也不推荐把大量的原始数据存储到区块链系统上。一般来说,公有链缺乏处理大量交易的能力,会出现网络拥堵,很难达到商业应用的要求。而联盟链或私有链则在一定程度上降低了去中心化的特性,导致公信力会大大降低,但交易的吞吐量却可以得到极大的提升,成为大部分商业应用的首选方案。
在商业应用中,向公有链中直接存储大量的低价值的数据记录显然不是最优的做法。相反,联盟链或私有链可以有效地解决吞吐量问题,但是其公信力却会降低。而出于分层思想,可以考虑设计多条区块链进行数据存储的协同工作,避免增加单一区块链的性能负担、数据过度膨胀以及区块链功能受限等问题。为此,区块链间的互操作性(跨链)被越来越多的人所关注。
起初,区块链间的互操作性更多地是关注在区块链之间资产转移的问题。根据银行联盟R3的一份区块链间互操作性的调研报告介绍,区块链间的互操作性可以分为三种模式:
1、中心化或多重签名的见证人模式notary(应用层级别):见证人是链A的合法用户,负责监听链B的事件和状态,进而操作链A。
2、侧链或中继模式relay(协议层级别):区块链系统本身可以读取链B的事件和状态。
3、哈希锁定模式hash-locking(协议层级别):在链AB间设定相互操作的触发器,通常是个待披露明文的随机数的hash值。
上述三种模式中,应用层级别的方案可以很好地解决区块链的交互问题,而且不需修改区块链中任何的协议,目前区块链市场上存在的各种形形色色的虚拟货币交易所从侧面说明了这种实现方案的便利性。而其余两种方案由于需要修改区块链协议层部分,系统的正确性还需要经过时间去验证,而且现阶段稳定的区块链系统还比较少,因此经过修改区块链协议层部分所实现的跨链方案有可能存在比较大的风险。
现有的区块链互操作性方案,即跨链技术方案的研究还处于初始阶段,目前已有的项目包括:BTCRelay、闪电网络,polkadot以及InterLedger等。这些跨链技术方案的着重点都是实现公有链之间的价值转移。
对于区块链商业应用而言,大部分都是基于联盟链或私有链实现的,这些区块链应用为了提升交易的处理速度而选择牺牲了去中心化特性,在一定程度上违背了区块链核心所解决的多方互信问题原则。然而公有链虽然具备完整的去中心化特性,但是其交易效率却又成为一个缺点,即是说公有链存在一个扩容的问题,交易吞吐量受限。因此,在区块链技术生态里,交易效率与公信力之间存在一个权衡取舍。
针对区块链系统中交易效率与公信力之间的权衡取舍问题,可以通过区块链间的互操作性方案解决。然而现有的区块链间互操作性方案都集中在实现公有链的价值转移,很少考虑到利用跨链技术方案来为联盟链或私有链提升公信力以及扩展公有链的容量,即利用跨链技术方案,在公有链上存证联盟链或私有链的数据信息,从而提升联盟链或私有链的公信力,同时,将大量的繁杂的交易处理迁移到联盟链或私有链上以克服公有链的交易效率低下问题。
发明内容
为了解决上述技术问题,本发明的目的是:提供一种基于区块链智能合约解决主链扩容问题和提高侧链公信力、可靠性的主链存证方法以及执行此方法的存储介质。
为了解决上述技术问题,本发明的另一目的是:提供一种基于区块链智能合约解决主链扩容问题和提高侧链公信力、可靠性的主链存证系统。
本发明所采用的技术方案是:一种基于区块链智能合约的主链存证方法,包括有以下步骤:
侧链存证者生成区块链主链上的存证服务帐户及私钥,并向存证服务帐户转入资金;
使用主链存证服务帐户在主链上部署Relay(中继链)存证合约;
在侧链存证者所拥有的侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中;
在侧链用户的本地节点部署主链存证验证服务模块;
主链存证验证服务模块获取需要验证的交易哈希值,并从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链上进行存证。
进一步,还包括有以下步骤:在需要注销侧链时,停止运行在侧链存证者节点上部署的用于在主链与侧链之间传输数据的主链存证模块。
进一步,所述使用主链存证服务帐户在主链上部署Relay存证合约这一步骤中,所述主链上部署的Relay存证合约用于存储侧链产生的区块头信息。
进一步,所述在侧链存证者所拥有的侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中这一步骤,具体包括有以下子步骤:
在侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息;
通过主链的存证服务帐户调用Relay存证合约,将侧链区块头信息的rlp编码作为参数传输至主链上的Relay存证合约;
Relay存证合约根据侧链区块头信息的rlp编码计算出父区块哈希值,判断父区块哈希值是否已存在于Relay存证合约的区块头哈希集合中,若存在,则计算该侧链区块头的哈希值和交易哈希根,并将侧链区块头的哈希值存储到Relay存证合约的区块头的哈希集合数据结构里,并存储该侧链区块头信息的rlp编码。
进一步,所述主链存证验证服务模块获取需要验证的交易哈希值,从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证这一步骤,具体包括有以下子步骤:
所述主链存证验证服务模块获取需要验证的交易哈希值;
主链存证验证服务模块根据该交易哈希值向侧链全节点获取该交易所在区块的数据结构;
根据该交易所在区块的数据结构中的交易信息重构交易字典树;
根据该交易哈希值的交易索引的rlp编码,从上述交易字典树中获取该交易的证明参数,所述该交易的证明参数包括有该交易的所有父母节点、该交易的路径和该交易的交易内容的rlp编码;
调用Relay存证合约的验证函数,根据MPT树的规则对将父母节点中的每一个节点与该节点的父母节点中存储的哈希值进行比较,直到最后一个节点,对该最后一个节点的rlp编码的哈希值与传过来的交易内容rlp编码的哈希值进行比较,若比较结果全相等,则存证成功。
本发明所采用的技术方案是:一种基于区块链智能合约的主链存证系统,包括有
帐户及私钥生成模块,用于生成侧链存证者在区块链主链上的存证服务帐户及私钥,并向存证服务帐户转入资金;
侧链注册模块,用于在主链部署Relay存证合约以及在侧链存证者节点部署主链存证模块;
主链存证模块,用于在主链和侧链之间传输数据,具体为周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中;
主链存证验证服务模块,用于获取需要验证的交易哈希值,并从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证。
进一步,还包括有侧链注销模块,用于在需要注销侧链时,停止运行在侧链存证者节点上部署的用于在主链与侧链之间传输数据的主链存证模块;和/或,所述主链上部署的Relay存证合约用于存储侧链产生的区块头信息。
进一步,所述主链存证模块具体用于实现以下步骤:
在侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,该模块周期性地获取侧链的新产生的区块头信息;
通过主链的存证服务帐户调用Relay存证合约,将侧链区块头信息的rlp编码作为参数传输至主链上Relay存证合约;
Relay存证合约根据侧链区块头信息的rlp编码计算出父区块哈希值,判断父区块哈希值是否已存在于Relay存证合约的区块头哈希集合中,若存在则计算该侧链区块头的哈希值和交易哈希根,并将侧链区块头的哈希值存储到Relay存证合约的区块头的哈希集合数据结构里,并存储该侧链区块头信息的rlp编码。
进一步,所述主链存证验证服务模块具体用于实现以下步骤:
所述主链存证验证服务模块获取需要验证的交易哈希值;
主链存证验证服务模块根据该交易哈希值向侧链全节点获取该交易所在区块的数据结构;
根据该交易所在区块的数据结构中的交易信息重构交易字典树;
根据该交易哈希值的交易索引的rlp编码,从上述交易字典树中获取该交易的证明参数,所述该交易的证明参数包括有该交易的所有父母节点、该交易的路径和该交易的交易内容的rlp编码;
调用Relay存证合约的验证函数,根据MPT树的规则对将父母节点中的每一个节点与该节点的父母节点中存储的哈希值进行比较,直到最后一个节点,对该最后一个节点的rlp编码的哈希值与传过来的交易内容rlp编码的哈希值进行比较,若比较结果全相等,则存证成功。
本发明所采用的技术方案是:一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被计算机运行时,执行所述基于区块链智能合约的主链存证方法。
本发明的有益效果是:基于智能合约实现主链和侧链的数据存证和验证,解决了主链扩容的问题,以较低成本存储大量数据,同时保证了侧链的公信力和可靠性;并且采用程序自动维护,无需通过主链的个人用户去竞争维护主链上的智能合约。
附图说明
图1为本发明方法的步骤流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
参照图1,本发明一具体实施方式:一种基于区块链智能合约的主链存证方法,包括有以下步骤:
侧链注册:
侧链存证者生成以太坊区块链主链上的存证服务帐户及私钥,并向该存证服务帐户转入一笔资金,例如Ether;
转入资金后,使用该主链存证服务帐户在主链上部署Relay存证合约;
进一步作为优选的实施方式,所述主链上部署的Relay存证合约用于存储侧链产生的区块头信息。
部署Relay存证合约后在侧链存证者所拥有的侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,配置好上述创建的存证服务帐户,即设置相应的侧链存证服务模块以及Relay存证合约地址的配置信息,使用以太坊的Ether,从而完成侧链的注册;
主链存证:
主链存证模块用于在主链和侧链之间传输数据,该模块周期性地获取侧链的新产生的区块头信息,存储到主链上Relay存证合约的数据结构中;
进一步作为优选的实施方式,具体包括有以下子步骤:
在侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,该模块周期性地获取侧链的新产生的区块头信息,区块头信息经过侧链共识确认,获取频率可以在主链存证模块中设置;
主链存证模块根据获取的区块头信息,通过主链的存证服务帐户调用Relay存证合约,将侧链区块头信息的rlp(Recursive Length Prefix,递归的长度前缀)编码作为参数传输至主链上的Relay存证合约;
Relay存证合约根据侧链区块头信息的rlp编码计算出父区块哈希值(PrevBlockHash),即前一区块头的哈希值;判断该父区块哈希值是否已存在于Relay存证合约区块头哈希集合中,若存在,则计算该侧链区块头的哈希值和交易哈希根,并将侧链区块头的哈希值存储到Relay存证合约区块头的哈希集合数据结构里,并存储该侧链区块头信息的rlp编码,用于后续对区块头信息的操作。
所述Relay存证合约存储的信息的数据结构包括有:侧链所有已存证区块头哈希的集合和侧链所有区块的交易哈希根的集合以及侧链区块头的rlp编码。
侧链交易的主链存证验证:在侧链用户的本地节点部署主链存证验证服务模块;
主链存证验证服务模块获取需要验证的交易哈希值(hash),并向侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证。
进一步作为优选的实施方式,还包括有以下步骤:
所述主链存证验证服务模块获取需要验证的交易哈希值;
主链存证验证服务模块根据该交易哈希值向侧链全节点获取该交易所在区块的数据结构;
根据该交易所在区块的数据结构中的交易信息重构交易字典树,即利用交易哈希根构建一棵字典树;所述字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计;
根据该交易哈希值的交易索引(transaction Index)的rlp编码,从上述交易字典树中获取该交易的证明参数,所述交易的证明参数包括该交易内容的rlp编码、该交易的所有父母节点和该交易的路径;
调用Relay存证合约的验证函数(verify函数),根据MPT树(Merkle PatriciaTree,梅克尔帕特里夏树)的规则对将该交易父母节点中的每一个节点与该节点的父母节点中存储的哈希值进行比较,直到最后一个节点,对该最后一个节点的rlp编码的哈希值与传过来的交易内容rlp编码的哈希值进行比较,若比较结果全相等,则存证成功;这里,MPT树实际上是一种Trie前缀树,是以太坊中的一种加密认证的树形数据结构,可以用来存储所有的(key,value)对。
侧链注销:
在需要注销侧链时,停止运行侧链存证者节点部署的主链存证模块,即停止Relayer(中继者)的运行;所述Relayer为主链存证服务程序,负责侧链与主链的区块通信操作。
对应上述一种基于区块链智能合约的主链存证方法,本发明的另一具体实施方式:一种基于区块链智能合约的主链存证系统,包括有
帐户及私钥生成模块,用于生成侧链存证者在区块链主链上的存证服务帐户及私钥,并向存证服务帐户转入资金;
侧链注册模块,用于在主链部署Relay存证合约以及在侧链存证者节点部署主链存证模块;主链存证模块,用于在主链和侧链之间传输数据,该模块周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中;
主链存证验证服务模块,用于获取需要验证的交易哈希值,并从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证。每个侧链用户需在自己节点上主动部署主链存证验证服务模块。
进一步作为优选的实施方式,该主链存证系统还包括有侧链注销模块,用于在需要注销侧链时,停止运行在侧链存证者节点上部署的用于在主链与侧链之间传输数据的主链存证模块。
进一步作为优选的实施方式,所述主链上部署的Relay存证合约用于存储侧链产生的区块头信息。
进一步作为优选的实施方式,所述主链存证模块具体用于实现以下步骤:
在侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,该主链存证模块周期性地获取侧链的新产生的区块头信息;
根据获取的区块头信息,通过主链的存证服务帐户调用Relay存证合约,将区块头信息的rlp编码作为参数传输至主链上Relay存证合约;
Relay存证合约根据侧链区块头信息的rlp编码计算出父区块哈希值,判断该父区块哈希值是否已存在于Relay存证合约区块头哈希集合中,若存在,则计算该侧链区块头的哈希值和交易哈希根,并将侧链区块头的哈希值存储到Relay存证合约区块头的哈希集合数据结构中,并存储该侧链区块头信息的rlp编码,用于后续对区块头信息的操作。
进一步作为优选的实施方式,所述主链存证验证服务模块具体用于实现以下步骤:
所述主链存证验证服务模块获取需要验证的交易哈希值;
主链存证验证服务模块根据该交易哈希值向侧链全节点获取该交易所在区块的数据结构;
根据该交易所在区块的数据结构中的交易信息重构交易字典树;
根据该交易哈希值的交易索引的rlp编码,从上述交易字典树中获取该交易的证明参数,所述交易的证明参数包括该交易的所有父母节点、该交易的路径和该交易的交易内容的rlp编码;
调用Relay存证合约的验证函数,根据MPT树的规则对将父母节点中的每一个节点与该节点的父母节点中存储的哈希值进行比较,直到最后一个节点,对该最后一个节点的rlp编码的哈希值与传过来的交易内容rlp编码的哈希值进行比较,若比较结果全相等,则存证成功。
本公开可以实现为方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令,也就是说,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被计算机运行时,执行所述基于区块链智能合约的主链存证方法。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变换或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种基于区块链智能合约的主链存证方法,其特征在于,包括以下步骤:
侧链存证者生成区块链主链上的存证服务帐户及私钥,并向存证服务帐户转入资金;
使用主链存证服务帐户在主链上部署Relay存证合约;
在侧链存证者所拥有的侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中;
在侧链用户的本地节点部署主链存证验证服务模块;
主链存证验证服务模块获取需要验证的交易哈希值,并从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链上进行存证。
2.根据权利要求1所述的一种基于区块链智能合约的主链存证方法,其特征在于,还包括有以下步骤:在需要注销侧链时,停止运行在侧链存证者节点上部署的用于在主链与侧链之间传输数据的主链存证模块。
3.根据权利要求1所述的一种基于区块链智能合约的主链存证方法,其特征在于:所述使用主链存证服务帐户在主链上部署Relay存证合约这一步骤中,所述主链上部署的Relay存证合约用于存储侧链产生的区块头信息。
4.根据权利要求1所述的一种基于区块链智能合约的主链存证方法,其特征在于:所述在侧链存证者所拥有的侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中这一步骤,具体包括有以下子步骤:在侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息;
通过主链的存证服务帐户调用Relay存证合约,将侧链区块头信息的rlp编码作为参数传输至主链上的Relay存证合约;
Relay存证合约根据侧链区块头信息的rlp编码计算出父区块哈希值,判断父区块哈希值是否已存在于Relay存证合约的区块头哈希集合中,若存在,则计算该侧链区块头的哈希值和交易哈希根,并将侧链区块头的哈希值存储到Relay存证合约的区块头的哈希集合数据结构里,并存储该侧链区块头信息的rlp编码。
5.根据权利要求4所述的一种基于区块链智能合约的主链存证方法,其特征在于:所述主链存证验证服务模块获取需要验证的交易哈希值,从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链上进行存证这一步骤,具体包括有以下子步骤:
所述主链存证验证服务模块获取需要验证的交易哈希值;
主链存证验证服务模块根据该交易哈希值向侧链全节点获取该交易所在区块的数据结构;
根据该交易所在区块的数据结构中的交易信息重构交易字典树;
根据该交易哈希值的交易索引的rlp编码,从上述交易字典树中获取该交易的证明参数,所述该交易的证明参数包括有该交易的所有父母节点、该交易的路径和该交易的交易内容的rlp编码;
调用Relay存证合约的验证函数,根据MPT树的规则对将父母节点中的每一个节点与该节点的父母节点中存储的哈希值进行比较,直到最后一个节点,对该最后一个节点的rlp编码的哈希值与传过来的交易内容rlp编码的哈希值进行比较,若比较结果全相等,则存证成功。
6.一种基于区块链智能合约的主链存证系统,其特征在于,包括:
帐户及私钥生成模块,用于生成侧链存证者在区块链主链上的存证服务帐户及私钥,并向存证服务帐户转入资金;
侧链注册模块,用于在主链部署Relay存证合约以及在侧链存证者节点部署主链存证模块;
主链存证模块,用于在主链和侧链之间传输数据,周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中;
主链存证验证服务模块,用于获取需要验证的交易哈希值,并从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证。
7.根据权利要求6所述的一种基于区块链智能合约的主链存证系统,其特征在于:还包括侧链注销模块,用于在需要注销侧链时,停止运行在侧链存证者节点上部署的用于在主链与侧链之间传输数据的主链存证模块;和/或,所述主链上部署的Relay存证合约用于存储侧链产生的区块头信息。
8.根据权利要求6所述的一种基于区块链智能合约的主链存证系统,其特征在于:所述主链存证模块具体用于实现以下步骤:
在侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,该主链存证模块周期性地获取侧链的新产生的区块头信息;
通过主链的存证服务帐户调用Relay存证合约,将侧链区块头信息的rlp编码作为参数传输至主链上Relay存证合约;
Relay存证合约根据侧链区块头信息的rlp编码计算出父区块哈希值,判断父区块哈希值是否已存在于Relay存证合约的区块头哈希集合中,若存在,则计算该侧链区块头的哈希值和交易哈希根,并将侧链区块头的哈希值存储到Relay存证合约的区块头的哈希集合数据结构里,并存储该侧链区块头信息的rlp编码。
9.根据权利要求8所述的一种基于区块链智能合约的主链存证系统,其特征在于:所述主链存证验证服务模块用于实现以下步骤:
所述主链存证验证服务模块获取需要验证的交易哈希值;
主链存证验证服务模块根据该交易哈希值向侧链全节点获取该交易所在区块的数据结构;
根据该交易所在区块的数据结构中的交易信息重构交易字典树;
根据该交易哈希值的交易索引的rlp编码,从上述交易字典树中获取该交易的证明参数,所述该交易的证明参数包括有该交易的所有父母节点、该交易的路径和该交易的交易内容的rlp编码;
调用Relay存证合约的验证函数,根据MPT树的规则对将父母节点中的每一个节点与该节点的父母节点中存储的哈希值进行比较,直到最后一个节点,对该最后一个节点的rlp编码的哈希值与传过来的交易内容rlp编码的哈希值进行比较,若比较结果全相等,则存证成功。
10.一种计算机可读存储介质,其上存储有计算机程序代码,所述计算机程序代码在被计算机运行时,执行如权利要求1至5中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910167609.0A CN110033243B (zh) | 2019-03-06 | 2019-03-06 | 基于区块链智能合约的主链存证方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910167609.0A CN110033243B (zh) | 2019-03-06 | 2019-03-06 | 基于区块链智能合约的主链存证方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110033243A CN110033243A (zh) | 2019-07-19 |
CN110033243B true CN110033243B (zh) | 2023-01-10 |
Family
ID=67235085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910167609.0A Active CN110033243B (zh) | 2019-03-06 | 2019-03-06 | 基于区块链智能合约的主链存证方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110033243B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490282A (zh) * | 2019-08-21 | 2019-11-22 | 湖南道业信息科技有限公司 | 溯源方法、溯源装置、溯源系统和存储介质 |
CN110689429B (zh) * | 2019-09-10 | 2022-08-26 | 海南新软软件有限公司 | 一种存证交易数据的方法、装置及系统 |
CN112633868B (zh) * | 2019-10-08 | 2023-04-14 | 橙载(上海)信息技术有限公司 | 一种基于智能合约实现的跨链资产转移方法 |
CN110690974B (zh) * | 2019-12-10 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 基于区块链的数据验证方法、装置、设备及可读存储介质 |
CN111160881A (zh) * | 2019-12-11 | 2020-05-15 | 马上游科技股份有限公司 | 去中心化的侧链发行锚定主链代币的方法及系统 |
CN111274313B (zh) * | 2020-01-12 | 2023-05-30 | 杭州复杂美科技有限公司 | 分段共识方法、设备和存储介质 |
WO2021154157A1 (en) * | 2020-01-31 | 2021-08-05 | Agency For Science, Technology And Research | Blockchain-based data exchange |
CN111342972B (zh) * | 2020-02-24 | 2023-09-15 | 百度在线网络技术(北京)有限公司 | 一种区块链的事务实现方法、装置、设备和介质 |
CN111640017B (zh) * | 2020-05-06 | 2024-05-28 | 深圳前海微众银行股份有限公司 | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 |
CN111524011B (zh) * | 2020-05-06 | 2023-05-30 | 杭州复杂美科技有限公司 | 平行链共识确认方法、设备和存储介质 |
CN111737362B (zh) * | 2020-07-22 | 2020-12-22 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备和存储介质 |
CN111970370B (zh) * | 2020-08-26 | 2021-06-22 | 电子科技大学 | 基于面向通信设备体系的多层区块链协议拓展系统及方法 |
CN112256792A (zh) * | 2020-09-17 | 2021-01-22 | 南京数字星球科技有限公司 | 一种区块链跨链数据交互和验证方法、区块链系统及存储介质 |
CN112100269B (zh) * | 2020-11-19 | 2021-02-12 | 北京连琪科技有限公司 | 一种可举证的接口协同方法及系统 |
CN113660092B (zh) * | 2021-07-30 | 2024-01-23 | 国网天津市电力公司 | 一种基于零知识证明的电力数据上传系统和方法 |
CN113643040A (zh) * | 2021-08-14 | 2021-11-12 | 深圳众享互联科技有限公司 | 一种跨区块链的交易验证方法 |
CN113763173A (zh) * | 2021-08-25 | 2021-12-07 | 甘肃同兴智能科技发展有限责任公司 | 一种基于区块链的电网交易一体可视化数据共享平台 |
CN114925141B (zh) * | 2022-07-21 | 2022-09-30 | 南京智人云信息技术有限公司 | 一种基于区块链的云原生自动化部署管理系统及方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301536A (zh) * | 2017-06-12 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 资源转移方法及装置 |
CN107464106A (zh) * | 2017-07-25 | 2017-12-12 | 北京果仁宝科技有限公司 | 区块链主链与侧链间交易的方法及系统 |
CN107733855A (zh) * | 2017-08-31 | 2018-02-23 | 中国科学院信息工程研究所 | 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法 |
CN107844976A (zh) * | 2017-10-25 | 2018-03-27 | 武汉天喻信息产业股份有限公司 | 一种基于区块链的存证应用交易系统及方法 |
CN107992621A (zh) * | 2017-12-22 | 2018-05-04 | 杭州云象网络技术有限公司 | 一种基于区块链多链技术融合的智能电影产业服务系统 |
GB201804627D0 (en) * | 2018-03-22 | 2018-05-09 | Chaddenwych Services Ltd | A method of communicating |
CN108600301A (zh) * | 2018-03-08 | 2018-09-28 | 青岛墨客区块链有限公司 | 一种区块链之间的跨链方法及主区块链 |
CN108694669A (zh) * | 2018-07-18 | 2018-10-23 | 矩阵元技术(深圳)有限公司 | 一种区块链智能合约实现方法及装置 |
CN108881187A (zh) * | 2018-05-31 | 2018-11-23 | 杭州秘猿科技有限公司 | 一种适用于许可链场景的跨链数据传递方法及设备 |
CN108984645A (zh) * | 2018-06-25 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN109117097A (zh) * | 2018-09-05 | 2019-01-01 | 深圳正品创想科技有限公司 | 一种基于区块链的数据存储方法及系统 |
CN109241087A (zh) * | 2018-09-27 | 2019-01-18 | 福建福链科技有限公司 | 一种联盟链的数据处理方法及终端 |
-
2019
- 2019-03-06 CN CN201910167609.0A patent/CN110033243B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301536A (zh) * | 2017-06-12 | 2017-10-27 | 腾讯科技(深圳)有限公司 | 资源转移方法及装置 |
CN107464106A (zh) * | 2017-07-25 | 2017-12-12 | 北京果仁宝科技有限公司 | 区块链主链与侧链间交易的方法及系统 |
CN107733855A (zh) * | 2017-08-31 | 2018-02-23 | 中国科学院信息工程研究所 | 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法 |
CN107844976A (zh) * | 2017-10-25 | 2018-03-27 | 武汉天喻信息产业股份有限公司 | 一种基于区块链的存证应用交易系统及方法 |
CN107992621A (zh) * | 2017-12-22 | 2018-05-04 | 杭州云象网络技术有限公司 | 一种基于区块链多链技术融合的智能电影产业服务系统 |
CN108600301A (zh) * | 2018-03-08 | 2018-09-28 | 青岛墨客区块链有限公司 | 一种区块链之间的跨链方法及主区块链 |
GB201804627D0 (en) * | 2018-03-22 | 2018-05-09 | Chaddenwych Services Ltd | A method of communicating |
CN108881187A (zh) * | 2018-05-31 | 2018-11-23 | 杭州秘猿科技有限公司 | 一种适用于许可链场景的跨链数据传递方法及设备 |
CN108984645A (zh) * | 2018-06-25 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN108694669A (zh) * | 2018-07-18 | 2018-10-23 | 矩阵元技术(深圳)有限公司 | 一种区块链智能合约实现方法及装置 |
CN109117097A (zh) * | 2018-09-05 | 2019-01-01 | 深圳正品创想科技有限公司 | 一种基于区块链的数据存储方法及系统 |
CN109241087A (zh) * | 2018-09-27 | 2019-01-18 | 福建福链科技有限公司 | 一种联盟链的数据处理方法及终端 |
Non-Patent Citations (2)
Title |
---|
区块链综述:技术与挑战;王锡亮等;《无线电通信技术》;20180601;第531-537页 * |
基于区块链技术的武汉长江中游航运结算中心整体架构研究;周毓萍等;《金融理论与实践》;20190131;第26-30页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110033243A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110033243B (zh) | 基于区块链智能合约的主链存证方法、系统及存储介质 | |
Xie et al. | zkbridge: Trustless cross-chain bridges made practical | |
US11799660B2 (en) | Optimizations for verification of interactions system and method | |
US20240074004A1 (en) | Verification of interactions system and method | |
CN110245956B (zh) | 一种基于异步多链的区块链交易确认方法及系统 | |
CN111539731A (zh) | 基于区块链的联邦学习方法及装置和电子设备 | |
CN110827028B (zh) | 一种基于区块链的数据采集交易系统和方法 | |
US11468044B2 (en) | Optimizations for verification of interactions system and method using probability density functions | |
CN105164971A (zh) | 具有额外安全性的用于低熵输入记录的核验系统和方法 | |
CN110177109B (zh) | 一种基于标识密码和联盟链的双代理跨域认证系统 | |
US20220405260A1 (en) | Systems and methods for processing blockchain transactions | |
US20220407728A1 (en) | Systems and methods for processing blockchain transactions | |
CN110930152B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN107707354A (zh) | 一种基于椭圆曲线加密法的云存储数据验证方法及系统 | |
CN111641712A (zh) | 区块链数据更新方法、装置、设备、系统及可读存储介质 | |
CN113902384B (zh) | 一种基于rfid和智能合约的溯源方法及系统 | |
CN111640018B (zh) | 一种区块链交易存在性验证方法及装置 | |
CN113010922A (zh) | 一种防篡改的能源工业互联网多边缘链数据共享方法 | |
CN112258189A (zh) | 基于区块链的签约管理方法及装置和电子设备 | |
CN109873828B (zh) | 资源管理方法、装置、设备和存储介质 | |
CN109995775A (zh) | 区块链验证码应用方法、设备和存储介质 | |
CN110189440A (zh) | 一种基于区块链的智能锁监管设备及其方法 | |
CN116866428A (zh) | 用于全生命周期成果保护的系统 | |
CN109063513A (zh) | 一种基于Hadoop平台的动态数据完整性验证方法 | |
Junxiang et al. | Dynamic provable data possession with batch-update verifiability |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |