CN112906057B - 一种可信构建链上隐私链上交易的计算方法 - Google Patents

一种可信构建链上隐私链上交易的计算方法 Download PDF

Info

Publication number
CN112906057B
CN112906057B CN202110292183.9A CN202110292183A CN112906057B CN 112906057 B CN112906057 B CN 112906057B CN 202110292183 A CN202110292183 A CN 202110292183A CN 112906057 B CN112906057 B CN 112906057B
Authority
CN
China
Prior art keywords
chain
transaction
privacy
node
module
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
Application number
CN202110292183.9A
Other languages
English (en)
Other versions
CN112906057A (zh
Inventor
林乐
兰春嘉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Lingshuzhonghe Information Technology Co ltd
Original Assignee
Shanghai Lingshuzhonghe Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Lingshuzhonghe Information Technology Co ltd filed Critical Shanghai Lingshuzhonghe Information Technology Co ltd
Priority to CN202110292183.9A priority Critical patent/CN112906057B/zh
Publication of CN112906057A publication Critical patent/CN112906057A/zh
Application granted granted Critical
Publication of CN112906057B publication Critical patent/CN112906057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实现一种可信构建链上隐私链上交易的计算方法,本发明在原有的能链开放许可链节点上,增加了隐私交易执行引擎可包围容器模块。隐私交易虚拟机引擎,提出了一种可信构建链上隐私链上交易的计算方法,来对链上的用户账户和智能合约账户进行隐私交易。

Description

一种可信构建链上隐私链上交易的计算方法
技术领域
本发明属于能链开放许可链领域,具体涉及基于一种可信构建链上隐私链上交易的计算方法的方法。
背景技术
能链开放许可链是由多个分布式节点参与的分布式数据账本,它具有不可篡改、伪造的特点。能链开放许可链由一串通过密码学方法产生的区块构成,每一个区块都包含了上一个区块的哈希值(hash),从创始区块直至到当前区块,形成链条。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信链上交易,这些链上交易可追踪且不可逆转。智能合约概念于1995年由NickSzabo首次提出。智能合约目前广泛用于数据存证、供应链金融、资产数字化等领域。能链分布式账本是一种在网络成员之间共享、复制和同步的数据库。能链分布式账本记录网络参与者之间的链上交易,比如资产或数据的交换。网络中的参与者根据共识原则来制约和协商对账本中的记录的更新。没有中间的第三方仲裁机构的参与。能链分布式账本中的每条记录都有一个时间戳和唯一的密码签名,这使得账本成为网络中所有链上交易的可审计历史记录。在一些应用场景下,某些智能合约应用需要只在某些节点上可见,执行,存储。在这种情况下,传统的智能合约虚拟机和存储难以实现相应的功能。
发明内容
为克服现有技术的不足,本发明提供一种可信构建链上隐私链上交易的计算方法,为达此目的,本发明采用以下技术方案:步骤一,在能链开放许可链中,链上交易执行引擎先将能链开放许可链的链上交易在能链开放许可链中所有的共识节点开始执行,以形成最终的统一能链分布式账本,链上交易执行引擎对WASM智能合约开始运行,运行时支持所有复杂的运算,包括但不限于json数据的解析,隐私链上交易数据结构定义,以及复杂for循环语句,链上交易执行引擎具有图灵完备的计算能力,如果在能链开放许可链中原有的共识节点上,增加可包围容器模块,转到步骤四;步骤二,共识节点包括有节点共识模块、链上交易执行引擎、隐私交易虚拟机引擎、本地文件存储模块;设计可包围容器模块作为一个新的JavaScript库的包管理工具的NPM模块,即将可包围容器模块以NPM模块方式以作为Node包的管理工具,并随同Node包安装用以解决Node包在代码部署上的问题,Node包是基于Chrome V8引擎的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.链上交易的发送者,Structures Structures 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包。
具体实施方式
下面结合具体实施方式来进一步说明本发明的技术方案。本发明技术方案一种构建链上隐私交易的方法过程为:
在能链开放许可链中,交易在链上所有的节点执行,最终形成统一的能链分布式账本。在这个过程中,交易在所有节点的内存中执行,并且写入到每一个节点的kv数据库leveldb数据库中。
在一些应用场景下,某些智能合约应用需要只在某些节点上可见,执行,存储。在这种情况下,传统的智能合约虚拟机和存储难以实现相应的功能。
在本发明中,提出了一种去构建链上隐私交易的方法。
区块链是由多个分布式节点参与的分布式数据账本,它具有不可篡改、伪造的特点。区块链由一串通过密码学方法产生的区块构成,每一个区块都包含了上一个区块的哈希值(hash),从创始区块直至到当前区块,形成链条。
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。智能合约目前广泛用于数据存证、供应链金融、资产数字化等领域。
能链分布式账本是一种在网络成员之间共享、复制和同步的数据库。能链分布式账本记录网络参与者之间的交易,比如资产或数据的交换。
网络中的参与者根据共识原则来制约和协商对账本中的记录的更新。没有中间的第三方仲裁机构的参与。
能链分布式账本中的每条记录都有一个时间戳和唯一的密码签名,这使得账本成为网络中所有交易的可审计历史记录。
本发明中的步骤一,在能链开放许可链中,先将链上交易在能链开放许可链中所有的共识节点开始执行,形成最终的统一能链分布式账本,链上交易执行引擎对WASM智能合约开始运行,运行时支持所有复杂的运算,包括但不限于json数据的解析,隐私链上交易数据结构定义,以及复杂for循环语句,链上交易执行引擎具有图灵完备的计算能力,如果在能链开放许可链中原有的共识节点上,增加可包围容器模块,转到步骤四;步骤二,共识节点包括有节点共识模块、链上交易执行引擎、隐私交易虚拟机引擎、本地文件存储模块;设计可包围容器模块作为一个新的NPM模块,将NPM模块作为Node包管理工具,随同Node包安装用以解决Node包在代码部署上的问题,Node包是基于Chrome V8引擎的JavaScript运行环境,用以对Facebook开源的JavaScript库中的一种库Reactjs库提供友好简易安装;步骤三,能链开放许可链设定特定的链上交易执行引擎和隐私交易虚拟机引擎;隐私交易虚拟机引擎支持栈式虚拟机设计的二进制指令集的WASM智能合约;WASM智能合约设计目标为可供高级语言C、C++、Rust的平台进行编译,用于解决JavaScript性能问题,使用隐私交易虚拟机引擎时,需要智能合约的提供者提前编写相应的C、C++、Rust代码,并将相应的C、C++、Rust代码打包成wasm格式的二进制代码,通过链上交易发到所有共识节点中的各方;步骤四,通过隐私交易虚拟机引擎获得强大的计算功能,隐私交易虚拟机引擎启动时跟随共识节点的启动同时进行,在节点共识模块执行链上交易执行引擎时,共识节点通过GO语言中的引入的头文件,自动找到相应的源文件进行编译链接机制调用将装在虚拟机引擎的可包围容器模块拉起后,后续的调用和链上交易参数的传递同样通过引入的头文件,自动找到相应的源文件进行编译链接机制调用;步骤五,在能链开放许可链中引入隐私链上交易,通过共识节点包括有节点共识模块、链上交易执行引擎、隐私交易虚拟机引擎、虚拟机计算引擎、本地文件存储模块保证执行的可信和计算的隐私,并保护存储和读取的隐私,并保证落地的相关数据不能通过明文的方式进行存储,在隐私交易虚拟机引擎中,可以查询相关的数据;步骤六,通过不可信OCALL函数的形式对文件进行读取或者查询;步骤七,为实现数据加密存储和读取,在虚拟机计算引擎中单独设定对kv数据库leveldb的存储接口,并对写入kv数据库leveldb的关键字key数据不加密,对值value进行加密与解密,然后基于可包围容器模块生成的rsa公钥;在能链开放许可链中,所有的WASM智能合约需要部署执行,并且隐私链上交易智能合约同样需要部署;部署隐私智能合约的地址是隐私链上交易智能合约hash得到,并存储到kv数据库leveldb中;步骤八、隐私链上交易数据结构根据能链开放许可链的链上交易进行改造,隐私链上交易数据结构包含核心数据有:Structures a.链上交易的发送者,Structures Structures 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模块详细记录每个包的信息,包括作者、版本、依赖、授权信息;步骤十五、通过可包围容器模块直接将JSX以及ECMA2015的代码编译成浏览器可以直接运行的代码,用以简化开发者工作,JSX是一种JavaScript的语法扩展,ECMA2015是一种脚本程序设计语言,能链开放许可链中的配置在应用程序的根目录下创建一个可包围容器模块,并且可包围容器模块使用Node包的标准发布平台,通过Node包进行发布传播和依赖控制,步骤十六、通过NPM模块提供的命令行工具,用以下载、安装、升级、删除包,并可让开发者发布并维护Node包在本发明中,实现了构建链上隐私交易的方法。在原有的能链开放许可链节点上,增加了隐私交易执行引擎可包围容器模块。
隐私交易虚拟机引擎
在本发明中,实现了特定的虚拟机执行引擎。虚拟机执行引擎支持WASM的智能合约。使用该虚拟机时,需要智能合约的提供者提前编写相应的c/rust代码,并将相应的代码打包成wasm格式的二进制代码,通过链上交易发到节点各方。
WASM运行时可以基本支持所有复杂的运算,包括但不限于json数据的解析,数据结构的定义,以及复杂的for循环语句,提供图灵完备的计算能力。通过引入WASM虚拟机,获得了强于以太坊的计算能力。
虚拟机引擎的启动跟随节点的启动同时进行,在执行引擎模块,节点通过cgo调用将装在虚拟机引擎的可包围容器拉起来。后续的调用和交易参数的传递同样通过cgo调用。
隐私交易加密存储和读取
在区块链中引入了隐私交易,还要保证执行的可信和计算的隐私,接下来需要考虑存储和读取的隐私。落地的相关数据不能通过明文的方式进行存储。
在隐私交易虚拟机引擎中,可以查询相关的数据。支持通过ocal l的形式对文件进行读取或者查询。为了实现数据加密存储和读取,在虚拟机计算引擎中单独实现了对kv数据库leveldb的存储接口。写入kv数据库leveldb的数据key不加密,value加密与解密,基于可包围容器生成的rsa公钥。
隐私智能合约部署
在区块链中,所有的智能合约需要部署执行。隐私交易智能合约同样需要部署。部署隐私智能合约的地址是隐私交易智能合约hash得到,并存储到kv数据库leveldb中。
隐私交易数据结构设计
隐私交易数据结构根据传统的区块链交易改造而成。传统的区块链交易主要包含核心数据:1.交易的发送者。2.交易的接受者。3.一个签名,用来证明发送者有意向通过区块链向接收者发送消息。4.一个可选的数据域,用来储存发送给合约的消息。
隐私智能合约部署交易中,交易的接收者为一个特殊地址,例如“0x1333333333333333333333333333333333333333”。交易的可选数据域为代码本身。
隐私智能合约调用交易中,交易的接受者同样为一个特殊地址,例如“0x2333333333333333333333333333333333333333”。交易的可选数据域为调用参数。
隐私交易执行结果查询
当用户需要隐私交易的执行结果时,和查询普通的智能合约交易不同。需要用户使用自己的私钥对查询进行签名。
在隐私虚拟机执行引擎中,根据交易的V,R,S字段重构出用户的公钥,验证签名成功后,使用用户的公钥对用户想要的数据进行加密,并将加密的结果通过RPC接口返回给用户。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
有益效果:本发明构建链上隐私交易的方法。在原有的能链开放许可链节点上,增加了隐私交易执行引擎可包围容器模块。隐私交易虚拟机引擎,提出了一种可信构建链上隐私链上交易的计算方法,来对链上的用户账户和智能合约账户进行隐私交易。

Claims (1)

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包。
CN202110292183.9A 2021-03-18 2021-03-18 一种可信构建链上隐私链上交易的计算方法 Active CN112906057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110292183.9A CN112906057B (zh) 2021-03-18 2021-03-18 一种可信构建链上隐私链上交易的计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110292183.9A CN112906057B (zh) 2021-03-18 2021-03-18 一种可信构建链上隐私链上交易的计算方法

Publications (2)

Publication Number Publication Date
CN112906057A CN112906057A (zh) 2021-06-04
CN112906057B true CN112906057B (zh) 2023-09-01

Family

ID=76105450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110292183.9A Active CN112906057B (zh) 2021-03-18 2021-03-18 一种可信构建链上隐私链上交易的计算方法

Country Status (1)

Country Link
CN (1) CN112906057B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499442B (zh) * 2022-11-15 2023-01-31 四川华西集采电子商务有限公司 一种基于容器编排的快速部署型云计算架构

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871669A (zh) * 2019-03-14 2019-06-11 哈尔滨工程大学 一种基于区块链技术的数据共享解决方法
CN110544095A (zh) * 2019-09-03 2019-12-06 腾讯科技(深圳)有限公司 区块链网络的交易处理方法及区块链网络
US10755226B1 (en) * 2017-02-24 2020-08-25 EMC IP Holding Company LLC Information management system using blockchain functionalities
CN111683117A (zh) * 2020-05-11 2020-09-18 厦门潭宏信息科技有限公司 一种方法、设备及存储介质
WO2022069133A1 (en) * 2020-09-30 2022-04-07 Nchain Licensing Ag Authentication system and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190058709A1 (en) * 2017-08-16 2019-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Tenant management method and system in a cloud computing environment
US20200007343A1 (en) * 2018-06-28 2020-01-02 Blockchain Integrated Partners, Llc Systems and methods for data validation and assurance
US11829351B2 (en) * 2018-11-26 2023-11-28 Akamai Technologies, Inc. High performance distributed system of record with hosted origin services
US11783024B2 (en) * 2019-01-31 2023-10-10 Salesforce, Inc. Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10755226B1 (en) * 2017-02-24 2020-08-25 EMC IP Holding Company LLC Information management system using blockchain functionalities
CN109871669A (zh) * 2019-03-14 2019-06-11 哈尔滨工程大学 一种基于区块链技术的数据共享解决方法
CN110544095A (zh) * 2019-09-03 2019-12-06 腾讯科技(深圳)有限公司 区块链网络的交易处理方法及区块链网络
CN111683117A (zh) * 2020-05-11 2020-09-18 厦门潭宏信息科技有限公司 一种方法、设备及存储介质
WO2022069133A1 (en) * 2020-09-30 2022-04-07 Nchain Licensing Ag Authentication system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
白伟民 ; 施敬文 ; 朱津海 ; 张友军 ; .区块链技术在出口危险货物包装检验监管中的应用.中国口岸科学技术.2020,(第03期),15-27. *

Also Published As

Publication number Publication date
CN112906057A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
Xie et al. zkbridge: Trustless cross-chain bridges made practical
CN109698752B (zh) 一种基于区块链的企业资源管理系统
CN108235772B (zh) 基于区块链的数据处理方法、装置、存储介质及电子设备
CN110689349B (zh) 一种区块链中的交易哈希值存储和搜索方法及装置
CN109547488B (zh) 一种基于联盟区块链的可信数据计算及交换系统
CN111753335A (zh) 区块内容的编辑方法及装置
CN109948003B (zh) 一种同构双模主副链的区块链系统及其区块生产方法
Dagher et al. Towards secure interoperability between heterogeneous blockchains using smart contracts
CN115208665B (zh) 一种基于区块链的种质资源数据安全共享方法及系统
CN109992987A (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN110851127A (zh) 一种基于区块链的通用存证方法
CN115242644A (zh) 一种微服务开发治理系统
CN112906057B (zh) 一种可信构建链上隐私链上交易的计算方法
CN111478764A (zh) 区块链网络中的数据处理方法、节点及存储介质
Abbas et al. A model-driven framework for security labs using blockchain methodology
WO2024078229A1 (zh) 基于隐私计算的隐私数据使用方法和装置
JP2013041439A (ja) 情報管理システム、方法及びプログラム
CN115758424A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
Zawoad et al. Towards building a forensics aware language for secure logging
CN113051618B (zh) 一种用于区块链的智能合约隐私数据处理系统及方法
CN112906073A (zh) 一种区块链机密计算通用模型的实现方法
CN112906069B (zh) 一种区块链登记管理过程的可信计算方法
CN112732745B (zh) 基于云服务器的数据存储方法、装置、服务器及存储介质
CN117333175A (zh) 区块链系统、智能合约同步方法、计算机设备及存储介质
Zhang et al. Data Distributed Storage Scheme in Internet of Things Based on Blockchain

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
CB02 Change of applicant information

Address after: 200120 building C3, No. 101 Eshan Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Shanghai Lingshuzhonghe Information Technology Co.,Ltd.

Address before: 18ef, China Resources Times Plaza, 500 Zhangyang Road, Pudong New Area, Shanghai, 200120

Applicant before: NENG LIAN TECH. LTD.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A calculation method for trusted on chain privacy on chain transactions

Granted publication date: 20230901

Pledgee: Bank of Communications Limited Shanghai pilot Free Trade Zone Branch

Pledgor: Shanghai Lingshuzhonghe Information Technology Co.,Ltd.

Registration number: Y2024310000170

PE01 Entry into force of the registration of the contract for pledge of patent right