一种区块链可信验证方法及装置与流程

文档序号:17117349发布日期:2019-03-15 23:27阅读:463来源:国知局
一种区块链可信验证方法及装置与流程

本发明涉及区块链技术,尤其涉及一种区块链可信验证方法及装置。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

目前,随着区块链的出现和发展,已经在一些领域改变了人们的生活方式。与此同时区块链技术还在持续发展,智能合约已经诞生,各种主链也层出不穷。主链技术的竞争集中在智能合约、tps、存储、是否充分去中心化方面。但tps与去中心化程度一直是个矛盾,要高tps就需要中心化,要去中心化就会出现低tps。中心化太高,就会违背区块链本质,其中问题之一,是信任问题。信任问题出现在两方面,一是运营者主观情况下可以轻易修改、分叉数据;二是非主观情况下(例如遇到恶意算力攻击、黑客攻击)可以被轻易修改。如图1所示,区块链信任主要由共识算法和去中心化程度来体现。中心化程度主要体现在节点数目上(实际就是算力),节点越多越去中心、信任基础越强。

在现实中常有新的公链出现,但是刚开始节点数并不多,甚至只有个位数的节点,而去中心化程度需要增加节点数、需要分散利益到各节点,但是增加许多节点在一条新公链的早期不太现实,此时很容易出现信任问题。如果能出现用较少节点也能达到较高可信程度,将会对新链,甚至私链都有非常重要意义。



技术实现要素:

本发明的目的在于为克服现有技术的缺陷,而提供一种区块链可信验证方法及装置,以通过较少节点达到高可信度。

为实现上述目的,本发明采用以下技术方案:

一种区块链可信验证方法采用了主链以及至少一条参考链,参考链中含有智能合约,可信验证方法包括以下步骤:定期写入步骤,定期将主链的当前节点信息和当前区块信息,写入其中一条参考链的智能合约;定期验证步骤,定期结合参考链存储的节点信息、区块信息与主链信息进行验证。

在其中一方面,主链的当前节点信息包括当前节点时间。定期验证步骤包括:对比主链当前节点时间与参考链上一次的保存时间,两者之差若大于设定阈值,则判定为异常。

在另一方面,定期验证步骤包括:对比参考链上两次保存的时间差,若时间差大于设定阈值,则判定为异常。

在其中一方面,主链的当前区块信息包括当前区块hash以及当前块高度。定期验证步骤包括:判断参考链上保存的区块hash是否存在于主链中,若不存在,则判定为异常。定期验证步骤包括:判断参考链上的区块高度与区块hash的映射对照关系是否与主链相应的对照关系是否匹配,若不匹配,则判定为异常。

在其中一方面,若在定期验证步骤中判断为异常,则将当前数据回滚到正确数据时间点上,丢弃中间异常数据。

本发明还公开了一种电子设备,包括:处理器;以及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现以上的区块链可信验证方法。

本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现根据以上的区块链可信验证方法。

本发明与现有技术相比的有益效果是:通过引用至少一条参考链作记录,理论上只需要有一个节点以上,都可以证明主链数据在一段时间内是未被篡改的,即使运营方也无法修改这些数据,用较少节点也能达到较高可信程度,降低了新链、私链的运营成本,同时可以保证新链、私链的可信度。

附图说明

图1为现有技术中区块链信任机制示意图。

图2为本发明中区块链信任机制示意图。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案作进一步介绍和说明。

如图2所示,本实施例的区块链信任机制中,往主链中加入一条参考链来做记录和验证,在其他实施例中,也可以采用多于一条参考链来作记录和验证。参考链为以太坊公链,在其中开发一个智能合约。

本实施例的可信验证方法包括定期写入步骤和定期验证步骤。在主链刚建立时,在主链有数据时便可以开始进行定期写入步骤,当参考链有记录后,便可以进行定期验证步骤。

定期写入步骤主要内容是定期将主链的当前节点信息和当前区块信息,写入参考链的智能合约中做记录。定期写入步骤的主要目的是做记录,也即是在参考链中做主链相关数据情况的备份记录。定期写入步骤中的“定期”是指间隔一定的时间写入,这个间隔期限可以根据具体的情况决定:若主链的数据写入频繁,可以设定间隔期限更短一些,譬如15分钟;若主链的数据写入不频繁,可以将间隔期设定长一些,譬如两个小时或更长。要注意的是,间隔期限越短,对系统性能要求更高。

定期写入步骤中,主链的当前节点信息包括当前节点时间,主链的当前区块信息包括当前区块hash以及当前块高度。在区块链技术中,节点是指区块链去中心化应用所涉及到的服务器。记录节点时间,目的是可以通过对比前后时间差以检测是否存在异常。区块链的基本组成是一个个的区块,这些的区块是用来承载数据的,每一个区块里面都承载着某一个时间段的数据。区块的内部结构分为头部、元数据和一系列的交易记录。区块的两个主要标识:区块hash(即区块头部哈希值)和区块高度。区块hash即为区块自身头部进行二次哈希计算产生的加密哈希值。区块高度是区块链接在主链的个数,也就是连接在区块链上的块数。

定期验证步骤主要内容是:定期结合参考链存储的节点信息、区块信息与主链信息进行验证。定期验证步骤其中一步是:对比主链当前节点时间与参考链上一次的保存时间,两者之差若大于设定阈值,则判定为异常。譬如,主链定期每x单位时间内向参考链的智能合约写入一次记录,那么此处阈值的应该为加上参考链误差y单位时间和主链误差z单位时间,那么在验证的时候主链当前节点时间与参考链上一次的保存时间之差应当大于x+y+z单位时间。而如果时间差大于阈值,则判定为异常,中间数据有可能被篡改,需要将当前数据(主链数据、参考链的智能合约)回滚到正确数据时间点上,丢弃中间异常数据。

定期验证步骤的另一步是:对比参考链上两次保存的时间差,若时间差大于设定阈值,则判定为异常。譬如,主链定期每x单位时间内向参考链的智能合约写入一次记录,那么此处阈值的应该为加上参考链误差y单位时间和主链误差z单位时间,那么在验证的时候参考链上两次保存的时间差应当大于x+y+z单位时间。而如果时间差大于阈值,则判定为异常,中间数据或者时间有可能被篡改,需要将当前数据(主链数据、参考链的智能合约)回滚到正确数据时间点上,丢弃中间异常数据。

定期验证步骤中还有一步是:判断参考链上保存的区块hash是否存在于主链中,将参考链的区块hash在主链中搜寻,找到了便判定此验证条件通过,若不存在,则判定为异常。若判定为异常,则将当前数据(主链数据、参考链的智能合约)回滚到正确数据时间点上,丢弃中间异常数据。

定期验证步骤中还有一步是:判断参考链上的区块高度与区块hash的映射对照关系是否与主链相应的对照关系是否匹配,若不匹配,则判定为异常。区块高度与区块hash的映射对照关系可以是类似std::map<区块高度,区块hash>这种映射,或者类似structxxx{区块高度;区块hash;}这种映射关系。若两者不匹配,则直接判定为异常,中间数据有可能被篡改,需要将当前数据(主链数据、参考链的智能合约)回滚到正确数据时间点上,丢弃中间异常数据。

本实施例还有一种电子设备包括:处理器;以及存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时实现本实施例的区块链可信验证方法。

本实施例还有一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现根据本实施例的区块链可信验证方法。

本实施例的区块链可信验证方法通过引用至少一条参考链作记录,理论上只需要有一个节点以上,都可以证明主链数据在一段时间内是未被篡改的,即使运营方也无法修改这些数据,用较少节点也能达到较高可信程度。而且在定期验证步骤对区块链关键的特征(时间差、映射对照关系)进行验证,通过保证区块链关键特征正确来保证区块链数据正确完整、可信度高。

以上陈述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。

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