首页 / 专利库 / 资料储存系统 / 分布式账本 / 区块链 / 区块链账本 / 一种基于预言机的智能合约安全检测方法

一种基于预言机的智能合约安全检测方法

阅读:894发布:2020-05-13

专利汇可以提供一种基于预言机的智能合约安全检测方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于预言机的 智能合约 安全检测方法,包括:(1)全网 节点 通过去中心化的多重预言机安全检测系统准备对智能合约进行安全检测;(2)共识节点将保存完整的智能合约通过纠删码技术编码成多个编码 块 ;(3)从多个见证人节点中按照随机选择成员作为审查节点,这些审查节点随机分配预言机 接口 参数;(4)将编码的智能合约执行编码块相应分布在若干独立的预言机中,设计(t,a)智能合约检测 门 限,达到一致条件的智能合约才能执行。本发明的基于预言机的智能合约安全检测方法具有检测智能合约的功能,通过引入纠删码技术,基于多重预言机模型,保证了检测的效率,确保智能合约的安全执行。,下面是一种基于预言机的智能合约安全检测方法专利的具体信息内容。

1.一种基于预言机的智能合约安全检测方法,其特征在于,包括:
(1)全网N个节点通过去中心化的多重预言机安全检测系统,准备对智能合约进行安全检测;
(2)链上的共识节点将保存完整的智能合约通过纠删码技术编码成多个编码块;
(3)从多个见证人节点中按照审查选举机制随机选择成员作为审查节点,这些审查节点随机分配预言机接口参数;
(4)将步骤(2)中编码的执行编码块相应分布在若干独立的预言机中,设置(t,a)智能合约检测限,达到一致条件的智能合约才能执行。
2.根据权利要求1所述的基于预言机的智能合约安全检测方法,其特征在于,所述步骤(1)中,去中心化的多重预言机安全检测系统包括:
1.1设置激励机制以鼓励全网节点积极参与智能合约代码检测;
1.2公平化审查选举机制,参照激励机制中的记录结果,选举对代码安全检测贡献最大的节点作为见证人节点,并经过投票验证,确保参与选举的见证人节点的身份;
1.3在步骤1.1中设置押金机制,为了鼓励节点接入和鼓励节点积极进行智能合约检测,同时确保节点进行诚实的行为;
1.4基于预言机的安全检测系统中成立与激励机制对应的惩罚机制,确保参与选举或进行智能合约检测的节点考虑自身利益而进行诚实的行为。
3.根据权利要求2所述中任一项所述的基于预言机的智能合约安全检测方法,其特征在于,所述激励的机制包括:前H次进行智能合约检测时,将智能合约编码块均匀分配到各个节点,并分配预言机进行智能合约检测,对参选的节点按照贡献量依次进行奖励,奖励方法按照贡献量的大小计算;达到一定稳定性之后,即超过R个节点对智能合约检测贡献率为M,对这R个节点按照贡献进行排序,排序方法和过程考虑计算成本和参与费用
4.根据权利要求2所述基于预言机的智能合约安全检测方法,其特征在于,所述押金机制包括:全网节点在参与前H次检测时,预交一部分押金,押金数量为由于可能的不诚实行为给全网带来的平均损失,前H次检测完成后退回落选节点的全部押金,对不诚实的节点扣除部分押金;选举预选节点和审查节点完成后,退回预选节点的全部押金,完成智能合约检测后退回部分审查节点的全部押金;其中,有保留继续参与智能合约检测资格的审查节点的押金,每次重新选举的节点需要提交押金。
5.根据权利要求2所述基于预言机的智能合约安全检测方法,其特征在于,所述惩罚机制包括:在选举或进行智能合约检测的过程中,剔除没有贡献甚至不诚实的节点,从预选节点或普通节点中再次选举审查节点和预选节点,并对不诚实的节点进行惩罚。
6.根据权利要求1所述基于预言机的智能合约安全检测方法,其特征在于,所述的步骤(2)中,所述的纠删码技术编码智能合约,其中,改进纠删码技术编码智能合约,将智能合约分成多个编码块,进而便于区块链网络中多重预言机检测,所述步骤(2)包括:
2.1节点通过纠删码技术将其保存的智能合约分块编码成多个编码块;
2.2智能合约编码完成后,所有审查节点根据最近一次接收到的编码控制信息对智能合约进行纠删码编码存储;
2.3生成编码块的摘要,将相关摘要信息记录后,进行签名;
2.4节点访问记录该智能合约编码块的编码块索引数据库,同时向审查节点群即由见证人选举出来的审查节点组成的审查节点群,发起区块编码请求,回溯查询或收集智能合约所在的原始数据库;
2.5接收来自其他节点发送的账本快照,全网所有节点在时间T内达到账本一致状态;
账本达到一致状态后,节点根据智能合约编码存储方案对需要编码分块存储的合约进行纠删码编码,编码后的智能合约分配相应预言机进行检测。
7.根据权利要求1或2所述基于预言机的智能合约安全检测方法,其特征在于,所述步骤(3)的审查选举机制还包括:全网N个节点验证链外数据并将数据上链,当超过h个节点发送同一验证结果认定数据真实,进行奖励和惩罚;按照智能合约检测贡献量从分别选举预选节点和审查节点,审查节点被分配预言机接口进行智能合约检测,并获得相应的奖励;预选节点对审查节点进行备选和监控;当参与选举的节点少于R’时重新开始H次全网智能合约检测,并再次重新计算节点的智能合约检测能,在上一轮检测中做出卓越贡献的节点,可以保留贡献量。
8.根据权利要求1所述基于预言机的智能合约安全检测方法,其特征在于,所述步骤(4)中(t,a)智能合约检测门限设计步骤为:达到或超过t的一致性投票通过的智能合约编码块的数量,预言机检测通过,整个智能合约被证明安全,或对发现错误的智能合约代码进行修改使整体达到t一致性投票数量,其中t是智能合约可以安全执行必须满足的门限值,预言机个数为a。
9.根据权利要求8所述基于预言机的智能合约安全检测方法,其特征在于,(t,a)智能合约检测门限的检测条件包括:a个预言机的网络中需要至少t个预言机达成一致;真正参与一致性检测的审查节点的身份在其他节点处是保密的。

说明书全文

一种基于预言机的智能合约安全检测方法

技术领域

[0001] 本发明属于链智能合约技术领域,具体涉及一种基于预言机的智能合约安全检测方法。

背景技术

[0002] 智能合约的概念几乎与互联网同时出现。1995年密码学家尼克萨博定义智能合约是执行合约条款的可计算交易协议,但早期由于没有适合运行智能合约的平台,智能合约技术并没有得到重视和发展,直到化名为中本聪的学者提出了始于比特币的数字资产交易平台,这种平台具有去中心化、不可篡改的特性使得智能合约有了用武之地。随着智能合约的发展,智能合约的定义清晰起来,一般而言,智能合约是一种不需要借助任何中介、可以进行自我验证、自动执行合约条款的计算机交易协议。智能合约是一种事件驱动程序,基于设定条件的触发自动执行事件,智能合约提高了合约执行的效率,一旦部署就不可篡改,具有确定性,进而保证了区块链的稳定性
[0003] 随着区块链技术的发展,智能合约技术也得到了发展,但是安全问题一直是限制其发展的瓶颈。智能合约的依赖复杂的时间和次序,智能合约本身的漏洞由代码的不确定性和不一致性引起,进而导致不确定的智能合约执行结果,最终导致不确定的法律责任。现有的检测手段包括形式化验证和模糊测试。其中模糊测试的测试用例生成具有随机性,只能涵盖有限的系统行为,路径覆盖率达不到要求,基本上找不出所有潜在错误。形式化验证方法虽然能够完全覆盖代码的运行期行为,但也只能确保智能合约在一定范围内的绝对正确。为了确保智能合约的安全,近年来不少领域开始研究预言机(Oracle)。智能合约的执行条件触发是否满足需要借助预言机,即确定的智能合约对不确定的外界作出反应,通过预言机进行签名并引入关于外界的状态信息,从而实现智能合约不可篡改、服务稳定、可审计等的特点,预言机还具有激励机制以保证智能合约运行的动
[0004] 预言机是区块链和外界的接口,是区块链技术的一个发展方向。对智能合约而言,预言机相当于智能合约的输入参数,输入参数对智能合约的输出结果有直接的影响。预言机与智能合约相互配合,组合成一种可信任的实体,通过签名引入关于区块链外界的信息,众所周知,区块链外界信息的提供者最好不是智能合约的编写者,而是没有利益关系的第三方,从而允许智能合约对外界做出反应。智能合约预言机具有的功能包括:调整智能合约的履行义务;作为一种传达见解或支持解决私人争议的私人仲裁系统:在智能合约中引入仲裁机制,设定信息提供的第三方为仲裁机构(或从互联网上召集陪审团),第三方可以通过签名的方式介入,阻止有险的智能合约执行。
[0005] 智能合约预言机有单一模型和多重模型两种模型。虽然对大多数用户来说单一可信任的预言机已经可以满足要求,但高价值的资产处理需要更高的可信任度。多重预言机又称预言机网络,智能合约代码的执行分布在多个独立的预言机中,提供了更好的安全保障,但模型更复杂,成本更高。
[0006] 纠删码是一种数据保护方法,能够以更小的数据冗余度获得更高的数据可靠性。使用较多的纠删码技术是线性纠删码技术。线性纠删码将k份原始数据增加为m份校验数据,数据和校验数据共同形成n份编码数据,并通过n份编码数据中的任意大于等于k份的编码数据还原出原始数据,若有任意小于等于m份的数据失效,仍然能通过剩余的数据还原出原始数据。基于纠删码的区块文件存储模型中的节点在通过纠删码技术将其保存的区块文件分块编码成多个编码块时,既要使每个节点尽可能少地保留编码块,又要使全网拥有完整的编码块信息。
[0007] 将预言机应用于智能合约的安全检测受到越来越广泛的重视。现有的智能合约预言机发展还不成熟,如何在区块链分布式网络中使预言机能够高效并且准确地检测智能合约是当下研究的重点。

发明内容

[0008] 本发明基于上述背景和现有技术所存在的问题,拟设计一种基于预言机的智能合约安全检测方法,其能够高效检测智能合约,使智能合约的执行过程更加安全。本发明还有一个目的是通过改进纠删码编码方法,提高智能合约预言机的执行效率,以便降低预言机使用成本。
[0009] 为了实现本发明的这些目的和其它优点,提供了一种基于预言机的智能合约安全检测方法:
[0010] (1)全网N个节点通过去中心化的多重预言机安全检测系统准备对智能合约进行安全检测和修改
[0011] (2)区块链上的共识节点将完整的智能合约通过纠删码技术编码成多个编码块。每个节点仅保留部分编码块,全网节点拥有完整的编码块信息,从而使得全网节点尽可能减少存储空间占用,同时保证不丢失原始智能合约数据;
[0012] (3)从多个见证人节点中按照审查选举机制随机选择成员作为审查节点,这些审查节点随机分配预言机接口参数;
[0013] (4)将步骤(2)中编码的执行编码块相应分布在若干独立的预言机中,设计(t,a)智能合约检测限,即代码的执行分布在若干独立的预言机中,达到一致条件的智能合约才能执行。
[0014] 优选的是,所述步骤(1)中,去中心化的多重预言机安全检测系统包括:
[0015] 1.1设置激励机制以鼓励全网节点积极参与智能合约代码检测和修改;
[0016] 1.2公平化审查选举机制,即平均每个节点的权重,防止某些节点的权重过高,参照激励机制中的记录结果,选举对代码安全检测贡献最大的节点作为见证人节点,选举过程必须经过投票验证,确保参与选举的见证人节点的身份;
[0017] 1.3在步骤1.1中设置预交押金机制,为了鼓励节点的接入和鼓励节点积极进行智能合约检测和修改,同时为了确保节点进行诚实的行为;
[0018] 1.4基于预言机的安全检测系统中成立与激励机制对应的惩罚机制,确保参与活动的节点考虑自身利益而进行诚实行为。
[0019] 进一步地,所述激励机制包括选:前H次进行智能合约检测时,将智能合约编码块均匀分配到各个节点,并分配预言机进行智能合约检测和修改,对参选的节点按照贡献量依次进行奖励,奖励方法按照贡献量的大小计算;达到一定稳定性之后,即超过R个节点对智能合约检测和修改贡献率为M,对这R个节点按照贡献量进行排序,排序方法和过程考虑计算成本和参与费用
[0020] 进一步地,所述押金机制包括:全网节点在参与前H次检测时,预交一部分押金,押金数量为由于可能的不诚实行为给全网带来的平均损失,前H次检测完成后退回落选节点的全部押金,对不诚实的节点扣除部分押金,即赔偿造成的损失;选举预选节点和审查节点完成后,退回预选节点的全部押金,完成智能合约检测后退回部分审查节点的全部押金;其中,保留有继续参与智能合约检测资格的审查节点的押金,每次重新选举的节点需要提交押金,即保证参与选举和智能合约检测的节点在区块链上预存了押金。
[0021] 进一步地,所述惩罚机制包括,在选举或智能合约检测的过程中,剔除没有贡献甚至不诚实的节点,从预选节点或普通节点中再次选举审查节点和预选节点,并对不诚实的节点进行惩罚,扣除不诚实的节点押金pi。
[0022] 本发明的目的还可以进一步由改进纠删码技术编码智能合约,将智能合约分成多个编码块,进而便于区块链网络中多重预言机检测的方法来实现,其对应所述步骤(2),该方法包括:
[0023] 2.1节点通过纠删码技术将其保存的智能合约分块编码成多个编码块;基于纠删码的区块智能合约存储模型中的节点通过纠删码技术将其保存的智能合约分块编码成多个数据块时,每个节点尽可能少地保留编码块,全网拥有完整的编码块信息,这样使得整个智能合约都能够有机会充分被网络中分布的多重预言机检测;
[0024] 2.2智能合约编码完成后,所有审查节点根据最近一次接收到的编码控制信息对智能合约进行纠删码编码存储。即设定纠删码容错率、原始智能合约切分的数据块数量、组织数,并计算在设定完成的情况下,生成的校验块和编码块数量;
[0025] 2.3生成编码块的摘要,将相关摘要信息记录后,进行签名,计算此时每个节点保存的编码块的数量;此时单节点存储编码块占用的存储空间随网络中组织数的增加及纠删码容错率的降低而降低。在组织内仅有单节点的情况下,只有纠删码容错率影响其全网存储编码块占用的存储空间。
[0026] 2.4节点访问记录了该智能合约编码块的编码块索引数据库,同时向审查节点群(陪审团;由见证人选举出来的审查节点组成的陪审团)发起区块编码请求,回溯查询或收集智能合约所在的原始数据库。
[0027] 2.5接收来自其他节点发送的账本快照,节点间通过账本快照进行智能合约对比,最终使得全网所有节点在时间T(较短)内达到账本一致状态。账本达到一致后,即区块同步成功,智能合约达到一致,节点根据智能合约编码存储方案对需要编码分块存储的合约进行纠删码编码,编码后的智能合约分配相应预言机进行检测。
[0028] 优选的是,所述步骤(3)的审查选举机制包括:全网N个节点(N≥n)验证链外数据并将数据上链,当超过h(0.5N
[0029] 优选的是,所述步骤(4)中,达到或超过t的一致性投票通过的智能合约编码块的数量,预言机检测通过,整个智能合约被证明安全,或对发现错误的智能合约代码进行修改使智能合约整体达到t一致性投票数量,其中t是智能合约可以安全执行必须满足的门限值(0.5n
[0030] 进一步地,(t,a)智能合约检测门限的检测条件包括:a个预言机(审查节点)的网络中需要至少t个预言机达成一致;真正参与一致性检测的审查节点的身份在其他节点处是保密的;参与一致性安全检测的t个审查节点从全网所有节点选出。
[0031] 本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。本发明至少包括以下有益效果:
[0032] 1.采用多重预言机对智能合约进行安全检测,并且引入纠删码技术将智能合约分为多个编码块,多个预言机对应将智能合约编码块代码进行检查,确保了智能合约的安全;
[0033] 2.同时,引入纠删码技术减少多重预言机对智能合约检测过程的内存存储,将提高智能合约安全检测的效率;
[0034] 3.在执行代码选择的过程中(多重预言机),设计的见证人机制、激励机制和惩罚机制,确保参与选举或智能合约检测和修改的相关节点进行诚实的行为;
[0035] 4.引入(t,a)门限检测规则,在有一定容错率的情况下,准确并有效进行智能合约的安全检测和执行;
[0036] 5.采用预言机连接智能合约对检测出错误的智能合约部分代码进行修改,进一步确保了整个智能合约代码的安全。附图说明
[0037] 图1为去中心化的多重预言机安全检测系统实现流程图
[0038] 图2为采用纠删码技术将智能合约编码成编码块的原理图;
[0039] 图3为预言机执行智能合约安全检测的过程图;
[0040] 图4为(t,a)智能合约安全检测门限设置原理流程图。

具体实施方式

[0041] 为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
[0042] 1.图1示出了根据本发明的一种实现形式,示出了本发明的去中心化的多重预言机安全检测系统,其实现过程包括:
[0043] 1.1设置激励机制以鼓励全网节点积极参与智能合约代码检测;
[0044] 1.2公平化见证人选举机制,即平均每个节点的权重,防止某些节点的权重过高,参照激励机制中的记录结果,选举对代码安全检测贡献最大的节点作为见证人节点,一共选举2a个见证人节点,选举过程必须经过投票验证,确保参与选举的见证人节点的身份;
[0045] 1.3在步骤1.1中设置押金机制,为了鼓励节点的接入和鼓励节点积极进行智能合约检测,同时为了确保节点进行诚实的行为;
[0046] 1.4基于预言机的安全检测系统中成立与激励机制对应的惩罚机制,确保参与活动的节点考虑自身利益而进行诚实的活动。
[0047] 其中,所述激励机制包括选:前H次进行智能合约检测时,将智能合约编码块均匀分配到各个节点,并分配预言机进行智能合约检测和修改,对参选的节点按照贡献量依次进行奖励,奖励方法按照贡献量的大小计算;达到一定稳定性之后,即超过R(例如设置R>0.5N)个节点对智能合约检测贡献率为M(例如设置M>0.6),对这R个节点按照贡献量进行排序,排序方法和过程考虑计算成本和参与费用。
[0048] 所述押金机制包括:全网节点在参与前H次检测时,预交一部分押金,押金数量为由于可能的不诚实行为给全网带来的平均损失p,前H次检测完成后退回落选节点的全部押金,对不诚实的节点扣除部分押金pi,即赔偿造成的损失;选举a个预选节点和a个审查节点完成后,退回a个预选节点的全部押金;完成智能合约检测后退回a’个审查节点的全部押金(a’≤a),其中,保留有继续参与智能合约检测资格的审查节点的押金,每次重新参与选举的节点需要提交押金,即保证参与选举或智能合约检测的节点在区块链上预存了押金p。
[0049] 所述惩罚机制包括,在选举或智能合约检测的过程中,剔除没有贡献甚至不诚实的节点,从预选节点或普通节点中再次选举a1个审查节点和a1个预选节点(a1≤a,a1=a-a’,即a1为每轮进行检测剔除没有贡献或不诚实的节点后的空缺),并对不诚实的节点进行惩罚,扣除不诚实的节点押金pi。
[0050] 2.本发明由改进纠删码技术编码智能合约,并将智能合约分成多个编码块,进而便于区块链网络中多重预言机检测的方法来实现提高智能合约检测的效率。采用这种方案具有降低成本的有利之处。并且,这种方式只是一种较佳实例的说明,但并不局限于此。利用纠删码进行智能合约编码的步骤如下:
[0051] 2.1节点通过纠删码技术将其保存的智能合约分块编码成多个编码块;基于纠删码的区块智能合约存储模型中的节点通过纠删码技术将其保存的智能合约分块编码成多个数据块时,每个节点尽可能少地保留编码块,全网拥有完整的编码块信息,这样使得整个智能合约都能够有机会充分被网络中分布的多重预言机检测;
[0052] 2.2智能合约编码完成后,所有审查节点根据最近一次接收到的编码控制信息对智能合约进行纠删码编码存储。设定纠删码容错率为b、原始智能合约切分为k个数据块、预言机数量为a个情况下,生成 个校验块,共s=c+k个编码块;
[0053] 2.3生成编码块的摘要,将相关摘要信息记录后,进行签名,此时每个节点保存的编码块的数量为n, 此时单节点存储编码块占用的存储空间随网络中组织数的增加及纠删码容错率的降低而降低。在组织内仅有单节点的情况下,只有纠删码容错率影响其全网存储编码块占用的存储空间。
[0054] 2.4节点访问记录了该智能合约编码块的编码块索引数据库,同时向审查节点群(陪审团;由见证人选举出来的审查节点组成的陪审团)发起区块编码请求,回溯查询或收集智能合约所在的原始数据库。
[0055] 2.5接收来自其他节点发送的账本快照,节点间通过快照进行账本进行智能合约对比,最终使得全网所有节点在时间T(较短)内达到账本一致状态。账本达到一致后,即区块同步成功,智能合约达到一致,节点根据智能合约编码存储方案对需要编码分块存储的合约进行纠删码编码,编码后的智能合约分配相应预言机进行检测。
[0056] 具体实施例1:
[0057] 3.预言机执行智能合约安全检测的过程图如图3所示。上述方案中的一种基于预言机的智能合约安全检测方法的一种实现方式为:审查选举机制包括:全网N个节点(N≥n)验证链外数据并将数据上链,当超过h(0.5N
[0058] 具体实施例2:
[0059] 4.(t,a)智能合约安全检测门限设置原理流程图如图4所示。达到或超过t的一致性投票通过的智能合约编码块的数量,预言机检测通过,整个智能合约被证明安全,或对发现错误的智能合约代码进行修改使智能合约整体达到t一致性投票数量,其中t是智能合约可以安全执行必须满足的门限值(0.5n
[0060] 例如设置a个预言机的数据作为一个可信临界值,临界值数量的智能预言机必须就结果达成一致,审查节点使用 的预言机模型,只有当a个预言机中不少于 个预言机一致时,合约才能执行,其中设置 为(t,a)智能合约检测门限。
[0061] 其中,(t,a)智能合约检测门限的检测条件包括:a个预言机(审查节点)的网络中需要至少t个预言机达成一致;真正参与一致性检测的审查节点的身份在其他节点处是保密的;参与一致性安全检测的t个审查节点从全网所有节点选出。这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的(t,a)智能合约检测门限的应用、修改和变化对本领域的技术人员来说是显而易见的。
[0062] 如上所述,根据本发明,由于增加了预言机,并设置了(t,a)智能合约检测门限,因此具有提高智能合约代码和逻辑正确的效果,进而保证智能合约的安全执行。
[0063] 上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈