[发明专利]一种可信构建链上隐私链上交易的计算方法有效
申请号: | 202110292183.9 | 申请日: | 2021-03-18 |
公开(公告)号: | CN112906057B | 公开(公告)日: | 2023-09-01 |
发明(设计)人: | 林乐;兰春嘉 | 申请(专利权)人: | 上海零数众合信息科技有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F21/64;G06F21/60;G06F9/455;G06F8/30;G06F8/41;G06F8/60;G06F8/61;G06F8/65;G06F8/71;G06Q40/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200120 上海市浦东新区中*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 可信 构建 隐私 交易 计算方法 | ||
1.一种可信构建链上隐私链上交易的计算方法,其特征在于,包括有:
步骤一,在能链开放许可链中,链上交易执行引擎先将所述能链开放许可链的链上交易在所述能链开放许可链中所有的共识节点开始执行,以形成最终的统一能链分布式账本,链上交易执行引擎对WASM智能合约开始运行,运行时支持所有复杂的运算,包括但不限于json数据的解析,隐私链上交易数据结构定义,以及复杂for循环语句,链上交易执行引擎具有图灵完备的计算能力,如果在所述能链开放许可链中原有的共识节点上,增加可包围容器模块,转到步骤四;
步骤二,共识节点包括有节点共识模块、链上交易执行引擎、隐私交易虚拟机引擎、本地文件存储模块;设计可包围容器模块作为一个新的JavaScript库的包管理工具的NPM模块,即将可包围容器模块以NPM模块方式以作为Node包的管理工具,并随同Node包安装用以解决Node包在代码部署上的问题,Node包是基于ChromeV8引擎的JavaScript运行环境,用以对Facebook开源的JavaScript库中的一种库Reactjs库提供友好简易安装;
步骤三,所述能链开放许可链设定特定的链上交易执行引擎和隐私交易虚拟机引擎;隐私交易虚拟机引擎支持栈式虚拟机设计的二进制指令集的WASM智能合约;WASM智能合约设计目标为可供高级语言C、C++、Rust的平台进行编译,用于解决JavaScript性能问题,使用隐私交易虚拟机引擎时,需要智能合约的提供者提前编写相应的C、C++、Rust代码,节点共识模块并将相应的C、C++、Rust代码打包成WASM智能合约的wasm格式的二进制代码,通过链上交易发到所有共识节点中的各方;
步骤四,通过隐私交易虚拟机引擎获得强大的计算功能,隐私交易虚拟机引擎启动时跟随共识节点的启动同时进行,在节点共识模块执行链上交易执行引擎时,共识节点通过引入的头文件,自动找到相应的源文件进行编译链接机制调用将装在虚拟机引擎的可包围容器模块拉起后,后续的调用和链上交易参数的传递同样通过引入的头文件,自动找到相应的源文件进行编译链接机制调用;
步骤五,在所述能链开放许可链中引入隐私链上交易,通过共识节点包括有节点共识模块、链上交易执行引擎、隐私交易虚拟机引擎、虚拟机计算引擎、本地文件存储模块保证执行的可信和计算的隐私,并保护存储和读取的隐私,并保证落地的相关数据不能通过明文的方式进行存储,在隐私交易虚拟机引擎中,可以查询相关的数据;
步骤六,本地文件存储模块通过不可信函数的形式对文件进行读取或者查询;
步骤七,为实现数据加密存储和读取,在虚拟机计算引擎中单独设定对kv数据库leveldb的存储接口,并对写入kv数据库leveldb的关键字key数据不加密,对值value进行加密与解密,然后基于可包围容器模块生成的非对称加密rsa算法的rsa公钥;在所述能链开放许可链中,所有的WASM智能合约需要部署执行,并且隐私链上交易智能合约同样需要部署;部署隐私智能合约的地址是隐私链上交易智能合约hash得到,并存储到kv数据库leveldb中;
步骤八、隐私链上交易数据结构根据所述能链开放许可链的链上交易进行改造,隐私链上交易数据结构包含核心数据有:Structures a.链上交易的发送者,StructuresStructures b.链上交易的接受者,Structures c.一个签名,签名用来证明发送者有意向通过所述能链开放许可链向接收者发送消息,Structures d.一个可选的数据域,可选的数据域用来储存发送给合约的消息;
步骤九、将隐私智能合约部署链上交易中,将特殊地址“0x1333333333333333333333333333333333333333”作链上交易的接收者地址,链上交易的可选数据域为代码本身,隐私智能合约调用链上交易中,将特殊地址“0x2333333333333333333333333333333333333333”作为链上交易的接受者地址;
步骤十、将链上交易的可选数据域设定为调用参数;
步骤十一、对隐私链上交易执行结果进行查询;当用户需要隐私链上交易的执行结果时,和查询普通的智能合约链上交易不同,需要用户使用自己的私钥对查询进行签名;
步骤十二、在隐私隐私交易虚拟机引擎中,根据链上交易的V,R,S三个字段重构出用户的公钥,V,R,S三个字段中R,S两个字段是椭圆加密算法的输出值,V是用于重构出用户的公钥的结果的恢复ID,验证签名成功后,使用用户的公钥对用户想要的数据进行加密,并将加密的结果通过具有远程过程调用传输协议和编码协议的RPC接口返回给用户;
步骤十三、在形成统一的能链分布式账本过程中,链上交易在所有节点的内存中执行,并且写入到每一个节点的链上交易数据库中,最后将链上交易数据库设计为高效的kv数据库用C/C++编程语言实现,并支持十亿级别的数据量,kv数据库是指Key-value数据库,是以键值对存储数据的数据库;链上交易数据库是单进程的服务,性能非常高,链上交易数据库声明使用者应该封装使用者的网络服务器;
步骤十四、NPM模块允许用户从NPM模块的服务器下载别人编写的第三方包到本地使用;允许用户从NPM模块的服务器下载并安装别人编写的命令行程序到本地使用;允许用户将自己编写的包或命令行程序上传到NPM模块的服务器供别人使用;并且NPM模块详细记录每个包的信息,包括作者、版本、依赖、授权信息;
步骤十五、通过可包围容器模块直接将JavaScript的语法扩展JSX和脚本程序设计语言ECMA2015的代码编译成浏览器可以直接运行的代码,用以简化开发者工作,所述能链开放许可链中的配置在应用程序的根目录下创建一个可包围容器模块,并且可包围容器模块使用Node包的标准发布平台,通过Node包进行发布传播和依赖控制,
步骤十六、通过NPM模块提供的命令行工具,用以下载、安装、升级、删除包,并可让开发者发布并维护Node包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海零数众合信息科技有限公司,未经上海零数众合信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110292183.9/1.html,转载请声明来源钻瓜专利网。