CN109040133A - 在区块链网络中安装智能合约的方法、装置及存储介质 - Google Patents
在区块链网络中安装智能合约的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109040133A CN109040133A CN201811128489.5A CN201811128489A CN109040133A CN 109040133 A CN109040133 A CN 109040133A CN 201811128489 A CN201811128489 A CN 201811128489A CN 109040133 A CN109040133 A CN 109040133A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- source code
- key
- block chain
- decryption
- 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.)
- Pending
Links
Classifications
-
- 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
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
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)
- Storage Device Security (AREA)
Abstract
本发明的实施例提供了用于在区块链网络中安装智能合约的方法,包括:在区块链节点处接收加密的智能合约源代码和密钥获取信息;基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;接收所述密钥;通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中;通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件;以及通过运行所述可执行安装文件来安装所述智能合约。
Description
技术领域
本发明的实施例涉及区块链技术,更为具体地涉及一种的用于在区块链网络中安装智能合约的方法、用于执行上述方法的装置以及一种相应的计算机可读存储介质。
背景技术
区块链(Blockchain)作为近几年兴起的新兴技术,得到了广泛的讨论和研究。区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其能够表现为在区块链上准确运行的计算机程序。用户终端可通过使用智能合约进行交易、共享数据、建立信任、并由区块链技术的特性保障数据的存储、读取、执行整个过程透明可跟踪、不可篡改。
目前,在大多数情况下将智能合约的源代码直接传输给各个需要安装该智能合约的区块链节点,尚不存在一种对智能合约的提供者所提供的源代码进行保护的技术方案。
发明内容
针对现有技术中所存在的技术问题,本发明的实施例的第一方面提供了一种用于在区块链网络中安装智能合约的方法,所述方法包括:
在区块链节点处接收加密的智能合约源代码和密钥获取信息;
基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;
接收所述密钥;
通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;
将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中;
通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
此外,本发明的实施例的第二方面提供了一种用于在区块链网络中安装智能合约的装置,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
在区块链节点处接收加密的智能合约源代码和密钥获取信息;
基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;
接收所述密钥;
通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;
将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中;
通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
此外,本发明的实施例的第三方面还提供了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本发明的第一方面所述的用于在区块链网络中安装智能合约的方法。
通过依据本发明的实施例所提供的用于在区块链网络中安装智能合约的方法、用于在区块链网络中安装智能合约的装置以及相应的计算机可读存储介质将智能合约源代码仅仅存储在与所述解密编译模块相关联的内存中,从而使得该区块链节点的本地存储器中不保存有该智能合约源代码,进而不会由于其他区块链节点访问本区块链节点的本地存储器而获得智能合约源代码,由此能够有效地保证区块链上的智能合约的源代码的安全,保证源代码不被未授权方获取,从而使得区块链上的智能合约的源代码的隐私性得到保护。本发明的其他优势将在下文中进一步说明。
附图说明
结合附图并参考以下详细说明,本发明的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施例,在附图中:
图1示出了根据本发明的实施例的授权服务中心***100的架构图;;
图2示出了根据本发明的实施例的对智能合约进行操作的过程200的示意图;
图3示出了根据本发明的实施例的用于在区块链网络中安装智能合约的方法300的示意流程图;
图4示出了根据本发明的一个实施例的用于在区块链网络中安装智能合约的装置400的示意方框图;以及
图5示出了根据本发明的另一个实施例的用于在区块链网络中安装智能合约的装置500的示意方框图。
具体实施方式
以下参考附图详细描述本发明的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本发明的各种实施例的方法和***的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以使用专用硬件与计算机指令的组合来实现。
在详细介绍依据本发明的具体实施方式之前,首先对本发明中用到的一些术语进行说明。
在本发明中,术语“解密编译模块”是指在区块链节点中能够对所接收到的加密的智能合约源代码进行解密并且编译成可执行安装文件的模块,其既可以是硬件模块,也可以是软件模块。具体来看,其表现形式能够是一个容器,在其中能够运行相关代码;也可以是一个进程,用以实现上述功能;也可以是一个智能合约。
在本发明中,术语“智能合约的提供者”是具有许可他人使用智能合约的权利的人或单位,例如,其能够是智能合约的作者。
在本发明中,术语“智能合约的安装目的地”是指由针对智能合约的安装请求指定的、该智能合约将被安装至的区块链节点,例如,智能合约的目的地能够是由安装请求指定的区块链网络中的某个区块链节点的地址。
在本发明中,术语“授权服务中心”是指智能合约发行平台。例如,智能合约的提供者能够在授权服务中心中发布、许可使用智能合约,而用户能够在授权服务中心中浏览、查看、下载智能合约。
在本发明中,术语“密钥获取信息”是指能够通过其获取对智能合约的源代码进行加密的密钥的信息,其例如能够是密钥的存储地址信息、生成密钥的方法信息或者密码本中所对应的密钥的位置信息等。
在展开具体的解决方案之前,本发明的申请人首先介绍一下本发明所基于的应用场景及本发明所基于的技术问题。
在现有的区块链网络之中,如果一个区块链节点需要安装某个智能合约,那么将会例如从与之通信连接的授权服务中心直接获取该智能合约的源代码,然后进行编译和安装,在编译之前,区块链节点会至少将智能合约源代码暂时保存在本区块链节点的本地存储器之中,由此,其他区块链节点便能够通过访问本区块链节点的本地存储器来获得该智能合约源代码,这样使得智能合约的源代码有可能遭到泄露,即有可能被非授权方获取,也就是说,现有技术中并未针对智能合约源代码进行保护。
总体上,本发明的实施例提供了一种用于在区块链网络中安装智能合约的方法,在该方法中,首先将智能合约源代码并未以未处理的方式即未加密的方式进行传输,此外,不但以加密的方式来传输智能合约源代码,还将解密后的智能合约源代码不存储在区块链节点的本地存储器之中,取而代之地是将解密后的智能合约源代码存储在与解密编译模块相关联的内存中,从而使得该区块链节点的本地存储器中不保存有该智能合约源代码,进而不会由于其他区块链节点访问本区块链节点的本地存储器而获得智能合约源代码;再者,由于基于内存的保护隔离机制的存在,使得即便是拥有该区块链节点的用户也无法查看该智能合约源代码,从而保证了该智能合约源代码的安全。
此外,在本发明的实施例的方案中,通过授权服务中心(例如区块链即服务平台(Blockchain as a Service:BaaS))为区块链节点提供经加密的智能合约源代码,并在区块链节点上能够通过对于该加密的智能合约源代码的解析、编译等操作来安装该智能合约。
再者,在本发明的实施例的方案中,授权服务中心基于用户的安装请求,向区块链节点提供经加密保护的智能合约源代码以及与该经加密的智能合约源代码相关联的密钥获取信息。采用本发明的实施例的方案,能够对智能合约及其密钥获取信息进行唯一地标识,并通过对智能合约的源代码进行加密来保护智能合约源代码,因此能够控制区块链节点或者用户对智能合约源代码的访问,例如能够仅对授权的区块链节点或者用户开放源代码获取权限。在本发明的一些实施例中,还提出了基于云的区块链即服务平台来针对联盟链提供智能合约源代码的授权获取方案。因此,本发明的方案构建了区块链智能合约生态平台,大大保护了智能合约的提供者对于智能合约源代码的控制。
下面,结合附图来详细说明本发明的各个实施例。
现参见图1,其示出了根据本发明的实施例的授权服务中心***架构图。图1所示的授权服务中心***100用于为智能合约提供授权许可的服务。如图1所示,授权服务中心***100包括授权服务中心120。在一些实施例中,授权服务中心120可以实现为基于云的区块链即服务平台。授权服务中心***100还包括与授权服务中心120连接的多个区块链网络140、150、160。区块链网络140、150、160中的每一个都包括多个区块链节点。例如,区块链网络140包括区块链节点1401、1402、1403。区块链网络150包括区块链节点1501、1502、1503。区块链网络160包括区块链节点1601、1602、1603。
在云应用环境中,各区块链节点可以对应于虚拟机实例,在虚拟机实例中运行相应的节点应用程序。应当理解,虽然区块链网络140、150、160被示意为各自独立,但各区块链网络也可以包括共同的区块链节点。例如,某个区块链节点既可以属于区块链网络140又可以属于区块链网络150。在图1中,区块链网络数量和区块链节点的数量是示意性的,其可以是任意数量。
继续参见图1,智能合约的提供者110向授权服务中心120提供可安装的智能合约。智能合约的提供者110具有许可他人获取其智能合约源代码的权利。在一些实施例中,智能合约的提供者110是智能合约的作者。在一些实施例中,智能合约的提供者110可以从智能合约的作者获得许可他人获取其智能合约源代码的权利,从而智能合约的提供者110具有许可他人使用其智能合约源代码的权利。用户130通过授权服务中心120为特定的区块链节点安装某个智能合约。接着,授权服务中心120根据用户130的需求将加密的智能合约源代码和与之相关联的密钥获取信息提供至区块链节点用于安装该智能合约。
在一些实施例中,在***构架100中的通信以及智能合约的提供者110、用户130与授权服务中心120之间的通信可以基于任何有线和/或无线网络,包括但不限于因特网、广域网、城域网、局域网、虚拟专用网络(VPN)、无线网络等等。
在一些实施例中,用户130以及区块链网络140-160中的每个区块链节点1401-1403、1501-1503、1601-1603可以是电子设备,例如固定设备(例如服务器或台式计算机),或移动设备(例如智能手机、平板电脑、便携式计算机等)。
接着,参见图2,其示出了根据本发明的实施例的对智能合约源代码进行操作的过程200的示意图。在图2中示出了用户130、授权服务中心120和区块链节点1401。应当理解,仅为了促进描述而将每个对象或功能模块示出,其中某些对象或功能模块可以存在于同一个物理实体中,或者某些对象或功能模块可以存在于基于云的虚拟环境中。例如,授权服务中心120和区块链节点1401可以均在基于云的虚拟环境中。因此,图2所示的分立对象或模块仅是示意性的,本发明在此方面不做限制。
以上描述了整个完成的查询过程,以下将接上附图2来描述区块链节点在安装和控制智能合约时的具体步骤。
如图2所示,授权服务中心120可选地能够从智能合约的提供者110处接收(202)可安装的智能合约,接下来,该授权服务中心120可选地能够发布(204)智能合约的基本信息,用户130能够通过例如浏览这些基本信息或者通过其他渠道获取这些基本信息,然后决定给某个或者某些区块链节点安装一个智能合约,此时,用户130能够向授权服务中心120发送(306)安装请求,该安装请求中例如包含所述智能合约的安装目的地,例如其指定将某个智能合约安装在区块链节点1401上,授权服务中心120在接收到这样的安装请求之后,将会对智能合约的源代码进行加密处理,然后生成(208)生成加密的智能合约源代码;相应地,授权服务中心120也会生成(210)与加密的智能合约源代码相关联的密钥获取信息,其中,密钥获取信息用于获取密钥,密钥用于解密所述加密的智能合约源代码。在生成了这两部分数据之后,授权服务中心120会将所述加密的智能合约源代码和所述密钥获取信息提供至所述安装目的地,例如区块链节点1401。通过依据本发明的实施例所提供的用于在区块链网络中提供智能合约的方法能够有效地保证区块链上的智能合约的源代码的传输安全,保证源代码不被未授权方获取,从而使得区块链上的智能合约的源代码的隐私性得到保护。
在此,加密的智能合约源代码和密钥获取信息既可以在一个数据包中发送给安装目的地的区块链节点,安装的时候仅利用这个数据包即可。此时,该数据包不是整个都是加密的,该数据包有特定的格式,要不要加密要看其中的内容,例如其中的源代码部分一定是加密的,而其余部分可以是不加密的。例如密钥获取信息。再比如该数据包还能够包含不加密的以下内容:智能合约唯一标识、该智能合约源代码的哈希值(HASH值)、该智能合约源代码的一个或多个签名、该智能合约的其他相关数据等,其中,该智能合约源代码的哈希值(HASH值)用于对于智能合约的源代码是否被修改过做校验,智能合约唯一标识用于表示该智能合约的名称或者编号等,而智能合约源代码的一个或多个签名用于表明该智能合约由哪些组织许可。
本领域的技术人员也应当理解,也可以将加密的智能合约源代码和密钥获取信息独立开,即分别作为独立的数据包发送给安装目的地的区块链节点。
接下来,区块链节点(例如区块链节点1401)在接收到由诸如区块链即服务平台的授权服务中心120所提供的加密的智能合约源代码和密钥获取信息之后,区块链节点1401会将会向授权服务中心120发送(402)密钥获取请求,与之相对应地,授权服务中心120在接收到密钥获取请求之后,将会对区块链节点1401的签名进行身份验证(214),如果身份验证通过,则会将相应的密钥例如通过链路级的安全套接层(Secure Sockets Layer:SSL)加密方式来提供(216)给区块链节点1401,接下来,区块链节点1401会接收所述密钥并且通过使用所述密钥来解密(403)所述加密的智能合约源代码来获取所述智能合约源代码,再接下来,区块链节点1401通过将解密后的智能合约源代码存储在所述区块链节点的内存中与将对所述智能合约源代码进行解密和编译的解密编译模块相关联的内存中,并且对解密后的所述智能合约源代码进行编译来获得(404)所述智能合约的可执行安装文件;以及最后区块链节点1401通过运行所述可执行安装文件来安装(405)所述智能合约。至此,由用户130所指定的智能合约在用户130所指定的区块链节点1401上得以安装,而且在源代码的传输过程中始终处于加密的状态,解密后的智能合约源代码仅仅存储在所述区块链节点的内存中与将对所述智能合约源代码进行解密和编译的解密编译模块相关联的内存中,由此防止其他区块链节点以及本区块链节点的用户获得解密后的智能合约源代码从而防止源代码泄密,进而使得区块链上的智能合约的源代码的隐私性得到保护。
以上从整个***的角度阐述了依据本发明的一个实施例的整个智能合约的提供和安装过程。接下来,本申请将从具体最终安装特定的智能合约的区块链节点1401的角度来阐述依据本发明的一个实施例的用于在区块链网络中安装智能合约的方法300。
图3示出了根据本发明的实施例的用于在区块链网络中安装智能合约的方法300的示意流程图。从图3中可以看出,依据本发明的一个实施例的用于在区块链网络中提供智能合约的方法300至少包括以下七个步骤,首先,在方法步骤310中,在区块链节点处接收加密的智能合约源代码和密钥获取信息,例如从区块链即服务平台接收加密的智能合约源代码和密钥获取信息;在接收到加密的智能合约源代码和密钥获取信息之后,在方法步骤320中基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;然后,在方法步骤330中,接收所述密钥并且接下来,在方法步骤340中通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;再接下来,在方法步骤350中将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中,从而使得其他区块链节点不能访问该解密后的智能合约源代码。再接下来,在方法步骤360中通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件以及最后在方法步骤3700中通过运行所述可执行安装文件来安装所述智能合约。依据本发明的方法能够确保加密的以及解密后的智能合约的源代码在区块链节点处的安全,进而保证了对于智能合约源代码的保护。
在依据本发明的一个实施例中,所述解密编译模块以智能合约的形式实现。本领域的技术人员应当了解,其他形式只要能够实现依据本发明的构思均落入本发明的保护范围之内。
在依据本发明的一个实施例中,所述方法还能够包括以下步骤:即对所述加密的智能合约源代码做完整性校验;以及在所述完整性校验未通过的情况下,发送针对所述加密的智能合约源代码的源代码获取请求并且重新接收所述加密的智能合约源代码。由此能够在所接收到的加密的智能合约源代码不完整的情况下再次获取相应的智能合约源代码,提高安装智能合约的成功率。
在依据本发明的一个实施例中,所述完整性校验包括哈希值校验或GPG(GNUPrivacy Guard:GNU隐私卫士)签名校验。本领域的技术人员应当了解,其他可行的校验方法也包括在依据本发明的权利要求所要求的保护范围之内。
在依据本发明的一个实施例中,所述密钥获取信息是密钥的存储地址信息、生成密钥的方法信息或者密码本中所对应的密钥的位置信息。例如,秘钥获取信息包括秘钥所存储的地址信息(诸如授权服务中心120或者某个区块链即服务平台的地址);秘钥获取信息也可以是一种生成密钥的方法信息,例如哈希值函数等;此外,秘钥获取信息密码本中所对应的密钥的位置信息,例如密码本的第几行第几列等信息。
在依据本发明的一个实施例中,接收所述密钥进一步包括:通过安全套接层信道接收所述密钥。由此能够通过安全套接层信道的物理属性来确保秘钥的安全。
图4示出了依据本发明内容的一个实施例所提出的用于在区块链网络中运行智能合约的装置400。从图4中可以看出,该装置400包括处理器410和与处理器410耦接的存储器420。
存储器420存储有指令。指令在由处理器410执行时使得处理器410执行以下动作:
在区块链节点处接收加密的智能合约源代码和密钥获取信息;
基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;
接收所述密钥;
通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;
将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中;
通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
在依据本发明的一个实施例中,所述解密编译模块以智能合约的形式实现。
在依据本发明的一个实施例中,当所述指令执行时还使得所述处理器执行以下操作:
对所述加密的智能合约源代码做完整性校验;以及
在所述完整性校验未通过的情况下,发送针对所述加密的智能合约源代码的源代码获取请求并且重新接收所述加密的智能合约源代码。
在依据本发明的一个实施例中,所述完整性校验包括哈希值校验或GPG签名校验。
在依据本发明的一个实施例中,所述密钥获取信息是密钥的存储地址信息、生成密钥的方法信息或者密码本中所对应的密钥的位置信息。
在依据本发明的一个实施例中,接收所述密钥进一步包括:
通过安全套接层信道接收所述密钥。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明内容的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
图5示出了依据本发明内容的一个实施例所提出的用于在区块链网络中安装智能合约的装置500的示意性框图。应当理解,装置500可以被实现为实现图3中的用于在区块链网络中安装智能合约的方法300的功能。从图5中可以看出该装置500包括中央处理单元(CPU)501(例如处理器),其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储该装置500操作所需的各种程序和数据。CPU 501、ROM502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
装置500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许该装置500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各种方法,例如用于在区块链网络中安装智能合约的方法300可由处理单元501执行。例如,在一些实施例中,用于在区块链网络中安装智能合约的方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到装置500上。当计算机程序被加载到RAM 503并由处理器CPU 501执行时,可以执行上文描述的用于在区块链网络中安装智能合约的方法300中的一个或多个动作或步骤。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、***、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
虽然上面描述了本发明的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数据处理设备既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在20世纪90年代,一个技术改进能够很容易地对该改进属于硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是属于软件上的改进(例如对于方法流程的改进)。然而,随着技术的持续发展,如今的很多方法流程的改进几乎都能够通过将改进的方法流程编程到硬件电路中来实现,换句话说,通过对于硬件电路编程不同的程序从而得到相应的硬件电路结构,即实现了硬件电路结构的改变,故这样的方法流程的改进也可以被视为硬件电路结构的直接改进。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device:PLD)(例如现场可编程门阵列(Field Programmable Gate Array:FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片可编程逻辑器件上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compi1er)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language:HDL),而HDL也并非仅有—种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本发明内容的各个方面的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其他网络访问存储在云端上的用于执行本发明内容的一方面的计算机可读程序指令,从而实施依据本发明内容的各个方面所公开的技术方案。
以上所述仅为本发明内容的实施例可选实施例,并不用于限制本发明的实施例,对于本领域的技术人员来说,本发明的实施例可以有各种更改和变化。凡在本发明的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本发明的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本发明的实施例,但是应当理解,本发明的实施例并不限于所公开的具体实施例。本发明的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (13)
1.一种用于在区块链网络中安装智能合约的方法,所述方法包括:
在区块链节点处接收加密的智能合约源代码和密钥获取信息;
基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括所述区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;
接收所述密钥;
通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;
将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中;
通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
2.根据权利要求1所述的方法,其中,所述解密编译模块以智能合约的形式实现。
3.根据权利要求1所述的方法,所述方法还包括:
对所述加密的智能合约源代码做完整性校验;以及
在所述完整性校验未通过的情况下,发送针对所述加密的智能合约源代码的源代码获取请求并且重新接收所述加密的智能合约源代码。
4.根据权利要求3所述的方法,其中,所述完整性校验包括哈希值校验或GPG签名校验。
5.根据权利要求1所述的方法,其中,所述密钥获取信息是密钥的存储地址信息、生成密钥的方法信息或者密码本中所对应的密钥的位置信息。
6.根据权利要求1所述的方法,其中,接收所述密钥进一步包括:
通过安全套接层信道接收所述密钥。
7.一种用于在区块链网络中安装智能合约的装置,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
在区块链节点处接收加密的智能合约源代码和密钥获取信息;
基于所述密钥获取信息发送密钥获取请求,其中,所述密钥获取请求中包括区块链节点的签名,并且其中,所述密钥用于解密所述加密的智能合约源代码;
接收所述密钥;
通过运行解密编译模块使用所述密钥解密所述加密的智能合约源代码,以获取解密后的智能合约源代码;
将所述解密后的智能合约源代码存储在与所述解密编译模块相关联的内存中;
通过对所述解密后的智能合约源代码进行编译获得所述智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
8.根据权利要求7所述的装置,其中,所述解密编译模块以智能合约的形式实现。
9.根据权利要求7所述的装置,当所述指令执行时还使得所述处理器执行以下操作:
对所述加密的智能合约源代码做完整性校验;以及
在所述完整性校验未通过的情况下,发送针对所述加密的智能合约源代码的源代码获取请求并且重新接收所述加密的智能合约源代码。
10.根据权利要求9所述的装置,其中,所述完整性校验包括哈希值校验或GPG签名校验。
11.根据权利要求7所述的装置,其中,所述密钥获取信息是密钥的存储地址信息、生成密钥的方法信息或者密码本中所对应的密钥的位置信息。
12.根据权利要求8所述的装置,其中,接收所述密钥进一步包括:
通过安全套接层信道接收所述密钥。
13.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1至6中任一项所述的用于在区块链网络中安装智能合约的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128489.5A CN109040133A (zh) | 2018-09-27 | 2018-09-27 | 在区块链网络中安装智能合约的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128489.5A CN109040133A (zh) | 2018-09-27 | 2018-09-27 | 在区块链网络中安装智能合约的方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109040133A true CN109040133A (zh) | 2018-12-18 |
Family
ID=64618307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811128489.5A Pending CN109040133A (zh) | 2018-09-27 | 2018-09-27 | 在区块链网络中安装智能合约的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109040133A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615378A (zh) * | 2019-01-24 | 2019-04-12 | 上海点融信息科技有限责任公司 | 基于区块链的安全多方计算方法、装置及可读存储介质 |
CN110020855A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点、存储介质 |
CN110190968A (zh) * | 2019-06-03 | 2019-08-30 | 魏靖 | 区块链大数据安全处理***及方法 |
CN111178887A (zh) * | 2019-12-27 | 2020-05-19 | 远光软件股份有限公司 | 一种基于区块链的分布式光伏发售电***及方法 |
CN111538521A (zh) * | 2020-04-24 | 2020-08-14 | 中国工商银行股份有限公司 | 智能合约部署、交易方法及装置 |
WO2020172880A1 (zh) * | 2019-02-28 | 2020-09-03 | 云图有限公司 | 一种区块链合约的数据处理方法及服务器 |
WO2020233637A1 (zh) * | 2019-05-20 | 2020-11-26 | 创新先进技术有限公司 | 结合代码标注与用户类型的收据存储方法和节点 |
CN112567414A (zh) * | 2019-04-04 | 2021-03-26 | 华为技术有限公司 | 运行智能合约的方法和装置 |
CN112883436A (zh) * | 2021-02-08 | 2021-06-01 | 北京微芯区块链与边缘计算研究院 | 智能合约专用芯片装置及执行方法、区块链节点装置 |
CN112907243A (zh) * | 2021-02-09 | 2021-06-04 | 工银科技有限公司 | 区块链交易审计方法及装置 |
WO2021114796A1 (zh) * | 2019-12-11 | 2021-06-17 | 支付宝(杭州)信息技术有限公司 | 用于更新多层块链式结构中的信任点的方法及装置 |
CN113360937A (zh) * | 2021-08-10 | 2021-09-07 | 北京中超伟业信息安全技术股份有限公司 | 一种基于智能合约的云平台密钥分发方法及*** |
CN113472512A (zh) * | 2021-06-10 | 2021-10-01 | 东软集团股份有限公司 | 智能合约执行方法、装置、存储介质及电子设备 |
EP4121849A4 (en) * | 2020-03-20 | 2024-04-03 | Mastercard International Incorporated | PROCEDURE AND SYSTEM FOR VERIFYING SMART CONTRACTS |
US12028440B2 (en) | 2023-01-10 | 2024-07-02 | Mastercard International Incorporated | Method and system for auditing smart contracts |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090058184A (ko) * | 2007-12-04 | 2009-06-09 | 주식회사 텔레칩스 | 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법 |
US20100146293A1 (en) * | 2008-12-09 | 2010-06-10 | Haixia Shi | Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content |
CN104318135A (zh) * | 2014-10-27 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于可信执行环境的Java代码安全动态载入方法 |
CN105122255A (zh) * | 2012-12-17 | 2015-12-02 | 微软技术许可有限责任公司 | 权限受管的代码 |
CN107038352A (zh) * | 2016-02-03 | 2017-08-11 | 上海思立微电子科技有限公司 | 内网安全访问方法、装置及终端 |
CN107273759A (zh) * | 2017-05-08 | 2017-10-20 | 上海点融信息科技有限责任公司 | 用于保护区块链数据的方法、设备以及计算机可读存储介质 |
CN107342858A (zh) * | 2017-07-05 | 2017-11-10 | 武汉凤链科技有限公司 | 一种基于可信环境的智能合约保护方法和*** |
CN107943469A (zh) * | 2017-11-17 | 2018-04-20 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
CN108235772A (zh) * | 2017-12-29 | 2018-06-29 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的数据处理方法、装置、存储介质及电子设备 |
US20180198630A1 (en) * | 2015-11-26 | 2018-07-12 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
CN108399319A (zh) * | 2017-09-30 | 2018-08-14 | 平安科技(深圳)有限公司 | 源代码保护方法、应用服务器及计算机可读存储介质 |
-
2018
- 2018-09-27 CN CN201811128489.5A patent/CN109040133A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090058184A (ko) * | 2007-12-04 | 2009-06-09 | 주식회사 텔레칩스 | 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법 |
US20100146293A1 (en) * | 2008-12-09 | 2010-06-10 | Haixia Shi | Apparatus, system, method, and computer program product for executing a program utilizing a processor to generate keys for decrypting content |
CN105122255A (zh) * | 2012-12-17 | 2015-12-02 | 微软技术许可有限责任公司 | 权限受管的代码 |
CN104318135A (zh) * | 2014-10-27 | 2015-01-28 | 中国科学院信息工程研究所 | 一种基于可信执行环境的Java代码安全动态载入方法 |
US20180198630A1 (en) * | 2015-11-26 | 2018-07-12 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
CN107038352A (zh) * | 2016-02-03 | 2017-08-11 | 上海思立微电子科技有限公司 | 内网安全访问方法、装置及终端 |
CN107273759A (zh) * | 2017-05-08 | 2017-10-20 | 上海点融信息科技有限责任公司 | 用于保护区块链数据的方法、设备以及计算机可读存储介质 |
CN107342858A (zh) * | 2017-07-05 | 2017-11-10 | 武汉凤链科技有限公司 | 一种基于可信环境的智能合约保护方法和*** |
CN108399319A (zh) * | 2017-09-30 | 2018-08-14 | 平安科技(深圳)有限公司 | 源代码保护方法、应用服务器及计算机可读存储介质 |
CN107943469A (zh) * | 2017-11-17 | 2018-04-20 | 深圳圣马歌科技有限公司 | 一种智能合约的发布方法及装置 |
CN108235772A (zh) * | 2017-12-29 | 2018-06-29 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的数据处理方法、装置、存储介质及电子设备 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615378A (zh) * | 2019-01-24 | 2019-04-12 | 上海点融信息科技有限责任公司 | 基于区块链的安全多方计算方法、装置及可读存储介质 |
CN110020855B (zh) * | 2019-01-31 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点、存储介质 |
CN110020855A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点、存储介质 |
WO2020172880A1 (zh) * | 2019-02-28 | 2020-09-03 | 云图有限公司 | 一种区块链合约的数据处理方法及服务器 |
CN112567414A (zh) * | 2019-04-04 | 2021-03-26 | 华为技术有限公司 | 运行智能合约的方法和装置 |
WO2020233637A1 (zh) * | 2019-05-20 | 2020-11-26 | 创新先进技术有限公司 | 结合代码标注与用户类型的收据存储方法和节点 |
CN110190968A (zh) * | 2019-06-03 | 2019-08-30 | 魏靖 | 区块链大数据安全处理***及方法 |
WO2021114796A1 (zh) * | 2019-12-11 | 2021-06-17 | 支付宝(杭州)信息技术有限公司 | 用于更新多层块链式结构中的信任点的方法及装置 |
CN111178887A (zh) * | 2019-12-27 | 2020-05-19 | 远光软件股份有限公司 | 一种基于区块链的分布式光伏发售电***及方法 |
EP4121849A4 (en) * | 2020-03-20 | 2024-04-03 | Mastercard International Incorporated | PROCEDURE AND SYSTEM FOR VERIFYING SMART CONTRACTS |
CN111538521A (zh) * | 2020-04-24 | 2020-08-14 | 中国工商银行股份有限公司 | 智能合约部署、交易方法及装置 |
CN111538521B (zh) * | 2020-04-24 | 2024-02-09 | 中国工商银行股份有限公司 | 智能合约部署、交易方法及装置 |
CN112883436A (zh) * | 2021-02-08 | 2021-06-01 | 北京微芯区块链与边缘计算研究院 | 智能合约专用芯片装置及执行方法、区块链节点装置 |
CN112907243A (zh) * | 2021-02-09 | 2021-06-04 | 工银科技有限公司 | 区块链交易审计方法及装置 |
CN113472512A (zh) * | 2021-06-10 | 2021-10-01 | 东软集团股份有限公司 | 智能合约执行方法、装置、存储介质及电子设备 |
CN113360937A (zh) * | 2021-08-10 | 2021-09-07 | 北京中超伟业信息安全技术股份有限公司 | 一种基于智能合约的云平台密钥分发方法及*** |
CN113360937B (zh) * | 2021-08-10 | 2021-11-05 | 北京中超伟业信息安全技术股份有限公司 | 一种基于智能合约的云平台密钥分发方法及*** |
US12028440B2 (en) | 2023-01-10 | 2024-07-02 | Mastercard International Incorporated | Method and system for auditing smart contracts |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040133A (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
CN109255210A (zh) | 在区块链网络中提供智能合约的方法、装置及存储介质 | |
US10917394B2 (en) | Data operations using a proxy encryption key | |
CN109213501A (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
US10389727B2 (en) | Multi-level security enforcement utilizing data typing | |
KR101641809B1 (ko) | 일회용 비밀번호를 이용한 분산된 오프-라인 로그온을 위한 방법 및 시스템 | |
CN110088742A (zh) | 使用加密配置数据的逻辑储存库服务 | |
US8572372B2 (en) | Method for selectively enabling access to file systems of mobile terminals | |
CN109358859A (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
CN109741063A (zh) | 基于区块链的数字签名方法和装置 | |
CN107851167A (zh) | 在计算环境中保护计算数据的技术 | |
CN105745660B (zh) | 用于在客户机设备上支持多个数字权利管理协议的技术 | |
CN109074466A (zh) | 用于服务器的平台证明和注册 | |
CN109067528A (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN111885196B (zh) | 用于访问物联网云平台的设备数据的方法、装置及*** | |
KR20140090571A (ko) | 프라이버시를 고려하는 데이터 프로세싱을 위한 방법 및 디바이스 | |
CN107404472A (zh) | 用户发起的加密密钥的迁移 | |
KR101745843B1 (ko) | 개인 데이터를 보호하기 위한 방법 및 디바이스 | |
Cilardo et al. | Secure distribution infrastructure for hardware digital contents | |
CN109076054A (zh) | 用于管理单点登录应用程序的加密密钥的***和方法 | |
CN104281272A (zh) | 密码输入处理方法及装置 | |
CN109146482A (zh) | 基于区块链的用户权益提供方法和装置 | |
CN107920060A (zh) | 基于账号的数据访问方法和装置 | |
US20130124864A1 (en) | Method for importing rights object and rights issuer | |
KR20190112959A (ko) | 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181218 |
|
WD01 | Invention patent application deemed withdrawn after publication |