会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 智能合约 / 一种智能合约设备及智能合约处理方法

一种智能合约设备及智能合约处理方法

申请号 CN202210108183.3 申请日 2022-01-28 公开(公告)号 CN114511311A 公开(公告)日 2022-05-17
申请人 武汉天喻信息产业股份有限公司; 发明人 董逢华; 孟庆树; 何涛; 张新访;
摘要 本发明公开了一种智能合约设备及智能合约处理方法,涉及计算机技术领域,该设备包括可信执行环境TEE、非可信执行环境REE和密码单元,所述TEE用于运行可信应用TA,且所述TA包含用于对交易数据进行处理以得到执行结果的虚拟机以及完成用户业务功能的可信业务应用;所述REE用于运行低安全性要求的普通应用;所述密码单元内存储有用于对交易数据进行签名的签名私钥。本发明能够有效减轻外部验证者的计算负担,简化区块链计算量。
权利要求

1.一种智能合约设备,其特征在于,包括:可信执行环境TEE,所述TEE用于运行可信应用TA,且所述TA包含用于对交易数据进行处理以得到执行结果的虚拟机以及完成用户业务功能的可信业务应用;

非可信执行环境REE,所述REE用于运行低安全性要求的普通应用;

密码单元,所述密码单元内存储有用于对交易数据进行签名的签名私钥。

2.如权利要求1所述的一种智能合约设备,其特征在于:所述交易数据包括交易编号Txid和输入参数。

3.如权利要求2所述的一种智能合约设备,其特征在于:所述智能合约设备还包括安全单元和通用计算机组件;

所述安全单元内存储有用于实现签名功能的私钥;

所述输入参数可包括安全单元的签名。

4.如权利要求1所述的一种智能合约设备,其特征在于:所述智能合约设备还包括防拆自毁电路。

5.如权利要求1所述的一种智能合约设备,其特征在于:所述设定功能包括根据业务需要构造业务合约的输入参数,并调用业务合约完成业务。

6.一种智能合约处理方法,基于权利要求1~5任一项所述智能合约设备实现,其特征在于,具有包括以下步骤:

可信业务应用构造交易数据,并通过密码单元对交易数据进行签名后发送至虚拟机;

虚拟机装载交易数据中输入参数对应的业务合约,对交易数据进行处理得到执行结果;

TEE对执行结果进行签名,并将签名后的执行结果发送给外部验证者进行验签。

7.如权利要求6所述的一种智能合约处理方法,其特征在于,所述通过密码单元对交易数据进行签名后发送至虚拟机,具体步骤为:密码单元基于签名私钥对交易数据进行签名;

将签名后的交易数据打包为交易后发送至虚拟机,所述交易数据包括Txid、输入参数以及对Txid和输入参数的签名。

8.如权利要求6所述的一种智能合约处理方法,其特征在于,所述对交易数据进行处理得到执行结果,具体步骤包括:虚拟机校验交易数据的签名,并待校验通过后执行业务合约对交易数据中的输入参数进行处理,得到执行结果。

9.如权利要求6所述的一种智能合约处理方法,其特征在于,所述将签名后的执行结果发送给外部验证者进行验签,具体为:将Txid、输入参数、执行结果以及TEE对Txid、输入参数和执行结果的签名,打包发送给外部验证者进行验签。

10.如权利要求6所述的一种智能合约处理方法,其特征在于:所述外部验证者为分布式区块链验证系统、中心化验证系统或类区块链系统。

说明书全文

一种智能合约设备及智能合约处理方法

技术领域

[0001] 本发明涉及计算机技术领域,特别的涉及一种在区块链系统或类区块链系统里的智能合约设备及智能合约处理方法。

背景技术

[0002] 区块链一般可理解为分布式账本,其本质上是一个可以在多个节点、不同地理位置或者多个机构组成的网络里的分布式数据库,区块链网络中每个节点都可以对数据库的
所有内容进行验证,从而保证数据库的正确性和一致性。
[0003] 区块链中的智能合约是一种特殊协议,其用于协调参与方进行合作,智能合约用于规定在何种条件下执行何种操作,否则执行其它操作。智能合约通常被存储在区块链节
点上,并在节点上运行。智能合约允许在不需要第三方的情况下,执行可追溯、不可逆转、安
全的交易。外部应用调用智能合约并把智能合约执行的条件之一作为参数传入,智能合约
对输入的条件参数进行处理并将处理日志和处理结果保存在区块链账本里。
[0004] 但是,由于区块链的智能合约通常都运行在区块链节点上,当智能合约的数量较多,或者智能合约的功能较复杂时,使得区块链节点需要进行大量的计算,导致整个计算过
程过于复杂。

发明内容

[0005] 针对现有技术中存在的缺陷,本发明的目的在于提供一种智能合约设备及智能合约处理方法,能够有效减轻外部验证者的计算负担,简化区块链计算量。
[0006] 为达到以上目的,本发明提供的一种智能合约设备,包括:
[0007] 可信执行环境TEE,所述TEE用于运行可信应用TA,且所述TA包含用于对交易数据进行处理以得到执行结果的虚拟机以及完成用户业务功能的可信业务应用;
[0008] 非可信执行环境REE,所述REE用于运行低安全性要求的普通应用;
[0009] 密码单元,所述密码单元内存储有用于对交易数据进行签名的签名私钥。
[0010] 在上述技术方案的基础上,所述交易数据包括交易编号Txid和输入参数。
[0011] 在上述技术方案的基础上,
[0012] 所述智能合约设备还包括安全单元和通用计算机组件;
[0013] 所述安全单元内存储有用于实现签名功能的私钥;
[0014] 所述输入参数可包括安全单元的签名。
[0015] 在上述技术方案的基础上,所述智能合约设备还包括防拆自毁电路。
[0016] 在上述技术方案的基础上,所述设定功能包括根据业务需要构造业务合约的输入参数,并调用业务合约完成业务。
[0017] 本发明提供的一种智能合约处理方法,基于上述所述智能合约设备实现,具有包括以下步骤:
[0018] 可信业务应用构造交易数据,并通过密码单元对交易数据进行签名后发送至虚拟机;
[0019] 虚拟机装载交易数据中输入参数对应的业务合约,对交易数据进行处理得到执行结果;
[0020] TEE对执行结果进行签名,并将签名后的执行结果发送给外部验证者进行验签。
[0021] 在上述技术方案的基础上,所述通过密码单元对交易数据进行签名后发送至虚拟机,具体步骤为:
[0022] 密码单元基于签名私钥对交易数据进行签名;
[0023] 将签名后的交易数据打包为交易后发送至虚拟机,所述交易数据包括Txid、输入参数以及对Txid和输入参数的签名。
[0024] 在上述技术方案的基础上,所述对交易数据进行处理得到执行结果,具体步骤包括:
[0025] 虚拟机校验交易数据的签名,并待校验通过后执行业务合约对交易数据中的输入参数进行处理,得到执行结果。
[0026] 在上述技术方案的基础上,所述将签名后的执行结果发送给外部验证者进行验签,具体为:
[0027] 将Txid、输入参数、执行结果以及TEE对Txid、输入参数和执行结果的签名,打包发送给外部验证者进行验签。
[0028] 在上述技术方案的基础上,所述外部验证者为分布式区块链验证系统、中心化验证系统或类区块链系统。
[0029] 与现有技术相比,本发明的优点在于:通过设计链下设备,将业务合约运行在智能合约设备内,运行结果以安全可验证的方式提交给外部验证者,在智能合约设备内由可信
业务应用完成对交易数据的签名,有效减轻外部验证者的计算负担,简化区块链计算量,且
保障智能合约功能完整和计算结果真实。

附图说明

[0030] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
[0031] 图1为本发明实施例中一种智能合约设备的结构示意图;
[0032] 图2为本发明实施例中智能合约处理方法的流程图;
[0033] 图3为智能合约设备与外部验证者间的交互示意图。

具体实施方式

[0034] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本申请的一部分实施例,而不是全部的实施例。
[0035] 参见图1所示,本发明实施例提供一种智能合约设备,在智能合约设备内由可信业务应用完成对交易数据的签名,将业务合约运行在智能合约设备内,运行结果以安全可验
证的方式提交给外部验证者,有效减轻外部验证者的计算负担。具体的,智能合约设备包括
TEE(Trusted Execution Environment,可信执行环境)、REE(Rich Execution 
Environment,丰富的执行环境,或非可信执行环境)和密码单元。
[0036] 对于本发明中的TEE,TEE用于运行TA(Trusted Application,可信应用),且TA包含用于对交易数据进行处理以得到执行结果的虚拟机以及完成用户业务功能的可信业务
应用。本发明实施例中的交易数据包括Txid和输入参数,Txid又叫交易编号,可以有多种编
码方法,比如为区块链交易信息经过哈希运算后得到的一长串字符。
[0037] TEE内运行的TA包括虚拟机,进一步的,TEE还可以存储一定的数据。虚拟机的作用是为智能合约提供计算资源和运行容器,用于执行智能合约代码,以及修改当前区块链上
的数据(状态)。TA还包括可信业务应用,用于完成用户定义的功能,其中一个功能是根据业
务需要构造业务合约的输入参数,并调用外部密码卡对(Txid,输入参数)签名,并将上述所
有数据打包为交易发给虚拟机。
[0038] 对于本发明中的REE是非安全执行环境,只能用于运行低安全性要求的普通应用,即对安全性没有特殊要求的一般应用。
[0039] 本发明实施例中,智能合约设备还包括安全单元和通用计算机组件。安全单元,即secure element,又称安全模块,是一台微型计算机,通过安全芯片和芯片操作系统实现数
据安全存储、加解密运算等功能。安全单元内存储有用于实现签名功能的私钥。进一步的,
本发明实施例中的输入参数还可以包括安全单元的签名。本发明实施例中的通用计算机组
件为CPU(central processing unit,中央处理器)、网卡、存储等。
[0040] 本发明实施例中,智能合约设备还包括防拆自毁电路,通过防拆自毁电路保证智能合约设备不能私自拆开,否则将引起智能合约设备的自毁操作。具体的,在结构或PCB
(Printed Circuit Board,印制电路板)上设计一些没有规则的线路,当从外部拆开或破坏
PCB时,电路断开,系统检测到断开后将系统锁住或将内部的程序烧毁,达到保护数据或程
序的目的。
[0041] 需要说明的是,本发明中的业务合约是一种处理复杂业务的智能合约,需要从外部验证者下载,由外部验证者负责审核业务合约的正确性和安全性。
[0042] 本发明通过设计链下设备,将业务合约运行在智能合约设备内,运行结果以安全可验证的方式提交给外部验证者。在智能合约设备内由可信业务应用完成对交易数据的签
名,在TEE内完成智能合约的执行并对输出结果进行签名,有效减轻外部验证者的计算负
担,简化区块链计算量,且保障智能合约功能完整和计算结果真实。
[0043] 参见图2所示,本发明实施例提供的一种智能合约处理方法,基于上述智能合约设备实现,具体的,包括以下步骤:
[0044] S1:可信业务应用构造交易数据,并通过密码单元对交易数据进行签名后发送至虚拟机;具体的,由调用智能合约的可信业务应用构造交易数据,交易数据包括Txid和输入
参数,必要时,输入参数内可以包含安全单元的签名。
[0045] 本发明实施例中,通过密码单元对交易数据进行签名后发送至虚拟机,具体步骤为:
[0046] S101:密码单元基于签名私钥对交易数据进行签名;即调用密码单元内的签名私钥以及相关的签名接口对构造的交易数据进行签名。
[0047] S102:将签名后的交易数据打包为交易后发送至虚拟机,所述交易数据包括Txid、输入参数和对(Txid、输入参数)的签名,一个合格的交易需要包含Txid、输入参数以及对
Txid和输入参数的签名。
[0048] S2:虚拟机装载交易数据中输入参数对应的业务合约,对交易数据进行处理得到执行结果;
[0049] 本发明实施例中,对交易数据进行处理得到执行结果,具体步骤包括:虚拟机校验交易数据的签名,并待校验通过后执行业务合约对交易数据中的输入参数进行处理,得到
执行结果。在对输入参数进行处理时,可能会读取与可信应用相关的历史状态数据,然后输
出合约的执行结果。
[0050] 对于上述步骤,举例说明如下:例如货到付款业务,当收货方收到货物并完成签收,则交易数据中的输入参数为收货方收完货物后的数字签名,此时对输入参数进行处理,
得到的执行结果为收货方应对发货方进行货款支付。
[0051] S3:TEE对执行结果进行签名,并将签名后的执行结果发送给外部验证者进行验签。
[0052] 本发明实施例中,将签名后的执行结果发送给外部验证者进行验签,具体为:将Txid、输入参数、执行结果以及TEE对Txid、输入参数和执行结果的签名,打包发送给外部验
证者进行验签。外部验证者为分布式区块链验证系统、中心化验证系统或类区块链系统,类
区块链系统为体现中心化系统和分布式区块链系统优点的混合验证系统。
[0053] 外部验证者只需要针对TEE对执行结果的签名进行验签,即承认TEE的运行结果,并将交易数据和交易结果进行存证。
[0054] 智能合约设备和外部验证者间的交互如图3所示,智能合约设备从外部验证者中下载业务合约,智能合约设备将Txid、输入参数、执行结果和TEE对(Txid、输入参数、执行结
果)的签名打包发送给外部验证者进行验签。
[0055] 以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请
将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一
致的最宽的范围。
[0056] 本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程
和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指
令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生
一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现
在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。