[发明专利]智能合约中算法的保护方法、装置、设备及存储介质在审
申请号: | 201811057926.9 | 申请日: | 2018-09-11 |
公开(公告)号: | CN109446754A | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 谢丹力;张松松 | 申请(专利权)人: | 平安科技(深圳)有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F8/41;G06F8/60 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 林彦之 |
地址: | 518000 广东省深圳市福田区福*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 二进制数据 智能 源码 编译 加载器 算法库 源文件 上传 算法 配置加载器 存储介质 核心代码 核心算法 全局变量 语言编写 只读数据 代码区 数据区 运行时 重定位 外部 区块 绕开 部署 汇编 写入 复制 知识产权 语言 环节 | ||
本发明公开了一种智能合约中算法的保护方法,属于区块链技术领域。该方法包括以下步骤:采用go语言编写算法库源文件,并将所述算法库源文件通过编译和汇编后生成elf文件;复制出所述elf文件中的重定位表、只读数据区、数据区和代码区形成一串二进制数据,并为所述二进制数据配置加载器函数;将所述二进制数据和所述加载器函数写入智能合约的源码中;将所述智能合约的源码上传至docker中进行部署,使得所述加载器函数在所述智能合约运行时,可以获取所述二进制数据中包含的外部函数和外部全局变量的地址。本发明利用go语言的编译特性,绕开了智能合约部署必须上传源码编译的环节,将核心代码独立出来,起到保护核心算法知识产权的作用。
技术领域
本发明涉及区块链技术领域,涉及一种智能合约中算法的保护方法、装置、设备及存储介质。
背景技术
智能合约是一种数字形式的合约,也就是一段由计算机语言撰写并实现的可执行代码。
随着区块链应用的普及,智能合约的使用范围变得越来越广泛,很多智能合约中,都会用到第三方的算法库来完成某种既定的、具体的、业界公认而无可争议的功能;而这些第三方的算法库,却常常因为第三方公司对于自身知识产权的保护而不便于对外公开其源码。
以隐私保护方面被大量应用的零知识证明算法库为例,零知识证明算法库的功能是既定而确切的,即“我不需要亮出我的答案,但是我可以向外界证明我知道答案”。既便于对于这样业界非常确定的应用算法库,两家不同的公司实现的算法效率可能差距100倍以上甚至更大。
现在,有些公司为了保护自身知识产权,不对外公开源码,通过利用go语言v1.8的一些特性完成对源码的隐藏,但是在实际商业环境中,并不是所有的客户都安装了最新的go语言版本,特别是对于某些对自身系统稳定性要求较高的客户,他们对于已经在运行的网络环境升级持有非常谨慎的态度,特别是对于涉及到整个网络环境运行基础的语言包的升级,更是慎之又慎。
发明内容
本发明要解决的技术问题是为了克服现有技术中无法在区块链中保护算法源码的问题,提出了一种智能合约中算法的保护方法、装置、设备及存储介质,利用go语言的编译特性,绕开了智能合约部署必须上传源码编译的环节,将核心代码独立出来,以实现核心算法知识产权的保护。
本发明是通过下述技术方案来解决上述技术问题:
一种智能合约中算法的保护方法,包括以下步骤:
采用go语言编写算法库源文件,并将所述算法库源文件通过编译和汇编后生成elf文件;
复制出所述elf文件中的重定位表、只读数据区、数据区和代码区形成一串二进制数据,并为所述二进制数据配置加载器函数;
将所述二进制数据和所述加载器函数写入智能合约的源码中;
将所述智能合约的源码上传至docker中进行部署,使得所述加载器函数在所述智能合约运行时,可以获取所述二进制数据中包含的外部函数和外部全局变量的地址。
优选地,所述算法库为零知识证明算法库。
优选地,所述elf文件的生成过程为:采用go语言编写得到*.go文件,将所述*.go文件经过编译得到*.s文件,再将所述*.s文件经过汇编得到*.o文件;
所述*.go文件为算法库源文件,所述*.s文件为汇编源文件,所述*.o文件为elf文件。
优选地,所述部署包括:
通过所述加载器函数将所述二进制数据中包含的外部函数和外部全局变量的地址回填到所述二进制数据中的相应位置中,实现对所述二进制数据的修改;
通过所述加载器函数在内存中分配一段内存地址,并赋予这段内存地址可执行权限,然后将修改后的所述二进制数据复制到该段内存地址对应的内存区域中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安科技(深圳)有限公司,未经平安科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811057926.9/2.html,转载请声明来源钻瓜专利网。