CN116866045B - 一种基于访问控制规则的区块链可信预言机决策支撑系统 - Google Patents
一种基于访问控制规则的区块链可信预言机决策支撑系统 Download PDFInfo
- Publication number
- CN116866045B CN116866045B CN202310879657.9A CN202310879657A CN116866045B CN 116866045 B CN116866045 B CN 116866045B CN 202310879657 A CN202310879657 A CN 202310879657A CN 116866045 B CN116866045 B CN 116866045B
- Authority
- CN
- China
- Prior art keywords
- data
- chain
- node
- request
- 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
- 238000000034 method Methods 0.000 claims abstract description 78
- 230000008569 process Effects 0.000 claims abstract description 68
- 230000005540 biological transmission Effects 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 13
- 230000007246 mechanism Effects 0.000 claims abstract description 13
- 238000007726 management method Methods 0.000 claims description 51
- 238000012795 verification Methods 0.000 claims description 46
- 230000003993 interaction Effects 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000002360 preparation method Methods 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000012797 qualification Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 230000005587 bubbling Effects 0.000 claims description 4
- 230000009977 dual effect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 3
- 238000005304 joining Methods 0.000 claims description 2
- 230000001105 regulatory effect Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 206010063659 Aversion Diseases 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- AQHHHDLHHXJYJD-UHFFFAOYSA-N propranolol Chemical compound C1=CC=C2C(OCC(O)CNC(C)C)=CC=CC2=C1 AQHHHDLHHXJYJD-UHFFFAOYSA-N 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 229960003712 propranolol Drugs 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于访问控制规则的区块链可信预言机决策支撑系统,基于双ABAC的链上链下访问控制模型、基于VRF算法的可信数据传输机制及可信预言机通信协议实现,包括:数据源、边缘服务器、预言机及区块链智能合约;边缘服务器包括传感器终端、智能网关和微型计算机,每个边缘服务器均包括节点接口、数据源接口和ABAC权限管理模块,ABAC权限管理模块用于进行终端身份管理、认证绑定、权限管理和过程证明;预言机将区块链上的数据请求转发至链下,并将链下采集的数据安全传输到链上;区块链智能合约包括用户合约、预言机合约和ABAC合约;系统通过协同链上及链下两套ABAC访问控制模型,并结合可验证随机函数加强预言机所传输数据的安全性和可靠性。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种基于访问控制规则的区块链可信预言机决策支撑系统。
背景技术
区块链是一种分布式的、将数据区块按时间顺序以链式组合的存储结构,具备不可篡改、弱中心化、公开透明、安全可信等特点。起初,区块链作为一种创新技术逐步走入人们的视野,在众多领域掀起技术改革的浪潮,如金融、物联网和医疗等领域。随着智能合约的引入,区块链的应用领域变得更加多样化,智能合约和区块链是天然的联盟,将智能合约部署到区块链后,在不需要可信第三方的情况下,由区块链特征强制保证交易合同按规则自动执行。对于许多领域来说,区块链内部的数据不足以满足应用需求,智能合约在执行过程中需要与链下数据进行交互,如预测市场、保险应用等,所谓链下数据指的是现实世界中未被区块链存储的数据。然而,区块链是一个独立运转的分布式系统,不允许不确定的因素,部署在其上的智能合约在任何时候运行都要求产生一致的结果,故区块链节点无法主动获取链外的数据,也不能自发地调用外部网络API,由此产生了区块链预言机。区块链预言机可以将链下的数据写回区块链内,它不是具体的程序或实体,而是一种理念,本质上是一种数据调用和访问的中间件,是区块链智能合约与外部世界交互的中间层,架起了区块链与链外世界的互通桥梁。预言机对区块链网络有着十分重要的作用,是区块链体系的重要组成部分,预言机的缺乏会对区块链的应用范围和应用效果产生重要影响。
(1)目前的预言机中还存在预言机数据上链的可信控制需求与多样化动态性数据特性的匹配问题,区块链有效运转的基本前提就是数据来源可信,因此预言机需要通过权限控制、共同监督、身份认证等技术手段来加强数据来源和传输的可信性。同时,随着区块链应用领域的不断拓展,上链数据的来源趋于多元化和动态化特性,用户的数据请求类型也呈现出多样化趋势。在这种背景下,需要将区块链下异构多样的数据安全上链,实现数据可信传输,减少数据造假风险,因此,将可信传输和多样化数据融合是亟需解决的问题。
(2)目前的预言机中还存在预言机数据上链可信传输与效率需求的匹配问题。如何将数据高效的带回链上,同时保证其在上链过程中的安全可信是设计区块链预言机时需要考虑的问题。区块链中所有的参与者共同维持一个账本,在没有可信第三方的情况下,基于链上可验证数据,通过共识算法对交易达成一致,共识过程必然会影响效率。区块链预言机本身是区块链链外组件,对于安全的要求更高,因此,需要设计一套新的安全传输机制,达到效率和传输可信的双重要求。
(3)目前的预言机中还存在预言机体系控制与传输模块协同通信问题。对预言机工作过程中不同组件间的交互流程、消息格式等进行规范,设计一种整体化的协议是预言机系统能被广泛应用的必要工作。
发明内容
本发明的目的是提供一种基于访问控制规则的区块链可信预言机决策支撑系统,以保证区块链预言机所传输数据的真实、可信,使用ABAC(Attribute-Based AccessControl,基于属性的访问控制模型)权限访问控制与智能合约技术,确定链下终端控制和链上约束相结合的技术体系,推动多样化数据的有效控制和管理方法;基于VRF(Verifiable Random Function,可验证随机函数)理论和PBFT(Practical ByzantineFault Tolerance,实用拜占庭容错算法)共识算法探索数据传输的共识机制,以求达到高效可信的数据传输;还设计一种预言机通信协议,规范链上和链下的数据交互过程,并设计和研发原型系统,使预言机更具通用性和实用性。
本发明一方面提供了一种基于访问控制规则的区块链可信预言机决策支撑系统,所述系统基于双ABAC的链上链下访问控制模型、基于VRF算法的可信数据传输机制以及可信预言机通信协议实现,包括:
数据源、边缘服务器、预言机以及区块链智能合约;
所述边缘服务器包括传感器终端、智能网关和微型计算机,每个边缘服务器均包括节点接口、数据源接口和ABAC权限管理模块,所述ABAC权限管理模块用于进行终端身份管理、认证绑定、权限管理和过程证明;
所述预言机将区块链上的数据请求转发至链下,并将链下采集的数据安全传输到链上,所述预言机为链上链下通信的通道;
所述区块链智能合约包括用户合约、预言机合约和ABAC智能合约;
所述区块链可信预言机决策支撑系统通过协同链上及链下两套ABAC访问控制模型,并结合可验证随机函数来加强预言机所传输数据的安全性和可靠性。
优选的,所述基于访问控制规则的区块链可信预言机决策支撑系统包括数据层、合约层、逻辑层和表现层;
所述数据层由区块链系统及数据库组成,所述区块链系统用于记录预言机工作过程中产生的信息,所述数据库用于存储实体信息及用户相关信息;
所述合约层基于所述区块链智能合约实现功能,包括:用户通过所述用户合约发出数据请求并查看相应的结果,所述ABAC智能合约对上链数据进行权限判定,实现数据的可控上链;所述预言机合约用于转发来自所述用户合约的请求至链下的计算机节点,并接收其响应的结果;
所述逻辑层包括链上操作、链下操作以及链上和链下的协同操作,用于接收来自所述表现层的请求,并根据请求内容与区块链以及数据库交互;
所述表现层用于为用户提供可视化界面,包括请求发送和结果查看。
优选的,所述可信预言机基于事件订阅模式实现,实现架构整体包括订阅模块、查询模块和回调模块;链下的计算机节点在响应用户请求前,首先需要通过WS(WebSocket)协议在区块链上注册事件订阅,订阅成功后,通过读取相应智能合约的事件日志获取用户请求,对其进行解析并处理后,将查询结果转换为用户规定的数据类型,并以交易的形式将结果发送至请求中规定的回调地址。
优选的,所述可信预言机的工作流程包括:
在响应用户的数据请求时,收到预言机合约所发请求的节点需在本地利用VRF进行随机计算,所述节点利用私钥在本地生成VRF随机数及其证明;
通过判断随机数是否满足请求中所规定的阈值条件来判断是否被选中响应本次请求,满足则加入工作组,工作组中生成随机数最小的节点即为本次请求的主节点,其中工作组节点数量由用户指定;其他节点确定为非工作组节点,根据VRF验证算法对选择结果进行合法性验证;
经链下权限管理模型判断有资格的节点可转发请求至边缘服务器;
由边缘服务器调用数据源接口采集指定数据;
所述边缘服务器在将数据进行初步处理后,将其发送至工作组节点,发送时由权限管理模型进行相应的权限控制;
收到边缘服务器所发送数据的节点经权限管理合约验证后,对接收到的数据进行聚合并回传至预言机合约。
优选的,所述双ABAC链上链下访问控制模型由链上ABAC智能合约和链下ABAC模型构成,由链上ABAC智能合约和链下ABAC模型协同实现链上链下的可信数据交互;其中,所述双ABAC链上链下访问控制模型包括区块链、链下计算机节点、边缘服务器和物联网终端设备;所述链上的ABAC智能合约包括用户合约、预言机合约和ABAC权限管理合约;所述链下ABAC模型部署在所述链下计算机节点、边缘服务器和物联网终端设备;
链上到链下的可信数据交互顺序为:所述用户合约接收用户请求,通过预言机将请求转发至所述边缘服务器,进而传递给所述物联网终端设备;
链下到链上的可信数据交互顺序与链上到链下的可信数据交互顺序相反;链上ABAC智能合约和链下ABAC模型用于对所述可信数据的交互过程进行权限管理,通过层层传递、多重验证的方式实现链上链下的可信交互和定位追责。
优选的,所述区块链上部署用户合约、预言机合约及ABAC权限管理合约;所述用户合约负责与用户通信,所述预言机合约和多个链下计算机节点共同构成区块链预言机,其中,所述预言机合约用于发送请求并接收数据;多个所述链下计算机节点是连接区块链和链下数据的中间通道,运行预言机的基础功能,每个节点提前在预言机合约中通过公钥、IP信息进行节点身份注册;所述边缘服务器上运行所述链下ABAC模型,链下计算机节点和终端设备,实现请求的转发和数据的回传;在系统的初始化阶段,边缘服务器预先在链下计算机节点中以公钥、IP信息进行身份注册,同时,数据源在边缘服务器进行绑定,由边缘服务器认证可信的数据源将被加入本地白名单;将数据传输上链时,边缘服务器根据链下权限判定过程中产生的关键信息生成过程证明,将其附带数据一同上链;通过验证上链的过程证明是否满足ABAC合约预存的协同工作策略,判定链下运行的ABAC模型的可信性,即验证链下的权限管理过程的可信性;在响应用户的数据请求时,边缘服务器首先检查是否绑定了用户所请求的数据源;若未绑定,则对数据源进行认证、绑定,绑定成功后响应请求。
优选的,所述双ABAC的链上链下访问控制模型的工作过程分为四个阶段,由链下的ABAC模型存储前三个阶段的属性信息及策略信息,并进行策略判定,而链上ABAC合约仅负责第四个阶段,通过验证上链的过程证明是否满足其预存的协同工作策略,可以证明链下ABAC模型的可信,即前三个阶段策略判定的可信性;所述四个阶段包括:
阶段一:本轮工作的节点将用户请求转发至边缘服务器;
阶段二:终端设备将采集的数据发送至边缘服务器;
阶段三:边缘服务器将数据回传至工作节点;
阶段四:边缘服务器生成过程证明,并由节点将该证明连同数据一同回传至区块链上的预言机合约;
采用多重验证的方式,所述阶段二中ABAC的策略判定结果是阶段三中访问主体的属性,阶段三中ABAC的判定结果是阶段四中访问主体的属性;上链的过程证明是否满足区块链预存的协同工作策略作为阶段四中访问主体的属性;只有四个阶段的策略判定均通过,预言机才能将数据返回至预言机合约。
优选的,所述基于VRF算法的可信数据传输机制,包括:
(1)链上到链下
在将用户的数据请求转发至链下时,根据用户的需求,使用VRF技术在链下的分布式节点中随机选择多个节点,构成工作组来处理本次请求,其他节点构成非工作组,非工作组的节点验证选择结果是否合法;包括:用户通过用户合约发出数据请求,请求中需规定工作组的节点数量、阈值条件信息;用户合约收到请求后,调用预言机合约,由其转发请求至链下分布式节点;收到请求的节点在本地完成VRF随机计算,通过判断其生成的随机数是否满足阈值条件来判断是否被选中加入工作组,其他节点可对选择结果进行合法性验证;工作组的n个节点中,生成随机数最小的节点为组内的主节点,负责发起共识并将共识结果回传至区块链;
(2)链下到链上
工作组中的节点在规定的时间内,对请求的顺序和请求的执行结果进行PBFT共识,共识成功后,由主节点回传聚合数据和投票结果至区块链,聚合方式为取中位数或取平均数;区块链验证聚合签名的合法性后,将数据反馈给数据请求者,并对工作组中参与签名的节点进行奖励。
优选的,所述使用VRF技术在链下的分布式节点中随机选择一定数量的节点包括:加密抽签算法和验证抽签算法,随机种子、工作组节点数量及阈值由用户在请求中规定,节点公钥在整个网络公开,对应的私钥由节点自己保管;所述加密抽签算法包括每个节点利用VRF的随机数生成函数和证明生成函数生成随机数及其证明,函数入参为节点私钥和随机种子;所述随机数满足阈值条件的节点被暂存至数组R,所有参与节点均判定完成后,按照随机数大小对数组R中的节点进行冒泡排序,排序完成后选中前n个节点构成工作组节点数组Nodes,至此,工作组节点选择完成,非工作组的节点可利用抽签验证算法对选择结果进行合法性验证;
所述工作组中的节点在规定的时间内,对请求的顺序和请求的执行结果进行PBFT共识分为七个阶段,包括:request阶段、pre-prepare阶段、prepare阶段、commit阶段、pre-confirm阶段、confirm阶段以及reply阶段。
优选的,所述可信预言机通信协议包括:在初始化阶段,用户在用户合约上完成身份注册,由用户合约为其分配全网唯一的身份标识,即userID;预言机合约在用户合约中进行注册,注册内容为预言机合约的调用地址;边缘服务器在节点中注册以获得serverID;链下的各个节点在预言机合约进行注册以获得唯一的标识nodeID,注册信息包括节点公钥PK、IP地址,同时,将节点中已注册的边缘服务器信息在区块链上存证;数据源在边缘服务器进行身份认证及绑定,绑定完成后,该数据源同样由唯一的ID进行标识,即dataID;
初始化完成后,协议的运行流程包括:
1)用户通过用户合约发出数据请求,形式为其中params字段包括目标数据源的url、工作组的预言机节点的数量n、阈值条件threshold、时间要求T、初始种子seed,callback指定返回数据的入口点;
2)用户合约转发数据请求至预言机合约,由预言机合约为该笔请求生成全网唯一请求ID,即requestID,并发送/>至链下所有的预言机节点;在此期间,权限管理合约持续监测预言机合约的数据请求;
3)收到数据请求的节点在本地利用私钥SK和初始种子seed,运行VRF的随机数生成算法及证明生成算法,生成随机数value及其证明π,计算过程为:计算完成后,若/>则该节点被选中加入工作组,工作组可表示为/>组内随机数最接近阈值条件的节点即为主节点;其他节点利用/>验证选择结果的合法性;工作组的选择结果通知权限管理合约;
4)经边缘服务器上所运行的权限控制模块授权后,工作组的节点将数据请求以的形式转发至边缘服务器,nodeInfo指的是节点ID、节点IP信息;收到请求的边缘服务器检查其绑定的数据源列表是否包括用户请求的数据源;若不包含,先检查目标数据源,完成身份认证,认证通过则进行绑定,随后将请求附带服务器的信息后发送至相应数据源,形式为/>若认证未通过,则返回错误信息至区块链;
5)收到请求的数据源根据用户的需求采集数据,经权限管理模块授权后,将采集的数据签名后回传至边缘服务器,由其对签名进行验证,形式为若数据源的签名验证通过且边缘服务器有回传数据的资格,则以/>的形式回传数据至工作组的节点;
6)收到数据反馈的节点对签名进行验证,验证无误则由工作组的主节点聚合数据生成并由工作组内的节点/>对/>进行共识;共识成功后,主节点对聚合数据和边缘服务器生成的过程证明proof进行签名,并调用预言机合约的相应函数回传结果,数据格式为/>;
7)链上的权限管理合约进行权限判定,只有proof满足协同工作策略,才对主节点回传数据的资格进行验证,若不一致,则代表边缘服务器存在安全风险,返回错误信息;权限判定通过后,主节点成功回传结果至预言机合约;预言机合约对签名进行验证,验证无误后按照的形式,将聚合后的数据返回至用户合约,并奖励共识成功的节点。
本发明提供的系统具有如下有益的技术效果:
(1)使用ABAC权限访问控制模型来解决区块链预言机的数据控制问题,确定链上链下两套ABAC模型的相互协同,通过多重验证的方法来保证预言机传输上链的数据的真实、可信,可以适应多元、动态的数据来源和多样化的数据需求,降低数据上链的风险。
(2)基于VRF算法设计数据传输机制,根据用户对安全和效率的不同需求,实现柔性的链下局部共识方式,随机选择参与共识的节点,在保证一定安全性的同时,整体提高预言机传输数据的效率。
附图说明
图1为根据本发明优选实施例示出的可信预言机决策支撑系统架构图。
图2为根据本发明优选实施例示出的可信预言机决策支撑系统的逻辑架构图。
图3为根据本发明优选实施例示出的可信预言机决策支撑系统的实现架构图。
图4为根据本发明优选实施例示出的可信预言机决策支撑系统的工作流程图。
图5为根据本发明优选实施例示出的双ABAC控制模型示意图。
图6为根据本发明优选实施例示出的传输过程示意图。
图7为根据本发明优选实施例示出的改进后PBFT共识流程示意图。
图8为根据本发明优选实施例示出的协议流程图。
实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,本发明一方面提供了一种基于访问控制规则的区块链可信预言机决策支撑系统,包括:
由数据源、边缘服务器、预言机以及区块链智能合约四部分;
所述边缘服务器包括传感器终端、智能网关和微型计算机,每个边缘服务器均包括节点接口、数据源接口和ABAC权限管理模块,所述ABAC权限管理模块用于进行终端身份管理、认证绑定、权限管理和过程证明;
所述预言机将区块链上的数据请求转发至链下,并将链下采集的数据安全传输到链上,所述预言机为链上链下通信的通道;
所述区块链智能合约包括用户合约、预言机合约和ABAC合约;
所述区块链可信预言机决策支撑系统通过协同链上及链下两套ABAC访问控制模型,并结合可验证随机函数来加强预言机所传输数据的安全性和可靠性。
参见图2,所述基于访问控制规则的区块链可信预言机决策支撑系统包括数据层、合约层、逻辑层和表现层四层。
(1)数据层:该层由区块链及数据库组成,区块链用于记录预言机工作过程中产生的关键信息,数据库负责存储系统中的实体信息及用户相关信息;
(2)合约层:该层主要使用区块链智能合约实现相应功能,包括用户合约、ABAC智能合约以及预言机合约。其中,用户可通过用户合约发出数据请求并查看相应的结果,ABAC智能合约对上链数据进行权限判定,实现数据的可控上链,而预言机合约负责转发来自用户合约的请求至链下的计算机节点,并接收其响应的结果;
(3)逻辑层:该层主要包括链上操作、链下操作以及链上和链下的协同操作,负责接收来自表现层的请求,并根据请求内容与区块链以及数据库交互。其中,链下操作部分中请求处理操作和结果回传操作为链下操作的核心,对应的实现架构如图3所示。
(4)表现层:系统的最上层,是最接近用户的一层。为用户提供可视化界面,包括请求发送、结果查看等。
本发明所提区块链预言机基于事件订阅模式实现,实现架构整体包括订阅模块、查询模块和回调模块。链下的计算机节点在响应用户请求前,首先需要通过WS(WebSocket)协议在区块链上注册事件订阅,订阅成功后,即可通过读取相应智能合约的事件日志获取用户请求,对其进行解析并处理后,将查询结果转换为用户规定的数据类型,并以交易的形式将结果发送至请求中规定的回调地址。
参见图4,可信区块链预言机的工作流程如图4所示,具体描述如下:在响应用户的数据请求时,收到预言机合约所发请求的节点需在本地利用VRF进行随机计算(如图中①所示),具体的,节点利用私钥在本地生成VRF随机数及其证明,通过判断随机数是否满足请求中所规定的阈值条件来判断是否被选中响应本次请求,满足则加入工作组,工作组中生成随机数最小的节点即为本次请求的主节点(工作组节点数量由用户指定),其他节点则为非工作组节点,可根据VRF验证算法对选择结果进行合法性验证(如图中②所示)。通过该方法可在满足一定安全性的同时,提高预言机的工作效率。随后,经链下权限管理模型判断有资格的节点可转发请求至边缘服务器(如图中③所示),由其调用数据源接口采集指定数据(如图中④所示)。边缘服务器在将数据进行初步处理后,将其发送至工作组节点,发送时由权限管理模型进行相应的权限控制(如图中⑤所示)。收到边缘服务器所发送数据的节点经权限管理合约验证后,即可对接收到的数据进行聚合并回传至预言机合约(如图中⑥所示)。
(一)作为优选的实施方式,所述基于访问控制规则的区块链可信预言机决策支撑系统中的链上及链下两套ABAC访问控制模型在本实施例中被称为双ABAC链上链下访问控制模型。双ABAC链上链下访问控制模型由链上ABAC智能合约和链下ABAC模型构成,由链上ABAC智能合约和链下ABAC模型协同实现链上链下的可信数据交互;其中,所述双ABAC链上链下访问控制模型包括区块链、链下计算机节点、边缘服务器和物联网终端设备;所述链上的ABAC智能合约包括用户合约、预言机合约和ABAC权限管理合约;所述链下ABAC模型部署在所述链下计算机节点、边缘服务器和物联网终端设备;
链上到链下的可信数据交互顺序为:所述用户合约接收用户请求,通过预言机将请求转发至所述边缘服务器,进而传递给所述物联网终端设备;
链下到链上的可信数据交互顺序与链上到链下的可信数据交互顺序相反;链上ABAC智能合约和链下ABAC模型用于对所述可信数据的交互过程进行权限管理,通过层层传递、多重验证的方式实现链上链下的可信交互,便于定位追责。
作为优选的实施方式,所述区块链上部署用户合约、预言机合约及ABAC权限管理合约;所述用户合约负责与用户通信,所述预言机合约和多个链下计算机节点共同构成区块链预言机,其中,所述预言机合约用于发送请求并接收数据;多个所述链下计算机节点是连接区块链和链下数据的中间通道,运行预言机的基础功能,每个节点需要提前在预言机合约中通过公钥、IP等信息进行节点身份注册;所述边缘服务器上运行所述链下ABAC模型,链下计算机节点和终端设备,实现请求的转发和数据的回传。在系统的初始化阶段,边缘服务器需预先在节点中以公钥、IP等信息进行身份注册,同时,数据源需在边缘服务器进行绑定,由边缘服务器认证可信的数据源将被加入本地白名单。将数据传输上链时,边缘服务器根据链下权限判定过程中产生的关键信息生成过程证明,将其附带数据一同上链。通过验证上链的过程证明是否满足ABAC合约预存的协同工作策略,可判定链下运行的ABAC模型的可信性,即验证链下的权限管理过程的可信性。在响应用户的数据请求时,边缘服务器首先检查是否绑定了用户所请求的数据源。若未绑定,则对数据源进行认证、绑定,绑定成功后才可以响应请求。通过这种方式,可以满足用户多样化的数据需求,提高系统的灵活性。
此外,由于区块链是一种以密码学为基础的分布式技术,在区块链上进行计算和存储的成本较高,而区块链下的计算效率高且存储代价小。因此,本文将双ABAC的链上链下权限控制模型的工作过程分为四个阶段,由链下的ABAC模型存储前三个阶段的属性信息及策略信息,并进行策略判定,而链上ABAC合约仅负责第四个阶段,通过验证上链的过程证明是否满足其预存的协同工作策略,可以证明链下ABAC模型的可信,即前三个阶段策略判定的可信性。以下对四个阶段进行详细说明:
阶段一:本轮工作的节点将用户请求转发至边缘服务器(如图中①所示);
阶段二:终端设备将采集的数据发送至边缘服务器(如图中②所示);
阶段三:边缘服务器将数据回传至工作节点(如图中③所示);
阶段四:边缘服务器生成过程证明,并由节点将该证明连同数据一同回传至区块链上的预言机合约(如图中④所示)。
为保证链下权限管理的正确性和可靠性,采用多重验证的方式,阶段二中ABAC的策略判定结果是阶段三中访问主体的属性,同样的,阶段三中ABAC的判定结果是阶段四中访问主体的属性。此外,上链的过程证明是否满足区块链预存的协同工作策略也作为阶段四中访问主体的属性。只有四个阶段的策略判定均通过,预言机才能将数据返回至预言机合约,由此可有效的提高其传输数据的安全性与可靠性。具体描述如下:
(1)阶段一
链下的计算机节点获取到链上的用户请求后,根据请求的具体内容,利用VRF技术选择一定数量的节点参与后续的工作。被选中的节点随后将请求转发至相应的边缘服务器,由其进行后续操作(数据采集等)。为防止未被选中的节点向边缘服务器发送请求,以及被选中的节点向未注册的边缘服务器转发请求,对节点转发请求的操作进行权限控制。
节点作为主体,边缘服务器作为客体,主体属性S={被VRF选中},客体属性O={已注册},只有被VRF选中的节点,才能向已在系统中注册过的边缘服务器发送请求。节点属性表、边缘服务器属性表及阶段一策略表如表1、表2及表3所示。
表1 节点属性表
表2 边缘服务器属性表
表3 阶段一策略表
(2)阶段二
为防止非法数据源提供错误数据给边缘服务器,在系统初始化阶段,数据源需在边缘服务器进行绑定、认证,只有认证通过的数据源才能向边缘服务器传输数据。同时,为了防止数据源发送数据至与本次请求不相关或未注册的边缘服务器,对数据源传输数据的操作进行权限控制。数据源为主体,边缘服务器为客体,主体属性S={已绑定},客体属性O={已注册,收到节点转发的数据请求},只有已绑定的数据源,才能返回数据至已注册的、处理本次数据请求的边缘服务器。数据源属性表、边缘服务器属性表以及阶段二策略表如表4、表5及表6所示。
表4 数据源属性表
表5 边缘服务器属性表
表6 阶段二策略表
(3)阶段三
为防止未收到数据请求的边缘服务器传输错误的数据,以及边缘服务器发送数据至与本次请求不相关的节点,对其传输数据至节点的操作进行权限控制。边缘服务器为主体,节点为客体,主体属性S={收到节点转发的数据请求,收到数据源返回的数据},客体属性O={被VRF选中},只有收到数据请求的边缘服务器,才能将采集的数据返回至相应的节点。边缘服务器属性表、节点属性表和阶段三策略表如表7、表8及表9所示。
表7 边缘服务器属性表
表8 节点属性表
/>
表9 阶段三策略表
(4)阶段四
为防止链下的ABAC权限管理模块因故障或被攻击而产生错误的权限判定结果,以及节点作恶导致上链数据的真实性难以保证的问题,对节点返回数据至预言机合约的操作进行权限控制。节点为主体,属性S={被VRF选中,收到边缘服务器返回的数据,过程证明验证通过},预言机合约为客体,无属性。其中,过程证明由边缘服务器生成,包括前三个阶段中主体和客体的属性,以及权限判定结果,而协同工作策略预先存储于ABAC智能合约,通过验证过程证明是否满足协同工作策略,可判定链下ABAC权限管理过程的正确性,判定结果作为阶段四中节点的属性,由此可提高链下ABAC权限管理模型的可靠性。过程证明和协同工作策略如表10和表11所示。在进行阶段四的权限判定前,按阶段一到阶段三的顺序,依次与协同工作策略进行对比验证,若主体属性、客体属性及判定结果均一致,则验证通过。只有三个阶段均验证通过,过程证明验证才通过。
表10 过程证明示例表
表11 协同工作策略表
只有收到边缘服务器发送的数据且被VRF选中的节点,才能在链下过程证明验证通过的情况下,将数据回传至预言机合约,节点属性表和阶段四策略表如表12和表13所示。
表12 节点属性表
表13 阶段四策略表
只有表3、表6、表9和表13的策略执行结果均为是,预言机才能将数据返回至预言机合约,由此可有效的提高其传输数据的安全性和可靠性。
(二)基于VRF算法的可信数据传输机制
预言机作为区块链与链下数据交互的中间件,容易成为被攻击的目标,且预言机自身也存在作恶风险,其作恶或被攻击会直接影响数据的真实性和可信性,为区块链带来安全隐患。此外,如何在保证预言机可信的前提下最大限度的缩短预言机的响应时间(预言机收到请求到返回数据的时间间隔)是设计区块链预言机系统时必须考虑的问题。针对上述问题,本发明设计了一种可信的数据传输机制,基于VRF算法和改进后的PBFT共识算法保证数据在传输过程中的安全。同时,由于不同的用户对预言机的安全和效率有不同的需求,本发明设计一种柔性的链下局部共识方式,令其取代所有分布式节点间的共识方式,在满足用户多样化需求的同时,整体上提高数据传输的效率,具体过程见图6。
PBFT共识算法是一种状态机副本复制算法,可以容忍小于1/3个无效或攻击节点,在共识过程中,每个副本节点都需要和其它节点进行P2P的共识同步,算法的计算效率依赖于参与协议的节点数量,节点数量越多,通信的复杂度越高,性能下降越快。此外,PBFT中主节点的取余选取方法容易导致攻击节点当选,且选取顺序暴露易导致针对主节点的集中攻击,即使可以通过视图切换协议切换主节点,也会对系统的性能造成影响。为此,该传输机制可按照用户对预言机的个性化需求,利用VRF随机选取预言机节点参与共识,并在其中随机选取主节点。
以下按照数据流的流向,将整个过程分为链上到链下以及链下到链上两个过程,并分别进行描述。
(1)链上到链下
在将用户的数据请求转发至链下时,根据用户的需求,使用VRF技术在链下的分布式节点中随机选择多个节点,构成工作组来处理本次请求,其他节点构成非工作组,非工作组的节点验证选择结果是否合法。通过这种方式可以提高节点选择的随机性,在一定程度上增强节点的可信度,构建链上链下的可信传输通道。具体过程如下:用户通过用户合约发出数据请求,请求中需规定工作组的节点数量、阈值条件等信息(如图4中①所示)。用户合约收到请求后,调用预言机合约(如图4中②所示),由其转发请求至链下分布式节点(如图4中③所示)。收到请求的节点在本地完成VRF随机计算,通过判断其生成的随机数是否满足阈值条件来判断是否被选中加入工作组,其他节点可对选择结果进行合法性验证(如图4中④所示)。工作组的n个节点中,生成随机数最小的节点为组内的主节点,负责发起共识并将共识结果回传至区块链。
(2)链下到链上
工作组中的节点需要在规定的时间内,对请求的顺序和请求的执行结果进行PBFT共识(如图4中⑤所示),共识成功后,由主节点回传聚合数据和投票结果至区块链,聚合方式为取中位数、取平均数等(如图4中⑥所示)。区块链验证聚合签名的合法性后,将数据反馈给数据请求者(如图4中⑦、⑧所示),并对工作组中参与签名的节点进行奖励。通过该方式,实现了链下的局部共识过程,相较于在所有链下节点间达成共识,这种方式的效率更高,更具时效性。
基于VRF的节点选取方式
工作组的节点选取方式基于VRF设计,主要包括加密抽签算法和验证抽签算法,具体如算法1和算法2所示,随机种子、工作组节点数量及阈值由用户在请求中规定,节点公钥在整个网络公开,对应的私钥由节点自己保管。首先,每个节点利用VRF的随机数生成函数和证明生成函数生成随机数及其证明,函数入参为节点私钥和随机种子。
生成的随机数满足阈值条件的节点被暂存至数组R,所有参与节点均判定完成后,按照随机数大小对数组R中的节点进行冒泡排序,排序完成后选中前n个节点构成工作组节点数组Nodes,至此,工作组节点选择完成,非工作组的节点可利用算法2对选择结果进行合法性验证。
算法1:加密抽签算法
输入:节点私钥SK,随机种子seed,工作组节点数量n,阈值threshold
输出:随机数value,证明proof,工作组节点数组Nodes
1: function Sortition (SK, seed, n, threshold)
2:
3:
4:
5:是节点标识
6:end while
7:中的节点按value大小进行冒泡排序
8:
9:
10:交换两个元素的位置
11:end if
12: end
13:end
14:
15:
16:end
17:
18: end function
算法2:抽签验证算法
输入:节点公钥PK,随机种子seed,随机数value,证明proof
输出:验证结果result
1: function Verify (PK, seed, value, proof)
2:
3:
4: end function
改进后的PBFT共识流程
工作组节点间具体的PBFT共识流程如图7所示。
整个共识过程可以分为七个阶段,在原始PBFT共识的基础上,增加pre-confirm阶段和confirm阶段,并对request阶段和reply阶段进行改进,实现了一种适用于本发明所提传输机制的改进后的PBFT共识算法,以下对每个阶段进行详细描述:
1)request阶段:在处理请求时,所有节点均可订阅预言机智能合约的事件日志,在日志内容更新时,即可获得其中记录的数据请求事件,通过解析事件即可获得请求的具体内容,包括工作组的节点数量、阈值条件、回调地址等。随后,节点在本地执行VRF计算,随机数满足阈值条件的节点被选为工作组节点,工作组节点中随机数最接近阈值条件的节点即为本工作组的主节点,VRF的选择结果在区块上存证。如图7所示,节点1、节点2、节点3和节点4是处理某笔请求的工作组节点,其中,节点1是主节点,负责发起共识、对请求进行排序以及聚合数据,其余节点为备份节点,按照主节点提供的顺序执行请求。节点4是拜占庭节点,其作恶行为是对其他节点的请求无响应(拜占庭节点数f=1)。工作组的节点在同样的配置信息下工作,该配置信息即为视图view,视图编号为v;
2)pre-prepare阶段:主节点对请求进行排序编号后,发送预准备信息至工作组的其他节点,并将该信息记录至本地日志,其中n代表主节点分配的请求序号,m是请求的具体内容,digest是m的摘要;
3)prepare阶段:副本节点收到主节点的预准备信息后,对信息进行验证,验证合法则发送准备信息至包括主节点在内的其他工作组节点,并将预准备信息和准备信息写入本地日志,i是当前节点的标识。收到准备信息的节点对其进行校验,验证通过则将其插入本地日志,在收到2f+1(包括自己的)个相同的、与之前收到的预准备信息一致的准备信息,则进入commit阶段;
4)commit阶段:工作组的节点向其他节点广播信息,收到的节点对其进行校验,校验通过则将其写入本地日志。在收到2f+1(包括自己的)个commit信息后,代表大多数节点对请求及其执行顺序达成共识,则节点执行具体的请求,获取指定数据源的数据;
5)pre-confirm阶段:节点执行完请求后,将执行结果签名后发送pre-confirm消息至主节点,并在本地日志进行记录,消息格式为,其中,data是节点的请求执行结果,主节点对收到的信息进行验证,验证通过则将其插入本地的事件日志,在收到2f+1(包括自己的)个消息后,对其进行聚合,聚合方式为取中位数或取平均数,聚合完成后发送/>信息至工作组的其他节点,result代表主节点的聚合结果;
6)confirm阶段:收到pre-confirm信息的节点对其进行验证,验证无误则将其写入本地日志,并广播至工作组的其他节点。在收到2f+1(包括自己的)个confirm信息后,代表大多数节点认为主节点的聚合结果可信,则进入reply阶段;
7)reply阶段:节点发送至主节点,主节点进行合法性验证,在收到f+1个不同节点返回的相同的reply信息后,根据请求中提供的回调地址等信息,将聚合结果签名后以交易的形式回传至预言机合约。至此,改进后PBFT的共识流程结束。
三)可信预言机通信协议设计
为规范预言机的工作流程,加强通用性,本发明基于双ABAC的链上链下访问控制模型以及基于VRF的可信传输机制,设计了一种可信预言机通信协议。协议包括的组件有链上的用户合约、权限管理合约和预言机合约,以及链下的预言机节点、边缘服务器和数据源,其中边缘服务器运行着ABAC访问控制模型。协议的运行流程包括用户发出数据请求到收到数据的整个过程,具体流程如图8所示。
在初始化阶段,需完成注册、数据源绑定等工作。具体地,用户在用户合约上完成身份注册,由用户合约为其分配全网唯一的身份标识,即userID;预言机合约在用户合约中进行注册,注册内容为预言机合约的调用地址;边缘服务器在节点中注册以获得serverID;链下的各个节点在预言机合约进行注册以获得唯一的标识nodeID,注册信息包括节点公钥PK、IP地址等,同时,将节点中已注册的边缘服务器信息在区块链上存证;数据源在边缘服务器进行身份认证及绑定,绑定完成后,该数据源同样由唯一的ID进行标识,即dataID。
初始化完成后,协议的运行流程如下所述:
1)用户通过用户合约发出数据请求,形式为其中params字段包括目标数据源的url、工作组的预言机节点的数量n、阈值条件threshold、时间要求T、初始种子seed等,而callback指定了返回数据的入口点;
2)用户合约转发数据请求至预言机合约,由预言机合约为该笔请求生成全网唯一请求ID,即requestID,并发送/>至链下所有的预言机节点。在此期间,权限管理合约持续监测预言机合约的数据请求;
3)收到数据请求的节点在本地利用私钥SK和初始种子seed,运行VRF的随机数生成算法及证明生成算法,生成随机数value及其证明π,计算过程为:。计算完成后,若/>则该节点被选中加入工作组,工作组可表示为/>组内随机数最接近阈值条件的节点即为主节点。其他节点可利用/>验证选择结果的合法性。工作组的选择结果需通知权限管理合约;
4)经边缘服务器上所运行的权限控制模块授权后,工作组的节点可将数据请求以的形式转发至边缘服务器,nodeInfo指的是节点ID、节点IP等信息。收到请求的边缘服务器检查其绑定的数据源列表是否包括用户请求的数据源。若不包含,需要先检查目标数据源,完成身份认证,认证通过则进行绑定,随后将请求附带服务器的信息后发送至相应数据源,形式为/>若认证未通过,则返回错误信息至区块链;
5)收到请求的数据源根据用户的需求采集数据,经权限管理模块授权后,将采集的数据签名后回传至边缘服务器,由其对签名进行验证,形式为。若数据源的签名验证通过且边缘服务器有回传数据的资格,则以/>的形式回传数据至工作组的节点;
6)收到数据反馈的节点对签名进行验证,验证无误则由工作组的主节点聚合数据生成并由工作组内的节点/>对/>进行共识。共识成功后,主节点对聚合数据和边缘服务器生成的过程证明proof进行签名,并调用预言机合约的相应函数回传结果,数据格式为/>;
7)链上的权限管理合约进行权限判定,只有 proof满足协同工作策略,才对主节点回传数据的资格进行验证,若不一致,则代表边缘服务器存在安全风险,返回错误信息。权限判定通过后,主节点成功回传结果至预言机合约。预言机合约对签名进行验证,验证无误后按照的形式,将聚合后的数据返回至用户合约,并奖励共识成功的节点。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (5)
1.一种基于访问控制规则的区块链可信预言机决策支撑系统,其特征在于,所述系统基于双ABAC的链上链下访问控制模型、基于VRF算法的可信数据传输机制以及可信预言机通信协议实现,包括:
数据源、边缘服务器、预言机以及区块链智能合约;
所述边缘服务器包括传感器终端、智能网关和微型计算机,每个边缘服务器均包括节点接口、数据源接口和ABAC权限管理模块,所述ABAC权限管理模块用于进行终端身份管理、认证绑定、权限管理和过程证明;
所述预言机将区块链上的数据请求转发至链下,并将链下采集的数据安全传输到链上,所述预言机为链上链下通信的通道;
所述区块链智能合约包括用户合约、预言机合约和ABAC智能合约;
所述区块链可信预言机决策支撑系统通过协同链上及链下两套ABAC访问控制模型,并结合可验证随机函数来加强预言机所传输数据的安全性和可靠性;
所述基于访问控制规则的区块链可信预言机决策支撑系统包括数据层、合约层、逻辑层和表现层;
所述数据层由区块链系统及数据库组成,所述区块链系统用于记录预言机工作过程中产生的信息,所述数据库用于存储实体信息及用户相关信息;
所述合约层基于所述区块链智能合约实现功能,包括:用户通过所述用户合约发出数据请求并查看相应的结果,所述ABAC智能合约对上链数据进行权限判定,实现数据的可控上链;所述预言机合约用于转发来自所述用户合约的请求至链下的计算机节点,并接收其响应的结果;
所述逻辑层包括链上操作、链下操作以及链上和链下的协同操作,用于接收来自所述表现层的请求,并根据请求内容与区块链以及数据库交互;
所述表现层用于为用户提供可视化界面,包括请求发送和结果查看;
所述可信预言机基于事件订阅模式实现,实现架构整体包括订阅模块、查询模块和回调模块;链下的计算机节点在响应用户请求前,首先需要通过WebSocket协议在区块链上注册事件订阅,订阅成功后,通过读取相应智能合约的事件日志获取用户请求,对其进行解析并处理后,将查询结果转换为用户规定的数据类型,并以交易的形式将结果发送至请求中规定的回调地址;
所述可信预言机的工作流程包括:
在响应用户的数据请求时,收到预言机合约所发请求的节点需在本地利用VRF进行随机计算,所述节点利用私钥在本地生成VRF随机数及其证明;
通过判断随机数是否满足请求中所规定的阈值条件来判断是否被选中响应本次请求,满足则加入工作组,工作组中生成随机数最小的节点即为本次请求的主节点,其中工作组节点数量由用户指定;其他节点确定为非工作组节点,根据VRF验证算法对选择结果进行合法性验证;
经链下权限管理模型判断有资格的节点可转发请求至边缘服务器;
由边缘服务器调用数据源接口采集指定数据;
所述边缘服务器在将数据进行初步处理后,将其发送至工作组节点,发送时由权限管理模型进行相应的权限控制;
收到边缘服务器所发送数据的节点经权限管理合约验证后,对接收到的数据进行聚合并回传至预言机合约;
所述双ABAC链上链下访问控制模型由链上ABAC智能合约和链下ABAC模型构成,由链上ABAC智能合约和链下ABAC模型协同实现链上链下的可信数据交互;其中,所述双ABAC链上链下访问控制模型包括区块链、链下计算机节点、边缘服务器和物联网终端设备;所述链上ABAC智能合约包括用户合约、预言机合约和ABAC权限管理合约;所述链下ABAC模型部署在所述链下计算机节点、边缘服务器和物联网终端设备;
链上到链下的可信数据交互顺序为:所述用户合约接收用户请求,通过预言机将请求转发至所述边缘服务器,进而传递给所述物联网终端设备;
链下到链上的可信数据交互顺序与链上到链下的可信数据交互顺序相反;链上ABAC智能合约和链下ABAC模型用于对所述可信数据的交互过程进行权限管理,通过层层传递、多重验证的方式实现链上链下的可信交互和定位追责;
所述区块链上部署用户合约、预言机合约及ABAC权限管理合约;所述用户合约负责与用户通信,所述预言机合约和多个链下计算机节点共同构成区块链预言机,其中,所述预言机合约用于发送请求并接收数据;多个所述链下计算机节点是连接区块链和链下数据的中间通道,运行预言机的基础功能,每个节点提前在预言机合约中通过公钥、IP信息进行节点身份注册;所述边缘服务器上运行所述链下ABAC模型,链下计算机节点和终端设备,实现请求的转发和数据的回传;在系统的初始化阶段,边缘服务器预先在链下计算机节点中以公钥、IP信息进行身份注册,同时,数据源在边缘服务器进行绑定,由边缘服务器认证可信的数据源将被加入本地白名单;将数据传输上链时,边缘服务器根据链下权限判定过程中产生的关键信息生成过程证明,将其附带数据一同上链;通过验证上链的过程证明是否满足ABAC合约预存的协同工作策略,判定链下运行的ABAC模型的可信性,即验证链下的权限管理过程的可信性;在响应用户的数据请求时,边缘服务器首先检查是否绑定了用户所请求的数据源;若未绑定,则对数据源进行认证、绑定,绑定成功后响应请求。
2.根据权利要求1所述的一种基于访问控制规则的区块链可信预言机决策支撑系统,其特征在于,所述双ABAC的链上链下访问控制模型的工作过程分为四个阶段,由链下的ABAC模型存储前三个阶段的属性信息及策略信息,并进行策略判定,而链上ABAC合约仅负责第四个阶段,通过验证上链的过程证明是否满足其预存的协同工作策略,可以证明链下ABAC模型的可信,即前三个阶段策略判定的可信性;所述四个阶段包括:
阶段一:本轮工作的节点将用户请求转发至边缘服务器;
阶段二:终端设备将采集的数据发送至边缘服务器;
阶段三:边缘服务器将数据回传至工作节点;
阶段四:边缘服务器生成过程证明,并由节点将该证明连同数据一同回传至区块链上的预言机合约;
采用多重验证的方式,所述阶段二中ABAC的策略判定结果是阶段三中访问主体的属性,阶段三中ABAC的判定结果是阶段四中访问主体的属性;上链的过程证明是否满足区块链预存的协同工作策略作为阶段四中访问主体的属性;只有四个阶段的策略判定均通过,预言机才能将数据返回至预言机合约。
3.根据权利要求2所述的一种基于访问控制规则的区块链可信预言机决策支撑系统,其特征在于,所述基于VRF算法的可信数据传输机制,包括:
(1)链上到链下
在将用户的数据请求转发至链下时,根据用户的需求,使用VRF技术在链下的分布式节点中随机选择多个节点,构成工作组来处理本次请求,其他节点构成非工作组,非工作组的节点验证选择结果是否合法;包括:用户通过用户合约发出数据请求,请求中需规定工作组的节点数量、阈值条件信息;用户合约收到请求后,调用预言机合约,由其转发请求至链下分布式节点;收到请求的节点在本地完成VRF随机计算,通过判断其生成的随机数是否满足阈值条件来判断是否被选中加入工作组,其他节点可对选择结果进行合法性验证;工作组的n个节点中,生成随机数最小的节点为组内的主节点,负责发起共识并将共识结果回传至区块链;
(2)链下到链上
工作组中的节点在规定的时间内,对请求的顺序和请求的执行结果进行PBFT共识,共识成功后,由主节点回传聚合数据和投票结果至区块链,聚合方式为取中位数或取平均数;区块链验证聚合签名的合法性后,将数据反馈给数据请求者,并对工作组中参与签名的节点进行奖励。
4.根据权利要求3所述的一种基于访问控制规则的区块链可信预言机决策支撑系统,其特征在于,所述使用VRF技术在链下的分布式节点中随机选择一定数量的节点包括:加密抽签算法和验证抽签算法,随机种子、工作组节点数量及阈值由用户在请求中规定,节点公钥在整个网络公开,对应的私钥由节点自己保管;所述加密抽签算法包括每个节点利用VRF的随机数生成函数和证明生成函数生成随机数及其证明,函数入参为节点私钥和随机种子;所述随机数满足阈值条件的节点被暂存至数组R,所有参与节点均判定完成后,按照随机数大小对数组R中的节点进行冒泡排序,排序完成后选中前n个节点构成工作组节点数组Nodes,至此,工作组节点选择完成,非工作组的节点可利用抽签验证算法对选择结果进行合法性验证;
所述工作组中的节点在规定的时间内,对请求的顺序和请求的执行结果进行PBFT共识分为七个阶段,包括:request阶段、pre-prepare阶段、prepare阶段、commit阶段、pre-confirm阶段、confirm阶段以及reply阶段。
5.根据权利要求4所述的一种基于访问控制规则的区块链可信预言机决策支撑系统,其特征在于,所述可信预言机通信协议包括:在初始化阶段,用户在用户合约上完成身份注册,由用户合约为其分配全网唯一的身份标识,即userID;预言机合约在用户合约中进行注册,注册内容为预言机合约的调用地址;边缘服务器在节点中注册以获得serverID;链下的各个节点在预言机合约进行注册以获得唯一的标识nodeID,注册信息包括节点公钥PK、IP地址,同时,将节点中已注册的边缘服务器信息在区块链上存证;数据源在边缘服务器进行身份认证及绑定,绑定完成后,该数据源同样由唯一的ID进行标识,即dataID;
初始化完成后,协议的运行流程包括:
1)用户通过用户合约发出数据请求,形式为Request=(params,callback),其中params字段包括目标数据源的url、工作组的预言机节点的数量n、阈值条件threshold、时间要求T、初始种子seed,callback指定返回数据的入口点;
2)用户合约转发数据请求Request=(params)至预言机合约,由预言机合约为该笔请求生成全网唯一请求ID,即requestID,并发送Request=(requestID,params)至链下所有的预言机节点;在此期间,权限管理合约持续监测预言机合约的数据请求;
3)收到数据请求的节点在本地利用私钥SK和初始种子seed,运行VRF的随机数生成算法及证明生成算法,生成随机数value及其证明π,计算过程为:value,π=VRF_Hash(SK,seed);计算完成后,若value<threshold,则该节点被选中加入工作组,工作组可表示为Node={node1,…,nodei,…,noden},组内随机数最接近阈值条件的节点即为主节点;其他节点利用true/false=VRF_Verify(seed,π,PK,value)验证选择结果的合法性;工作组的选择结果通知权限管理合约;
4)经边缘服务器上所运行的权限控制模块授权后,工作组的节点将数据请求以Request=(requestID,params,nodeInfo)的形式转发至边缘服务器,nodeInfo指的是节点ID、节点IP信息;收到请求的边缘服务器检查其绑定的数据源列表是否包括用户请求的数据源;若不包含,先检查目标数据源,完成身份认证,认证通过则进行绑定,随后将请求附带服务器的信息后发送至相应数据源,形式为Request=(requestID,params,serverInfo),若认证未通过,则返回错误信息至区块链;
5)收到请求的数据源根据用户的需求采集数据,经权限管理模块授权后,将采集的数据签名后回传至边缘服务器,由其对签名进行验证,形式为ReturnData=(requestID,params,data)sig;若数据源的签名验证通过且边缘服务器有回传数据的资格,则以ReturnData=(requestID,params,data)sig的形式回传数据至工作组的节点;
6)收到数据反馈的节点对签名进行验证,验证无误则由工作组的主节点聚合数据生成aggData,并由工作组内的节点nodei对aggData进行共识;共识成功后,主节点对聚合数据和边缘服务器生成的过程证明proof进行签名,并调用预言机合约的相应函数回传结果,数据格式为ReturnData=(requestID,params,aggData,proof)sig;
7)链上的权限管理合约进行权限判定,只有proof满足协同工作策略,才对主节点回传数据的资格进行验证,若不一致,则代表边缘服务器存在安全风险,返回错误信息;权限判定通过后,主节点成功回传结果至预言机合约;预言机合约对签名进行验证,验证无误后按照ReturnData=(aggData)的形式,将聚合后的数据返回至用户合约,并奖励共识成功的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310879657.9A CN116866045B (zh) | 2023-07-18 | 2023-07-18 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310879657.9A CN116866045B (zh) | 2023-07-18 | 2023-07-18 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116866045A CN116866045A (zh) | 2023-10-10 |
CN116866045B true CN116866045B (zh) | 2024-01-23 |
Family
ID=88233876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310879657.9A Active CN116866045B (zh) | 2023-07-18 | 2023-07-18 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116866045B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003942A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 链下数据请求响应方法、系统、节点设备与存储介质 |
CN113205416A (zh) * | 2021-04-19 | 2021-08-03 | 杭州溪塔科技有限公司 | 一种基于区块链预言机的业务处理方法和系统 |
CN114428978A (zh) * | 2021-12-06 | 2022-05-03 | 南京理工大学 | 基于计算预言机的工业互联网区块链可信计算架构及方法 |
CN114493865A (zh) * | 2022-01-06 | 2022-05-13 | 北京邮电大学 | 基于区块链的去中心化互联网协同系统和数据交互方法 |
CN114499895A (zh) * | 2022-04-06 | 2022-05-13 | 国网浙江省电力有限公司电力科学研究院 | 一种融合可信计算与区块链的数据可信处理方法及系统 |
WO2022267715A1 (zh) * | 2021-06-22 | 2022-12-29 | 中兴通讯股份有限公司 | 一种预言机节点筛选方法、装置、存储介质及电子装置 |
CN115618321A (zh) * | 2021-07-16 | 2023-01-17 | 中移物联网有限公司 | 访问控制方法及装置、电子设备、存储介质 |
WO2023109217A1 (zh) * | 2021-12-15 | 2023-06-22 | 杭州趣链科技有限公司 | 数据处理方法、区块链系统、计算机设备及存储介质 |
-
2023
- 2023-07-18 CN CN202310879657.9A patent/CN116866045B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003942A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 链下数据请求响应方法、系统、节点设备与存储介质 |
CN113205416A (zh) * | 2021-04-19 | 2021-08-03 | 杭州溪塔科技有限公司 | 一种基于区块链预言机的业务处理方法和系统 |
WO2022267715A1 (zh) * | 2021-06-22 | 2022-12-29 | 中兴通讯股份有限公司 | 一种预言机节点筛选方法、装置、存储介质及电子装置 |
CN115618321A (zh) * | 2021-07-16 | 2023-01-17 | 中移物联网有限公司 | 访问控制方法及装置、电子设备、存储介质 |
CN114428978A (zh) * | 2021-12-06 | 2022-05-03 | 南京理工大学 | 基于计算预言机的工业互联网区块链可信计算架构及方法 |
WO2023109217A1 (zh) * | 2021-12-15 | 2023-06-22 | 杭州趣链科技有限公司 | 数据处理方法、区块链系统、计算机设备及存储介质 |
CN114493865A (zh) * | 2022-01-06 | 2022-05-13 | 北京邮电大学 | 基于区块链的去中心化互联网协同系统和数据交互方法 |
CN114499895A (zh) * | 2022-04-06 | 2022-05-13 | 国网浙江省电力有限公司电力科学研究院 | 一种融合可信计算与区块链的数据可信处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
移动边缘计算中的区块链技术研究进展;武继刚;刘同来;李境一;黄金瑶;;计算机工程(08);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116866045A (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leng et al. | Blockchain security: A survey of techniques and research directions | |
Gorkhali et al. | Blockchain: A literature review | |
Zhao et al. | Secure pub-sub: Blockchain-based fair payment with reputation for reliable cyber physical systems | |
Yang et al. | Smart-toy-edge-computing-oriented data exchange based on blockchain | |
CN108810137A (zh) | 一种联盟区块链系统 | |
WO2021058298A1 (en) | Consensus protocol for blockchain dag structure | |
CN112311772B (zh) | 基于Hyperledger的跨域证书管理系统及方法 | |
CN113328997B (zh) | 联盟链跨链系统及方法 | |
CN115210741A (zh) | 部分有序的区块链 | |
KR20200019944A (ko) | 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 | |
WO2022152008A1 (zh) | 一种跨链协同治理系统、方法、设备及存储介质 | |
CN113850599B (zh) | 一种应用于联盟链的跨链交易方法及系统 | |
CN114493865A (zh) | 基于区块链的去中心化互联网协同系统和数据交互方法 | |
Zhang et al. | A blockchain-based authentication scheme and secure architecture for IoT-enabled maritime transportation systems | |
CN115277122A (zh) | 基于区块链的跨境数据流动与监管系统 | |
Abubaker et al. | Trustful data trading through monetizing IoT data using BlockChain based review system | |
CN115841383A (zh) | 一种委员会决策投票方法、系统、介质、设备及终端 | |
CN116888595A (zh) | 区块链网络的资格证明共识 | |
Ahmed et al. | Toward fine‐grained access control and privacy protection for video sharing in media convergence environment | |
Hatefi et al. | A conditional privacy-preserving fair electronic payment scheme based on blockchain without trusted third party | |
EP4285545A1 (en) | Authenticated modification of blockchain-based data | |
CN113900837A (zh) | 算力网络处理方法、装置、设备及存储介质 | |
CN114239044A (zh) | 一种去中心化的可追溯共享访问系统 | |
CN116866045B (zh) | 一种基于访问控制规则的区块链可信预言机决策支撑系统 | |
Zhu et al. | A study on the challenges and solutions of blockchain interoperability |
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 |