基于区块链智能合约的主链存证方法、系统及存储介质技术方案

技术编号:21659855 阅读:76 留言:0更新日期:2019-07-20 05:55
本发明专利技术公开基于区块链智能合约的主链存证方法、系统及存储介质,该方法步骤为:侧链存证者生成区块链主链上的存证服务帐户及私钥,并向该帐户转入资金;使用主链存证服务帐户在主链上部署Relay存证合约;在侧链存证者节点上部署主链存证模块,周期性获取侧链的新区块头信息并存储到主链上Relay存证合约;在侧链用户的本地节点部署主链存证验证服务模块,获取需要验证的交易哈希值和该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链进行存证。本发明专利技术基于智能合约实现主侧链数据存证和验证,解决主链扩容问题,同时保证侧链公信力和可靠性,可广泛应用于区块链领域。

Main Chain Certificate Storage Method, System and Storage Media Based on Block Chain Intelligent Contract

【技术实现步骤摘要】
基于区块链智能合约的主链存证方法、系统及存储介质
本专利技术涉及区块链
,尤其是一种基于区块链智能合约的主链存证方法、系统及存储介质。
技术介绍
区块链是比特币的基础支撑技术,首次出现在中本聪所撰写的文章《Bitcoin:apeer-to-peerelectroniccashsystem》(比特币:一种点对点的电子现金系统)中,文中详细描述了如何建立一套去中心化的、不需要信任基础的点对点交易体系的实现方法,但实际上并没有明确提出区块链的定义和概念。根据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编码的哈希值进行比较,若比较结果全相等,则存证成功。本专利技术所采用的技术方案是:一本文档来自技高网
...

【技术保护点】
1.一种基于区块链智能合约的主链存证方法,其特征在于,包括以下步骤:侧链存证者生成区块链主链上的存证服务帐户及私钥,并向存证服务帐户转入资金;使用主链存证服务帐户在主链上部署Relay存证合约;在侧链存证者所拥有的侧链存证者节点上部署用于在主链和侧链之间传输数据的主链存证模块,主链存证模块周期性地获取侧链的新产生的区块头信息并存储到主链上Relay存证合约的数据结构中;在侧链用户的本地节点部署主链存证验证服务模块;主链存证验证服务模块获取需要验证的交易哈希值,并从侧链全节点获取该交易的证明参数,然后调用主链上Relay存证合约中的验证方法判断该交易是否已经在主链上进行存证。

【技术特征摘要】
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树的规则对将父母节点中的每...

【专利技术属性】
技术研发人员:赵淦森王欣明周子衡刘学枫王锡亮莫泽枫
申请(专利权)人:华南师范大学唯链基金会
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1