CN111222160A - 一种智能合约执行方法及系统 - Google Patents

一种智能合约执行方法及系统 Download PDF

Info

Publication number
CN111222160A
CN111222160A CN201911398878.4A CN201911398878A CN111222160A CN 111222160 A CN111222160 A CN 111222160A CN 201911398878 A CN201911398878 A CN 201911398878A CN 111222160 A CN111222160 A CN 111222160A
Authority
CN
China
Prior art keywords
block chain
intelligent
intelligent contract
contract
card
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
CN201911398878.4A
Other languages
English (en)
Other versions
CN111222160B (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.)
Union Mobile Pay Co Ltd
Original Assignee
Linkage Advantage Beijing Digital 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 Linkage Advantage Beijing Digital Technology Co Ltd filed Critical Linkage Advantage Beijing Digital Technology Co Ltd
Priority to CN201911398878.4A priority Critical patent/CN111222160B/zh
Publication of CN111222160A publication Critical patent/CN111222160A/zh
Application granted granted Critical
Publication of CN111222160B publication Critical patent/CN111222160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种智能合约执行方法及系统,该方法包括:客户端构造交易信息并发送至区块链网络,所述区块链网络对所述交易信息共识后,所述区块链网络的各个区块链节点分别将所述交易信息发送至对应的智能卡;所述智能卡判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。本发明实施例提供的智能合约执行方法及系统,通过在智能卡中执行智能合约,增强了智能合约保护能力、提高了智能合约安全性,并可很好地保护智能合约中业务密钥信息,且具备高通用性和高扩展性。

Description

一种智能合约执行方法及系统
技术领域
本发明涉及区块链技术领域,具体涉及一种智能合约执行方法及系统。
背景技术
区块链的智能合约需发送到区块链各个节点,各节点解析后运行。合约逻辑对节点公开,合约拥有者无法保护合约逻辑,无法保护合约知识产权。
为解决上述问题,现有的一种智能合约算法的保护方法为:1)将采用go语言编写的算法库源文件通过编译和汇编后生成elf文件。2)复制出elf文件中的重定位表、只读数据区、数据区和代码区形成一串二进制数据,并为二进制数据配置加载器函数。3)将二进制数据和加载器函数写入智能合约的源码中。4)将智能合约的源码上传至docker中进行部署。
该方案的不足是:1)方案核心算法保护能力有限,易被破解。通过对内存数据分析、GDB跟踪、嗅探技术等分析核心算法逻辑,导致核心算法泄露。2)方案的应用范围有限,只支持对于go语言的核心算法保护机制。
发明内容
为解决现有技术中的问题,本发明实施例提供一种智能合约执行方法及系统。
第一方面,本发明实施例提供一种智能合约执行方法,包括:客户端构造交易信息并发送至区块链网络,所述区块链网络对所述交易信息共识后,所述区块链网络的各个区块链节点分别将所述交易信息发送至对应的智能卡;所述智能卡判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
进一步地,所述方法还包括:若所述智能合约不存在,则所述智能卡反馈所述智能合约不存在的信息给对应的所述区块链节点。
进一步地,所述智能合约的运行环境包括虚拟机或简易操作系统。
进一步地,在所述客户端构造交易信息并发送至区块链网络之前,所述方法还包括:所述客户端生成所述智能合约,并使用合约密钥对所述智能合约加密后生成密文合约;所述客户端将所述密文合约发送至所述区块链网络;所述区块链网络对所述密文合约进行共识后,各个所述区块链节点将所述密文合约发送至对应的所述智能卡;所述智能卡利用预先保存的所述合约密钥对所述密文合约解密,还原所述智能合约并保存,并将解密完成消息反馈至对应的所述区块链节点。
进一步地,所述方法还包括:所述客户端发送所述智能合约的预设操作指令至所述区块链网络;所述区块链网络对所述预设操作指令进行共识后,所述区块链网络的各个区块链节点将所述预设操作指令分别发送至对应的所述智能卡;所述智能卡根据所述预设操作指令对所述智能合约进行处理。
进一步地,所述预设操作指令包括升级智能合约、冻结智能合约、删除智能合约、新增智能合约业务密钥、更新智能合约业务密钥、删除智能合约业务密钥中的至少一种。
进一步地,所述区块链节点和所述智能卡的数据传输过程采用经过密钥协商后得到的密钥进行密文传输;所述方法还包括:所述区块链节点发送节点名称、节点唯一序列号、节点公钥信息、节点私钥签名信息及节点证书信息给对应的所述智能卡,以供所述智能卡识别所述区块链节点的身份;所述智能卡发送智能卡名称、智能卡唯一序列号、智能卡公钥信息、智能卡私钥签名信息及智能卡证书信息给对应的所述区块链节点,以供所述区块链节点识别所述智能卡的身份;在所述智能卡识别所述区块链节点的身份以及所述区块链节点识别所述智能卡的身份均通过后,所述区块链节点和所述智能卡进行密钥协商,商定进行所述密文传输所使用的所述密钥。
第二方面,本发明实施例提供一种智能合约执行系统,包括:客户端、区块链网络和智能卡;所述智能卡和所述区块链网络中的区块链节点一一对应;其中:所述客户端用于构造交易信息并发送至所述区块链网络;所述区块链网络用于对所述交易信息共识后,并通过所述区块链网络的各个所述区块链节点分别将所述交易信息发送至对应的所述智能卡;所述智能卡用于判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所提供的方法的全部或部分步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的全部或部分步骤。
本发明实施例提供的智能合约执行方法及系统,通过在智能卡中执行智能合约,增强了智能合约保护能力、提高了智能合约安全性,并可很好地保护智能合约中业务密钥信息,且具备高通用性和高扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的智能合约执行方法流程图;
图2是本发明另一实施例提供的智能合约执行方法流程图;
图3是本发明一实施例提供的智能合约执行方法中智能合约安装过程流程图;
图4是本发明一实施例提供的智能合约执行方法中区块链节点和智能卡的通信过程示意图;
图5是本发明一实施例提供的智能合约执行系统的结构示意图;
图6是本发明一实施例提供的智能合约执行系统中的区块链节点的结构示意图;
图7是本发明一实施例提供的智能合约执行系统中的智能卡的结构示意图;
图8是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一实施例提供的智能合约执行方法流程图。如图1所示,所述方法包括:
步骤101、客户端构造交易信息并发送至区块链网络,所述区块链网络对所述交易信息共识后,所述区块链网络的各个区块链节点分别将所述交易信息发送至对应的智能卡。
所述客户端用于利用区块链网络实现相应的交易需求。所述客户端欲实现的交易功能可以用交易信息进行表示,最终需要通过执行与所述交易信息对应的智能合约来获取相应的结果。因此,客户端根据交易需求构造交易信息并发送至区块链网络。所述区块链网络包括多个区块链节点,所述客户端可以将所述交易信息发送至任一所述区块链节点。
所述区块链网络接收到所述交易信息后,对所述交易信息进行全网共识,共识通过后,所述区块链网络的各个所述区块链节点分别将所述交易信息发送至对应的智能卡。其中,所述智能卡和所述区块链网络中的区块链节点一一对应。根据区块链节点的不同,所述智能卡和所述区块链节点的数据通信方式可以采用USB、蓝牙等通信方式。
步骤102、所述智能卡判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
智能合约和密钥信息由高安全的智能卡保存。所述智能卡接收到所述交易信息后,判断与所述交易信息对应的智能合约是否存在。所述智能卡中存储有智能合约,且所述智能卡存储的智能合约可以为多个,分别用于执行不同的交易,即对不同的交易信息进行处理。所述交易信息和所述智能合约之间可以建立匹配标识,以用于匹配。比如,交易信息可以携带智能合约的ID号,以用于匹配。所述智能合约中可以设置有业务密钥(智能合约执行过程中所需要的密钥信息),智能卡也保存有所述业务密钥,以执行智能合约。
所述智能卡若判断获知与所述交易信息对应的智能合约存在,则构建或激活所述智能合约的运行环境。其中,若所述智能合约的运行环境尚未构建,则构建所述智能合约的运行环境;若所述智能合约的运行环境已经构建但未激活,则激活所述智能合约的运行环境。所述智能合约的运行环境可以为虚拟机,简易操作系统、容器等,具体可以根据需要设定。进而所述智能卡在所述运行环境下执行所述智能合约,即对所述交易信息进行处理,进而生成与所述交易信息对应的状态结果集,并将所述状态结果集反馈至对应的所述区块链节点。
区块链网络中的区块链节点收到所述状态结果集后,所述区块链网络可根据预设的规则发送所述状态结果集至所述客户端。比如,可以是对状态结果集进行全网共识后再发送至客户端,也可以是由最先收到状态结果集的区块链节点直接发送相应的状态结果集至客户端,具体可根据需要而定。
本发明实施例中,智能合约的执行过程在智能卡上进行,与已有技术中智能合约的执行在区块链节点上相比,具有如下优点:
1)增强了智能合约保护能力、提高智能合约安全性。智能合约被保存在高安全的智能卡设备中,智能卡设备具有高度抗干扰、防剖片、抗破解、防嗅探的能力。攻击者即使触及到硬件设备也无法读取、修改合约逻辑信息。
2)保护智能合约中业务密钥信息。传统业务由于合约公开,如果使用签名验签等密码学技术,所有节点将暴露业务相关密钥,通过高安全的硬件模块,可方便的保护业务密钥信息。
3)高通用性、高扩展性。本发明实施例的实现与合约具体的实现语言无关,各种编程语言(java、go、c++等)生成的智能合约都可以在智能卡中运行,无需担心语言问题。
本发明实施例通过在智能卡中执行智能合约,增强了智能合约保护能力、提高了智能合约安全性,并可很好地保护智能合约中业务密钥信息,且具备高通用性和高扩展性。
进一步地,基于上述实施例,所述方法还包括:若所述智能合约不存在,则所述智能卡反馈所述智能合约不存在的信息给对应的所述区块链节点。
所述智能卡接收到所述交易信息后,判断与所述交易信息对应的智能合约是否存在。若所述智能合约不存在,则所述智能卡反馈所述智能合约不存在的信息给对应的所述区块链节点,以使区块链节点获知智能卡无法执行相应交易信息,区块链节点可进一步将交易无法执行的信息反馈给客户端。
在上述实施例的基础上,本发明实施例通过在与交易信息对应的智能合约不存在时,智能卡反馈相应信息给对应的区块链节点,提高了智能合约执行的可靠性。
图2是本发明另一实施例提供的智能合约执行方法流程图。如图2所示,所述方法包括:
1)客户端构造交易并发送至区块链网络,区块链网络共识后,发送至高安全的智能卡。
2)智能卡判断该合约是否存在,如果不存在反馈至区块链节点。
3)如果存在,构建、激活合约的运行环境,例如虚拟机、简易操作系统等。
4)智能卡执行智能合约逻辑,生成状态结果集,反馈至区块链节点。
图3是本发明一实施例提供的智能合约执行方法中智能合约安装过程流程图。在所述客户端构造交易信息并发送至区块链网络之前,需要先进行智能合约的安装或注册。如图3所示,智能合约安装过程如下:所述客户端生成所述智能合约,并使用合约密钥对所述智能合约加密后生成密文合约;其中,合约密钥与智能卡中保存的合约密钥一致;如果合约密钥有多支需指明密钥版本。所述客户端将所述密文合约发送至所述区块链网络;所述区块链网络对所述密文合约进行共识后,该密文合约传递至各个区块链节点;各个所述区块链节点将所述密文合约发送至对应的所述智能卡;所述智能卡利用预先保存的对应的所述合约密钥对所述密文合约解密,还原所述智能合约并保存,智能合约还原后可进行初始化处理,并将解密完成消息(结果)反馈至对应的所述区块链节点。
由区块链网络处理密文合约,经过区块链节点对密文合约共识后,再将密文合约发送至智能卡进行解密(还原智能合约)及保存,可以保证智能卡所存储的智能合约的一致性,并且可以平衡区块链节点间的处理能力的不同,即不管区块链节点之间的处理能力有何差别,最终都会得到相同的智能合约。
在上述实施例的基础上,本发明实施例通过区块链共识后发送密文合约至智能卡,智能卡解密后得到智能合约并存储,保证了各个智能卡存储的智能合约的一致性,从而进一步提高了智能合约执行的可靠性。
进一步地,基于上述实施例,所述方法还包括:所述客户端发送所述智能合约的预设操作指令至所述区块链网络;所述区块链网络对所述预设操作指令进行共识后,所述区块链网络的各个区块链节点将所述预设操作指令分别发送至对应的所述智能卡;所述智能卡根据所述预设操作指令对所述智能合约进行处理;所述预设操作指令包括升级智能合约、冻结智能合约、删除智能合约、新增智能合约业务密钥、更新智能合约业务密钥、删除智能合约业务密钥中的至少一种。
除了根据交易信息执行智能合约外,智能合约的应用过程中可能还需要进行智能合约的调整等操作。如升级智能合约、冻结智能合约、删除智能合约、新增智能合约业务密钥、更新智能合约业务密钥、删除智能合约业务密钥等。同样地,这些调整操作由客户端发起,具体由预设操作指令进行表示。
因此,所述方法还包括:所述客户端发送所述智能合约的预设操作指令至所述区块链网络;所述区块链网络对所述预设操作指令进行共识后,所述区块链网络的各个区块链节点将所述预设操作指令分别发送至对应的所述智能卡。
所述预设操作指令包括升级智能合约、冻结智能合约、删除智能合约、新增智能合约业务密钥、更新智能合约业务密钥、删除智能合约业务密钥中的至少一种。如果预设操作指令之间不冲突,所述预设操作指令也可以包括多种类型,如可以同时包括升级智能合约和更新智能合约业务密钥。
所述智能卡根据所述预设操作指令对所述智能合约进行处理。可以理解的,所述预设操作指令需要包含执行相应操作的必要信息。比如,若所述预设操作指令为删除智能合约,则可以根据预设操作指令中的欲删除的智能合约的ID号删除相应的智能合约。
由上可见,对于智能合约的升级、冻结、删除以及智能合约密钥的新增、更新、删除必须得到区块链网络的全网共识,客户端可以将密钥新增、更新等操作封装成交易报文(预设操作指令),通过区块链网络共识,所有区块链节点及智能卡都将执行升级动作,从而保证了一致性。
本发明实施例具有安全的密钥操作方式。密钥的新增、更新、删除都必须经过区块链网络共识才可以操作,既保证在共识期间区块链网络无法获取密钥信息,又保证密钥操作是全网允许的(经过各节点共识、投票)。
在上述实施例的基础上,本发明实施例通过根据经过区块链共识的预设操作指令对智能合约进行处理,进一步提高了智能合约执行的可靠性。
进一步地,基于上述实施例,所述区块链节点和所述智能卡的数据传输过程采用经过密钥协商后得到的密钥进行密文传输;所述方法还包括:所述区块链节点发送节点名称、节点唯一序列号、节点公钥信息、节点私钥签名信息及节点证书信息给对应的所述智能卡,以供所述智能卡识别所述区块链节点的身份;所述智能卡发送智能卡名称、智能卡唯一序列号、智能卡公钥信息、智能卡私钥签名信息及智能卡证书信息给对应的所述区块链节点,以供所述区块链节点识别所述智能卡的身份;在所述智能卡识别所述区块链节点的身份以及所述区块链节点识别所述智能卡的身份均通过后,所述区块链节点和所述智能卡进行密钥协商,商定进行所述密文传输所使用的所述密钥。
所述区块链节点和所述智能卡的数据传输过程采用经过密钥协商后得到的密钥进行密文传输。在区块链节点和所述智能卡进行密文传输之前,需要身份识别和密钥协商的过程。高安全智能卡与区块链节点需互相识别身份,并保证数据传输的隐私性、安全性。
图4是本发明一实施例提供的智能合约执行方法中区块链节点和智能卡的通信过程示意图。区块链节点为每个智能卡设备维护以下信息:智能卡设备名称、智能卡唯一序列号。智能卡设备维护以下信息:
区块链节点名称、该节点的唯一序列号。如图4所示,区块链节点和智能卡的通信过程包括:
1)区块链节点发送节点名称(pName)、节点唯一序列号(pSN)、节点公钥信息(pPK)、节点私钥签名信息(pSign)及节点证书信息(pCert)给对应的所述智能卡,以供所述智能卡识别所述区块链节点的身份。
其中,节点唯一序列号(pSN)只使用一次,发送至高安全智能卡后,序列号增加,保证序列号单调递增。区块链节点的节点公钥信息(pPK)每个节点都不同,具体可以为公钥值,也可为公钥哈希。节点私钥签名信息是指用区块链节点的私钥进行签名的信息,区块链节点使用自己的私钥(pSK)对发送的数据信息进行签名(pSign)。节点证书信息是指由第三方认证中心(如CA证书管理员)利用私钥对节点的公钥进行签名得到的证书(pCert)。
2)智能卡检测信息有效性:
(1)根据区块链节点名称(pName),查询本地匹配的序列号信息。首先,查找相应的节点名称是否存在,如果智能卡未找到该节点名称,则将节点唯一序列号pSN设置为该区块链节点的初始序列号。
(2)如果找到匹配的序列号信息(pSN1),则若判断获知pSN1>=pSN,认为该序列号过期、或者存在重放攻击,拒绝进一步通信并通知区块链节点期望的pSN值(如可以为pSN1+1)。如果pSN1<pSN,则更新本地序列号为pSN,并进行下一步。
(3)验证第三方认证中心生成的(pCert)是否正确。智能卡存储有第三方认证中心的公钥信息,可以用所存储的公钥信息对私钥签名进行验签,以判断第三方认证中心生成的(pCert)是否正确。
如果错误退出,正确进行下一步。
3)智能卡发送智能卡名称(sName)、智能卡唯一序列号(sSN)、智能卡公钥信息(sPK)、智能卡私钥签名信息(sSign)及智能卡证书信息(sCert)给对应的所述区块链节点,以供所述区块链节点识别所述智能卡的身份。命名规则与区块链节点一致。
4)发送完成后,智能卡设备将自身sSN增加,保证sSN不重复。
5)区块链节点使用步骤2)的方式检查智能卡设备身份。检查通过后,进行密钥协商。密钥协商方式可使用传统的密钥协商方法。
6)密钥协商完成后,可进行密文通信。
在上述实施例的基础上,本发明实施例通过区块链节点与智能卡进行安全密文通信,提高了智能合约执行的安全性。
图5是本发明一实施例提供的智能合约执行系统的结构示意图。如图5所示,所述系统包括客户端1、区块链网络2和智能卡3;所述智能卡3和所述区块链网络2中的区块链节点一一对应;其中:所述客户端1用于构造交易信息并发送至所述区块链网络2;所述区块链网络2用于对所述交易信息共识后,并通过所述区块链网络2的各个所述区块链节点分别将所述交易信息发送至对应的所述智能卡3;所述智能卡3用于判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
本发明实施例通过在智能卡中执行智能合约,增强了智能合约保护能力、提高了智能合约安全性,并可很好地保护智能合约中业务密钥信息,且具备高通用性和高扩展性。
图6是本发明一实施例提供的智能合约执行系统中的区块链节点的结构示意图。图7是本发明一实施例提供的智能合约执行系统中的智能卡的结构示意图。如图6、图7所示:
本方案将高知识产权的智能合约放入高安全级别的智能卡(安全级别至少满足EAL4+)。本发明实施例高安全智能卡包含以下模块:身份管理、通信管理、密钥管理、合约管理。为配合高安全智能卡的有效运行,区块链节点需包含以下模块:身份管理、通信管理。除此之外,区块链节点还可包括共识服务、账本服务、交易管理、合约管理等模块。
身份管理、通信管理用于有效识别智能卡、区块链节点的身份信息,以及保证二者传输安全性。密钥管理用于保护智能合约代码隐私、证明智能卡身份、保护通信安全性。合约管理用于构建合约运行环境、合约生命周期管理(安装、升级、销毁、冻结等)。
高安全智能卡初始化涉及到密钥管理模块,需要预置两种密钥:身份密钥、合约密钥。高安全智能卡的密钥管理模块对密钥进行分类管理,密钥类型包括:身份密钥、合约密钥、自定义密钥。身份密钥:证明该智能卡是被授权的有效设备,防止恶意设备冒充、伪造合约。合约密钥:在合约注册期间,合约以密文形式传递到各智能卡,智能卡使用该密钥进行合约还原。自定义密钥:合约业务逻辑需要业务自身相关的密钥。
本发明实施例提供的智能合约执行方法及系统,具有如下优点:
1)增强合约保护能力、提高合约安全。智能合约被保存在高安全的智能卡设备中,智能卡设备具有高度抗干扰、防剖片、抗破解、防嗅探的能力。攻击者即使触及到硬件设备也无法读取、修改合约逻辑信息。
2)保护业务密钥信息。传统业务由于合约公开,如果使用签名验签等密码学技术,所有节点将暴露业务相关密钥,通过高安全的硬件模块,可方便的保护业务密钥信息。
3)安全的密钥操作方式。密钥的新增、更新、删除都必须经过区块链网络共识才可以操作,既保证在共识期间区块链网络无法获取密钥信息,又保证密钥操作是全网允许的(经过各节点共识、投票)。
4)高扩展性。本发明实施例与合约具体的实现语言无关,各种编程语言(java、go、c++等)生成的智能合约都可以在智能卡中运行,无需担心语言问题。
本发明实施例提供的系统是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。
图8是本发明一实施例提供的电子设备的实体结构示意图。如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法中的全部或部分步骤:客户端构造交易信息并发送至区块链网络,所述区块链网络对所述交易信息共识后,所述区块链网络的各个区块链节点分别将所述交易信息发送至对应的智能卡;所述智能卡判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行如下方法中的全部或部分步骤:客户端构造交易信息并发送至区块链网络,所述区块链网络对所述交易信息共识后,所述区块链网络的各个区块链节点分别将所述交易信息发送至对应的智能卡;所述智能卡判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种智能合约执行方法,其特征在于,包括:
客户端构造交易信息并发送至区块链网络,所述区块链网络对所述交易信息共识后,所述区块链网络的各个区块链节点分别将所述交易信息发送至对应的智能卡;
所述智能卡判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
2.根据权利要求1所述的智能合约执行方法,其特征在于,所述方法还包括:
若所述智能合约不存在,则所述智能卡反馈所述智能合约不存在的信息给对应的所述区块链节点。
3.根据权利要求1所述的智能合约执行方法,其特征在于,所述智能合约的运行环境包括虚拟机或简易操作系统。
4.根据权利要求1所述的智能合约执行方法,其特征在于,在所述客户端构造交易信息并发送至区块链网络之前,所述方法还包括:
所述客户端生成所述智能合约,并使用合约密钥对所述智能合约加密后生成密文合约;
所述客户端将所述密文合约发送至所述区块链网络;
所述区块链网络对所述密文合约进行共识后,各个所述区块链节点将所述密文合约发送至对应的所述智能卡;
所述智能卡利用预先保存的所述合约密钥对所述密文合约解密,还原所述智能合约并保存,并将解密完成消息反馈至对应的所述区块链节点。
5.根据权利要求1所述的智能合约执行方法,其特征在于,所述方法还包括:
所述客户端发送所述智能合约的预设操作指令至所述区块链网络;
所述区块链网络对所述预设操作指令进行共识后,所述区块链网络的各个区块链节点将所述预设操作指令分别发送至对应的所述智能卡;
所述智能卡根据所述预设操作指令对所述智能合约进行处理。
6.根据权利要求5所述的智能合约执行方法,其特征在于,所述预设操作指令包括升级智能合约、冻结智能合约、删除智能合约、新增智能合约业务密钥、更新智能合约业务密钥、删除智能合约业务密钥中的至少一种。
7.根据权利要求1至6任一所述的智能合约执行方法,其特征在于,所述区块链节点和所述智能卡的数据传输过程采用经过密钥协商后得到的密钥进行密文传输;所述方法还包括:
所述区块链节点发送节点名称、节点唯一序列号、节点公钥信息、节点私钥签名信息及节点证书信息给对应的所述智能卡,以供所述智能卡识别所述区块链节点的身份;
所述智能卡发送智能卡名称、智能卡唯一序列号、智能卡公钥信息、智能卡私钥签名信息及智能卡证书信息给对应的所述区块链节点,以供所述区块链节点识别所述智能卡的身份;
在所述智能卡识别所述区块链节点的身份以及所述区块链节点识别所述智能卡的身份均通过后,所述区块链节点和所述智能卡进行密钥协商,商定进行所述密文传输所使用的所述密钥。
8.一种智能合约执行系统,其特征在于,包括客户端、区块链网络和智能卡;所述智能卡和所述区块链网络中的区块链节点一一对应;其中:
所述客户端用于构造交易信息并发送至所述区块链网络;
所述区块链网络用于对所述交易信息共识后,并通过所述区块链网络的各个所述区块链节点分别将所述交易信息发送至对应的所述智能卡;
所述智能卡用于判断与所述交易信息对应的智能合约是否存在,若所述智能合约存在,则构建或激活所述智能合约的运行环境,在所述运行环境下执行所述智能合约,并生成状态结果集反馈至对应的所述区块链节点。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述客户端、所述区块链节点及所述智能卡所分别执行的方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述客户端、所述区块链节点及所述智能卡所分别执行的方法的步骤。
CN201911398878.4A 2019-12-30 2019-12-30 一种智能合约执行方法及系统 Active CN111222160B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911398878.4A CN111222160B (zh) 2019-12-30 2019-12-30 一种智能合约执行方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911398878.4A CN111222160B (zh) 2019-12-30 2019-12-30 一种智能合约执行方法及系统

Publications (2)

Publication Number Publication Date
CN111222160A true CN111222160A (zh) 2020-06-02
CN111222160B CN111222160B (zh) 2022-07-29

Family

ID=70830933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911398878.4A Active CN111222160B (zh) 2019-12-30 2019-12-30 一种智能合约执行方法及系统

Country Status (1)

Country Link
CN (1) CN111222160B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037055A (zh) * 2020-08-17 2020-12-04 成都质数斯达克科技有限公司 交易处理方法、装置、电子设备及可读存储介质
CN112037062A (zh) * 2020-08-31 2020-12-04 成都质数斯达克科技有限公司 交易共识方法、装置、电子设备及可读存储介质
CN113079025A (zh) * 2021-04-07 2021-07-06 上海万向区块链股份公司 兼容多种公开密钥算法签名的方法和系统
CN114666035A (zh) * 2022-05-13 2022-06-24 深圳市赢向量科技有限公司 一种基于保密通信的区块链智能合约执行方法及运行系统
CN114938301A (zh) * 2022-05-18 2022-08-23 国网数字科技控股有限公司 一种智能合约安全运行方法、装置及区块链系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080046984A1 (en) * 2006-08-17 2008-02-21 Iana Livia Bohmer Federated credentialing system and method
CN105976231A (zh) * 2016-06-24 2016-09-28 深圳前海微众银行股份有限公司 基于区块链智能合约的资产管理方法及节点
CN108053271A (zh) * 2018-01-23 2018-05-18 武汉星云智慧科技有限公司 一种应用于商圈的智能卡券推荐与分发的系统与方法
CN109408373A (zh) * 2018-09-26 2019-03-01 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端
CN109634932A (zh) * 2018-11-30 2019-04-16 北京瑞卓喜投科技发展有限公司 一种智能合约存储方法及存储系统
CN109727131A (zh) * 2018-12-28 2019-05-07 苏州鸿链信息科技有限公司 一种基于区块链合约层的链下执行交易方法及系统
CN110032884A (zh) * 2019-01-31 2019-07-19 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法及节点、存储介质
CN110222067A (zh) * 2019-05-31 2019-09-10 杭州时戳信息科技有限公司 区块链智能合约锚定可信任外部数据库的方法及系统
CN110520884A (zh) * 2018-12-13 2019-11-29 阿里巴巴集团控股有限公司 基于可信执行环境的链外智能合约服务

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080046984A1 (en) * 2006-08-17 2008-02-21 Iana Livia Bohmer Federated credentialing system and method
CN105976231A (zh) * 2016-06-24 2016-09-28 深圳前海微众银行股份有限公司 基于区块链智能合约的资产管理方法及节点
CN108053271A (zh) * 2018-01-23 2018-05-18 武汉星云智慧科技有限公司 一种应用于商圈的智能卡券推荐与分发的系统与方法
CN109408373A (zh) * 2018-09-26 2019-03-01 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端
CN109634932A (zh) * 2018-11-30 2019-04-16 北京瑞卓喜投科技发展有限公司 一种智能合约存储方法及存储系统
CN110520884A (zh) * 2018-12-13 2019-11-29 阿里巴巴集团控股有限公司 基于可信执行环境的链外智能合约服务
CN109727131A (zh) * 2018-12-28 2019-05-07 苏州鸿链信息科技有限公司 一种基于区块链合约层的链下执行交易方法及系统
CN110032884A (zh) * 2019-01-31 2019-07-19 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法及节点、存储介质
CN110222067A (zh) * 2019-05-31 2019-09-10 杭州时戳信息科技有限公司 区块链智能合约锚定可信任外部数据库的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NICOLA DRAGONI 等: "A Load Time Policy Checker for Open Multi-application Smart Cards", 《2011 IEEE INTERNATIONAL SYMPOSIUM ON POLICIES FOR DISTRIBUTED SYSTEMS AND NETWORKS》 *
王化群 等: "智能合约中的安全与隐私保护技术", 《南京邮电大学学报(自然科学版)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112037055A (zh) * 2020-08-17 2020-12-04 成都质数斯达克科技有限公司 交易处理方法、装置、电子设备及可读存储介质
CN112037055B (zh) * 2020-08-17 2023-05-05 成都质数斯达克科技有限公司 交易处理方法、装置、电子设备及可读存储介质
CN112037062A (zh) * 2020-08-31 2020-12-04 成都质数斯达克科技有限公司 交易共识方法、装置、电子设备及可读存储介质
CN112037062B (zh) * 2020-08-31 2023-08-25 成都质数斯达克科技有限公司 交易共识方法、装置、电子设备及可读存储介质
CN113079025A (zh) * 2021-04-07 2021-07-06 上海万向区块链股份公司 兼容多种公开密钥算法签名的方法和系统
CN114666035A (zh) * 2022-05-13 2022-06-24 深圳市赢向量科技有限公司 一种基于保密通信的区块链智能合约执行方法及运行系统
CN114938301A (zh) * 2022-05-18 2022-08-23 国网数字科技控股有限公司 一种智能合约安全运行方法、装置及区块链系统
CN114938301B (zh) * 2022-05-18 2023-01-24 国网数字科技控股有限公司 一种智能合约安全运行方法、装置及区块链系统

Also Published As

Publication number Publication date
CN111222160B (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN111222160B (zh) 一种智能合约执行方法及系统
CN111429254B (zh) 一种业务数据处理方法、设备以及可读存储介质
CN108989346B (zh) 基于账号隐匿的第三方有效身份托管敏捷认证访问方法
CN111492624B (zh) 用于控制和/或监控装置的方法和控制系统
CN111431707B (zh) 业务数据信息处理方法、装置、设备以及可读存储介质
US20090138699A1 (en) Software module management device and program
CN105518687A (zh) 安全数据存储装置
CN105099705B (zh) 一种基于usb协议的安全通信方法及其系统
KR20190008333A (ko) 복제 공격을 방지하기 위한 처리 방법, 및 서버 및 클라이언트
CN111585995B (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
CN112291201A (zh) 业务请求的传输方法及装置、电子设备
CN102404326A (zh) 一种验证报文安全性的方法、系统以及装置
CN112653556A (zh) 一种基于token的微服务安全认证方法、装置、存储介质
CN114338054B (zh) 区块链可信数据传输、验证和获取方法及装置
CN110290111B (zh) 操作权限管理方法、装置及区块链节点、存储介质
CN111953634B (zh) 终端设备的访问控制方法、装置、计算机设备和存储介质
CN111869165B (zh) 用于控制和/或监控装置的方法和控制系统
WO2021170049A1 (zh) 一种访问行为的记录方法、装置
CN106548097A (zh) 网络设备软件的运行方法及装置
US9177123B1 (en) Detecting illegitimate code generators
CN110851837B (zh) 一种基于可信计算的自助设备、其安全管理系统及方法
CN109302442B (zh) 一种数据存储证明方法及相关设备
CN116881936A (zh) 可信计算方法及相关设备
CN103559430A (zh) 基于安卓系统的应用账号管理方法和装置
US9633207B2 (en) Method for downloading at least one software component onto a computing device, and associated computer program product, computing device and computer system

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No. 501, 5 / F, block B, No. 28, Xinjiekou Wai Street, Xicheng District, Beijing 100088

Applicant after: Joint digital technology (Beijing) Co.,Ltd.

Address before: No. 501, 5 / F, block B, No. 28, Xinjiekou Wai Street, Xicheng District, Beijing 100088

Applicant before: Linkage advantage (Beijing) Digital Technology Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220118

Address after: 100082 7th floor, block a, Jingshi science and technology building, 12 Xueyuan South Road, Haidian District, Beijing

Applicant after: UNION MOBILE PAY Co.,Ltd.

Address before: No. 501, 5 / F, block B, No. 28, Xinjiekou Wai Street, Xicheng District, Beijing 100088

Applicant before: Joint digital technology (Beijing) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant