万向区块链技术研究报告 | 隐私链相关调研-Oasis
Posted Venachain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了万向区块链技术研究报告 | 隐私链相关调研-Oasis相关的知识,希望对你有一定的参考价值。
区块链技术迅猛发展,新想法、新概念、新名词层出不穷。万向区块链因此推出“技术研究报告”专栏,定期与大家分享在区块链行业创新及热门技术方面的研究成果,带领大家第一时间研究学习新技术,紧跟技术发展趋势,探索发掘技术的应用价值。
本期技术研究将带大家了解Oasis网络。
本文作者:万向区块链通用架构技术部 宋广洋
1.概要
隐私始终是保护用户和扩大加密货币使用的基本要求,并被认为是Web3.0的重要方向之一。
隐私赛道的角逐日益激烈,协议与应用层都诞生了诸多主打隐私的项目,其中一些项目尝试利用可信执行环境(TEE)、多方安全计算等方式保护数据隐私 (区块链混合架构) ,例如身份信息、医疗信息,一些项目则专注于使用 ZKP (零知识证明数据) 等解决方案来保护资产隐私,例如币种数量、类型等。
1. 隐私交易网络
主要针对链上交易数据(持有或交易的币种类型与数量)进行隐私化处理,通过零知识证明等技术原生支持用户进行隐私交易,无需使用Tornado Cash等协议,就可以保证自己的隐私数据不会被外界查看,同时支持在该协议开发更多类型的隐私应用。
包括Aleo、Nym、Secret Network、HOPR等,目前,隐私交易网络大多数处于测试与开发阶段
2. 隐私计算网络
隐私计算协议是一种更底层的基础设施,具体的交易信息(币种类型与数量等)往往可以通过区块浏览器公开查看,但更强调用户使用数据的隐私。目前主要的隐私技术包括零知识证明、安全多方计算、基于现代密码学的联邦学习、可信执行环节(TEE)等。
目前比较知名的区块链隐私计算网络包括Oasis Network、PlatON、Phala Network、ARPA、Aleph Zero、Findora和Deeper Network等。
由于仍然很少被产业型项目所采用,以及部分技术尚不成熟,所以隐私计算网络目前的实际应用场景亦比较有限。
3. 隐私应用
隐私应用是指建立在Layer1或Layer2协议之上,为用户或DApp提供不同应用场景隐私保护功能的应用,例如交易、支付、邮件等。
隐私应用包括Tornado Cash、Railgun、Ruby Protocol等。
其中,Tornado Cash是目前最为常用的隐私应用,如今许多加密用户都会使用该应用对资产信息进行隐私化处理。
4. 隐私币
隐私币是指原生支持隐私性的加密货币,外界无法查看交易双方的具体交易类型、金额等信息,通常不支持智能合约及相关应用,最早在2014年就有相关项目诞生。
较为知名的隐私币包括Zcash、DASH、Horizen 、MobileCoin、BEAM、Grin等。
总结:
目前,隐私币普遍发展状况一般,用户量、交易量都大幅小于智能合约平台、DeFi等赛道项目。主要是发展隐私计算网络,作为隐私计算平台与区块链结合,以及隐私应用的发展
Oasis network
1.简介
Oasis 网络是去中心化的区块链 Layer 1 网络,旨在设计拥有独特的可扩展性、隐私优先和多功能性,2020年11月19日正式上线。
该网络有两个主要的架构组件,共识层和计算(ParaTime)层。
- 共识层由一组去中心化的验证节点来运行具有可扩展、高吞吐量、安全、基于权益证明(Proof-of-Stake)的共识。
- 共识层是利用 Tendermint 的拜占庭容错共识算法的权益证明(PoS)
- ParaTime层托管许多并行运行态(ParaTimes),每个运行态代表一个计算环境的拷贝,各计算环境之间共享状态。
技术
- 将共识和执行分为两层 —— 共识层和ParaTime层 —— 以实现更好的可扩展性和多功能性。
- 共识和执行的分离允许多个 ParaTime 并行处理事务,这意味着在一个 ParaTime 上处理的复杂工作负载不会减慢另一个更快、更简单的事务的处理。
- ParaTime 层是完全去中心化的,允许任何人开发和构建自己的 ParaTime。每个 ParaTime 都可以单独开发,以满足特定应用程序的需求,例如隐私计算、开放或封闭委员会等。
- Oasis 网络高级的差异检测技术使得其比分片和平行链更有效
- 该网络广泛支持隐私计算技术。
官方现支持paraTime
- emerald-paratime (EVM 兼容的paratime)
- cipher-paratime (机密智能合约执行环境的Paratime,rust ,TEE可信执行环境)
- parcel-paratime (隐私存储相关,不对外开放,申请使用)
- sapphire-paratime (7.21上线测试网,首个EVM兼容的隐私ParaTime)
交易
交易API定义和用于创建和验证事务的辅助方法存在于go/consensus/ API /transaction中。共识后端Api文档
版本
- Oasis Core version:
- Emerald ParaTime
- Runtime binary version
- Runtime identifier
- 000000000000000000000000000000000000000000000000e2eaa99fc008f87f
- Cipher ParaTime
- Runtime binary version:
- Runtime identifier
- 000000000000000000000000000000000000000000000000e199119c992377cb
区块链浏览器
Oasis区块链浏览器:https://www.oasisscan.com/
Emerald 链上浏览器:https://explorer.emerald.oasis.dev/
代币
ROSE:
总量:100亿
Oasis主网分为共识层及计算层,原生代币ROSE存放于共识层,计算层(即ParaTime层)中用于部署各种应用,其中,Emerald(ParaTimes中的一个)提供EVM的兼容环境,因此可以实现跨链。
YuzuSwap是建立在Emerald上的去中心化交易所,可实现跨链的代币交易(如下图)
投资机构
团队
https://oasisprotocol.org/team
2.计算层
Cipher-paratime(TEE计算节点)
节点搭建
如果ParaTime被配置为在TEE中运行(目前只有Intel SGX),你必须确保你的系统支持运行SGX enclave。这要求你的硬件有SGX支持,SGX支持被启用,并且额外的驱动和软件组件被正确安装和运行。
确保时钟同步
由于运行时 enclave 中的额外健全性检查,您应该确保节点的本地时钟是同步的(例如使用 NTP)。否则,可能会遇到意外的运行时中止。
安装SGX Linux驱动程序
提示 如果您运行的是 Linux 内核版本 5.11 或更高版本,则已包含所需的 SGX 驱动程序,无需额外安装,可跳过本节。
如在较旧的发行版上安装,请参见下文 旧版驱动程序的安装说明。
https://docs.oasis.dev/general/run-a-node/prerequisites/set-up-trusted-execution-environment-tee
TEE
可信执行环境(Trusted Execution Environment,TEE),通过软硬件方法构建一个安全区域,保证其内部加载的程序和数据在机密性和完整性上得到保护。可信的中央处理器一般是指可信执行控制单元已被预置集成的商用CPU计算芯片,无法后置,因此,只有新研发的部分芯片支持TEE。目前主流的TEE技术以X86指令集架构的Inter SGX和ARM指令集架构的TrustZone为代表
TEE基础原理:将系统的硬件和软件资源划分为两个执行环境——可信执行环境和普通执行环境。两个环境是安全隔离的,有独立的内部数据通路和计算所需存储空间。普通执行环境的应用程序无法访问TEE,即使在TEE内部,多个应用的运行也是相互独立的,不能无授权而互访。
Intel sgx
- intel sgx 被设计保护应用程序的机密信息,防止恶意软件的攻击,即便在应用程序和操作系统都不可信的情况下,哪怕攻击者获得了整个平台的控制权,应用程序的机密信息仍然可以受到保护
- 机密信息:比如医疗数据,个人识别信息,密码,密钥
- Intel sgx 在内存中划分了安全区域,用来存放代码和数据,这些不可寻址的分页内存是从系统的物理内存中保留的,并且经过了加密
- 其本质是设计了一套cpu指令,利用硬件创建一个可信安全区,相关数据和指令在安全区内运行
- 通过E_CALL O_CALL和外部交互调用
发展趋势
- 2015年 Intel 发布具备SGX技术的商业CPU 创建应用级的可信执行环境
- 2017年 AMD 发布具有SEV技术的商业CPU 创建加密虚拟机
- 2022年 Intel shpphire Rapids CPU 支持TDX(Trust Domain Extensions) 技术 可创建加密虚拟机
Super. | Description | User | Description |
EADD | Add a page | EENTER | Enter an enclave |
EBLOCK | Block an EPC page | EEXIT | Exit an enclave |
ECREATE | Create an enclave | EGETKEY | Create a cryptographic key |
EDBGRD | Read data by debugger | EREPORT | Create a cryptographic report |
EBDGWR | Write data by debugger | ERESUME | Re-enter an enclave |
EINIT | Initialize en enclave | ||
ELDB | Load an EPC page as blocked | ||
ELDU | Load an EPC page as unblocked | ||
EPA | Add a version array | ||
EREMOVE | Remove a page from EPC | ||
ETRACE | Activate EBLOCK checks | ||
EWB | Write back/invalidate an EPC page |
SGX
程序初始化
- 生成一组RSA3072公私钥对,公钥提交给Intel官方申请加入一个白名单
- 开发者用私钥对源代码hash,配置文件(包括产品ID,序列号等)进行签名
- 将签名,源码,配置,公钥打包就是一个enclave文件
- 加载:SGX判断hash,签名,授权书(intel)是否合法
注:SGX内部的代码本身还是可以通过静态分析获取(尽管很复杂),故代码本身不应包含任何隐私信息。
intel SGX为每一个enclave提供的两个度量值,分别为MRENCLAVE 和 MRSIGNER;
MRENCLAVE :Enclave Identity,值为sha256的hash结果,hash包括从enclave构建开始到初始化完成(EINIT指令执行后)之间的活动记录日志,日志包括代码,数据,堆栈,不同的enclave,该值不同
MRSIGNER:Sealing Identity,enclave构建时使用的RSA签名的公钥的hash结果。签名的rsa密钥对相同,该值即相同。
const (
// MrEnclaveSize is the size of an MrEnclave in bytes.
MrEnclaveSize = sha256.Size
// MrSignerSize is the size of an MrSigner in bytes.
MrSignerSize = sha256.Size
// enclaveIdentitySize is the total size of EnclaveIdentity in bytes.
enclaveIdentitySize = MrSignerSize + MrEnclaveSize
)
// EnclaveIdentity is a byte serialized MRSIGNER/MRENCLAVE pair.
type EnclaveIdentity struct
MrEnclave MrEnclave `json:"mr_enclave"`
MrSigner MrSigner `json:"mr_signer"`
密钥
- Root Provisioning Key(RPK):由iKGF(Intel Key Generation Facility)生成的key,intel和SGX共同保存。
- Root Sealing Key(RSK):由iKGF生成的key,仅SGX保存。
RPK,RSK是刻录在硬件上
- Provisioning key:通过EGETKEY指令获取,通过RPK推导出,用于intel认证SGX(EPID协议)
通过Provisioning key,与intel配置服务认证完成后,enclave和IAS会通过the EPID scheme Join protocol生成一对非对称key,enclave保存着的私钥叫做Provisioning key,用Provisioning key 对report签名,然后转发到IAS做远程认证。
- Provisioning Seal key:通过EGETKEY指令获取,通过RSK推导出,对Provisioning key加密,然后可以封存在外部环境。
- Report key:通过EGETKEY指令获取,入参包含RPK,MRENCLAVE ,attributes,所以同一SGX平台上的enclave可以获取的和对端enclave一样的report key(需要提供自己MRENCLAVE ,attributes参数);因此本地认证时候,一个enclave用MAC算法加密的report,可以被同一SGX上的另一个enclave 验证。
- Seal key:通过EGETKEY指令获取,入参包含MRENCLAVE 或者MRSIGNER,可以在enclave外部封存秘密
包括了LauchEnclave、QuotingEnclave、ProvisioningEnclave
所有的AE都是特殊的Enclave,预先由Intel进行编译、签名。他们会在PSW安装的时候启动起来,叫做aemd,AE的一个守护进程。
- LaunchEnclave(LE)是专门用来管理普通Enclave启动的Enclave。
- ProvisioningEnclave (PvE)提供密钥配置服务。
- QuotingEnclave (QE)用于远程认证中,对本地Enclave报告签名发送,以及对远程Enclave报告进行验证(来自对端QE的可信签名)并转发给本地Enclave。
SGX attestation
local attestation(本地认证-同一个平台上多个enclave可以证明运行在enclave中)
简单来说:本端用对端的target info,双方DH公钥的hash值及一些系统信息,生成report,该report带有一个MAC值(用report key)。对端拿到这个report之后,通过EGETKEY指令获取Report Key,来验证MAC值是否和对端发送的一致。
typedef struct _report_body_t
sgx_cpu_svn_t cpu_svn; /* ( 0) Security Version of the CPU */
sgx_misc_select_t misc_select; /* ( 16) Which fields defined in SSA.MISC */
uint8_t reserved1[SGX_REPORT_BODY_RESERVED1_BYTES]; /* ( 20) */
sgx_isvext_prod_id_t isv_ext_prod_id;/* ( 32) ISV assigned Extended Product ID */
sgx_attributes_t attributes; /* ( 48) Any special Capabilities the Enclave possess */
sgx_measurement_t mr_enclave; /* ( 64) The value of the enclave's ENCLAVE measurement */
uint8_t reserved2[SGX_REPORT_BODY_RESERVED2_BYTES]; /* ( 96) */
sgx_measurement_t mr_signer; /* (128) The value of the enclave's SIGNER measurement */
uint8_t reserved3[SGX_REPORT_BODY_RESERVED3_BYTES]; /* (160) */
sgx_config_id_t config_id; /* (192) CONFIGID */
sgx_prod_id_t isv_prod_id; /* (256) Product ID of the Enclave */
sgx_isv_svn_t isv_svn; /* (258) Security Version of the Enclave */
sgx_config_svn_t config_svn; /* (260) CONFIGSVN */
uint8_t reserved4[SGX_REPORT_BODY_RESERVED4_BYTES]; /* (262) */
sgx_isvfamily_id_t isv_family_id; /* (304) ISV assigned Family ID */
sgx_report_data_t report_data; /* (320) Data provided by the user */
sgx_report_body_t;
remote attestation(远程认证,不同平台之前多个enclave证明运行在enclave中)
- 远程验证者发出验证,验证该Enclave可信程度。
- Enclave使用EREPORT指令将验证与自身绑定。
- 然后不可信APP将本地认证EREPORT交给QE,QE推导报告密钥(report key)来验证报告完整性。然后用配置密封密钥(Provisioning Seal key)来解密不可信系统软件返回的SGX平台长期配置密钥。
- (Provisioning key),QE用SGX平台长期认证密钥(本质是EPID私钥)签名本地认证报告,形成一个Quote。
- 验证者收到认证响应Quote,将其交给Intel Quote服务,使用EPID组公钥(配置密钥使EPID私钥)来验证Quote。
SGX2远程认证协议 DCAP
参考
github:https://github.com/oasisprotocol Oasis文档中心:https://docs.oasis.dev/general/ Parcel使用文档:https://docs.oasislabs.com/parcel/latest/ 博客:https://medium.com/oasis-protocol-project 官网:https://oasisprotocol.org/ 白皮书:https://assets.website-files.com/5f59478e350b91447863f593/628ba74a9aee37587419cf65_20200623%20The%20Oasis%20Blockchain%20Platform.pdf Intel sgx https://github.com/intel/linux-sgx |
区块链论文合集
区块链论文集第1期
区块链论文集第2期
区块链论文集第3期
- Ledgerdata Refiner:Hyperledger Fabric账本数据查询平台
- 区块链数据抓取分析技术与应用
- 机器学习+区块链:未来与挑战
- 解构区块链:关于共识、成员和结构的调查报告
- 用AI和联盟区块链控制机器人
区块链论文集第4期
区块链论文集第5期
区块链论文集第6期
区块链论文集第7期
区块链论文集第8期
区块链论文集第9期
区块链论文集第10期
- 基于许可制区块链的SDN安全模型在IoT云计算中的应用研究
- PoAh:用于大规模IoT框架的私有区块链共识算法
- BAFFLE - 基于区块链的免聚合器联邦学习
- PIRATE - 基于区块链和5G网络的分布式机器学习安全框架
区块链论文集第11期
区块链论文集第12期
区块链论文集第13期
区块链论文集第14期
- 基于流水线化执行和稀疏节点的Hyperledger Fabric扩容方案
- SkillCheck - 基于激励的技能认证区块链
- 基于区块链的无线IoT设备视频一致性保障
- 动态图操作 - 一致的无阻塞方案
- 数据库及区块链领域的开发趋势
区块链论文集第15期
- 基于区块链的去中心化DApp开发技术综述与开发指南
- 一种可容忍半数敌对节点的、停机可恢复的灵活的区块链分片协议
- 非许可制区块链的通用超轻客户端协议
- 利用交易并发的区块链提速研究
- 一种适用于区块链集市的具有灵活支付机制的可伸缩侧链协议
区块链论文集第16期
区块链论文集第17期
- 数字加密货币地址聚类分析与标注
- 基于IoT和区块链的智慧城市空气质量监测方案
- 区块链智能合约编程范式对比:UTXO vs. 账户模型
- 工业控制通信的数字化保护中区块链技术利用现状的可视化研究
- 基于比特币区块链的弹性僵尸网络的研究与分析
区块链论文集第18期
区块链论文集第19期
区块链论文集第20期
区块链论文集第21期
区块链论文集第22期
区块链论文集第23期
以上是关于万向区块链技术研究报告 | 隐私链相关调研-Oasis的主要内容,如果未能解决你的问题,请参考以下文章
万向区块链蜂巢学院 | 关于ETH2.0路线图,搞研究的大脑在想什么?