CN115473747A - 一种状态变更方法、装置、设备及存储介质 - Google Patents

一种状态变更方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115473747A
CN115473747A CN202211417421.5A CN202211417421A CN115473747A CN 115473747 A CN115473747 A CN 115473747A CN 202211417421 A CN202211417421 A CN 202211417421A CN 115473747 A CN115473747 A CN 115473747A
Authority
CN
China
Prior art keywords
state
state machine
intelligent contract
change
signature
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
Application number
CN202211417421.5A
Other languages
English (en)
Other versions
CN115473747B (zh
Inventor
麻付强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211417421.5A priority Critical patent/CN115473747B/zh
Publication of CN115473747A publication Critical patent/CN115473747A/zh
Application granted granted Critical
Publication of CN115473747B publication Critical patent/CN115473747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

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

本申请公开了一种状态变更方法、装置、设备及存储介质,包括:获取由任意智能合约参与方发起的状态变更请求;根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。可见,本申请设计多层次生命周期管理对智能合约进行漏洞防护,保证区块链系统的稳定性。

Description

一种状态变更方法、装置、设备及存储介质
技术领域
本发明涉及区块链技术领域,特别涉及一种状态变更方法、装置、设备及存储介质。
背景技术
区块链应用场景越来越丰富,很多区块链业务实现均是通过编写智能合约完成的。区块链中智能合约控制着链上所有数据和资产,极易成为黑客的攻击目标,区块链的公开透明特性也使得智能合约透明化,大幅降低了攻击成本,同时智能合约一旦部署上链便不可更改,且运行过程不受任何干预,合约中的漏洞一旦引发也难以被修复。智能合约编写过程中,编程语言本身的设计缺陷、开发人员对编程语言的理解偏差等情况都会导致开发出的智能合约存在漏洞。智能合约执行过程中,执行环境和执行所需数据的安全性也会影响执行结果。因此,智能合约安全威胁的来源可分为不安全的合约编程和不可靠的合约执行。但目前针对智能合约的生命周期管理尚不完善,使得智能合约漏洞防护能力较弱。
因此,上述技术问题亟待本领域技术人员解决。
发明内容
有鉴于此,本发明的目的在于提供一种状态变更方法、装置、设备及存储介质,设计多层次生命周期管理对智能合约进行漏洞防护,保证区块链系统的稳定性。其具体方案如下:
本申请的第一方面提供了一种状态变更方法,包括:
获取由任意智能合约参与方发起的状态变更请求;
根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;
如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
可选的,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测,包括:
如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器调用第一状态机,以获取与智能合约对应的当前第一状态机状态;
判断当前第一状态机状态是否满足变更条件;
相应的,如果所述变更对象的当前状态满足变更条件,所述触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更,包括:
触发所述第一状态机管理器调用所述第一状态机,以根据所述状态变更请求对所述智能合约的状态进行变更。
可选的,所述判断当前第一状态机状态是否满足变更条件,包括:
判断当前第一状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定当前第一状态机状态满足变更条件。
可选的,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测,包括:
如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第一状态机管理器调用第一状态机获取与智能合约对应的当前第一状态机状态,同时触发第二状态机管理器调用第二状态机获取与所述功能函数对应的当前第二状态机状态;
判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件;
相应的,如果所述变更对象的当前状态满足变更条件,所述触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更,包括:
触发所述第二状态机管理器调用所述第二状态机,以根据所述状态变更请求对所述功能函数的状态进行变更。
可选的,所述判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件,包括:
判断当前第二状态机状态是否满足第一状态机状态的层级约束条件,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。
可选的,所述判断当前第二状态机状态是否满足第一状态机状态的层级约束条件之后,还包括:
判断当前第二状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。
可选的,所述获取由任意智能合约参与方发起的状态变更请求,包括:
获取由任意智能合约参与方发起的状态变更请求及所述状态变更请求的门限签名;其中,所述门限签名由所述智能合约参与方通过门限签名的方式对所述状态变更请求进行签名得到;
相应的,对所述变更对象的当前状态进行检测之前,还包括:
根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,如果验签通过,则执行对所述变更对象的当前状态进行检测的步骤。
可选的,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,包括:
如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器基于所述状态变更请求对所述门限签名进行验签。
可选的,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,包括:
如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第二状态机管理器基于所述状态变更请求对所述门限签名进行验签。
可选的,所述的状态变更方法,还包括:
各个所述智能合约参与方分别对所述状态变更请求进行哈希运算得到第一哈希结果,并分别对所述哈希结果进行签名得到对应的签名份额,以及根据各个所述签名份额采用门限签名恢复出基准签名份额;
各个所述智能合约参与方根据基准私钥份额、临时私钥份额及临时公钥份额计算出基准签名参数,得到包含所述基准签名参数与所述基准签名份额的所述门限签名。
可选的,所述的状态变更方法,还包括:
密钥生成中心通过门限秘密共享算法生成基准私钥及对应的基准私钥份额,并根据目标需求为不同的所述智能合约参与方分配及下发不同的所述基准私钥份额;
各个所述智能合约参与方生成多个所述临时私钥份额、多个所述临时公钥份额并将多个所述临时私钥份额、多个所述临时公钥份额分别发送至其他所述智能合约参与方,以及接收其他所述智能合约参与方发送的所述临时私钥份额、所述临时公钥份额;
各个所述智能合约参与方基于自身所述临时私钥份额及接收到的所述临时私钥份额计算临时私钥共享份额,并基于自身所述临时公钥份额及接收到的所述公钥私钥份额计算临时公钥共享份额;
各个所述智能合约参与方根据所述临时公钥共享份额计算所述基准签名参数。
可选的,状态机管理器基于所述状态变更请求对所述门限签名进行验签,包括:
状态机管理器从智能合约中获取与所述基准私钥对应的基准公钥,并对所述状态变更请求进行哈希运算得到第二哈希结果,以及利用所述基准签名份额的乘法逆、所述基准公钥、所述第二哈希结果计算验签公钥共享份额;
状态机管理器根据所述验签公钥共享份额计算所述验签签名参数,并判断所述基准签名参数与所述验签签名参数是否相等,如果是,则判定验签通过。
本申请的第二方面提供了一种状态变更装置,包括:
请求获取模块,用于获取由任意智能合约参与方发起的状态变更请求;
状态分级检测模块,用于根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;
状态变更模块,用于如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述状态变更方法。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述状态变更方法。
本申请中,先获取由任意智能合约参与方发起的状态变更请求;然后根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。可见,本申请设计多层次生命周期管理,由变更对象所处层级的状态机管理器和状态机共同作用来检测变更对象的当前状态,在满足变更条件的情况下进行状态变更。在宏观的智能合约层面上实现整个智能合约的生命周期管理,在微功能函数层面上实现函数级别细粒度的生命周期管理,从而对智能合约进行漏洞防护,保证区块链系统的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种状态变更方法流程图;
图2为本申请提供的一种具体的状态变更方法示意图;
图3为本申请提供的一种具体的状态变更方法流程图;
图4为本申请提供的一种具体的第一状态机的状态图;
图5为本申请提供的一种具体的第二状态机的状态图;
图6为本申请提供的一种具体的智能合约生命周期执行流程图;
图7为本申请提供的一种具体的状态变更方法流程图;
图8为本申请提供的一种具体的门限签名流程图;
图9为本申请提供的一种具体的验签流程图;
图10为本申请提供的一种状态变更装置结构示意图;
图11为本申请提供的一种状态变更电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
鉴于智能合约的透明化、不可更改性及难以修复性,使得智能合约极易成为黑客的攻击目标,极易造成区块链系统的不稳定。然而现有针对智能合约的生命周期管理尚不完善,使得智能合约漏洞防护能力较弱。针对上述技术缺陷,本身请提供一种状态变更方案,设计多层次生命周期管理对智能合约进行漏洞防护,保证区块链系统的稳定性。
图1为本申请实施例提供的一种状态变更方法流程图。参见图1所示,该状态变更方法包括:
S11:获取由任意智能合约参与方发起的状态变更请求。
本实施例中,智能合约参与方的任意一方都可以发起所述状态变更请求,智能合约参与方包括智能合约制定者、智能合约使用者、智能合约仲裁者。在进行状态变更时,先获取由任意智能合约参与方发起的状态变更请求。
本实施例中,所述状态变更请求可以为将智能合约由部署状态变更到执行状态,或者将智能合约由执行状态变更到停止状态。本实施例可以实现细粒度函数层级的生命周期管理,因此,所述状态变更请求可以为将智能合约内部的状态函数由部署状态变更到执行状态,或者将智能合约内部的状态函数由执行状态变更到停止状态。具体的状态变更的逻辑由智能合约及状态函数对应的状态机决定。
可以理解,智能合约参与方中的合约制定者设计智能合约,智能合约代码中必须要包含第二状态机函数,负责处理第二生命周期管理。智能合约代码中必须包含一个函数修改器(modifier), 可以用来以声明的方式判断各个函数的所处状态。智能合约代码中可以包含多个功能函数。每个智能合约运行前必须判断第一状态机的状态,如果第一状态机处于“执行”状态,则可以调用合约。
S12:根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同。
本实施例中,在获取到所述状态变更请求之后,根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测。如前文所述,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同。具体过程包括(如图2):
S121:如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器调用第一状态机,以获取与智能合约对应的当前第一状态机状态。
S122:判断当前第一状态机状态是否满足变更条件;
本实施例中,智能合约对应第一状态机管理器和第一状态机,智能合约内部的功能函数对应第一状态机管理器和第一状态机。第一状态机管理器和第一状态机对智能合约的生命周期进行管理,第二状态机管理器和第二状态机对智能合约内部的功能函数的生命周期进行管理。也即第一状态机由第一状态机管理器调度管理,管理整个智能合约的第一生命周期(宏观上整个智能合约的生命周期)。第二状态机由第二状态机管理器调度管理,管理智能合约的第二生命周期(第二状态机作为合约内部的一个函数,运行在合约内部,管理着智能合约内部具体每个函数的生命周期,它属于细粒度的函数级别的生命周期管理)。
本实施例中,如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器调用第一状态机,以获取与智能合约对应的当前第一状态机状态。需要说明的是,所述变更对象的当前状态由对应的状态机状态体现,因此需要获取与智能合约对应的当前第一状态机状态。获取到状态信息之后,继续判断当前第一状态机状态是否满足变更条件。
S123:如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第一状态机管理器调用第一状态机获取与智能合约对应的当前第一状态机状态,同时触发第二状态机管理器调用第二状态机获取与所述功能函数对应的当前第二状态机状态。
S124:判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件。
本实施例中,如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第一状态机管理器调用第一状态机获取与智能合约对应的当前第一状态机状态,同时触发第二状态机管理器调用第二状态机获取与所述功能函数对应的当前第二状态机状态。对于功能函数的状态变更需要结合其所属智能合约状态及自身状态来综合判断。因此,所述第一状态机管理器和所述第二状态机管理器需要同时工作以获取智能合约及功能函数的状态。在此基础上,判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件。
S13:如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
本实施例中,如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。具体包括(如图3):
S131:如果所述状态变更请求的变更对象的层级为智能合约层,触发所述第一状态机管理器调用所述第一状态机,以根据所述状态变更请求对所述智能合约的状态进行变更。
本实施例中,在对智能合约进行状态检测时,需要判断当前第一状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定当前第一状态机状态满足变更条件。需要说明是,本实施例中的第一状态机的状态包括部署、执行、停止、升级、销毁,如图4所示。第二状态机包括部署、执行、停止、升级,如图5所示。
本实施例中,所述状态变更请求要求的变更后状态的前置状态为可以变更为请求要求状态的状态,例如,对于第一状态机,部署状态为执行状态的前置状态,执行状态为停止状态的前置状态。
S132:如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,触发所述第二状态机管理器调用所述第二状态机,以根据所述状态变更请求对所述功能函数的状态进行变更。
本实施例中,在对智能合约内部的功能函数进行状态检测时,需要先判断当前第二状态机状态是否满足第一状态机状态的层级约束条件,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。所谓层级约束条件即微观上的智能合约状态机(第二状态机)要遵循宏观的智能合约状态机(第一状态机)的约束,在第一状态机规则允许下进行第二状态机的变更。例如,第一状态机处于停止状态,那么第二状态机不能处于执行、部署、升级状态,必须符合第一状态机的约束。另外,本实施例的每个功能函数在运行前,必须判断所处的状态,如果第一状态机处于“执行”状态且第二状态机处于“执行”状态,则可以执行。如果其第二状态机处于其他状态则禁止执行。
本实施例中,当满足层级约束条件时,还可以进一步判断当前第二状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。判断过程与宏观智能合约一致,在此不进行赘述。
本实施例采用两个状态机,智能合约生命周期执行流程如图6所示,可以实现细粒度智能合约生命周期管理,当某个函数出现漏洞时,可以只需停止相应的函数,稍后进行升级处理,但是不影响智能合约中其他功能的执行,保证区块链系统的稳定性。当整个智能合约出现漏洞时,可以调用第一状态机,实现整个智能合约的状态变更,保护区块链业务的安全。
可见,本申请实施例先获取由任意智能合约参与方发起的状态变更请求;然后根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。本申请实施例设计多层次生命周期管理,由变更对象所处层级的状态机管理器和状态机共同作用来检测变更对象的当前状态,在满足变更条件的情况下进行状态变更。在宏观的智能合约层面上实现整个智能合约的生命周期管理,在微功能函数层面上实现函数级别细粒度的生命周期管理,从而对智能合约进行漏洞防护,保证区块链系统的稳定性。
图7为本申请实施例提供的一种具体的状态变更方法流程图。参见图7所示,该状态变更方法包括:
S21:获取由任意智能合约参与方发起的状态变更请求及所述状态变更请求的门限签名;其中,所述门限签名由所述智能合约参与方通过门限签名的方式对所述状态变更请求进行签名得到。
针对智能合约生命周期管理一般用管理员发起,或者基于简单投票规则,没有有效的权限控制。本实施例在前述实施例的基础上设计了基于门限签名的智能合约权限管理原则,实现了有效的智能合约生命周期的权限管理。在获取由任意智能合约参与方发起的状态变更请求的同时,还需要获取到相应的门限签名。所述门限签名由所述智能合约参与方通过门限签名的方式对所述状态变更请求进行签名得到。
本实施例中,所述智能合约参与方进行门限签名的具体步骤包括(如图8):
S211:密钥生成中心通过门限秘密共享算法生成基准私钥及对应的基准私钥份额,并根据目标需求为不同的所述智能合约参与方分配及下发不同的所述基准私钥份额。
本实施例中,智能合约参与方向密钥生成中心请求门限签名密钥生成。密钥生成中心通过门限秘密共享算法生成基准私钥及对应的基准私钥份额,并根据目标需求为不同的所述智能合约参与方分配及下发不同的所述基准私钥份额。门限签名采用加权的方式,每个参与方根据可信程度、对智能合约影响程度,分配不同私钥份额,实现权重的分配。
具体的,密钥生成中心设定椭圆曲线上的公开参数,实现系统的初始化。密钥生成中心生成门限签名的公钥P和私钥d。设置门限签名的门限阈值为t+1,利用Shamir门限秘密共享将私钥分为n份,将n份私钥发送给智能合约参与方。其中,智能合约制定者拥有至少1份私钥份额,智能合约使用者至少拥有0份私钥份额,智能合约仲裁者至少拥有1份私钥份额。每个智能合约参与方具有不同的私钥份额,可以实现不同权重的控制权限。
S212:各个所述智能合约参与方生成多个临时私钥份额、多个临时公钥份额并将多个所述临时私钥份额、多个所述临时公钥份额分别发送至其他所述智能合约参与方,以及接收其他所述智能合约参与方发送的所述临时私钥份额、所述临时公钥份额。
S213:各个所述智能合约参与方基于自身所述临时私钥份额及接收到的所述临时私钥份额计算临时私钥共享份额,并基于自身所述临时公钥份额及接收到的所述公钥私钥份额计算临时公钥共享份额。
S214:各个所述智能合约参与方根据所述临时公钥共享份额计算基准签名参数。
本实施例中,智能合约制定者将公钥P附加到智能合约代码中,作为智能合约的一部分。智能合约参与方对请求执行门限签名技术(这些智能合约参与方至少持有2t+1个私钥份额,2t+1<n。门限签名的特点,门限阈值设置为t+1,那么至少需要2t+1个人参与)。首先各个所述智能合约参与方生成多个临时私钥份额、多个临时公钥份额并将多个所述临时私钥份额、多个所述临时公钥份额分别发送至其他所述智能合约参与方,以及接收其他所述智能合约参与方发送的所述临时私钥份额、所述临时公钥份额。然后各个所述智能合约参与方基于自身所述临时私钥份额及接收到的所述临时私钥份额计算临时私钥共享份额,并基于自身所述临时公钥份额及接收到的所述公钥私钥份额计算临时公钥共享份额。接着各个所述智能合约参与方根据所述临时公钥共享份额计算基准签名参数。
具体的,智能合约参与方各自产生对应的临时私钥的共享份额
Figure 943111DEST_PATH_IMAGE001
(随机数)。然后根据临时私钥的共享份额计算临时私钥的共享份额
Figure 596947DEST_PATH_IMAGE001
的逆。根据临时公钥的共享份额
Figure 822392DEST_PATH_IMAGE002
计算临时私钥
Figure 208374DEST_PATH_IMAGE003
的公钥
Figure 784849DEST_PATH_IMAGE004
。根据临时公钥
Figure 976795DEST_PATH_IMAGE004
计算基准签名参数
Figure 260009DEST_PATH_IMAGE005
S215:各个所述智能合约参与方分别对所述状态变更请求进行哈希运算得到第一哈希结果,并分别对所述哈希结果进行签名得到对应的签名份额,以及根据各个所述签名份额采用门限签名恢复出基准签名份额。
S216:各个所述智能合约参与方根据基准私钥份额、临时私钥份额及临时公钥份额计算出基准签名参数,得到包含所述基准签名参数与所述基准签名份额的所述门限签名。
本实施例中,各个所述智能合约参与方分别对所述状态变更请求进行哈希运算得到第一哈希结果,并分别对所述哈希结果进行签名得到对应的签名份额,以及根据各个所述签名份额采用门限签名恢复出基准签名份额。然后各个所述智能合约参与方根据基准私钥份额、临时私钥份额及临时公钥份额计算出基准签名参数,得到包含所述基准签名参数与所述基准签名份额的所述门限签名。
以智能合约“部署”为例,对于第一状态机变更“部署”操作deploy(deploy数据中包括表示智能合约的信息)进行hash运算,得到运算结果
Figure 879209DEST_PATH_IMAGE006
。对
Figure 942980DEST_PATH_IMAGE006
计算签名份额
Figure 610722DEST_PATH_IMAGE007
。利用签名份额
Figure 309294DEST_PATH_IMAGE007
计算得出签名
Figure 99396DEST_PATH_IMAGE008
。最后得到签名结果
Figure 119304DEST_PATH_IMAGE009
S22:根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签。
本实施例中,在获取到请求及门限签名之后,根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签。如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器基于所述状态变更请求对所述门限签名进行验签。如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第二状态机管理器基于所述状态变更请求对所述门限签名进行验签。
本实施例中,状态机管理器对门限签名进行验签的具体步骤包括(如图9):
S221:状态机管理器从智能合约中获取与所述基准私钥对应的基准公钥,并对所述状态变更请求进行哈希运算得到第二哈希结果,以及利用所述基准签名份额的乘法逆、所述基准公钥、所述第二哈希结果计算验签公钥共享份额。
S222:状态机管理器根据所述验签公钥共享份额计算所述验签签名参数,并判断所述基准签名参数与所述验签签名参数是否相等,如果是,则判定验签通过。
本实施例中,状态机管理器首先从智能合约中获取与所述基准私钥对应的基准公钥,并对所述状态变更请求进行哈希运算得到第二哈希结果,以及利用所述基准签名份额的乘法逆、所述基准公钥、所述第二哈希结果计算验签公钥共享份额。然后状态机管理器根据所述验签公钥共享份额计算所述验签签名参数,并判断所述基准签名参数与所述验签签名参数是否相等,如果是,则判定验签通过。
仍以智能合约“部署”为例,将智能合约第一状态机变更“部署”操作发送到第一状态机管理器中,第一状态机管理器进行签名验证操作。对于第一状态机变更“部署”操作deploy(deploy数据中包括表示智能合约的信息)进行hash运算,得到运算结果
Figure 918633DEST_PATH_IMAGE006
。计算签名
Figure 176439DEST_PATH_IMAGE008
的乘法逆
Figure 871863DEST_PATH_IMAGE010
。计算临时公钥
Figure 910226DEST_PATH_IMAGE011
。计算签名参数
Figure 982087DEST_PATH_IMAGE012
,验证
Figure 94400DEST_PATH_IMAGE012
是否等于
Figure 491883DEST_PATH_IMAGE013
。如果相等,则签名通过。第一状态机管理器将智能合约的第一状态机变更到“部署”状态。
S23:如果验签通过,则根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测。
S24:如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
本实施例中,关于上述步骤S23和步骤S24的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例为了提高智能合约的生命周期管理的权限控制,采用门限签名方式实现两层智能合约生命周期的状态机变化的权限控制。使得不同的参与方具有不同的私钥份额,即不同的参与方有不同的修改智能合约生命周期的权限。采用门限签名的方式,无需所有参与方进行签名,只需要达到相应的签名门限即可。
下面分别对智能合约、智能合约内部的功能函数的状态变更的门限签名及验签过程进行举例说明。
1、智能合约的执行操作
将智能合约的第一状态机的“部署”状态变更到“执行”状态。智能合约参与方对智能合约的“执行”请求进行门限签名技术。首先智能合约参与方各自产生对应的临时私钥的共享份额
Figure 689646DEST_PATH_IMAGE001
(随机数,这里的
Figure 66663DEST_PATH_IMAGE001
是重新产生的)。然后根据临时私钥的共享份额计算临时私钥的共享份额
Figure 361378DEST_PATH_IMAGE001
的逆。根据临时公钥的共享份额
Figure 601867DEST_PATH_IMAGE002
计算临时私钥的
Figure 349243DEST_PATH_IMAGE003
公钥
Figure 28486DEST_PATH_IMAGE004
。根据临时公钥
Figure 115390DEST_PATH_IMAGE004
计算签名参数
Figure 323518DEST_PATH_IMAGE005
。对于第一状态机变更“执行”请求execute(execute数据中包括表示智能合约的信息)进行hash运算,得到运算结果
Figure 558190DEST_PATH_IMAGE006
。对
Figure 978807DEST_PATH_IMAGE006
计算签名份额
Figure 716956DEST_PATH_IMAGE007
。利用签名份额
Figure 627143DEST_PATH_IMAGE007
计算得出签名
Figure 582068DEST_PATH_IMAGE007
。最后得到签名结果
Figure 540796DEST_PATH_IMAGE009
将智能合约第一状态机变更“执行”操作发送到第一状态机管理器中,第一状态机管理器进行签名验证操作。对于第一状态机变更“执行”操作execute(execute数据中包括表示智能合约的信息)进行hash运算,得到运算结果
Figure 399031DEST_PATH_IMAGE006
。计算签名
Figure 480119DEST_PATH_IMAGE008
的乘法逆
Figure 158225DEST_PATH_IMAGE014
。计算临时公钥
Figure 920645DEST_PATH_IMAGE015
。计算签名参数
Figure 633386DEST_PATH_IMAGE016
,验证
Figure 619797DEST_PATH_IMAGE016
是否等于
Figure 316357DEST_PATH_IMAGE017
。如果相等,则签名通过。判断智能合约是否处于“部署”或者“停止”状态,如果处于这两个状态。则第一状态机管理器将智能合约的状态机变更到“执行”状态。
2、智能合约的功能函数func1的停止状态操作
智能合约参与方对智能合约的函数func1的“停止”操作执行门限签名技术。首先智能合约参与方各自产生对应的临时私钥的共享份额
Figure 413626DEST_PATH_IMAGE001
(随机数,这里的
Figure 184136DEST_PATH_IMAGE001
是重新产生的)。然后根据临时私钥的共享份额计算临时私钥的共享份额
Figure 842913DEST_PATH_IMAGE001
的逆。根据临时公钥的共享份额
Figure 761190DEST_PATH_IMAGE002
计算临时私钥
Figure 865412DEST_PATH_IMAGE003
的公钥
Figure 552746DEST_PATH_IMAGE004
。根据临时公钥
Figure 146538DEST_PATH_IMAGE004
计算签名参数
Figure 286532DEST_PATH_IMAGE005
。对于函数func1的第二状态机变更“停止”操作stop(stop数据中包括表示智能合约的信息)进行hash运算,得到运算结果
Figure 928866DEST_PATH_IMAGE006
。对
Figure 736285DEST_PATH_IMAGE006
计算签名份额
Figure 438662DEST_PATH_IMAGE007
。利用签名份额
Figure 65953DEST_PATH_IMAGE007
计算得出签名
Figure 574294DEST_PATH_IMAGE008
。最后得到签名结果
Figure 439482DEST_PATH_IMAGE009
将智能合约的函数func1的第二状态机变更“停止”操作发送到第二状态机管理器中,第二状态机管理器进行签名验证操作。对于函数func1的第二状态机变更“执行”操作stop(stop数据中包括表示智能合约的信息)进行hash运算,得到运算结果
Figure 608033DEST_PATH_IMAGE006
。计算签名
Figure 722620DEST_PATH_IMAGE008
的乘法逆
Figure 972335DEST_PATH_IMAGE010
。计算临时公钥
Figure 488767DEST_PATH_IMAGE018
。计算签名参数
Figure 595264DEST_PATH_IMAGE012
,验证
Figure 134829DEST_PATH_IMAGE012
是否等于
Figure 984974DEST_PATH_IMAGE013
。如果相等,则签名通过。判断智能合约是否处于“执行”状态,且函数func1是否处于“执行”状态。如果均处于“执行”状态,则函数func1的第二状态机管理器将函数func1的状态机变更到“停止”状态。此时,第二状态机的操作是在第一状态机的约束下执行的。
特别的,门限签名及验签的算法实现过程如下:
密钥生成中心首先设定椭圆曲线上的公开参数,包括
Figure 355912DEST_PATH_IMAGE019
Figure 570993DEST_PATH_IMAGE020
Figure 660172DEST_PATH_IMAGE021
Figure 48428DEST_PATH_IMAGE022
,其中
Figure 742714DEST_PATH_IMAGE019
是大素数,
Figure 692478DEST_PATH_IMAGE021
是定义在有限域
Figure 3373DEST_PATH_IMAGE023
上的椭圆曲线,
Figure 133003DEST_PATH_IMAGE024
是椭圆曲线
Figure 744113DEST_PATH_IMAGE021
Figure 97734DEST_PATH_IMAGE020
阶的基点。密钥生成中心将智能合约参与方的签名私钥设置为
Figure 99188DEST_PATH_IMAGE025
,公钥为
Figure 94826DEST_PATH_IMAGE026
。利用私钥
Figure 294863DEST_PATH_IMAGE025
实现智能合约生命周期变更的签名。
密钥生成中心执行Shamir门限秘密共享方案,密钥生成中心将椭圆曲线的私钥
Figure 22648DEST_PATH_IMAGE025
拆分成
Figure 573715DEST_PATH_IMAGE027
份,分发给智能合约参与方,这里参与方小于等于
Figure 310727DEST_PATH_IMAGE027
个,根据参与方的重要程度、可信程度,参与方之间协商持有份额的多少。为了方便表示,将
Figure 365271DEST_PATH_IMAGE027
份私钥表示为
Figure 824808DEST_PATH_IMAGE028
拥有(注意:
Figure 597592DEST_PATH_IMAGE029
可以属于同一个智能合约参与方)。为了实现智能合约变更的安全性,智能合约仲裁者至少拥有1份私钥。任意
Figure 872716DEST_PATH_IMAGE030
个或者以上的智能合约参与方一起可以恢复私钥
Figure 47345DEST_PATH_IMAGE031
,从而对智能合约状态机变更的签名。
私钥份额生成过程具体为:
1、密钥生成中心在构造
Figure 382512DEST_PATH_IMAGE032
阶多项式
Figure 377013DEST_PATH_IMAGE033
,其中私钥
Figure 518144DEST_PATH_IMAGE034
Figure 484963DEST_PATH_IMAGE035
表示多项式的系数。
2、密钥生成中心计算
Figure 787768DEST_PATH_IMAGE036
,并通过建立SSL可信通道将部分私钥
Figure 535144DEST_PATH_IMAGE037
分别发送给智能合约参与方。
3、智能合约参与方
Figure 948808DEST_PATH_IMAGE038
Figure 35713DEST_PATH_IMAGE037
作为自己的私钥秘密保存,不泄露给任何人。
此时,任意
Figure 10884DEST_PATH_IMAGE039
个智能合约参与方集合
Figure 245557DEST_PATH_IMAGE040
可以通过拉格朗日插值公式
Figure 666174DEST_PATH_IMAGE041
临时私钥份额产生:
1、首选选择
Figure 669902DEST_PATH_IMAGE042
个智能合约参与方,
Figure 314510DEST_PATH_IMAGE042
个智能合约参与方各自生成一个
Figure 974161DEST_PATH_IMAGE043
阶多项式,
Figure 729628DEST_PATH_IMAGE044
Figure 853441DEST_PATH_IMAGE045
Figure 606634DEST_PATH_IMAGE046
2、对于第
Figure 550319DEST_PATH_IMAGE047
个参与者的多项式为:
Figure 375056DEST_PATH_IMAGE048
3、然后每个智能合约参与方
Figure 586332DEST_PATH_IMAGE047
Figure 776005DEST_PATH_IMAGE049
秘密的发送给其他智能合约参与方,当然也将临时公钥的共享份额
Figure 206986DEST_PATH_IMAGE050
发送给其他智能合约参与方。
4、其他智能合约参与方各自计算对应的临时私钥的共享份额
Figure 304255DEST_PATH_IMAGE051
5、同时计算临时私钥份额
Figure 340344DEST_PATH_IMAGE001
的逆
Figure 763235DEST_PATH_IMAGE052
6、计算临时私钥
Figure 415933DEST_PATH_IMAGE053
的公钥
Figure 520156DEST_PATH_IMAGE054
7、计算前面参数
Figure 473068DEST_PATH_IMAGE055
t+1签名产生:
1、对于智能合约状态变更事务message进行hash运算得到:
Figure 801281DEST_PATH_IMAGE056
2、计算
Figure 144538DEST_PATH_IMAGE057
Figure 849189DEST_PATH_IMAGE058
,其中
Figure 892493DEST_PATH_IMAGE059
为私钥对应的共享份额。
3、采用门限签名恢复
Figure 594870DEST_PATH_IMAGE060
4、 签名为
Figure 487740DEST_PATH_IMAGE061
签名验证:
1、公钥为
Figure 730502DEST_PATH_IMAGE062
,签名为
Figure 330111DEST_PATH_IMAGE063
2、 对于消息明文进行hash运算得到:
Figure 265706DEST_PATH_IMAGE064
3、计算
Figure 380292DEST_PATH_IMAGE065
的乘法逆,
Figure 630008DEST_PATH_IMAGE066
4、计算
Figure 146440DEST_PATH_IMAGE067
5、计算
Figure 987357DEST_PATH_IMAGE068
,验证
Figure 792502DEST_PATH_IMAGE069
是否等于
Figure 642647DEST_PATH_IMAGE070
参见图10所示,本申请实施例还相应公开了一种状态变更装置,包括:
请求获取模块11,用于获取由任意智能合约参与方发起的状态变更请求;
状态分级检测模块12,用于根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;
状态变更模块13,用于如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
可见,本申请实施例先获取由任意智能合约参与方发起的状态变更请求;然后根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。本申请实施例设计多层次生命周期管理,由变更对象所处层级的状态机管理器和状态机共同作用来检测变更对象的当前状态,在满足变更条件的情况下进行状态变更。在宏观的智能合约层面上实现整个智能合约的生命周期管理,在微功能函数层面上实现函数级别细粒度的生命周期管理,从而对智能合约进行漏洞防护,保证区块链系统的稳定性。
在一些具体实施例中,所述状态分级检测模块12,具体包括:
第一触发单元,用于如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器调用第一状态机,以获取与智能合约对应的当前第一状态机状态;
第一判断单元,用于判断当前第一状态机状态是否满足变更条件;
第二触发单元,用于如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第一状态机管理器调用第一状态机获取与智能合约对应的当前第一状态机状态,同时触发第二状态机管理器调用第二状态机获取与所述功能函数对应的当前第二状态机状态;
第二判断单元,用于判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件。
在一些具体实施例中,所述状态变更模块13,具体包括:
第三触发单元,用于触发所述第一状态机管理器调用所述第一状态机,以根据所述状态变更请求对所述智能合约的状态进行变更;
第四触发单元,用于触发所述第二状态机管理器调用所述第二状态机,以根据所述状态变更请求对所述功能函数的状态进行变更。
在一些具体实施例中,所述第一判断单元,具体用于判断当前第一状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定当前第一状态机状态满足变更条件。
在一些具体实施例中,所述第二判断单元,具体用于判断当前第二状态机状态是否满足第一状态机状态的层级约束条件,并判断当前第二状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。
在一些具体实施例中,所述请求获取模块11,具体包括:
第一获取单元,用于获取由任意智能合约参与方发起的状态变更请求
第二获取单元,用于获取所述状态变更请求的门限签名;其中,所述门限签名由所述智能合约参与方通过门限签名的方式对所述状态变更请求进行签名得到。
在一些具体实施例中,所述状态变更装置还包括:
验签模块,用于根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,如果验签通过,则执行对所述变更对象的当前状态进行检测的步骤。
基准私钥份额生成模块,用于密钥生成中心通过门限秘密共享算法生成基准私钥及对应的基准私钥份额,并根据目标需求为不同的所述智能合约参与方分配及下发不同的所述基准私钥份额;
临时公私钥份额生成模块,用于各个所述智能合约参与方生成多个所述临时私钥份额、多个所述临时公钥份额并将多个所述临时私钥份额、多个所述临时公钥份额分别发送至其他所述智能合约参与方,以及接收其他所述智能合约参与方发送的所述临时私钥份额、所述临时公钥份额;
临时公私钥共享份额生成模块,用于各个所述智能合约参与方基于自身所述临时私钥份额及接收到的所述临时私钥份额计算临时私钥共享份额,并基于自身所述临时公钥份额及接收到的所述公钥私钥份额计算临时公钥共享份额;
基准签名参数生成模块,用于各个所述智能合约参与方根据所述临时公钥共享份额计算所述基准签名参数;
门限签名生成模块,用于各个所述智能合约参与方分别对所述状态变更请求进行哈希运算得到第一哈希结果,并分别对所述哈希结果进行签名得到对应的签名份额,以及根据各个所述签名份额采用门限签名恢复出基准签名份额;各个所述智能合约参与方根据基准私钥份额、临时私钥份额及临时公钥份额计算出基准签名参数,得到包含所述基准签名参数与所述基准签名份额的所述门限签名。
在一些具体实施例中,所述验签模块,具体包括:
第一验签单元,用于如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器基于所述状态变更请求对所述门限签名进行验签;
第二验签单元,用于如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第二状态机管理器基于所述状态变更请求对所述门限签名进行验签。
在一些具体实施例中,所述验签模块,具体用于状态机管理器从智能合约中获取与所述基准私钥对应的基准公钥,并对所述状态变更请求进行哈希运算得到第二哈希结果,以及利用所述基准签名份额的乘法逆、所述基准公钥、所述第二哈希结果计算验签公钥共享份额;状态机管理器根据所述验签公钥共享份额计算所述验签签名参数,并判断所述基准签名参数与所述验签签名参数是否相等,如果是,则判定验签通过。
进一步的,本申请实施例还提供了一种电子设备。图11是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图11为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的状态变更方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的状态变更方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的状态变更请求。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的状态变更方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的状态变更请求方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种状态变更方法,其特征在于,包括:
获取由任意智能合约参与方发起的状态变更请求;
根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;
如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
2.根据权利要求1所述的状态变更方法,其特征在于,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测,包括:
如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器调用第一状态机,以获取与智能合约对应的当前第一状态机状态;
判断当前第一状态机状态是否满足变更条件;
相应的,如果所述变更对象的当前状态满足变更条件,所述触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更,包括:
触发所述第一状态机管理器调用所述第一状态机,以根据所述状态变更请求对所述智能合约的状态进行变更。
3.根据权利要求2所述的状态变更方法,其特征在于,所述判断当前第一状态机状态是否满足变更条件,包括:
判断当前第一状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定当前第一状态机状态满足变更条件。
4.根据权利要求1所述的状态变更方法,其特征在于,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测,包括:
如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第一状态机管理器调用第一状态机获取与智能合约对应的当前第一状态机状态,同时触发第二状态机管理器调用第二状态机获取与所述功能函数对应的当前第二状态机状态;
判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件;
相应的,如果所述变更对象的当前状态满足变更条件,所述触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更,包括:
触发所述第二状态机管理器调用所述第二状态机,以根据所述状态变更请求对所述功能函数的状态进行变更。
5.根据权利要求4所述的状态变更方法,其特征在于,所述判断当前第一状态机状态和当前第二状态机状态是否均满足变更条件,包括:
判断当前第二状态机状态是否满足第一状态机状态的层级约束条件,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。
6.根据权利要求5所述的状态变更方法,其特征在于,所述判断当前第二状态机状态是否满足第一状态机状态的层级约束条件之后,还包括:
判断当前第二状态机状态是否属于所述状态变更请求要求的变更后状态的前置状态,如果是,则判定第一状态机状态和第二状态机状态均满足变更条件。
7.根据权利要求1至6任一项所述的状态变更方法,其特征在于,所述获取由任意智能合约参与方发起的状态变更请求,包括:
获取由任意智能合约参与方发起的状态变更请求及所述状态变更请求的门限签名;其中,所述门限签名由所述智能合约参与方通过门限签名的方式对所述状态变更请求进行签名得到;
相应的,对所述变更对象的当前状态进行检测之前,还包括:
根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,如果验签通过,则执行对所述变更对象的当前状态进行检测的步骤。
8.根据权利要求7所述的状态变更方法,其特征在于,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,包括:
如果所述状态变更请求的变更对象的层级为智能合约层,则触发第一状态机管理器基于所述状态变更请求对所述门限签名进行验签。
9.根据权利要求7所述的状态变更方法,其特征在于,所述根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器基于所述状态变更请求对所述门限签名进行验签,包括:
如果所述状态变更请求的变更对象的层级为智能合约内部的功能函数层,则触发第二状态机管理器基于所述状态变更请求对所述门限签名进行验签。
10.根据权利要求7所述的状态变更方法,其特征在于,还包括:
各个所述智能合约参与方分别对所述状态变更请求进行哈希运算得到第一哈希结果,并分别对所述哈希结果进行签名得到对应的签名份额,以及根据各个所述签名份额采用门限签名恢复出基准签名份额;
各个所述智能合约参与方根据基准私钥份额、临时私钥份额及临时公钥份额计算出基准签名参数,得到包含所述基准签名参数与所述基准签名份额的所述门限签名。
11.根据权利要求10所述的状态变更方法,其特征在于,还包括:
密钥生成中心通过门限秘密共享算法生成基准私钥及对应的基准私钥份额,并根据目标需求为不同的所述智能合约参与方分配及下发不同的所述基准私钥份额;
各个所述智能合约参与方生成多个所述临时私钥份额、多个所述临时公钥份额并将多个所述临时私钥份额、多个所述临时公钥份额分别发送至其他所述智能合约参与方,以及接收其他所述智能合约参与方发送的所述临时私钥份额、所述临时公钥份额;
各个所述智能合约参与方基于自身所述临时私钥份额及接收到的所述临时私钥份额计算临时私钥共享份额,并基于自身所述临时公钥份额及接收到的所述公钥私钥份额计算临时公钥共享份额;
各个所述智能合约参与方根据所述临时公钥共享份额计算所述基准签名参数。
12.根据权利要求11所述的状态变更方法,其特征在于,状态机管理器基于所述状态变更请求对所述门限签名进行验签,包括:
状态机管理器从智能合约中获取与所述基准私钥对应的基准公钥,并对所述状态变更请求进行哈希运算得到第二哈希结果,以及利用所述基准签名份额的乘法逆、所述基准公钥、所述第二哈希结果计算验签公钥共享份额;
状态机管理器根据所述验签公钥共享份额计算所述验签签名参数,并判断所述基准签名参数与所述验签签名参数是否相等,如果是,则判定验签通过。
13.一种状态变更装置,其特征在于,包括:
请求获取模块,用于获取由任意智能合约参与方发起的状态变更请求;
状态分级检测模块,用于根据所述状态变更请求的变更对象的层级不同触发对应层级的状态机管理器调用对应层级的状态机,以对所述变更对象的当前状态进行检测;其中,所述变更对象的层级包括智能合约层或智能合约内部的功能函数层,不同层级的所述变更对象对应的状态机管理器及状态机不同;
状态变更模块,用于如果所述变更对象的当前状态满足变更条件,则触发对应层级的状态机管理器调用相应层级的状态机,以根据所述状态变更请求对所述变更对象的状态进行变更。
14.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至12任一项所述的状态变更方法。
15.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至12任一项所述的状态变更方法。
CN202211417421.5A 2022-11-14 2022-11-14 一种状态变更方法、装置、设备及存储介质 Active CN115473747B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211417421.5A CN115473747B (zh) 2022-11-14 2022-11-14 一种状态变更方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211417421.5A CN115473747B (zh) 2022-11-14 2022-11-14 一种状态变更方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115473747A true CN115473747A (zh) 2022-12-13
CN115473747B CN115473747B (zh) 2023-03-24

Family

ID=84338047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211417421.5A Active CN115473747B (zh) 2022-11-14 2022-11-14 一种状态变更方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115473747B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522729A (zh) * 2018-11-02 2019-03-26 中链科技有限公司 智能合约状态变更方法及装置
CN110138592A (zh) * 2019-04-09 2019-08-16 苏宁易购集团股份有限公司 一种智能合约的管理方法及系统
US20190296900A1 (en) * 2016-05-26 2019-09-26 Genomcore, S.L. Providing access to sensitive data
CN110705974A (zh) * 2019-09-03 2020-01-17 杭州趣链科技有限公司 一种完备的智能合约形式规范实现方法
CN113708924A (zh) * 2021-07-30 2021-11-26 西安邮电大学 基于区块链的椭圆曲线门限签名方法
CN115145590A (zh) * 2021-03-29 2022-10-04 中移(上海)信息通信科技有限公司 一种智能合约调用请求处理装置、方法及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190296900A1 (en) * 2016-05-26 2019-09-26 Genomcore, S.L. Providing access to sensitive data
CN109522729A (zh) * 2018-11-02 2019-03-26 中链科技有限公司 智能合约状态变更方法及装置
CN110138592A (zh) * 2019-04-09 2019-08-16 苏宁易购集团股份有限公司 一种智能合约的管理方法及系统
CN110705974A (zh) * 2019-09-03 2020-01-17 杭州趣链科技有限公司 一种完备的智能合约形式规范实现方法
CN115145590A (zh) * 2021-03-29 2022-10-04 中移(上海)信息通信科技有限公司 一种智能合约调用请求处理装置、方法及存储介质
CN113708924A (zh) * 2021-07-30 2021-11-26 西安邮电大学 基于区块链的椭圆曲线门限签名方法

Also Published As

Publication number Publication date
CN115473747B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
CN111541785B (zh) 基于云计算的区块链数据处理方法及装置
CN110915166B (zh) 区块链
Zhang et al. A blockchain-based multi-cloud storage data auditing scheme to locate faults
CN110771088B (zh) 用于解决在网络故障情况下与区块链外通道相关出现的安全性相关漏洞的系统和方法
US10735472B2 (en) Container authorization policies for network trust
CN111460429B (zh) 基于可信执行环境的任务处理方法、装置、设备和介质
WO2019037561A1 (zh) 一种基于联盟链的智能合约升级方法和系统
TW201837805A (zh) 基於未判定資料保證區塊鏈交易的安全
CN112491812B (zh) 区块链一体机的哈希更新方法及装置
Tate et al. Multi-user dynamic proofs of data possession using trusted hardware
JP2014526101A (ja) ソフトウェア・ランタイムの起源
CN116249999A (zh) 用于区块链网络的共识服务
CN108848125B (zh) 区块链中提供共识服务的方法和装置及存储介质
CN112241919A (zh) 具有数据流控制的多域区块链网络
WO2020143906A1 (en) Method and apparatus for trust verification
JP2015524128A (ja) 被保護データー集合のネットワーク・ベース管理
Premarathne et al. Cloud-based utility service framework for trust negotiations using federated identity management
CN117043772A (zh) 区块链数据分离
Wang et al. Protecting scientific workflows in clouds with an intrusion tolerant system
CN115473747B (zh) 一种状态变更方法、装置、设备及存储介质
CN112528242A (zh) 使用用于数据处理加速器的水印算法配置水印单元的系统和方法
Medellin et al. A discussion on blockchain software quality attribute design and tradeoffs
KR20210027011A (ko) 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템
Severinsen Secure programming with intel sgx and novel applications
US20230251905A1 (en) Synchronizing computing resources to proceed with a task

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