CN109213501B - 在区块链网络中安装智能合约的方法、装置及存储介质 - Google Patents
在区块链网络中安装智能合约的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109213501B CN109213501B CN201811128533.2A CN201811128533A CN109213501B CN 109213501 B CN109213501 B CN 109213501B CN 201811128533 A CN201811128533 A CN 201811128533A CN 109213501 B CN109213501 B CN 109213501B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- source code
- installation file
- encrypted
- executable installation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (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以及编译节点1403可以均在基于云的虚拟环境中。因此,图2所示的分立对象或模块仅是示意性的,本发明在此方面不做限制。
以上描述了整个完成的查询过程,以下将接上附图2来描述区块链节点在安装和控制智能合约时的具体步骤。
如图2所示,授权服务中心120可选地能够从智能合约的提供者110处接收(202)可安装的智能合约,接下来,该授权服务中心120可选地能够发布(204)智能合约的基本信息,用户130能够通过例如浏览这些基本信息或者通过其他渠道获取这些基本信息,然后决定给某个或者某些区块链节点安装一个智能合约,此时,用户130能够向授权服务中心120发送(306)安装请求,该安装请求中例如包含所述智能合约的安装目的地,例如其指定将某个智能合约安装在区块链节点1401上,授权服务中心120在接收到这样的安装请求之后,将会对智能合约的源代码进行加密处理,然后生成(208)生成加密的智能合约源代码;相应地,授权服务中心120也会生成与加密的智能合约源代码相关联的编译节点地址,其中,编译节点地址用于表明该加密的智能合约源代码应该由哪个区块链节点来进行解密和编译,授权服务中心120会将所述加密的智能合约源代码和编译节点地址提供(212)至所述安装目的地,例如区块链节点1401。通过依据本发明的实施例所提供的用于在区块链网络中提供智能合约的方法能够有效地保证区块链上的智能合约的源代码的传输安全,保证智能合约源代码不被未授权方获取,从而使得区块链上的智能合约的源代码的隐私性得到保护。
在此,加密的智能合约源代码和编译节点地址既可以在一个数据包中发送给安装目的地的区块链节点,安装的时候仅利用这个数据包即可。此时,该数据包不是整个都是加密的,该数据包有特定的格式,需不需要对其进行加密需要根据其中的内容来确定,例如其中的源代码部分一定是加密的,而其余部分可以是不加密的。例如编译节点信息。再比如该数据包还能够包含不加密的以下内容:智能合约唯一标识、该智能合约源代码的哈希值(HASH值)、该智能合约源代码的一个或多个签名、该智能合约的其他相关数据等,其中,该智能合约源代码的哈希值(HASH值)用于对于智能合约的源代码是否被修改过做校验,智能合约唯一标识用于表示该智能合约的名称或者编号等,而智能合约源代码的一个或多个签名用于表明该智能合约由哪些组织许可。
本领域的技术人员也应当理解,也可以将加密的智能合约源代码和编译节点信息独立开,即分别作为独立的数据包发送给安装目的地的区块链节点。
接下来,区块链节点(例如区块链节点1401)在接收到由诸如区块链即服务平台的授权服务中心120所提供的加密的智能合约源代码和编译节点信息之后,区块链节点1401会将加密的智能合约源代码发送(402)与编译节点地址相关联的编译节点,以便由编译节点来对加密的智能合约源代码进行解密和编译,从而生成(302)可执行安装文件。可选地,编译节点也能够查询区块链账本中是否已经有与该加密的智能合约源代码相对应的可执行安装文件,如果有将其查找到直接提供给相应的区块链节点也是可行的;与之相对应地,编译节点1403在获得了可执行安装文件,将会将该智能合约的可执行安装文件发送给(304)对应的区块链节点1401,在此,可选地,能够将相应的可执行安装文件例如通过链路级的安全套接层(Secure Sockets Layer:SSL)加密方式来提供(304)给区块链节点1401,接下来,区块链节点1401会接收所述智能合约的可执行安装文件,再接下来,区块链节点1401通过运行所述可执行安装文件来安装(404)所述智能合约。至此,由用户130所指定的智能合约在用户130所指定的区块链节点1401上得以安装,而且在智能合约源代码从授权服务中心120传输至区块链节点1401以及从区块链节点1401传输中编译节点1403的整个传输过程中始终处于加密的状态,由此防止其他模块来访问加密的以及解密后的智能合约源代码从而防止源代码泄密,进而使得区块链上的智能合约的源代码的隐私性得到保护。
以上从整个系统的角度阐述了依据本发明的一个实施例的整个智能合约的提供和安装过程。接下来,本申请将从具体最终安装特定的智能合约的区块链节点1401的角度来阐述依据本发明的一个实施例的用于在区块链网络中安装智能合约的方法300。
图3示出了根据本发明的实施例的用于在区块链网络中安装智能合约的方法300的示意流程图。从图3中可以看出,依据本发明的一个实施例的用于在区块链网络中提供智能合约的方法300至少包括以下四个步骤,首先,在方法步骤310中,在区块链节点处接收加密的智能合约源代码和编译节点地址,例如从区块链即服务平台接收加密的智能合约源代码和编译节点地址;接下来,在方法步骤320中将所述加密的智能合约源代码发送至与所述编译节点地址相关联的编译节点,由此并不在需要安装智能合约的第一区块链节点1401处对加密的智能合约源代码进行任何处理,而仅仅是将该加密的智能合约源代码发送给由编译节点地址所表征的编译节点,由编译节点对加密的智能合约源代码进行解密以及编译处理;然后,在方法步骤330中,从所述编译节点接收与所述加密的智能合约源代码相关联的智能合约的可执行安装文件;以及最后在方法步骤340中通过运行所述可执行安装文件来安装所述智能合约。依据本发明的方法能够确保加密的智能合约的源代码在区块链节点处的安全,此外,需要安装智能合约的第一区块链节点1401并不拥有该智能合约的源代码,从而不会给智能合约的源代码的泄露带来任何合适的环境,进而保证了对于智能合约源代码的保护。
在依据本发明的一个实施例中,所述编译节点地址是所述智能合约的发布者所拥有的区块链节点的地址。以这样的方式能够确保智能合约的发布者对于智能合约源代码的控制权限。
在依据本发明的一个实施例中,通过安全套接层信道接收所述可执行安装文件。由此能够通过安全套接层信道的物理属性来确保可执行安装文件的安全。
在依据本发明的一个实施例中,所述方法还能够包括以下步骤:即对所述加密的智能合约源代码做完整性校验;以及在所述完整性校验未通过的情况下,发送针对所述加密的智能合约源代码的源代码获取请求并且重新接收所述加密的智能合约源代码。由此能够在所接收到的加密的智能合约源代码不完整的情况下再次获取相应的智能合约源代码,提高安装智能合约的成功率。
在依据本发明的一个实施例中,所述完整性校验包括哈希值校验或GPG(GNUPrivacy Guard:GNU隐私卫士)签名校验。本领域的技术人员应当了解,其他可行的校验方法也包括在依据本发明的权利要求所要求的保护范围之内。
在依据本发明的一个实施例中,上述方法还包括:将以下各项中的至少一项发送至所述编译节点:智能合约唯一标识;所述智能合约源代码的哈希值;以及所述该智能合约源代码的一个或多个签名。
在依据本发明的一个实施例中,所述可执行安装文件中包括所述编译节点的签名,上述方法还包括:
在区块链节点处接收与所述编译节点地址相关联的证书;以及
根据所述证书和所述签名来验证所述可执行安装文件的可靠性。
图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 (15)
1.一种用于在区块链网络中安装智能合约的方法,所述方法包括:
在区块链节点处接收加密的智能合约源代码和编译节点地址;
将所述加密的智能合约源代码发送至与所述编译节点地址相关联的编译节点;
从所述编译节点接收与所述加密的智能合约源代码相关联的智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
2.根据权利要求1所述的方法,其中,所述编译节点地址是所述智能合约的发布者所拥有的区块链节点的地址。
3.根据权利要求1所述的方法,其中,通过安全套接层信道接收所述可执行安装文件。
4.根据权利要求1所述的方法,所述方法还包括:
对所述可执行安装文件做完整性校验;以及
在所述完整性校验未通过的情况下,发送针对所述可执行安装文件的获取请求并且重新接收所述可执行安装文件。
5.根据权利要求4所述的方法,其中,所述完整性校验包括哈希值校验或GPG签名校验。
6.根据权利要求1所述的方法,所述方法还包括:
将以下各项中的至少一项发送至所述编译节点:
智能合约唯一标识;
所述智能合约源代码的哈希值;以及
所述智能合约源代码的一个或多个签名。
7.根据权利要求1所述的方法,其中,所述可执行安装文件中包括所述编译节点的签名,所述方法还包括:
在区块链节点处接收与所述编译节点地址相关联的证书;以及
根据所述证书和所述签名来验证所述可执行安装文件的可靠性。
8.一种用于在区块链网络中安装智能合约的装置,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
在区块链节点处接收加密的智能合约源代码和编译节点地址;
将所述加密的智能合约源代码发送至与所述编译节点地址相关联的编译节点;
从所述编译节点接收与所述加密的智能合约源代码相关联的智能合约的可执行安装文件;以及
通过运行所述可执行安装文件来安装所述智能合约。
9.根据权利要求8所述的装置,其中,所述编译节点地址是所述智能合约的发布者所拥有的区块链节点的地址。
10.根据权利要求8所述的装置,其中,通过安全套接层信道接收所述可执行安装文件。
11.根据权利要求8所述的装置,其中,当所述指令执行时还使得所述处理器执行以下操作:
对所述可执行安装文件做完整性校验;以及
在所述完整性校验未通过的情况下,发送针对所述可执行安装文件的获取请求并且重新接收所述可执行安装文件。
12.根据权利要求11所述的装置,其中,所述完整性校验包括哈希值校验或GPG签名校验。
13.根据权利要求8所述的装置,其中,当所述指令执行时还使得所述处理器执行以下操作:
将以下各项中的至少一项发送至所述编译节点:
智能合约唯一标识;
所述智能合约源代码的哈希值;以及
所述智能合约源代码的一个或多个签名。
14.根据权利要求8所述的装置,其中,所述可执行安装文件中包括所述编译节点的签名,当所述指令执行时还使得所述处理器执行以下操作:
在区块链节点处接收与所述编译节点地址相关联的证书;以及
根据所述证书和所述签名来验证所述可执行安装文件的可靠性。
15.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1至7中任一项所述的用于在区块链网络中安装智能合约的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128533.2A CN109213501B (zh) | 2018-09-27 | 2018-09-27 | 在区块链网络中安装智能合约的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811128533.2A CN109213501B (zh) | 2018-09-27 | 2018-09-27 | 在区块链网络中安装智能合约的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213501A CN109213501A (zh) | 2019-01-15 |
CN109213501B true CN109213501B (zh) | 2021-07-30 |
Family
ID=64981865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811128533.2A Active CN109213501B (zh) | 2018-09-27 | 2018-09-27 | 在区块链网络中安装智能合约的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213501B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113157A (zh) * | 2019-05-05 | 2019-08-09 | 江苏全链通信息科技有限公司 | 基于区块链的合同处理方法、设备、网络及存储介质 |
SG11202003808PA (en) * | 2019-06-28 | 2020-05-28 | Advanced New Technologies Co Ltd | System and method for data processing |
CN113468862A (zh) * | 2021-07-08 | 2021-10-01 | 微易签(杭州)科技有限公司 | 区块链创建版式文件的方法、装置、电子设备及存储介质 |
CN113805889B (zh) * | 2021-08-27 | 2023-07-28 | 成都质数斯达克科技有限公司 | 一种智能合约调用执行方法、装置、设备及可读存储介质 |
CN117032727B (zh) * | 2023-10-10 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 基于区块链的文件编译方法、装置、设备、介质及产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559211A (zh) * | 2016-11-22 | 2017-04-05 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
CN107317730A (zh) * | 2017-08-21 | 2017-11-03 | 上海点融信息科技有限责任公司 | 用于监控区块链节点状态的方法、设备和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10607285B2 (en) * | 2016-02-22 | 2020-03-31 | Bank Of America Corporation | System for managing serializability of resource transfers in a process data network |
WO2018152519A1 (en) * | 2017-02-20 | 2018-08-23 | AlphaPoint | Performance of distributed system functions using a trusted execution environment |
-
2018
- 2018-09-27 CN CN201811128533.2A patent/CN109213501B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559211A (zh) * | 2016-11-22 | 2017-04-05 | 中国电子科技集团公司第三十研究所 | 一种区块链中隐私保护智能合约方法 |
CN107317730A (zh) * | 2017-08-21 | 2017-11-03 | 上海点融信息科技有限责任公司 | 用于监控区块链节点状态的方法、设备和系统 |
Non-Patent Citations (2)
Title |
---|
区块链的税收智能合约设计;陈宇翔等;《通信技术》;20180610(第06期);全文 * |
防范安全漏洞 促进实际应用;裴智勇;《网络传播》;20180815(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109213501A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213501B (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
CN109358859B (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
US10708051B2 (en) | Controlled access to data in a sandboxed environment | |
US11076295B2 (en) | Remote management method, and device | |
CN109102401B (zh) | 用于在区块链网络中运行智能合约的方法和装置 | |
CN106899571B (zh) | 信息交互方法及装置 | |
CN112039826B (zh) | 应用于小程序端的登录方法和装置,电子设备,可读介质 | |
CN110326266B (zh) | 一种数据处理的方法及装置 | |
CN111741028B (zh) | 业务处理方法、装置、设备及系统 | |
CN110611657A (zh) | 一种基于区块链的文件流处理的方法、装置及系统 | |
US20180285172A1 (en) | Data exchange between applications | |
US8848922B1 (en) | Distributed encryption key management | |
US11178122B2 (en) | Data encryption and decryption method and system | |
KR102013983B1 (ko) | 애플리케이션 무결성 인증 방법 및 인증 서버 | |
EP3264265A1 (en) | Application protection method, server and terminal | |
US20140059341A1 (en) | Creating and accessing encrypted web based content in hybrid applications | |
CN111274611A (zh) | 数据脱敏方法、装置及计算机可读存储介质 | |
EA035157B1 (ru) | Способ управления цифровыми правами на мультимедиа-содержимое, клиент управления цифровыми правами и серверная сторона управления цифровыми правами | |
CN116671062A (zh) | 硬件安全模块的远程管理 | |
CN113849847A (zh) | 用于对敏感数据进行加密和解密的方法、设备和介质 | |
CN111414640A (zh) | 秘钥访问控制方法和装置 | |
CN112528239B (zh) | 软件自动授权的方法和装置 | |
US9948632B2 (en) | Sharing data between sandboxed applications with certificates | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
CN108848094B (zh) | 数据安全验证方法、装置、系统、计算机设备及存储介质 |
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 |