CN111026578A - 一种基于预言机的智能合约安全检测方法 - Google Patents
一种基于预言机的智能合约安全检测方法 Download PDFInfo
- Publication number
- CN111026578A CN111026578A CN201911122181.4A CN201911122181A CN111026578A CN 111026578 A CN111026578 A CN 111026578A CN 201911122181 A CN201911122181 A CN 201911122181A CN 111026578 A CN111026578 A CN 111026578A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- nodes
- node
- detection
- prediction
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 113
- 238000005516 engineering process Methods 0.000 claims abstract description 22
- 230000007246 mechanism Effects 0.000 claims description 38
- 238000000034 method Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 14
- 230000006399 behavior Effects 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 11
- 230000008901 benefit Effects 0.000 claims description 8
- 238000012552 review Methods 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 5
- 238000012550 audit Methods 0.000 claims description 4
- 230000005284 excitation Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000012797 qualification Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 2
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000007689 inspection Methods 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/18—Legal services
- G06Q50/188—Electronic negotiation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Marketing (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于预言机的智能合约安全检测方法,包括:(1)全网节点通过去中心化的多重预言机安全检测系统准备对智能合约进行安全检测;(2)共识节点将保存完整的智能合约通过纠删码技术编码成多个编码块;(3)从多个见证人节点中按照随机选择成员作为审查节点,这些审查节点随机分配预言机接口参数;(4)将编码的智能合约执行编码块相应分布在若干独立的预言机中,设计(t,a)智能合约检测门限,达到一致条件的智能合约才能执行。本发明的基于预言机的智能合约安全检测方法具有检测智能合约的功能,通过引入纠删码技术,基于多重预言机模型,保证了检测的效率,确保智能合约的安全执行。
Description
技术领域
本发明属于区块链智能合约技术领域,具体涉及一种基于预言机的智能合约安全检测方法。
背景技术
智能合约的概念几乎与互联网同时出现。1995年密码学家尼克萨博定义智能合约是执行合约条款的可计算交易协议,但早期由于没有适合运行智能合约的平台,智能合约技术并没有得到重视和发展,直到化名为中本聪的学者提出了始于比特币的数字资产交易平台,这种平台具有去中心化、不可篡改的特性使得智能合约有了用武之地。随着智能合约的发展,智能合约的定义清晰起来,一般而言,智能合约是一种不需要借助任何中介、可以进行自我验证、自动执行合约条款的计算机交易协议。智能合约是一种事件驱动程序,基于设定条件的触发自动执行事件,智能合约提高了合约执行的效率,一旦部署就不可篡改,具有确定性,进而保证了区块链的稳定性。
随着区块链技术的发展,智能合约技术也得到了发展,但是安全问题一直是限制其发展的瓶颈。智能合约的依赖复杂的时间和次序,智能合约本身的漏洞由代码的不确定性和不一致性引起,进而导致不确定的智能合约执行结果,最终导致不确定的法律责任。现有的检测手段包括形式化验证和模糊测试。其中模糊测试的测试用例生成具有随机性,只能涵盖有限的系统行为,路径覆盖率达不到要求,基本上找不出所有潜在错误。形式化验证方法虽然能够完全覆盖代码的运行期行为,但也只能确保智能合约在一定范围内的绝对正确。为了确保智能合约的安全,近年来不少领域开始研究预言机(Oracle)。智能合约的执行条件触发是否满足需要借助预言机,即确定的智能合约对不确定的外界作出反应,通过预言机进行签名并引入关于外界的状态信息,从而实现智能合约不可篡改、服务稳定、可审计等的特点,预言机还具有激励机制以保证智能合约运行的动力。
预言机是区块链和外界的接口,是区块链技术的一个发展方向。对智能合约而言,预言机相当于智能合约的输入参数,输入参数对智能合约的输出结果有直接的影响。预言机与智能合约相互配合,组合成一种可信任的实体,通过签名引入关于区块链外界的信息,众所周知,区块链外界信息的提供者最好不是智能合约的编写者,而是没有利益关系的第三方,从而允许智能合约对外界做出反应。智能合约预言机具有的功能包括:调整智能合约的履行义务;作为一种传达见解或支持解决私人争议的私人仲裁系统:在智能合约中引入仲裁机制,设定信息提供的第三方为仲裁机构(或从互联网上召集陪审团),第三方可以通过签名的方式介入,阻止有风险的智能合约执行。
智能合约预言机有单一模型和多重模型两种模型。虽然对大多数用户来说单一可信任的预言机已经可以满足要求,但高价值的资产处理需要更高的可信任度。多重预言机又称预言机网络,智能合约代码的执行分布在多个独立的预言机中,提供了更好的安全保障,但模型更复杂,成本更高。
纠删码是一种数据保护方法,能够以更小的数据冗余度获得更高的数据可靠性。使用较多的纠删码技术是线性纠删码技术。线性纠删码将k份原始数据增加为m份校验数据,数据和校验数据共同形成n份编码数据,并通过n份编码数据中的任意大于等于k份的编码数据还原出原始数据,若有任意小于等于m份的数据失效,仍然能通过剩余的数据还原出原始数据。基于纠删码的区块文件存储模型中的节点在通过纠删码技术将其保存的区块文件分块编码成多个编码块时,既要使每个节点尽可能少地保留编码块,又要使全网拥有完整的编码块信息。
将预言机应用于智能合约的安全检测受到越来越广泛的重视。现有的智能合约预言机发展还不成熟,如何在区块链分布式网络中使预言机能够高效并且准确地检测智能合约是当下研究的重点。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种基于预言机的智能合约安全检测方法,其能够高效检测智能合约,使智能合约的执行过程更加安全。本发明还有一个目的是通过改进纠删码编码方法,提高智能合约预言机的执行效率,以便降低预言机使用成本。
为了实现本发明的这些目的和其它优点,提供了一种基于预言机的智能合约安全检测方法:
(1)全网N个节点通过去中心化的多重预言机安全检测系统准备对智能合约进行安全检测和修改;
(2)区块链上的共识节点将完整的智能合约通过纠删码技术编码成多个编码块。每个节点仅保留部分编码块,全网节点拥有完整的编码块信息,从而使得全网节点尽可能减少存储空间占用,同时保证不丢失原始智能合约数据;
(3)从多个见证人节点中按照审查选举机制随机选择成员作为审查节点,这些审查节点随机分配预言机接口参数;
(4)将步骤(2)中编码的执行编码块相应分布在若干独立的预言机中,设计(t,a)智能合约检测门限,即代码的执行分布在若干独立的预言机中,达到一致条件的智能合约才能执行。
优选的是,所述步骤(1)中,去中心化的多重预言机安全检测系统包括:
1.1设置激励机制以鼓励全网节点积极参与智能合约代码检测和修改;
1.2公平化审查选举机制,即平均每个节点的权重,防止某些节点的权重过高,参照激励机制中的记录结果,选举对代码安全检测贡献最大的节点作为见证人节点,选举过程必须经过投票验证,确保参与选举的见证人节点的身份;
1.3在步骤1.1中设置预交押金机制,为了鼓励节点的接入和鼓励节点积极进行智能合约检测和修改,同时为了确保节点进行诚实的行为;
1.4基于预言机的安全检测系统中成立与激励机制对应的惩罚机制,确保参与活动的节点考虑自身利益而进行诚实行为。
进一步地,所述激励机制包括选:前H次进行智能合约检测时,将智能合约编码块均匀分配到各个节点,并分配预言机进行智能合约检测和修改,对参选的节点按照贡献量依次进行奖励,奖励方法按照贡献量的大小计算;达到一定稳定性之后,即超过R个节点对智能合约检测和修改贡献率为M,对这R个节点按照贡献量进行排序,排序方法和过程考虑计算成本和参与费用。
进一步地,所述押金机制包括:全网节点在参与前H次检测时,预交一部分押金,押金数量为由于可能的不诚实行为给全网带来的平均损失,前H次检测完成后退回落选节点的全部押金,对不诚实的节点扣除部分押金,即赔偿造成的损失;选举预选节点和审查节点完成后,退回预选节点的全部押金,完成智能合约检测后退回部分审查节点的全部押金;其中,保留有继续参与智能合约检测资格的审查节点的押金,每次重新选举的节点需要提交押金,即保证参与选举和智能合约检测的节点在区块链上预存了押金。
进一步地,所述惩罚机制包括,在选举或智能合约检测的过程中,剔除没有贡献甚至不诚实的节点,从预选节点或普通节点中再次选举审查节点和预选节点,并对不诚实的节点进行惩罚,扣除不诚实的节点押金pi。
本发明的目的还可以进一步由改进纠删码技术编码智能合约,将智能合约分成多个编码块,进而便于区块链网络中多重预言机检测的方法来实现,其对应所述步骤(2),该方法包括:
2.1节点通过纠删码技术将其保存的智能合约分块编码成多个编码块;基于纠删码的区块智能合约存储模型中的节点通过纠删码技术将其保存的智能合约分块编码成多个数据块时,每个节点尽可能少地保留编码块,全网拥有完整的编码块信息,这样使得整个智能合约都能够有机会充分被网络中分布的多重预言机检测;
2.2智能合约编码完成后,所有审查节点根据最近一次接收到的编码控制信息对智能合约进行纠删码编码存储。即设定纠删码容错率、原始智能合约切分的数据块数量、组织数,并计算在设定完成的情况下,生成的校验块和编码块数量;
2.3生成编码块的摘要,将相关摘要信息记录后,进行签名,计算此时每个节点保存的编码块的数量;此时单节点存储编码块占用的存储空间随网络中组织数的增加及纠删码容错率的降低而降低。在组织内仅有单节点的情况下,只有纠删码容错率影响其全网存储编码块占用的存储空间。
2.4节点访问记录了该智能合约编码块的编码块索引数据库,同时向审查节点群(陪审团;由见证人选举出来的审查节点组成的陪审团)发起区块编码请求,回溯查询或收集智能合约所在的原始数据库。
2.5接收来自其他节点发送的账本快照,节点间通过账本快照进行智能合约对比,最终使得全网所有节点在时间T(较短)内达到账本一致状态。账本达到一致后,即区块同步成功,智能合约达到一致,节点根据智能合约编码存储方案对需要编码分块存储的合约进行纠删码编码,编码后的智能合约分配相应预言机进行检测。
优选的是,所述步骤(3)的审查选举机制包括:全网N个节点(N≥n)验证链外数据并将数据上链,当超过h(0.5N<h)个节点发送同一验证结果认定数据真实,进行奖励和惩罚,即投票通过验证的区块获得奖励,传递虚假数据的节点受到惩罚;选举对智能合约检测贡献最大的节点,按照递减的顺序选举出审查节点和预选节点,并按照智能合约检测贡献量从分别选举预选节点和审查节点,审查节点被分配预言机接口检测智能合约并根据工作量获得相应的奖励,预选节点对审查节点进行备选和监控,即由预选节点对审查节点进行监控,取代进行欺骗行为的审查节点,举报属实的预选节点会获得奖励。当参与选举的节点少于R’时重新开始H次全网智能合约检测,并再次重新计算节点的智能合约检测能力,在上一轮检测中做出卓越贡献的节点,可以保留工作量,这样有助于适应网络的动态变化。
优选的是,所述步骤(4)中,达到或超过t的一致性投票通过的智能合约编码块的数量,预言机检测通过,整个智能合约被证明安全,或对发现错误的智能合约代码进行修改使智能合约整体达到t一致性投票数量,其中t是智能合约可以安全执行必须满足的门限值(0.5n<t≤N),设置预言机的个数为a。多重模型比单一模型更加复杂,成本更高,但具有更高的安全保障。
进一步地,(t,a)智能合约检测门限的检测条件包括:a个预言机(审查节点)的网络中需要至少t个预言机达成一致;真正参与一致性检测的审查节点的身份在其他节点处是保密的;参与一致性安全检测的t个审查节点从全网所有节点选出。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。本发明至少包括以下有益效果:
1.采用多重预言机对智能合约进行安全检测,并且引入纠删码技术将智能合约分为多个编码块,多个预言机对应将智能合约编码块代码进行检查,确保了智能合约的安全;
2.同时,引入纠删码技术减少多重预言机对智能合约检测过程的内存存储,将提高智能合约安全检测的效率;
3.在执行代码选择的过程中(多重预言机),设计的见证人机制、激励机制和惩罚机制,确保参与选举或智能合约检测和修改的相关节点进行诚实的行为;
4.引入(t,a)门限检测规则,在有一定容错率的情况下,准确并有效进行智能合约的安全检测和执行;
5.采用预言机连接智能合约对检测出错误的智能合约部分代码进行修改,进一步确保了整个智能合约代码的安全。
附图说明
图1为去中心化的多重预言机安全检测系统实现流程图;
图2为采用纠删码技术将智能合约编码成编码块的原理图;
图3为预言机执行智能合约安全检测的过程图;
图4为(t,a)智能合约安全检测门限设置原理流程图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
1.图1示出了根据本发明的一种实现形式,示出了本发明的去中心化的多重预言机安全检测系统,其实现过程包括:
1.1设置激励机制以鼓励全网节点积极参与智能合约代码检测;
1.2公平化见证人选举机制,即平均每个节点的权重,防止某些节点的权重过高,参照激励机制中的记录结果,选举对代码安全检测贡献最大的节点作为见证人节点,一共选举2a个见证人节点,选举过程必须经过投票验证,确保参与选举的见证人节点的身份;
1.3在步骤1.1中设置押金机制,为了鼓励节点的接入和鼓励节点积极进行智能合约检测,同时为了确保节点进行诚实的行为;
1.4基于预言机的安全检测系统中成立与激励机制对应的惩罚机制,确保参与活动的节点考虑自身利益而进行诚实的活动。
其中,所述激励机制包括选:前H次进行智能合约检测时,将智能合约编码块均匀分配到各个节点,并分配预言机进行智能合约检测和修改,对参选的节点按照贡献量依次进行奖励,奖励方法按照贡献量的大小计算;达到一定稳定性之后,即超过R(例如设置R>0.5N)个节点对智能合约检测贡献率为M(例如设置M>0.6),对这R个节点按照贡献量进行排序,排序方法和过程考虑计算成本和参与费用。
所述押金机制包括:全网节点在参与前H次检测时,预交一部分押金,押金数量为由于可能的不诚实行为给全网带来的平均损失p,前H次检测完成后退回落选节点的全部押金,对不诚实的节点扣除部分押金pi,即赔偿造成的损失;选举a个预选节点和a个审查节点完成后,退回a个预选节点的全部押金;完成智能合约检测后退回a’个审查节点的全部押金(a’≤a),其中,保留有继续参与智能合约检测资格的审查节点的押金,每次重新参与选举的节点需要提交押金,即保证参与选举或智能合约检测的节点在区块链上预存了押金p。
所述惩罚机制包括,在选举或智能合约检测的过程中,剔除没有贡献甚至不诚实的节点,从预选节点或普通节点中再次选举a1个审查节点和a1个预选节点(a1≤a,a1=a-a’,即a1为每轮进行检测剔除没有贡献或不诚实的节点后的空缺),并对不诚实的节点进行惩罚,扣除不诚实的节点押金pi。
2.本发明由改进纠删码技术编码智能合约,并将智能合约分成多个编码块,进而便于区块链网络中多重预言机检测的方法来实现提高智能合约检测的效率。采用这种方案具有降低成本的有利之处。并且,这种方式只是一种较佳实例的说明,但并不局限于此。利用纠删码进行智能合约编码的步骤如下:
2.1节点通过纠删码技术将其保存的智能合约分块编码成多个编码块;基于纠删码的区块智能合约存储模型中的节点通过纠删码技术将其保存的智能合约分块编码成多个数据块时,每个节点尽可能少地保留编码块,全网拥有完整的编码块信息,这样使得整个智能合约都能够有机会充分被网络中分布的多重预言机检测;
2.2智能合约编码完成后,所有审查节点根据最近一次接收到的编码控制信息对智能合约进行纠删码编码存储。设定纠删码容错率为b、原始智能合约切分为k个数据块、预言机数量为a个情况下,生成个校验块,共s=c+k个编码块;
2.3生成编码块的摘要,将相关摘要信息记录后,进行签名,此时每个节点保存的编码块的数量为n,此时单节点存储编码块占用的存储空间随网络中组织数的增加及纠删码容错率的降低而降低。在组织内仅有单节点的情况下,只有纠删码容错率影响其全网存储编码块占用的存储空间。
2.4节点访问记录了该智能合约编码块的编码块索引数据库,同时向审查节点群(陪审团;由见证人选举出来的审查节点组成的陪审团)发起区块编码请求,回溯查询或收集智能合约所在的原始数据库。
2.5接收来自其他节点发送的账本快照,节点间通过快照进行账本进行智能合约对比,最终使得全网所有节点在时间T(较短)内达到账本一致状态。账本达到一致后,即区块同步成功,智能合约达到一致,节点根据智能合约编码存储方案对需要编码分块存储的合约进行纠删码编码,编码后的智能合约分配相应预言机进行检测。
具体实施例1:
3.预言机执行智能合约安全检测的过程图如图3所示。上述方案中的一种基于预言机的智能合约安全检测方法的一种实现方式为:审查选举机制包括:全网N个节点(N≥n)验证链外数据并将数据上链,当超过h(0.5N<h)个节点发送同一验证结果认定数据真实,投票通过验证的节点获得奖励,传递虚假数据的节点受到惩罚。选举对智能合约检测贡献最大的节点,按照递减的顺序选举出审查节点和预选节点,并按照智能合约检测贡献量从分别选举2a个见证人节点,包括a个预选节点和a个审查节点,审查节点被分配预言机接口进行智能合约检测并根据工作量获得相应的奖励,预选节点对审查节点进行备选和监控,即由预选节点对审查节点进行监控,取代进行欺骗行为的审查节点a1,举报属实的预选节点会获得奖励。当见证人节点少于0.5R时重新开始H次全网智能合约检测,并再次重新计算节点的智能合约检测能力,在上一轮检测中做出卓越贡献的节点(例如前10%,按照要求进行设置),可以保留贡献量(这样有助于适应网络的动态变化)。
具体实施例2:
4.(t,a)智能合约安全检测门限设置原理流程图如图4所示。达到或超过t的一致性投票通过的智能合约编码块的数量,预言机检测通过,整个智能合约被证明安全,或对发现错误的智能合约代码进行修改使智能合约整体达到t一致性投票数量,其中t是智能合约可以安全执行必须满足的门限值(0.5n<t≤N),设置预言机的个数为a。多重模型比单一模型更加复杂,成本更高,但具有更高的安全保障。
例如设置a个预言机的数据作为一个可信临界值,临界值数量的智能预言机必须就结果达成一致,审查节点使用的预言机模型,只有当a个预言机中不少于个预言机一致时,合约才能执行,其中设置为(t,a)智能合约检测门限。
其中,(t,a)智能合约检测门限的检测条件包括:a个预言机(审查节点)的网络中需要至少t个预言机达成一致;真正参与一致性检测的审查节点的身份在其他节点处是保密的;参与一致性安全检测的t个审查节点从全网所有节点选出。这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的(t,a)智能合约检测门限的应用、修改和变化对本领域的技术人员来说是显而易见的。
如上所述,根据本发明,由于增加了预言机,并设置了(t,a)智能合约检测门限,因此具有提高智能合约代码和逻辑正确的效果,进而保证智能合约的安全执行。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
Claims (9)
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个预言机达成一致;真正参与一致性检测的审查节点的身份在其他节点处是保密的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122181.4A CN111026578B (zh) | 2019-11-15 | 2019-11-15 | 一种基于预言机的智能合约安全检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122181.4A CN111026578B (zh) | 2019-11-15 | 2019-11-15 | 一种基于预言机的智能合约安全检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026578A true CN111026578A (zh) | 2020-04-17 |
CN111026578B CN111026578B (zh) | 2023-09-29 |
Family
ID=70201516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911122181.4A Active CN111026578B (zh) | 2019-11-15 | 2019-11-15 | 一种基于预言机的智能合约安全检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026578B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111918027A (zh) * | 2020-07-02 | 2020-11-10 | 覃士忠 | 基于物联网的智慧社区安防方法 |
CN111914299A (zh) * | 2020-08-20 | 2020-11-10 | 深圳市腾盟技术有限公司 | 预言机接口的优化方法、装置、设备及存储介质 |
CN111930852A (zh) * | 2020-09-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN112003942A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 链下数据请求响应方法、系统、节点设备与存储介质 |
CN112003941A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 分发链下数据请求的方法、系统、节点设备与存储介质 |
CN112019380A (zh) * | 2020-08-12 | 2020-12-01 | 西华大学 | 一种基于权益激励的结合Raft和PBFT算法的区块链共识方法 |
CN112417034A (zh) * | 2020-10-19 | 2021-02-26 | 易联众信息技术股份有限公司 | 一种基于区块链的预言机服务的选定方法及系统 |
CN112417035A (zh) * | 2020-10-19 | 2021-02-26 | 易联众信息技术股份有限公司 | 一种基于区块链的预言机服务的竞标方法及系统 |
CN112700266A (zh) * | 2020-12-21 | 2021-04-23 | 布比(北京)网络技术有限公司 | 一种基于区块链预言机的数据判断方法及系统 |
CN114374633A (zh) * | 2022-01-07 | 2022-04-19 | 广东工业大学 | 一种基于智能合约的可信物联网云服务评价方法及系统 |
CN116436979A (zh) * | 2023-06-15 | 2023-07-14 | 湖南湘江树图信息科技创新中心有限公司 | 联盟区块链调用外部服务的方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180189732A1 (en) * | 2017-01-05 | 2018-07-05 | International Business Machines Corporation | Blockchain for program code credit and programmer contribution in a collective |
CN109087005A (zh) * | 2018-08-03 | 2018-12-25 | 合肥工业大学 | 基于智能合约与雾计算的商品物流环境的监测方法 |
KR101947760B1 (ko) * | 2018-09-04 | 2019-02-13 | 김종현 | 스마트콘트랙트의 보안 인증 서버 |
CN109359223A (zh) * | 2018-09-17 | 2019-02-19 | 重庆邮电大学 | 基于纠删码实现的区块链账本分布式存储技术 |
US20190236598A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
US20190303541A1 (en) * | 2018-04-02 | 2019-10-03 | Ca, Inc. | Auditing smart contracts configured to manage and document software audits |
US20200111092A1 (en) * | 2017-05-02 | 2020-04-09 | Luther Systems | Financial derivative smart contract execution platform, system and method |
-
2019
- 2019-11-15 CN CN201911122181.4A patent/CN111026578B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180189732A1 (en) * | 2017-01-05 | 2018-07-05 | International Business Machines Corporation | Blockchain for program code credit and programmer contribution in a collective |
US20200111092A1 (en) * | 2017-05-02 | 2020-04-09 | Luther Systems | Financial derivative smart contract execution platform, system and method |
US20190236598A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
US20190303541A1 (en) * | 2018-04-02 | 2019-10-03 | Ca, Inc. | Auditing smart contracts configured to manage and document software audits |
CN109087005A (zh) * | 2018-08-03 | 2018-12-25 | 合肥工业大学 | 基于智能合约与雾计算的商品物流环境的监测方法 |
KR101947760B1 (ko) * | 2018-09-04 | 2019-02-13 | 김종현 | 스마트콘트랙트의 보안 인증 서버 |
CN109359223A (zh) * | 2018-09-17 | 2019-02-19 | 重庆邮电大学 | 基于纠删码实现的区块链账本分布式存储技术 |
Non-Patent Citations (3)
Title |
---|
李赫等: "智能合约如何可信地与外部世界交互", pages 1 - 5 * |
范锦锋: "智能合约和预言机初探", pages 1 - 3 * |
高志豪: "如何让区块链连接外面的世界", pages 1 - 3 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111918027B (zh) * | 2020-07-02 | 2021-07-06 | 杭州齐圣科技有限公司 | 基于物联网的智慧社区安防方法 |
CN111918027A (zh) * | 2020-07-02 | 2020-11-10 | 覃士忠 | 基于物联网的智慧社区安防方法 |
CN112019380A (zh) * | 2020-08-12 | 2020-12-01 | 西华大学 | 一种基于权益激励的结合Raft和PBFT算法的区块链共识方法 |
CN112019380B (zh) * | 2020-08-12 | 2022-07-22 | 西华大学 | 一种基于权益激励的结合Raft和PBFT算法的区块链共识方法 |
CN111914299A (zh) * | 2020-08-20 | 2020-11-10 | 深圳市腾盟技术有限公司 | 预言机接口的优化方法、装置、设备及存储介质 |
CN112003941A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 分发链下数据请求的方法、系统、节点设备与存储介质 |
CN112003942A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 链下数据请求响应方法、系统、节点设备与存储介质 |
CN112003942B (zh) * | 2020-08-25 | 2023-04-21 | 杭州时戳信息科技有限公司 | 链下数据请求响应方法、系统、节点设备与存储介质 |
CN111930852B (zh) * | 2020-09-29 | 2022-03-25 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN111930852A (zh) * | 2020-09-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN112417034A (zh) * | 2020-10-19 | 2021-02-26 | 易联众信息技术股份有限公司 | 一种基于区块链的预言机服务的选定方法及系统 |
CN112417035A (zh) * | 2020-10-19 | 2021-02-26 | 易联众信息技术股份有限公司 | 一种基于区块链的预言机服务的竞标方法及系统 |
CN112700266A (zh) * | 2020-12-21 | 2021-04-23 | 布比(北京)网络技术有限公司 | 一种基于区块链预言机的数据判断方法及系统 |
CN112700266B (zh) * | 2020-12-21 | 2024-03-01 | 布比(北京)网络技术有限公司 | 一种基于区块链预言机的数据判断方法及系统 |
CN114374633A (zh) * | 2022-01-07 | 2022-04-19 | 广东工业大学 | 一种基于智能合约的可信物联网云服务评价方法及系统 |
CN114374633B (zh) * | 2022-01-07 | 2023-11-10 | 广东工业大学 | 一种基于智能合约的可信物联网云服务评价方法及系统 |
CN116436979A (zh) * | 2023-06-15 | 2023-07-14 | 湖南湘江树图信息科技创新中心有限公司 | 联盟区块链调用外部服务的方法及系统 |
CN116436979B (zh) * | 2023-06-15 | 2023-08-11 | 湖南湘江树图信息科技创新中心有限公司 | 联盟区块链调用外部服务的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111026578B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026578A (zh) | 一种基于预言机的智能合约安全检测方法 | |
Wang et al. | Study of blockchains’s consensus mechanism based on credit | |
Guerraoui et al. | The consensus number of a cryptocurrency | |
CN109639837B (zh) | 基于信任机制的区块链DPoS共识方法 | |
CN112039964B (zh) | 一种基于区块链的节点信誉共识方法 | |
CN111612455A (zh) | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 | |
CN107220130B (zh) | 一种在区块链的节点处实现的信息共识方法、装置及系统 | |
CN111382456B (zh) | 提案消息处理方法、装置、设备以及存储介质 | |
CN110535836A (zh) | 一种基于角色分类的信任区块链共识方法 | |
CN111010278A (zh) | 一种基于DPoS高容错分层共识方法 | |
CN110602217B (zh) | 基于区块链的联盟管理方法、装置、设备及存储介质 | |
Huang et al. | Do the rich get richer? fairness analysis for blockchain incentives | |
CN108366113B (zh) | 一种基于dpos的分组高容错共识机制 | |
KR20230060461A (ko) | 심층 강화학습을 이용한 신뢰도 기반 위임 합의 블록체인 네트워크 관리 장치 및 방법 | |
Bao et al. | A survey of blockchain consensus safety and security: State-of-the-art, challenges, and future work | |
Gräbe et al. | Do not be fooled: Toward a holistic comparison of distributed ledger technology designs | |
CN113407632A (zh) | 一种基于pbft的委托权益证明区块链共识算法 | |
CN112597240B (zh) | 一种基于联盟链的联邦学习的数据处理方法与系统 | |
Zhao et al. | Toward trustworthy defi oracles: past, present, and future | |
Xu et al. | Microchain: A hybrid consensus mechanism for lightweight distributed ledger for IoT | |
CN113052329A (zh) | 联合更新业务模型的方法及装置 | |
CN115022326B (zh) | 基于协同过滤推荐的区块链拜占庭容错共识方法 | |
CN113872828A (zh) | 区块链预言机状态监控方法 | |
CN115801407A (zh) | 异常节点屏蔽方法、装置、存储介质及目标节点 | |
CN110930158A (zh) | 一种基于奖惩机制的区块链DPoS共识方法 |
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 |