CN109710384B - 一种安全的Java智能合约解释执行引擎及方法 - Google Patents
一种安全的Java智能合约解释执行引擎及方法 Download PDFInfo
- Publication number
- CN109710384B CN109710384B CN201811636117.3A CN201811636117A CN109710384B CN 109710384 B CN109710384 B CN 109710384B CN 201811636117 A CN201811636117 A CN 201811636117A CN 109710384 B CN109710384 B CN 109710384B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- java
- code
- execution
- contract
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种安全的Java智能合约解释执行引擎及执行方法,通过在区块链平台中嵌入Java虚拟机,并通过JNI技术实现区块链状态操作,该引擎能够允许用户使用Java语言进行智能合约的开发,并能够实现区块链高级操作扩展。通过内嵌虚拟机的方式大大提高了智能合约的执行效率,实现了区块链节点和执行引擎的高效调用。执行方法包括如下步骤:(1)节点接收用户合约部署和调用请求,节点API模块对请求合法性和签名进行检查,然后将请求载荷通过JNI技术将Java字节码交由Java虚拟机进行解释执行。(2)解释执行结束之前,将智能合约对区块链世界状态的操作集合提交并应用。本发明重新实现了Java虚拟机,解决了原有JCEE引擎远程调用导致的性能和安全问题。
Description
技术领域
本发明涉及去中心化的区块链智能合约执行引擎的设计领域,尤其涉及一种安全的Java智能合约解释执行引擎及方法。
背景技术
区块链技术,是一种新型的分布式去中心化协议,能够确定地有序地存储一系列交易数据,存储的数据不可伪造和篡改,区块链上的交易数据依靠分布式共识协议实现数据的一致性,所有的网络节点共同维护一个公共状态,该公共状态所有节点可见,通过块链式存储保证保持数据的连贯和不可篡改性。
智能合约作为区块链技术的扩展,通过在节点上部署智能合约执行引擎,为区块链提供了能够按照一定的逻辑执行代码并对公共状态进行操作的能力,该操作不可逆,且所有的参与节点行为一致。
发明内容
针对现有Java智能合约引擎的不足,本发明提出了一种安全的Java智能合约解释执行引擎(Hyper smart-contract VM,以下简称HVM)及执行方法,该执行引擎允许用户使用Java语言编写智能合约并实现字节码和虚拟机层面的沙箱安全。
具体的技术方案如下:一种安全的Java智能合约解释执行引擎,包括如下模块:
(1)定制的Java虚拟机模块,其特征是:仅支持解释执行,不会对代码进行动态优化;精简了包括文件、网络、硬件信息访问、随机数值、日期时间这些会导致执行结果差异的功能;实现了严格一致的数学与大整数库;实现了平台无关的基本类型类;
(2)API模块,负责接收外部用户发起的部署调用请求;
(3)安全检查模块,负责对用户合约字节码进行预检查,对用户代码中危险操作进行防御性检查;
(4)状态存储模块,为Java虚拟机提供JNI接口,允许Java虚拟机能够操作区块链状态,以实现智能资产的操作。
一种安全的Java智能合约解释执行引擎的执行方法,具体包括如下步骤:
步骤一:用户按照既定规则使用Java语言编写智能合约,并通过标准的Java语言编译器,将原始码编译成对应的字节码;在编译过程当中,Java智能合约需要同对应的预载环境Java代码一同编译;编译完成之后,将编译完成的class文件通过标准Jar压缩协议打包成Jar文件,在jar文件的Manifest文件中需要置入对应的MainClass配置项,以指定智能合约的入口主类;用户通过SDK将打包好的智能合约发送至区块链平台进行部署;
步骤二:区块链平台接收到智能合约部署交易之后,对智能合约部署交易的格式进行验证,然后对交易签名进行验证,验证通过之后,对部署交易的载荷进行安全检查,部署阶段的载荷即打包完成的智能合约字节码,平台需要对智能合约的字节码进行敏感操作检查,防止智能合约对宿主环境进行危险操作造成安全隐患;检查通过之后,将对智能合约进行解包,执行引擎中的Java虚拟机根据Manifest中MainClass配置对代码进行预解释执行,来验证合约代码的合法性;预执行通过之后,区块链平台将生成一个全局唯一的标识,作为该合约在网络中的对应表示,然后将标识与代码映射存储到区块链网络状态当中;
步骤三:合约部署完成之后,用户可以根据业务需要,对特定合约方法发起调用,发起调用时,需要提供合约标识、被调方法签名和参数列表;当区块链平台接收到标识、方法签名和方法参数之后,执行引擎将从区块链网络状态存储中将对应的合约代码进行检索,检索完成之后,将智能合约字节码、被调函数签名和被调函数参数列表作为执行引擎的输入,执行引擎通过Java虚拟机进行解释执行;解释执行期间,Java虚拟机将会收集智能合约中对将对区块链网络状态进行修改操作集合,最后在执行阶段末尾,将所有修改操作集合提交应用,完成区块链网络状态的修改;
步骤四:状态修改完成之后,将合约逻辑中需要返回的返回值进行序列化之后,返回给调用客户端SDK,客户端SDK依照协议进行反序列化,将返回值封装为客户端本地类型数据进行返回。
进一步地,所述的步骤一中,预载环境Java代码指的是,为了完成用户编写的代码能够符合智能合约引擎解释执行规范,以及能够对一些内置变量进行预先设置,所需要遵循的接口和继承规范,因此预载Java代码需要同用户合约一同进行编译。
进一步地,所述的步骤二中,对部署交易的载荷进行的安全检查指的是,由于区块链网络是分布式系统,需要对Java语言的能力进行限制,需要禁止用户对文件、网络、硬件信息访问、随机数值、日期时间敏感资源的访问,也需要防止用户使用Java反射技术对执行环境进行的攻击。因此通过对载荷中的智能合约字节码进行检查是必要的,通过对标准Class文件的格式进行解析,分析代码中的上下文信息,确定是否有加载敏感操作类,来防御相关敏感操作。
进一步地,所述的步骤二中,对智能合约代码进行解析执行是指按照Java虚拟机规范对符合标准的Class文件进行解释执行,对Class文件中所定义的字节码进行解析之后,按照确定的顺序对指令进行执行,为了能够保证执行过程的可确定性,Java虚拟机不能够对代码进行动态优化,仅仅能够按照既定方式解释执行。
进一步地,所述的步骤三中,被调函数签名以及参数列表提供的形式,应当以客户端与服务端协定的序列化方式进行传输,函数签名用于检索合约代码中的具体智能合约代码,参数列表不受类型限制,可以是任意合法的Java对象。
进一步地,所述的步骤四中,返回给客户端SDK的返回值,应当按照预先定义的序列化协议进行传输,对于SDK本地代码而言,应当能够将返回值进行反序列化之后,作为本地类型进行使用。
本发明的有益效果如下:
本发明设实现了一种安全的Java智能合约解释执行引擎,允许用户用Java语言编写智能合约,相对于原有的JCEE实现,HVM在字节码安全检查方面,需要检查的内容更少,通过安全的Java虚拟机并不实现文件,网络,硬件访问等敏感操作,实现了完全的沙箱安全,提高了安全性,同时,避免了远程调用,通过本地函数调用,共享内存,大大提升了效率,节约了资源。
附图说明
图1是本发明的方法中模块数据流转图;
图2是本发明的方法中Java智能合约引擎架构图;
图3是本发明的方法的用户请求调用流程图;
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1和2所示,一种安全的Java智能合约解释执行引擎,包括如下模块:
(1)定制的Java虚拟机模块,其特征是:仅支持解释执行,不会对代码进行动态优化;精简了包括文件、网络、硬件信息访问、随机数值、日期时间这些会可能导致执行结果差异的功能;实现了严格一致的数学与大整数库;实现了平台无关的基本类型类;
(2)API模块,负责接收外部用户发起的部署调用请求;
(3)安全检查模块,负责对用户合约字节码进行预检查,对用户代码中危险操作进行防御性检查;
(4)状态存储模块,为Java虚拟机提供JNI接口,允许Java虚拟机能够操作区块链状态,以实现智能资产的操作。
如图3所示,一种安全的Java智能合约解释执行引擎的执行方法,具体包括如下步骤:
步骤一:用户按照既定规则使用Java语言编写智能合约,并通过标准的Java语言编译器,将原始码编译成对应的字节码;在编译过程当中,Java智能合约需要同对应的预载环境Java代码一同编译;编译完成之后,将编译完成的class文件通过标准Jar压缩协议打包成Jar文件,在jar文件的Manifest文件中需要置入对应的MainClass配置项,以指定智能合约的入口主类;用户通过SDK将打包好的智能合约发送至区块链平台进行部署;
步骤二:区块链平台接收到智能合约部署交易之后,对智能合约部署交易的格式进行验证,然后对交易签名进行验证,验证通过之后,对部署交易的载荷进行安全检查,部署阶段的载荷即打包完成的智能合约字节码,平台需要对智能合约的字节码进行敏感操作检查,防止智能合约对宿主环境进行危险操作造成安全隐患;检查通过之后,将对智能合约进行解包,执行引擎中的Java虚拟机根据Manifest中MainClass配置对代码进行预解释执行,来验证合约代码的合法性;预执行通过之后,区块链平台将生成一个全局唯一的标识,作为该合约在网络中的对应表示,然后将标识与代码映射存储到区块链网络状态当中;
步骤三:合约部署完成之后,用户可以根据业务需要,对特定合约方法发起调用,发起调用时,需要提供合约标识、被调方法签名和参数列表;当区块链平台接收到标识、方法签名和方法参数之后,执行引擎将从区块链网络状态存储中将对应的合约代码进行检索,检索完成之后,将智能合约字节码、被调函数签名和被调函数参数列表作为执行引擎的输入,执行引擎通过Java虚拟机进行解释执行;解释执行期间,Java虚拟机将会收集智能合约中对将对区块链网络状态进行修改操作集合,最后在执行阶段末尾,将所有修改操作集合提交应用,完成区块链网络状态的修改;
步骤四:状态修改完成之后,将合约逻辑中需要返回的返回值进行序列化之后,返回给调用客户端SDK,客户端SDK依照协议进行反序列化,将返回值封装为客户端本地类型数据进行返回。
进一步地,所述的步骤一中,预载环境Java代码指的是,为了完成用户编写的代码能够符合智能合约引擎解释执行规范,以及能够对一些内置变量进行预先设置,所需要遵循的接口和继承规范,因此预载Java代码需要同用户合约一同进行编译。
进一步地,所述的步骤二中,对部署交易的载荷进行的安全检查指的是,由于区块链网络是分布式系统,需要对Java语言的能力进行限制,需要禁止用户对文件、网络、硬件信息访问、随机数值、日期时间资源的访问,也需要防止用户使用Java反射内省对执行环境进行的攻击。因此通过对载荷中的智能合约字节码进行检查是必要的,通过对标准Class文件的格式进行解析,分析代码中的上下文信息,确定是否有加载敏感操作类,来防御相关敏感操作。
进一步地,所述的步骤二中,对智能合约代码进行解析执行是指按照Java虚拟机规范对符合标准的Class文件进行解释执行,对Class文件中所定义的字节码进行解析之后,按照确定的顺序对指令进行执行,为了能够保证执行过程的可确定性,Java虚拟机不能够对代码进行动态优化,仅仅能够按照既定方式解释执行。
进一步地,所述的步骤三中,被调函数签名以及参数列表提供的形式,应当以客户端与服务端协定的序列化方式进行传输,函数签名用于检索合约代码中的具体智能合约代码,参数列表不受类型限制,可以是任意合法的Java对象。
进一步地,所述的步骤四中,返回给客户端SDK的返回值,应当按照预先定义的序列化协议进行传输,对于SDK本地代码而言,应当能够将返回值进行反序列化之后,作为本地类型进行使用。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (6)
1.一种安全的Java智能合约解释执行引擎的执行方法,所述安全的Java智能合约解释执行引擎包括如下模块:
(1)定制的Java虚拟机模块,其特征是:仅支持解释执行,不会对代码进行动态优化;精简了包括文件、网络、硬件信息访问、随机数值、日期时间这些会导致执行结果差异的功能;实现了严格一致的数学与大整数库;实现了平台无关的基本类型类;
(2)API模块,负责接收外部用户发起的部署调用请求;
(3)安全检查模块,负责对用户合约字节码进行预检查,对用户代码中危险操作进行防御性检查;
(4)状态存储模块,为Java虚拟机提供JNI接口,允许Java虚拟机能够操作区块链状态,以实现智能资产的操作;
其特征在于,具体包括如下步骤:
步骤一:用户按照既定规则使用Java语言编写智能合约,并通过标准的Java语言编译器,将原始码编译成对应的字节码;在编译过程当中,Java智能合约需要同对应的预载环境Java代码一同编译;编译完成之后,将编译完成的class文件通过标准Jar压缩协议打包成Jar文件,在jar文件的Manifest文件中需要置入对应的MainClass配置项,以指定智能合约的入口主类;用户通过SDK将打包好的智能合约发送至区块链平台进行部署;
步骤二:区块链平台接收到智能合约部署交易之后,对智能合约部署交易的格式进行验证,然后对交易签名进行验证,验证通过之后,对部署交易的载荷进行安全检查,部署阶段的载荷即打包完成的智能合约字节码,平台需要对智能合约的字节码进行敏感操作检查,防止智能合约对宿主环境进行危险操作造成安全隐患;检查通过之后,将对智能合约进行解包,执行引擎中的Java虚拟机根据Manifest中MainClass配置对代码进行预解释执行,来验证合约代码的合法性;预执行通过之后,区块链平台将生成一个全局唯一的标识,作为该合约在网络中的对应表示,然后将标识与代码映射存储到区块链网络状态当中;
步骤三:合约部署完成之后,用户根据业务需要,对特定合约方法发起调用,发起调用时,需要提供合约标识、被调方法签名和参数列表;当区块链平台接收到标识、方法签名和方法参数之后,执行引擎将从区块链网络状态存储中将对应的合约代码进行检索,检索完成之后,将智能合约字节码、被调函数签名和被调函数参数列表作为执行引擎的输入,执行引擎通过Java虚拟机进行解释执行;解释执行期间,Java虚拟机将会收集智能合约中对将对区块链网络状态进行修改操作集合,最后在执行阶段末尾,将所有修改操作集合提交应用,完成区块链网络状态的修改;
步骤四:状态修改完成之后,将合约逻辑中需要返回的返回值进行序列化之后,返回给调用客户端SDK,客户端SDK依照协议进行反序列化,将返回值封装为客户端本地类型数据进行返回。
2.根据权利要求1所述的一种安全的Java智能合约解释执行引擎的执行方法,其特征在于,所述的步骤一中,预载环境Java代码指的是,为了完成用户编写的代码能够符合智能合约引擎解释执行规范,以及能够对一些内置变量进行预先设置,所需要遵循的接口和继承规范,因此预载Java代码需要同用户合约一同进行编译。
3.根据权利要求1所述的一种安全的Java智能合约解释执行引擎的执行方法,其特征在于,所述的步骤二中,对部署交易的载荷进行的安全检查指的是,由于区块链网络是分布式系统,需要对Java语言的能力进行限制,需要禁止用户对文件、网络、硬件信息访问、随机数值、日期时间敏感资源的访问,也需要防止用户使用Java反射技术对执行环境进行的攻击;因此通过对载荷中的智能合约字节码进行检查是必要的,通过对标准Class文件的格式进行解析,分析代码中的上下文信息,确定是否有加载敏感操作类,来防御相关敏感操作。
4.根据权利要求1所述的一种安全的Java智能合约解释执行引擎的执行方法,其特征在于,所述的步骤二中,对智能合约代码进行解析执行是指按照Java虚拟机规范对符合标准的Class文件进行解释执行,对Class文件中所定义的字节码进行解析之后,按照确定的顺序对指令进行执行,为了能够保证执行过程的可确定性,Java虚拟机不能够对代码进行动态优化,仅仅能够按照既定方式解释执行。
5.根据权利要求1所述的一种安全的Java智能合约解释执行引擎的执行方法,其特征在于,所述的步骤三中,被调函数签名以及参数列表提供的形式,应当以客户端与服务端协定的序列化方式进行传输,函数签名用于检索合约代码中的具体智能合约代码,参数列表不受类型限制,可以是任意合法的Java对象。
6.根据权利要求1所述的一种安全的Java智能合约解释执行引擎的执行方法,其特征在于,所述的步骤四中,返回给客户端SDK的返回值,应当按照预先定义的序列化协议进行传输,对于SDK本地代码而言,应当能够将返回值进行反序列化之后,作为本地类型进行使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636117.3A CN109710384B (zh) | 2018-12-29 | 2018-12-29 | 一种安全的Java智能合约解释执行引擎及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636117.3A CN109710384B (zh) | 2018-12-29 | 2018-12-29 | 一种安全的Java智能合约解释执行引擎及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710384A CN109710384A (zh) | 2019-05-03 |
CN109710384B true CN109710384B (zh) | 2021-02-23 |
Family
ID=66259539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811636117.3A Active CN109710384B (zh) | 2018-12-29 | 2018-12-29 | 一种安全的Java智能合约解释执行引擎及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710384B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110288340B (zh) * | 2019-05-15 | 2021-07-30 | 杭州趣链科技有限公司 | 一种基于Java智能合约的数据集合存储方法 |
CN112037053B (zh) * | 2019-06-03 | 2023-12-22 | 本无链科技(深圳)有限公司 | 一种用于区块链的通用交易解释器及其解释方法 |
CN110392052B (zh) * | 2019-07-22 | 2021-05-25 | 中国工商银行股份有限公司 | 一种区块链智能合约处理系统及方法 |
CN110555770B (zh) * | 2019-08-21 | 2022-04-01 | 杭州趣链科技有限公司 | 一种基于增量哈希的区块链世界状态校验和恢复方法 |
CN110535928B (zh) * | 2019-08-22 | 2022-04-01 | 杭州趣链科技有限公司 | 一种区块链的java智能合约的事件推送方法 |
US10783082B2 (en) | 2019-08-30 | 2020-09-22 | Alibaba Group Holding Limited | Deploying a smart contract |
CN110675256B (zh) * | 2019-08-30 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 部署和执行智能合约的方法及装置 |
CN110569110B (zh) * | 2019-09-11 | 2022-01-11 | 杭州秘猿科技有限公司 | 支持可交互的多虚拟机的区块链方法、电子设备 |
CN110704063B (zh) * | 2019-09-30 | 2021-09-07 | 支付宝(杭州)信息技术有限公司 | 编译和执行智能合约的方法及装置 |
CN111130841B (zh) * | 2019-11-21 | 2022-07-08 | 深圳壹账通智能科技有限公司 | 区块链网络部署方法、电子装置及计算机可读存储介质 |
CN112835567A (zh) * | 2019-11-25 | 2021-05-25 | 北京天德科技有限公司 | 一种基于自然语言的可视化智能合约开发系统 |
CN111062060B (zh) * | 2019-11-28 | 2022-04-26 | 杭州趣链科技有限公司 | 一种基于智能合约的投票提案生命周期管理方法 |
CN111414159B (zh) * | 2020-03-16 | 2023-07-25 | 北京艾鸥科技有限公司 | 一种区块链虚拟机装置、虚拟机创建方法及交易方法 |
CN111524007A (zh) * | 2020-04-16 | 2020-08-11 | 广州拉卡拉信息技术有限公司 | 一种智能合约的嵌入式入侵检测方法及装置 |
CN111767116B (zh) * | 2020-06-03 | 2023-09-05 | 江苏中科重德智能科技有限公司 | 面向机械臂程序开发编程语言的虚拟机及对汇编文件的运行方法 |
CN112835975B (zh) * | 2020-06-05 | 2023-09-29 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中部署、更新、调用智能合约的方法 |
CN112346820A (zh) * | 2020-11-16 | 2021-02-09 | 杭州复杂美科技有限公司 | 区块链jvm应用方法、设备和存储介质 |
CN112765676B (zh) * | 2020-12-03 | 2024-07-12 | 杭州趣链科技有限公司 | 一种智能合约执行方法、智能合约执行装置及节点设备 |
CN112651753A (zh) * | 2020-12-30 | 2021-04-13 | 杭州趣链科技有限公司 | 基于区块链的智能合约生成方法、系统及电子设备 |
CN113077260A (zh) * | 2021-04-13 | 2021-07-06 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据访问方法、装置及电子设备 |
CN113126997B (zh) * | 2021-04-21 | 2024-06-18 | 多点(深圳)数字科技有限公司 | 一套前端代码生成多个运行容器的编译方法 |
CN114297119B (zh) * | 2021-12-30 | 2024-06-14 | 北京百度网讯科技有限公司 | 智能合约执行方法、装置、设备以及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017936A1 (en) * | 2015-07-14 | 2017-01-19 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
EP3355225B1 (en) * | 2017-01-31 | 2022-07-27 | Sony Group Corporation | Apparatus and method for providing a ethereum virtual device |
CN107526624B (zh) * | 2017-07-18 | 2020-12-08 | 杭州趣链科技有限公司 | 一种基于Java虚拟机的智能合约执行引擎 |
CN108595185B (zh) * | 2018-04-11 | 2021-07-27 | 暨南大学 | 一种将以太坊智能合约转换成超级账本智能合约的方法 |
CN108765158B (zh) * | 2018-05-31 | 2020-11-24 | 杭州溪塔科技有限公司 | 一种基于区块链的智能合约引擎系统及其合约执行方法 |
-
2018
- 2018-12-29 CN CN201811636117.3A patent/CN109710384B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109710384A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710384B (zh) | 一种安全的Java智能合约解释执行引擎及方法 | |
US10740115B2 (en) | Structural identification of dynamically-generated, pattern-based classes | |
CN107041158B (zh) | 用于模块化反射的限制性访问控制 | |
CN110297689B (zh) | 智能合约执行方法、装置、设备及介质 | |
CN107924326B (zh) | 对经更新的类型的迁移方法进行覆盖 | |
CN105574411B (zh) | 一种动态脱壳方法、装置和设备 | |
US20160232017A1 (en) | System and Method for Reloading Constructors | |
US8739147B2 (en) | Class isolation to minimize memory usage in a device | |
WO2022148390A1 (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
EP3607432B1 (en) | Flow-based scoping | |
EP3961438B1 (en) | Method for executing smart contract, blockchain node, and storage medium | |
CN110968437A (zh) | 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质 | |
EP3961391B1 (en) | Method for executing smart contract, blockchain node, and storage medium | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及系统 | |
WO2021146988A1 (en) | Method and apparatus for protecting smart contracts against attacks | |
EP3961437B1 (en) | Method for executing smart contract, blockchain node, and storage medium | |
US10120777B1 (en) | Remediating serialization incompatibilities | |
CN116342283A (zh) | 可信智能合约实现方法、装置、设备及可读存储介质 | |
WO2023045744A1 (zh) | 加固方法、注册方法、运行方法、电子设备和存储介质 | |
CN117056317B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
US9015728B2 (en) | Methods, apparatus, and systems to access runtime values of object instances | |
CN111045746B (zh) | 代码扩展方法和框架 | |
US11216255B1 (en) | Open compiler system for the construction of safe and correct computational systems | |
CN116166452A (zh) | 一种远程过程调用的白名单处理方法和装置 | |
Esperança et al. | Late Decomposition of Applications into Services through Model-Driven Engineering |
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 |