CN116545696B - 一种基于去中心化数字身份的链下服务可信化方法 - Google Patents
一种基于去中心化数字身份的链下服务可信化方法 Download PDFInfo
- Publication number
- CN116545696B CN116545696B CN202310517618.4A CN202310517618A CN116545696B CN 116545696 B CN116545696 B CN 116545696B CN 202310517618 A CN202310517618 A CN 202310517618A CN 116545696 B CN116545696 B CN 116545696B
- Authority
- CN
- China
- Prior art keywords
- service
- chain
- under
- contract
- digital
- 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 title claims abstract description 83
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 238000010276 construction Methods 0.000 claims abstract description 14
- 230000009471 action Effects 0.000 claims abstract description 5
- 238000007726 management method Methods 0.000 claims description 31
- 238000012795 verification Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000006378 damage Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000005728 strengthening Methods 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012407 engineering method Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
- 230000009897 systematic effect Effects 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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
Abstract
本发明涉及一种基于去中心化数字身份的链下服务可信化方法,数字身份生成阶段:根据服务信息与状态,确定链下服务的去中心化数字身份;数字证书构造阶段:根据数字身份利用密码学方法构造数字证书,由智能合约完成链下服务的认证;服务生命周期管理:智能合约维护认证后服务的生命周期,负责生命周期动作。本发明提出链下服务的完整数字身份,在生成数字证书的过程中使用计算代价小的密码学摘要与签名算法,与现有方案比效率较高,同时使用智能合约对扩展服务进行全生命周期的管理,扩展服务一定程度上具备和智能合约相同的安全可信、不可篡改与可追溯的特性,相较于现有方案能记录更多的服务状态,能提供更高的信任保障。
Description
技术领域
本发明涉及智能合约技术领域,具体涉及一种基于去中心化数字身份的链下服务可信化方法。
背景技术
智能合约的概念由计算机学家、密码学家Nick Szabo在1997年的《Formalizingand Securing Relationships on Public Networks》文章中提出。他在文中分析了传统合约的不足,提出了智能合约的概念和原则,并说明了通过利用计算机、互联网和密码协议等新技术构造智能合约的可能性和优势。
智能合约具有可观察性、可验证性、接入控制性和自强制性,区块链出现以前因为没有计算平台可以满足其可观察性、可验证性和自强制性,其发展一直缓慢,合约方无法直接观察和验证其他合约方的执行动作,只能依赖第三方机构。支持可编程智能合约的区块链2.0时代到来后,智能合约有了支撑其运行的可信环境,从区块链角度看智能合约,其本质上是一个自动执行的分布式脚本,每个节点执行相同的程序代码,一旦成功部署后,代码不能更改,并且其执行结果是确定性的。合约需要运行在一个有限的孤立沙箱环境中,对区块链内部状态进行操作,从根本上来说参与区块链网络的每一个节点运行相同的合约输出相同的结果,达到完全一致的最终状态。
智能合约和普通计算机程序一样具有完整的生命周期,可以被概括为六个阶段:协商、开发、部署、运维、学习和自毁。协商指智能合约被部署到区块链系统前所有相关方就要遵守的规则事先达成一致。开发指智能合约代码编写过程,理论上任何区块链系统都可以定义自己的一套虚拟机支持对内部状态的更改,比如以太坊使用Solidity,Fabric可以使用go、Java等开发智能合约。智能合约整体架构可以被概括为图1。
随着智能合约技术的发展,越来越多的形式繁杂的智能合约被提出,与传统的软件技术相同,智能合约的整个生命周期也需要有工程方法的指导,我们称之为智能合约工程,即融合软件工程、智能化方法和法律代码化技术的智能合约系统化、规模化、判定化的开发、维护和执行过程。依循智能合约工程生产的智能合约具有合法性、公信性、证据性、一致性、智能型、可信性、可观察性、可验证性、自强制性和接入控制。
当前随着国内数字经济产业的发展,代表的区块链、云计算等科学技术蓬勃发展,区块链作为新基建之一,已赋能各行各业。区块链可以理解为去中心化的分布式账本,智能合约是区块链提供服务的核心模块,作为事先编制可自动执行的计算机脚本,智能合约可在无第三方中介的干扰下去中心化地执行。然而,随着智能合约为以可信服务的形式赋能越来越多的领域,其局限性也逐渐显现。
智能合约执行在区块链环境中的隔离沙箱中,这是其安全可信的基础,然而这同时也造成了数据访问限制和性能限制。数据访问限制指的是智能合约只能访问区块链上的数据,而不能访问链外的数据,但在大多数情况下链上的信息和数据是不完整的,不能满足智能合约的所有需求。智能合约通常需要与外部数据源进行交互,以获取更多的信息和数据,这些外部数据源位于链下环境。性能访问限制指的是智能合约运行在区块链节点上,因此其性能和吞吐量受到限制。在需要执行复杂计算任务时,这些计算可能超出了链上虚拟机的处理能力。这种情况下,智能合约需要与链下的计算资源进行交互,以获得更多的计算能力。但链下资源属于单独机构组织,容易引入非预期的中心化风险,难以保证可信性。
智能合约获取链下资源并与链下服务协同目前采用是预言机机制和链下计算机制,各自都存在一些限制与不足。预言机机制需要引入第三方组件保证信任,依赖的不同信任模式都存在一定构建成本,比如构建TLSNotary证明、构建TEE运行环境。链下计算机制大多依赖复杂的密码学证明原理,在目前的工程实现中,多将问题建模为门电路的形式求解,机理过于复杂且证明求解过程耗费大量计算时间,计算成本高同时效率低。
发明内容
有鉴于此,为了解决上述技术问题,本发明提供一种基于去中心化数字身份的链下服务可信化方法。
本发明采用以下技术方案:
一种基于去中心化数字身份的链下服务可信化方法,包括:
数字身份生成阶段:根据服务信息与状态,确定链下服务的去中心化数字身份;
数字证书构造阶段:根据数字身份利用密码学方法构造数字证书,由智能合约完成链下服务的认证;
服务生命周期管理:智能合约维护认证后服务的生命周期,生命周期包括认证、销毁、更新、调用;负责生命周期动作。
在一个实施例中,所述数字身份生成阶段具体包括:
根据链下服务相关属性将数字身份表示为下式所示的七元组形式:
Soffchain=(n,URL,<p,r>,P,rT,mI,Ds)
其中,SOffchain代表链下服务的数字身份描述信息,n代表链下服务名称;URL代表链下服务URL,作为服务的唯一标识并借助其完成调用;<p,r>代表链下服务的参数列表和返回值类型;P代表链下服务供应商;rT代表链下服务的认证时间;mI代表链下服务的描述信息;Ds是服务当前状态的快照。
对服务状态进行快照,状态是服务类反射的字节数组,对数组使用下式进行摘要:
其中,[a0,a1,a2,…,am-1]为当前服务状态映射的字节数组,利用与素数31的计算得到定长的服务快照;
拆解高幂次运算,利用缓存加速计算过程将上式转为下式:
d=((...((a0+a1)*31+a2)*31+...)*31+am-2)*31+am-1
在一个实施例中,所述数字证书构造阶段具体包括:
基于链下服务的数字身份描述SOffchain设计的数字证书表示为下式所示的多元组,该数字证书由智能合约生成:
DCoff=(v,s′,I,<Tstart,Tend>,E,pK,Sig,SigAlg)
其中,v代表数字证书版本号;s’代表证书序列号;I代表发证方;<Tstart,Tend>代表服务的有效期起止时间,基于数字身份中的rT构建;E代表服务实体;pK代表签名公钥;Sig代表对服务的数字签名;SigAlg为采用的签名算法;
利用公钥pK依据SigAlg方法对服务进行签名得到Sig字段;
公钥pK的生成算法包括如下步骤:
大素数(a,b)生成:使用随机数生成器生成两个随机数,使用Miller-Rabin方法检验素性,如不满足则向左右探测指导满足素性,记录两个随机素数a,b;
利用扩展欧几里得算法求解素数a关于欧拉函数Φ(b)的乘法逆元e;
记录乘积prod=a*b;
数字签名过程概括为如下两式:
Digest=MD5(SoffChain)
Sig=Digeste(mod prod)
其中,利用MD5摘要算法对链下服务做摘要处理,得到摘要后使用求得的公私钥得到签名;链下服务提供数字身份Soffchain后,智能合约得到对应的数字证书DCoff,作为后续证明服务合法的凭证。
在一个实施例中,所述服务生命周期管理具体包括:
为链下服务的数字证书生成合约添加相关管理方法与接口,升级为扩展服务管理合约;
在成为扩展服务管理合约后,对服务的调用由智能合约完成扩展服务数字证书的可信校验操作,智能合约A对扩展服务B的一次调用流程包括如下步骤:
(1)智能合约A调用扩展服务调用方法:为统一管理所有对扩展服务的调用,设置服务调用方法完成参数转换请求包装;在区块链系统中对所有合约方法的调用均需要通过交易触发;智能合约A生成的触发服务调用接口的交易如下式所示:
Tx=(Addrfrom,Addrto,v,data,T)
其中,Addrfrom为智能合约A的地址,Addrto为扩展服务管理合约的地址,v为合约携带的数值,T是交易生成的时间戳,data是交易的核心字段,在这里data=(URL,paramValue),声明扩展服务的URL和实参列表;
(2)检查扩展服务B状态并包装请求体:扩展服务管理合约A对比扩展服务B的当前状态与其保存的数字证书,经过验签流程判断服务当前状态的合法性,校验通过后将交易data域中的paramValue进行包装,使用格式字典将实参列表编码为数据类型:数值的形式{Type:value};
(3)请求扩展服务B:智能合约执行引擎执行到扩展服务调用交易后根据包装的请求体对外执行RPC调用;
(4)扩展服务B执行任务并提交执行日志:扩展服务B接收请求后解析参数并执行请求,将执行结果调用日志上传接口提交到区块链上;
(5)扩展服务管理合约记录调用日志:管理合约记录的调用日志结构如下式所示:
Log=(id,C,sN,URL,<p,r>,T,s,err)
其中,id代表日志序列号;C代表服务调用者;sN代表被调用服务名;URL代表被调用服务的URL;<p,r>代表此次调用的实参列表与结果数值;T代表调用时间;s代表此次请求的执行状态;err记录失败原因。
本发明的有益效果包括:现有的智能合约与链下资源协同的方式主要可分为预言机方法和链下计算方法两种,其中预言机机制需要引入第三方组件保证信任,构建维护过程复杂,链下计算机制大多依赖复杂的密码学证明原理,计算成本高同时效率低,为了解决上述技术问题,本发明提供的一种基于去中心化数字身份的链下服务可信化方法,提出链下服务的完整数字身份,在生成数字证书的过程中使用计算代价小的密码学摘要与签名算法,与现有方案比效率较高,同时使用智能合约对扩展服务进行全生命周期的管理,扩展服务一定程度上具备和智能合约相同的安全可信、不可篡改与可追溯的特性,相较于现有方案能记录更多的服务状态,能提供更高的信任保障。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍:
图1是智能合约基础架构图;
图2是本申请实施例提供的一种基于去中心化数字身份的链下服务可信化方法的流程图;
图3是扩展服务管理合约基本架构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了说明本申请所述的技术方案,下面通过具体实施方式来进行说明。
先对链下资源信任模型进行介绍:
当前针对智能合约的链下扩展问题,学界和工业界提出了各种不同的实施方法,可以概括为预言机方法和链下计算方法。
预言机(Oracle)是一种将链下数据带入区块链的技术。由于区块链的特性限制了它对外部数据的获取能力,而预言机可以将链下数据转换为区块链可读取的格式,并将其提供给智能合约。在金融、保险、供应链管理、物联网等领域得到了广泛应用。预言机通常由第三方提供,其作用可以概括为:提供数据源、转换数据和提供安全性三部分。因为需要访问互联网等链下数据,所以预言机的可靠性和安全性是非常重要的,当前不同预言机系统根据其解决问题的不同,采用密码学证明、安全硬件执行、共识和激励机制等不同方法,以下是一些代表案例:
1.Provable[TLSNotary]:2015年上线的Provable(原Oraclize)是一种中心化的预言机服务,为智能合约提供安全的数据传输通道,以从Web API获取外部数据。它的内核oralize引擎使用TLSNotary证明(数字签名的集合)收集并验证请求的数据,并以具有回调方法的新事务的形式将其返回给调用智能合约。并使用IPFS和SWARM等去中心化存储系统记录真实性证明状态数据。
2.Town Crier[TEE]:2016年由康奈尔大学的研究人员提出,是一种基于TrustedExecution Environment(TEE)的预言机系统,Town Crier通过TEE来保护预言机的计算过程和内部状态,从而确保其能够提供可信的数据源。TEE是一种硬件安全技术,将执行环境从主机操作系统和其他应用程序中隔离出来,防止恶意攻击和非法访问。这种技术可以确保Town Crier在没有外部干扰的情况下运行,并提供可验证的链下数据源。
3.ChainLink[Reputation]:2017年由Sergey Nazarov和Steve Ellis共同提出。核心目标是解决区块链应用中的可信数据输入问题。它通过将多个预言机节点连接起来,创建了一个去中心化、安全、可靠的数据传输和验证网络,从而使得区块链应用可以轻松地获取到链下数据,并将其用于智能合约的执行。它的突出特点是构建了由链上和链下组件协同组成的去中心化分布式信任模型。其链下资源的信任模型是基于声誉合约提出的,以token形式完成对行为结果的奖惩。
链下计算(Off-chain computation)是指在区块链外部进行计算和处理,然后将结果提交到区块链上的一种技术。在区块链中,智能合约的执行需要消耗大量的计算资源,尤其是涉及到复杂的计算和数据处理时,可能会导致交易速度变慢和费用增加。为了解决这个问题,链下计算技术应运而生。链下计算问题同样有不同的解决方法:
1.VOC:可验证的链下计算。它是一种链外技术,其中验证者执行计算,然后发布结果,包括向区块链证明计算正确性的加密证明。链上验证程序随后验证证据,并在成功的情况下保持结果。代表实现是zkSNARKs。
2.sMPC:基于多方安全计算的链下计算。该机制保证一组节点能够以任何节点都不能访问全部数据的方式计算秘密数据上的函数。机密数据被分割成batch,作为私有输入分发给一组链外节点,这些节点分别计算上传结果并在链上重新组合为最终结果。代表实现是Enigma。
3.IOC:激励驱动的链外计算。假设参与者的行为遵循经济理性,参与系统运行的目的在于效用最大化。系统规则可以通过保留存款作为对抗违规行为的杠杆,并通过对期望行为进行财务奖励来执行。计算任务由链外计算者和多个竞争的链外验证器冗余执行,这些验证器受到激励,在计算者发布的结果中查找错误。代表实现是TrueBit。
本实施例针对智能合约对链下资源的协同问题,提出一种基于去中心化数字身份的链下服务可信化方法,如图2所示,分为三个阶段:首先是数字身份生成阶段,根据服务信息与状态,设计链下服务的去中心化数字身份。第二阶段是数字证书构造阶段,根据数字身份利用密码学方法构造数字证书,由智能合约完成链下服务的认证。第三阶段是服务生命周期管理,智能合约维护认证后服务的生命周期,全面负责其包括认证、销毁、更新、调用等在内的生命周期动作。通过以区块链日志的形式记录对服务的所有请求,由此赋予其智能合约安全、可信、不可篡改与可追溯的特性,避免在与链下资源协同时可能会面临的中心化风险。
如下对一种基于去中心化数字身份的链下服务可信化方法中的三个阶段分别具体说明。
数字身份生成阶段具体包括:
对智能合约而言,链下存在多个来源的异构服务,为综合管理及便于后续统一调用,需要为这些服务建立适当的数字身份。为完整描述服务当前状态,根据链下服务相关属性将数字身份表示为下式(1)所示的七元组形式:
SoffChain=(n,URL,<p,r>,P,rT,mI,Ds) (I)
其中,SOffchain代表链下服务的数字身份描述信息,n代表链下服务名称;URL代表链下服务URL,作为服务的唯一标识并借助其完成调用;<p,r>代表链下服务的参数列表和返回值类型;P代表链下服务供应商;rT代表链下服务的认证时间;mI代表链下服务的描述信息,包括功能描述,服务质量描述等;Ds是服务当前状态的快照。
链下服务的数字身份中,前6项均可从服务描述直接获取,最后一项Ds服务快照描述当前服务的逻辑控制状态,来源于运行中的服务状态的映射摘要。在事先对链下服务进行多次调用保证具备可用性且结果正确的基础上,对服务状态进行快照,状态可以是服务类反射的字节数组。为保证对不同规模服务的统一管理,对数组使用下式(2)进行摘要:
其中,[a0,a1,a2,…,am-1]为当前服务状态映射的字节数组,利用与素数31的计算得到定长的服务快照。拆解高幂次运算,利用缓存加速计算过程将上式(2)转为下式(3):
d=((…((a0+a1)*31+a2)*31+…)*31+am-2)*31+am-1
(3)
在计算机中可利用31*i=(i<<5)-i移位运算替换乘法运算。选择31作为乘子一方面是作为素数在参与乘法时存在密码学优势,提升函数的分布均匀性和安全性,另一方面作为2的幂次-1可以做移位替换。
经过上述计算过程,可以得到链下服务的数字身份描述信息SOffchain。
数字证书构造阶段具体包括:
数字证书是一种电子凭证,用于证明数字身份和身份认证。通常包含了公钥和身份信息,由数字签名机构颁发,并用数字签名加密来保证数字证书的可信性和完整性。基于链下服务的数字身份描述SOffchain设计的数字证书表示为下式(4)所示的多元组,该数字证书由智能合约生成:
DCoff=(v,s′,I,<Tstart,Tend>,E,pK,Sig,SigAlg) (4)
其中,v代表数字证书版本号;s’代表证书序列号;I代表发证方,可用生成证书的合约地址标识;<Tstart,Tend>代表服务的有效期起止时间,基于数字身份中的rT构建;E代表服务实体;pK代表签名公钥;Sig代表对服务的数字签名;SigAlg为采用的签名算法。
数字证书生成过程中前5项可不经过计算直接得到。后三项为获取链下服务数字签名的相关信息字段,利用公钥pK依据SigAlg方法对服务进行签名得到Sig字段。
公私钥:运行在不同节点上的智能合约不允许引入随机行为造成执行结果不同的情况,所以与签名过程相关的公私钥需要提前在链下生成,并设置在数字证书生成合约中。本实施例生成长度为1024的密码,在考虑安全性的同时保证密钥生成与加解密的效率。公钥pK的生成算法包括如下步骤:
(1)大素数(a,b)生成:使用随机数生成器生成两个随机数(这两个随机数足够大),使用Miller-Rabin方法检验素性,如不满足则向左右探测指导满足素性,记录两个随机素数a,b;
(2)利用扩展欧几里得算法求解素数a关于欧拉函数Φ(b)的乘法逆元e;
(3)记录乘积prod=a*b。
签名:数字签名过程概括为如下两式:
Digest=MD5(SoffChain) (5)
Sig=Digeste(mod prod) (6)
其中,式(5)利用MD5摘要算法对链下服务做摘要处理,式(6)得到摘要后使用上一步求得的公私钥得到签名;链下服务提供数字身份Soffchain后,智能合约根据如上算法得到对应的数字证书DCoff,作为后续证明服务合法的凭证。
服务生命周期管理具体包括:
当链下服务经过数字身份生成阶段和数字证书构造阶段后,可参与智能合约之间的交互,由智能合约管理全部的生命流程。为链下服务的数字证书生成合约添加相关管理方法与接口,将其升级为扩展服务管理合约,合约架构如图3所示。
扩展服务的链上生命周期概括为认证、注销、更新和调用,具体细节如下:
1.认证:认证过程即链下服务提交数字身份并由智能合约生成数字证书的过程,数字身份生成和数字证书构造的细节以在上文详细介绍。在链下服务成功认证后,变为可与智能合约直接协同的扩展服务,扩展服务管理合约中运行一个扩展服务实例,链下服务与该实例锚定。
2.注销:注销过程是认证过程的逆过程,删除扩展服务管理合约中的服务实例并注销相应数字证书。
3.更新:更新过程即对服务实例进行更新,可以理解为先注销再重新认证。
4.调用:调用过程是扩展服务生命周期管理的核心。在成为扩展服务管理合约后,对服务的调用由智能合约完成扩展服务数字证书的可信校验操作,智能合约A对扩展服务B的一次调用流程包括如下步骤:
(1)智能合约A调用扩展服务调用方法:为统一管理所有对扩展服务的调用,设置服务调用方法完成参数转换请求包装;在区块链系统中对所有合约方法的调用均需要通过交易触发;智能合约A生成的触发服务调用接口的交易如下式(7)所示:
Tx=(Addrfrom,Addrto,v,data,T) (7)
其中,Addrfrom为智能合约A的地址,Addrto为扩展服务管理合约的地址,v为合约携带的数值,T是交易生成的时间戳,data是交易的核心字段,在这里data=(URL,paramValue),声明扩展服务的URL和实参列表。
(2)检查扩展服务B状态并包装请求体:扩展服务管理合约A对比扩展服务B的当前状态与其保存的数字证书,经过验签流程判断服务当前状态的合法性,校验通过后将交易data域中的paramValue进行包装,使用格式字典将实参列表编码为数据类型:数值的形式{Type:value},使其可在网络中传输;
(3)请求扩展服务B:智能合约执行引擎执行到扩展服务调用交易后根据包装的请求体对外执行RPC调用;
(4)扩展服务B执行任务并提交执行日志:扩展服务B接收请求后解析参数并执行请求,将执行结果调用日志上传接口提交到区块链上;
(5)扩展服务管理合约记录调用日志:诚实地记录对扩展服务的每次调用是保证其可追溯性的基础,管理合约记录的调用日志结构如下式(8)所示:
Log=(id,C,sN,URL,<p,r>,T,s,err) (8)
其中,id代表日志序列号;C代表服务调用者;sN代表被调用服务名;URL代表被调用服务的URL;<p,r>代表此次调用的实参列表与结果数值;T代表调用时间;s代表此次请求的执行状态;err记录失败原因。
本实施例为链下服务生成数字身份,并经过智能合约完成认证,生成数字证书,并为其锚定链上实例,管理其包括认证、注销、更新和调用在内的生命周期。
本实施例针对智能合约在协同链下资源时无法保证其安全可信的问题,提出了一种基于去中心化数字身份的链下服务可信化方法。其中的关键点在于:(1)链下服务的数字身份设计与对应数字证书的生成方法。本发明为链下服务提出了完整数字身份对其进行描述,创新性地使用服务状态摘要记录服务的当前状态。使用智能合约根据数字身份生成数字证书,实现了去中心化的服务认证过程。(2)扩展服务的生命周期管理机制。认证后的链下服务具有链上实体,由智能合约维护,该合约同时负责管理扩展服务的全生命流程,包括认证、注销、更新和调用。其中对扩展服务的调用需要根据证书检查服务状态、包装请求并诚实地记录调用结果。全方位保证扩展服务的安全可信与可追溯。
现有的智能合约与链下资源协同的方式主要可分为预言机方法和链下计算方法两种。其中预言机机制需要引入第三方组件保证信任,构建维护过程复杂。链下计算机制大多依赖复杂的密码学证明原理,计算成本高同时效率低。本发明设计了基于去中心化数字身份的链下服务可信化方法,提出链下服务的完整数字身份,在生成数字证书的过程中使用计算代价小的密码学摘要与签名算法。与现有方案比效率较高。同时使用智能合约对扩展服务进行全生命周期的管理,扩展服务一定程度上具备和智能合约相同的安全可信、不可篡改与可追溯的特性,相较于现有方案能记录更多的服务状态,能提供更高的信任保障。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,均应包含在本申请的保护范围之内。
Claims (2)
1.一种基于去中心化数字身份的链下服务可信化方法,其特征在于,包括:
数字身份生成阶段:根据服务信息与状态,确定链下服务的去中心化数字身份;
数字证书构造阶段:根据数字身份利用密码学方法构造数字证书,由智能合约完成链下服务的认证;
服务生命周期管理:智能合约维护认证后服务的生命周期,生命周期包括认证、销毁、更新、调用;负责生命周期动作;
所述数字身份生成阶段具体包括:
根据链下服务相关属性将数字身份表示为下式所示的七元组形式:
SoffChain=(n,URL,<p,r>,P,rT,mI,Ds)
其中,SOffchain代表链下服务的数字身份描述信息,n代表链下服务名称;URL代表链下服务URL,作为服务的唯一标识并借助其完成调用;<p,r>代表链下服务的参数列表和返回值类型;P代表链下服务供应商;rT代表链下服务的认证时间;mI代表链下服务的描述信息;Ds是服务当前状态的快照;
对服务状态进行快照,状态是服务类反射的字节数组,对数组使用下式进行摘要:
其中,[a0,a1,a2,…,am-1]为当前服务状态映射的字节数组,利用与素数31的计算得到定长的服务快照;
拆解高幂次运算,利用缓存加速计算过程将上式转为下式:d=((..((a0+a1)*31+a2)*31+…))*31+am-2)*31+am-1
所述数字证书构造阶段具体包括:
基于链下服务的数字身份描述SOffchain设计的数字证书表示为下式所示的多元组,该数字证书由智能合约生成:
DCoff=(v,s′,I,<Tstart,Tend>,E,pK,Sig,SigAlg)
其中,v代表数字证书版本号;s’代表证书序列号;I代表发证方;<Tstart,Tend>代表服务的有效期起止时间,基于数字身份中的rT构建;E代表服务实体;pK代表签名公钥;Sig代表对服务的数字签名;SigAlg为采用的签名算法;
利用公钥pK依据SigAlg方法对服务进行签名得到Sig字段;
公钥pK的生成算法包括如下步骤:
大素数(a,b)生成:使用随机数生成器生成两个随机数,使用Miller-Rabin方法检验素性,如不满足则向左右探测指导满足素性,记录两个随机素数a,b;
利用扩展欧几里得算法求解素数a关于欧拉函数Φ(b)的乘法逆元e;
记录乘积prod=a*b;
数字签名过程概括为如下两式:
Digest=MD5(SoffChain)
Sig=Digeste(mod prod)
其中,利用MD5摘要算法对链下服务做摘要处理,得到摘要后使用求得的公私钥得到签名;链下服务提供数字身份Soffchain后,智能合约得到对应的数字证书DCoff,作为后续证明服务合法的凭证。
2.根据权利要求1所述的基于去中心化数字身份的链下服务可信化方法,其特征在于,所述服务生命周期管理具体包括:
为链下服务的数字证书生成合约添加相关管理方法与接口,升级为扩展服务管理合约;
在成为扩展服务管理合约后,对服务的调用由智能合约完成扩展服务数字证书的可信校验操作,智能合约A对扩展服务B的一次调用流程包括如下步骤:
(1)智能合约A调用扩展服务调用方法:为统一管理所有对扩展服务的调用,设置服务调用方法完成参数转换请求包装;在区块链系统中对所有合约方法的调用均需要通过交易触发;智能合约A生成的触发服务调用接口的交易如下式所示:
Tx=(Addrfrom,Addrto,u,data,T)
其中,Addrfrom为智能合约A的地址,Addrto为扩展服务管理合约的地址,v为合约携带的数值,T是交易生成的时间戳,data是交易的核心字段,在这里data=(URL,paramValue),声明扩展服务的URL和实参列表;
(2)检查扩展服务B状态并包装请求体:扩展服务管理合约A对比扩展服务B的当前状态与其保存的数字证书,经过验签流程判断服务当前状态的合法性,校验通过后将交易data域中的paramValue进行包装,使用格式字典将实参列表编码为数据类型:数值的形式{Type:value};
(3)请求扩展服务B:智能合约执行引擎执行到扩展服务调用交易后根据包装的请求体对外执行RPC调用;
(4)扩展服务B执行任务并提交执行日志:扩展服务B接收请求后解析参数并执行请求,将执行结果调用日志上传接口提交到区块链上;
(5)扩展服务管理合约记录调用日志:管理合约记录的调用日志结构如下式所示:
Log=(id,C,sN,URL,<p,r>,T,s,,err)
其中,id代表日志序列号;C代表服务调用者;sN代表被调用服务名;URL代表被调用服务的URL;<p,r>代表此次调用的实参列表与结果数值;T代表调用时间;s代表此次请求的执行状态;err记录失败原因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517618.4A CN116545696B (zh) | 2023-05-09 | 2023-05-09 | 一种基于去中心化数字身份的链下服务可信化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517618.4A CN116545696B (zh) | 2023-05-09 | 2023-05-09 | 一种基于去中心化数字身份的链下服务可信化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116545696A CN116545696A (zh) | 2023-08-04 |
CN116545696B true CN116545696B (zh) | 2023-10-20 |
Family
ID=87453858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310517618.4A Active CN116545696B (zh) | 2023-05-09 | 2023-05-09 | 一种基于去中心化数字身份的链下服务可信化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116545696B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234515A (zh) * | 2018-01-25 | 2018-06-29 | 中国科学院合肥物质科学研究院 | 一种基于智能合约的自认证数字身份管理系统及其方法 |
CN109829326A (zh) * | 2018-11-20 | 2019-05-31 | 西安电子科技大学 | 基于区块链的跨域认证与公平审计去重云存储系统 |
CN113515756A (zh) * | 2021-03-29 | 2021-10-19 | 中国雄安集团数字城市科技有限公司 | 基于区块链的高可信数字身份管理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220407728A1 (en) * | 2021-06-19 | 2022-12-22 | Inveniam Capital Partners, Inc. | Systems and methods for processing blockchain transactions |
-
2023
- 2023-05-09 CN CN202310517618.4A patent/CN116545696B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234515A (zh) * | 2018-01-25 | 2018-06-29 | 中国科学院合肥物质科学研究院 | 一种基于智能合约的自认证数字身份管理系统及其方法 |
CN109829326A (zh) * | 2018-11-20 | 2019-05-31 | 西安电子科技大学 | 基于区块链的跨域认证与公平审计去重云存储系统 |
CN113515756A (zh) * | 2021-03-29 | 2021-10-19 | 中国雄安集团数字城市科技有限公司 | 基于区块链的高可信数字身份管理方法及系统 |
Non-Patent Citations (1)
Title |
---|
《链上链下协同的智能合约即服务问题研究》;刘浩宇等;《北京航空航天大学学报》;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116545696A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109698752B (zh) | 一种基于区块链的企业资源管理系统 | |
Leng et al. | Blockchain security: A survey of techniques and research directions | |
Yee | A sanctuary for mobile agents | |
US20210135854A1 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
TW201928743A (zh) | 用以基於證明驗證認證鏈外資料之系統及方法 | |
EP4035050A1 (en) | Consensus protocol for blockchain dag structure | |
WO2021130607A1 (en) | Partially-ordered blockchain | |
Tate et al. | Multi-user dynamic proofs of data possession using trusted hardware | |
US7210034B2 (en) | Distributed control of integrity measurement using a trusted fixed token | |
CN114626088A (zh) | 基于算法互联的隐私计算平台的任务处理方法及装置 | |
Ali et al. | BCON: Blockchain based access CONtrol across multiple conflict of interest domains | |
Avizheh et al. | Verifiable computation using smart contracts | |
Chen et al. | TrustBuilder: A non-repudiation scheme for IoT cloud applications | |
Smith | Outbound authentication for programmable secure coprocessors | |
Weng et al. | Golden grain: Building a secure and decentralized model marketplace for MLaaS | |
Chen et al. | Policychain: a decentralized authorization service with script-driven policy on blockchain for internet of things | |
Saleem et al. | ProofChain: An X. 509-compatible blockchain-based PKI framework with decentralized trust | |
Wang et al. | A review of blockchain layered architecture and technology application research | |
CN116545696B (zh) | 一种基于去中心化数字身份的链下服务可信化方法 | |
Jeannin et al. | DKAL⋆: Constructing executable specifications of authorization protocols | |
Xu et al. | A symbolic model for systematically analyzing TEE-based protocols | |
Dhiman et al. | Analysis of blockchain secure models and approaches based on various services in multi-tenant environment | |
Ismail | A Secure Mobile Agents Platform. | |
Wang et al. | Practical verifiable computation–A MapReduce case study | |
CN114826572A (zh) | 支持属性隐私保护的去中心化众包方法、系统及终端 |
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 |