佛萨奇2.0智能合约开发详情版丨佛萨奇2.0智能合约系统开发(成熟案例及源码)

简介: 一般来说,参与到区块链交易中的数据对链参与者都是公开的。而长安链隐私合约功能为区块链提供在合约中处理敏感数据的能力,达到保护数据隐私的同时保证合约执行过程的可靠性(包括合约逻辑、数据的完整性)。长安链隐私合约采用可信计算技术,在可信执行环境中执行隐私合约。敏感数据以密文形式存在于区块链账本中,用户使用时在可信执行环境中解密,而可信执行环境外无法获得敏感数据明文。同时,可信执行环境的远程证明保证合约逻辑不被篡改。如此,达到敏感数据在区块链上的可用不可见,而数据处理流程仍然可以在区块链上公开验证的效果。
  1. 概述

一般来说,参与到区块链交易中的数据对链参与者都是公开的。而长安链隐私合约功能为区块链提供在合约中处理敏感数据的能力,达到保护数据隐私的同时保证合约执行过程的可靠性(包括合约逻辑、数据的完整性)。长安链隐私合约采用可信计算技术,在可信执行环境中执行隐私合约。敏感数据以密文形式存在于区块链账本中,用户使用时在可信执行环境中解密,而可信执行环境外无法获得敏感数据明文。同时,可信执行环境的远程证明保证合约逻辑不被篡改。如此,达到敏感数据在区块链上的可用不可见,而数据处理流程仍然可以在区块链上公开验证的效果。

长安链支持Intel SGX作为执行隐私合约的硬件基础。目前Intel SGX相对于其他可信计算硬件,具有兼容性好、文档完善等优势。

  1. 隐私合约设计方案

隐私合约功能由一个基于可信执行环境的隐私合约环境提供。这个隐私合约环境由可信执行环境Enclave和隐私计算网关组成。其中Enclave是运行在可信执行环境的逻辑,负责对合约进行验证、编译、执行,敏感数据密文只能在Enclave中解密。长安链的Enclave中实现了一套WASM逻辑,可以对任意数据处理逻辑进行编译、运行。隐私计算网关负责将用户、Enclave发出的信息打包成区块链的交易payload,并转发给区块链存证。

整个流程分为三个阶段:可信执行环境的远程证明、隐私合约的部署、隐私合约的调用。

远程证明动作可以是一次性的。在该阶段,由用户发起对隐私合约环境中Enclave的远程证明,验证该Enclave是否运行于可信执行环境中,以及该Enclave中的逻辑是否在部署后被篡改过。
隐私合约的部署发生在远程证明之后,每个不同的隐私合约需要单独进行一次部署。在这个阶段中,用户可以部署经区块链共识接受的任意数据处理逻辑作为隐私合约,隐私合约会被存在区块链上,其逻辑受到公开监管。不同于普通合约用户直接将合约代码上传到区块链节点的部署方式,隐私合约需要用户将合约上传到隐私计算环境初始化后,由隐私计算环境通过网关将处理好的合约上传到区块链账本中。
隐私合约的调用发生在部署之后。一个隐私合约部署后,用户可以用相同或不同的数据为入参进行多次调用。

  1. 可信执行环境与远程证明

可信执行环境是CPU的一个安全加固区域,可以保证其中的软件逻辑和数据在机密性和完整性上得到保护。该区域的软硬件环境可以看做是与外界隔离的一个反沙箱环境。在这个环境中运行的程序,外部包括操作系统无法读取或写入其内存,也无法干扰其代码运行逻辑。

远程证明可以使验证者辨别被验证的可信执行环境上的软件逻辑是否有变更。通常,远程证明的被验证方通过可信硬件生成一个证书,这个证书包含一个report信息,这个信息描述当前运行在可信执行环境中的软件(代码度量)。验证者通过验证这个证书的合法性来验证可信硬件上的软件进程是否被修改过。

  1. Intel DCAP远程证明(暂不支持,需搭配新款服务器)

Intel提供的远程证明机制。

信任Intel。在DCAP远程证明模式中,Intel会作为根CA为SGX硬件提供认证。
需要在网络中维护一个PCCS服务提供对网络中的SGX硬件认证。PCCS服务是将Intel为SGX下发的类似二级证书的信息缓存到一个局域网络中。
5.自定义信任根的远程证明(v1.2.0开始支持)
自定义信任根的远程证明对DCAP做了一些改动,将对Intel的信任转移到对任意选定的CA机构的信任上。

在可信执行环境初始化阶段,可信硬件基于硬件固有密钥生成一对签名公私钥对和一对加密公私钥对,并向一个选定的CA机构申请证书。该证书中包含签名公钥和加密公钥。这个过程类似于硬件出厂时向Intel注册信息。

在用户发起对Enclave的远程证明时:

用户生成一个随机挑战(任意随机字符串),将其发送到隐私合约环境,由隐私计算网关转发到Enclave中。
Enclave对收到的随机挑战制作一个远程证明。Enclave收到随机挑战后,调用SGX EREPORT指令获取report。这个report包含当前运行中的软件的代码度量和Enclave的其他信息。Enclave将随机挑战与report拼接后,用签名私钥对其签名,制作出包含随机挑战、report、Enclave签名、Enclave证书4个组件的远程证明。
Enclave通过隐私计算网关输出远程证明(包括随机挑战、report、Enclave签名、Enclave证书)。
隐私计算网关会调用系统合约将远程证明写入区块链存证。系统合约中包含验证远程证明合法性的逻辑,通过验证的远程证明会被写入区块链存证。
隐私计算网关会返回一份远程证明给发起证明流程的用户,用户可以线下自行验证远程证明。

相关文章
|
API Python
永续合约/秒合约系统设计开发dapp技术/代码搭建示例
永续合约是一种类似于期货合约的金融衍生品,与传统合约不同的是,它没有到期日期。HKD交易所的永续合约是基于标 记价格和保证金机制的交易方式,允许用户通过杠杆操作来增加收益和风险。在永续合约交易中,用户可以选择开多或开空 仓位,实现对市场走势的利润预测。
|
8月前
|
前端开发 安全 JavaScript
dapp智能合约系统开发解决方案/需求指南/案例步骤/源码程序
定义需求:明确系统的需求和功能。确定你的DApp将提供哪些服务,并了解相关的业务流程和规则。考虑如何实现这些功能,以及你打算使用的智能合约平台(如以太坊、EOS等)。
|
安全 Go
dapp丨defi代币合约系统开发详情说明丨案例分析丨需求设计丨成熟案例丨源码平台
Before developing the DApp pledge mining system, it is necessary to clarify the entire development process. Firstly, determine requirements and functional planning, including user interface design, contract writing, etc. Secondly, design the system architecture to determine the relationships and dat
|
8月前
|
存储 安全 算法
DAPP智能合约项目系统开发原理|详情方案
智能合约是区块链的核心技术之一,它可以帮助我们实现自动化和去中心化微。
合约跟单丨秒合约丨合约交易所系统开发步骤详情/功能设计/需求分析/案例开发/成熟案例/源码平台
Contract Copy Trading is an investment strategy that allows investors to achieve similar trading operations by copying the trading orders of other traders (also known as signal providers).
|
安全 区块链
DAPP智能合约链游系统开发源码部署示例
  //SPDX-License-Identifier:MIT   pragma solidity^0.8.0;   contract Game{   //游戏合约的名称   string public name;   //游戏玩家的地址   mapping(address=>bool)public players;   //玩家的分数
|
JavaScript 前端开发 区块链
关于DAPP智能合约GRETT(格莱特)项目系统开发案例分析/规则方案/源码说明
Ethereum uses Solidity as the smart contract language. Solidity is a high-level programming language created to implement smart contracts. It can run on nodes that allow Ethereum programs. This language incorporates some features of C++and JavaScript, such as being a statically typed language that s
|
存储 人工智能 安全
区块链DAPP代币合约项目系统开发技术案例及详情/源码功能
  区块链、人工智能、数字孪生、人机交互、物联网等面向数据的新一代信息技术的演进并非偶然,而是从Web2.0向Web3.0演进的技术准备。从技术上来看,元宇宙是基于Web3.0技术体系和运作机制支撑下的可信数字化价值交互网络,是以区块链为核心的Web3.0数字新生态。
|
存储 安全 区块链
IPPswap+NFTswap+OMNIswap智能合约项目系统开发方案项目及源码案例
  DApp是指基于区块练技术的去中心化应用程序,它的特点是去中心化、透明、安全、不可篡改等,DApp is an inevitable trend because it can solve problems such as centralization,data privacy,and security in traditional applications,while also achieving more fair,transparent,an
|
存储 人工智能 安全
Opsea NFT智能合约平台系统开发方案介绍/功能详解/源码说明/项目案例
  DAPP是去中心化应用程序(Decentralized Application),它是建立在区块练技术之上的应用程序,具有去中心化、开放性、透明性、安全性等特点,DAPP可以实现各种功能,例如数字货币钱包、去中心化交易所、去中心化社交网络等。O