一种基于智能合约的权限可控的智能合约升级方法转让专利

申请号 : CN201811242629.1

文献号 : CN109358881B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李启雷李伟梁秀波邱炜伟尹可挺戎佳磊吴志强

申请人 : 杭州趣链科技有限公司

摘要 :

本发明公开一种基于智能合约的权限可控的智能合约升级方法,此方法首先部署合约升级智能合约,再部署包含合约参与者信息和通过此合约相关提案所需的最少同意数量信息的待升级智能合约;然后任意区块链节点接收用户向合约升级智能合约提出的携带待升级的智能合约地址、新合约二进制信息的合约升级提案,经合约升级智能合约判定通过后,生成提出事件,并转发给所有参与该合约的用户客户端,客户端收到后接收用户的投票并反馈至合约升级智能合约;如果同意数量超过预设,此提案被通过并应用,进行合约二进制的替换,完成合约升级。本发明解决了传统合约升级方式的中心化问题,解决了单点故障问题,提升了合约升级的安全性。

权利要求 :

1.一种基于智能合约的权限可控的智能合约升级方法,区块链包括区块链节点和客户端,其特征在于,该方法具体包括如下步骤:S1:将合约升级智能合约部署在区块链节点上;

S2:将包含合约参与者信息和通过此合约相关提案所需的最少同意数量信息的待升级的智能合约部署在区块链节点上;

S3:任意区块链节点接收用户向合约升级智能合约提出的携带待升级的智能合约地址、新的合约二进制信息的合约升级提案,合约升级智能合约检查待升级的智能合约地址是否合法、提案发起者是否属于合约的参与者,如果待升级的智能合约地址不合法或者提案发起者不属于合约的参与者,则拒绝此次升级,如果待升级的智能合约地址合法且提案发起者属于合约的参与者,则合约升级智能合约生成合约升级提案提出事件,并转发该事件至所有参与该合约的用户客户端;

S4:用户客户端收集到所述的合约升级提案提出事件后,接收用户根据相应信息判定后的投票信息,并将该投票信息反馈至合约升级智能合约;

S5:合约升级智能合约进行同意数量的收集,当超过所需最少同意数量,此提案通过,生成通过事件通知所有区块链节点,继续执行S6;如果超时还未收集足够同意,放弃此提案,不进行升级;

S6:所有区块链节点进行合约二进制信息替换,完成智能合约升级。

2.根据权利要求1所述的基于智能合约的权限可控的智能合约升级方法,所述的合约升级智能合约通过增加映射的方式同时处理多个合约的升级提案,同一时间一个合约的升级提案只能处理一个。

3.根据权利要求1所述的基于智能合约的权限可控的智能合约升级方法,所述的S3中,所述的合约升级智能合约在检查待升级的智能合约提案发起者是否属于合约的参与者时,通过使用内置合约的方式,根据给定的待升级的智能合约的地址查询相应的合约参与者信息。

4.根据权利要求1所述的基于智能合约的权限可控的智能合约升级方法,所述的待升级的智能合约的合约参与者信息和通过此合约相关提案所需的最少同意数量信息也可以通过提案投票的方式进行更新,以适应合约用户增加或减少的情况。

5.根据权利要求1所述的基于智能合约的权限可控的智能合约升级方法,所述的S2的待升级的智能合约部署过程中,所有待升级的智能合约的合约参与者信息和通过此合约相关提案所需的最少同意数量信息需要冗余备份于所有区块链节点中。

说明书 :

一种基于智能合约的权限可控的智能合约升级方法

技术领域

[0001] 本发明涉及智能合约技术,尤其涉及一种基于智能合约的权限可控的智能合约升级方法.

背景技术

[0002] 智能合约是1990年代由尼克萨博提出的理念,几乎与互联网同龄。由于缺少可信的执行环境,智能合约并没有被应用到实际产业中,自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境。智能合约是编程在区块链上的汇编语言。通常人们不会自己编写字节码,但是会从更高级的语言来编译它。
[0003] 而传统区块链智能合约升级采用的是部署者发起升级请求,合约就直接能够升级。在联盟链系统中,这样的设计有以下问题:存在单点故障问题,如果部署者丢失其私钥,此份合约便再不能升级;存在作恶问题,一份智能合约可能有多个参与方,但是这种设计中,部署者可以在没有征得其余参与方的同意的情况下,单方面进行合约的升级。

发明内容

[0004] 本发明的目的是针对现有技术的不足,提供一种基于智能合约的权限可控的智能合约升级方法,提供了智能合约升级的权限控制,增强了安全性。具体技术方案如下:
[0005] 一种基于智能合约的权限可控的智能合约升级方法,所述的区块链包括区块链节点和客户端,其特征在于,该方法具体包括如下步骤:
[0006] S1:将合约升级智能合约部署在区块链节点上;
[0007] S2:将包含合约参与者信息和通过此合约相关提案所需的最少同意数量信息的待升级的智能合约部署在区块链节点上;
[0008] S3:任意区块链节点接收用户向合约升级智能合约提出的携带待升级的智能合约地址、新合约二进制信息的合约升级提案,合约升级智能合约检查待升级的智能合约地址是否合法、提案发起者是否属于合约的参与者,确认其是否合法,如果不合法,拒绝此次升级,如果合法,合约升级智能合约生成合约升级提案提出事件,并转发该事件至所有参与该合约的用户客户端;
[0009] S4:用户客户端收集到所述的合约升级提案提出事件后,接收用户根据相应信息判定后的投票信息,并将该投票信息反馈至合约升级智能合约;
[0010] S5:合约升级智能合约进行同意数量的收集,当超过所需最少同意数量,此提案通过,生成通过事件通知所有区块链节点;如果超时还未收集足够同意,放弃此提案,不进行升级;
[0011] S6:所有区块链节点进行合约二进制替换,完成智能合约升级。
[0012] 进一步地,所述的合约升级智能合约通过增加映射的方式同时处理多个合约的升级提案,同一时间一个合约的升级提案只能处理一个。
[0013] 进一步地,所述的S3中,所述的合约升级智能合约在检查待升级的智能合约提案发起者是否属于合约的参与者时,通过使用内置合约的方式,根据给定的待升级合约的地址查询相应的合约参与者信息。
[0014] 进一步地,所述的待升级的智能合约的合约参与者信息和通过此合约相关提案所需的最少同意数量信息也可以通过提案投票的方式进行更新,以适应合约用户增加或减少的情况。
[0015] 进一步地,所述的S2的待升级的智能合约部署过程中,所有待升级的智能合约的合约参与者信息和通过此合约相关提案所需的最少同意数量信息需要冗余备份于所有区块链节点中。
[0016] 本发明的有益效果如下:
[0017] 本发明的基于智能合约的权限可控的智能合约升级方法进行了合约升级的权限控制,需要征得预定数量合约参与方的同意后才能进行合约升级,避免了单点故障和作恶可能,提高了安全性。

附图说明

[0018] 图1为本发明的基于智能合约的权限可控的智能合约升级方法的详细流程图。

具体实施方式

[0019] 下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020] 如图1所示,本发明的基于智能合约的权限可控的智能合约升级方法,所述的区块链包括区块链节点和客户端,其特征在于,该方法具体包括如下步骤:
[0021] S1:将合约升级智能合约部署在区块链节点上;
[0022] S2:将包含合约参与者信息和通过此合约相关提案所需的最少同意数量信息的待升级的智能合约部署在区块链节点上;
[0023] S3:任意区块链节点接收用户向合约升级智能合约提出的携带待升级的智能合约地址、新合约二进制信息的合约升级提案,合约升级智能合约检查待升级的智能合约地址是否合法、提案发起者是否属于合约的参与者,确认其是否合法,如果不合法,拒绝此次升级,如果合法,合约升级智能合约生成合约升级提案提出事件,并转发该事件至所有参与该合约的用户客户端;
[0024] S4:用户客户端收集到所述的合约升级提案提出事件后,接收用户根据相应信息判定后的投票信息,并将该投票信息反馈至合约升级智能合约;
[0025] S5:合约升级智能合约进行同意数量的收集,当超过所需最少同意数量,此提案通过,生成通过事件通知所有区块链节点;如果超时还未收集足够同意,放弃此提案,不进行升级。
[0026] S6:所有区块链节点进行合约二进制替换,完成智能合约升级。
[0027] 优选地,所述的合约升级智能合约通过增加映射的方式同时处理多个合约的升级提案,同一时间一个合约的升级提案只能处理一个,以适应系统多合约的情况。
[0028] 优选地,所述的S3中,所述的合约升级智能合约在检查待升级的智能合约提案发起者是否属于合约的参与者时,通过使用内置合约的方式,根据给定的待升级合约的地址查询相应的合约参与者信息。
[0029] 优选地,所述的待升级的智能合约的合约参与者信息和通过此合约相关提案所需的最少同意数量信息也可以通过提案投票的方式进行更新,以适应合约用户增加或减少的情况。
[0030] 优选地,所述的S2的待升级的智能合约部署过程中,所有待升级的智能合约的合约参与者信息和通过此合约相关提案所需的最少同意数量信息需要冗余备份于所有区块链节点中。
[0031] 本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。