毕设04 - 阶段性总结,明确题目
看完了 《WebAssembly原理与核心技术》,重新审视一下原来的目标。
原来的目标是:把 Wasm 移植到 TSC-VEE 中。
TSC-VEE 是将 evmone 这个高性能的 evm 实现,用 C 语言重构后,编译成 TA 移植到 TEE 上。本质上就是 evmone,加上论文中提到的三个优化方案。
总结
目前进度:
-
配了虚拟机的环境,可以在本地虚拟机里运行可信执行环境(OP-TEE)和可信执行程序
-
看了、跑了 TSC-VEE 的源码 ;
-
问题1:github 上开源的源码有问题(两个文件夹的内容重复,没有 TA 的实现)
已经向作者发邮件,获得了最新的代码
-
问题2:代码的实现中,只包含了混合粒度字节码分析一个优化,内存管理、指令预取的优化没有在代码中体现
计划再向作者发邮件询问
-
-
分析我需要做的事:
-
要在 TEE 中执行 Wasm 程序:
- 学习了 Wasm,阅读《WebAssembly原理与核心技术》,学习 Wasm 运行时虚拟机的实现。
- 有没有现成的 Wasm 运行时,可以嵌入到 TEE 中?有。Wamr,轻量级的 Wasm 运行时。
- 有没有嵌入到 TEE 中的实例?有。TWINE。(另有 WATZ)
-
把智能合约编译成 Wasm 程序:
-
有现成 evm2wasm 项目,可以把 evm 字节码转换成 wasm 字节码。(但是这个项目已经归档,不能保证效果,还没实验)
-
如果不局限于以太坊智能合约?可以使用原生就是WebAssembly虚拟机的区块链平台做实验?Polkadot
Polkadot
- 智能合约语言:Ink! (Rust-based), Solidity(通过EVM兼容链)
- 虚拟机:Wasm(WebAssembly)虚拟机
- Polkadot 提供了一种基于WebAssembly的智能合约环境,可以支持多种编程语言,也支持通过特定平行链与EVM兼容。
-
-
优化这个 Wasm 智能合约的执行过程:
-
gas 计算?如何实现这个?一个指令的 gas 消耗是 以太坊 官方规定的,每一个版本的 evm 都有他们自己的 gas 消耗。我现在修改了智能合约的指令集,如何评估每个指令的gas消耗?还是说我就不用管 gas 消耗?
-
针对 TEE 的特性进行优化。(内存小,读指令),参考 TSC-VEE
是不是能加入内存管理的功能,即时释放内存,使得在 TEE 中能够运行更多智能合约
是不是能指令预取,增加 TEE 中读取指令的速度
…
-
-
-
此外还找了一篇论文(有些还没详细看,因为看了一点发现太多基础知识不懂,先去学 OP-TEE 的基础架构):
-
在 TrustZone 上执行 Fabric 的智能合约:TZ4Fabric: Executing Smart Contracts with ARM TrustZone
-
在 TrustZone 上执行 WebAssembly 运行时,并实现远程认证:WATZ: A Trusted WebAssembly Runtime Environment with Remote Attestation for TrustZone
-
在 TEE 上执行 Wasm 运行时(TEE 是 Intel SGX):TWINE: An Embedded Trusted Runtime for WebAssembly
-
用于检测 Wasm 智能合约中的漏洞:WASAI: uncovering vulnerabilities in Wasm smart contracts
-
总结:提供了一个能够在 TEE 上运行以 Wasm 实现的智能合约的框架。
优点:
- 安全(TrustZone)
- 可移植性、易迁移性、接近原生的速度(Wasm)
- 性能优化(TSC-VEE)
相关项目:
- TEE 上运行 Wasm
- Wasm 智能合约
- TEE 上运行智能合约
- 对 TEE 上的智能合约进行优化
我做的:在 Tee 上 运行 Wasm 实现的智能合约,并优化
如果我要自己实现把 Wamr 迁移到 TrustZone OP-TEE 的 TEE 上的话,最关键还是得学 OP-TEE 的架构
又看了看论文(WATZ 和 TWINE),发现……作用有限……
论文里只写个大概轮廓,代码细节几乎找不见,直接看源码也一头雾水,怎么跑起来的这是……
要有一个看得见的东西,
数字身份
Intel SGX,
基于可信执行环境的区块链数字身份
题目:基于 TrustZone 的元宇宙分布式数字身份系统研究与实现
研究内容:
- TrustZone
- 软件:OP-TEE
- 硬件:Raspberry Pi 3B+
- 分布式数字身份
- 区块链平台
- 智能合约
- 元宇宙数字身份(W3C-DID)
- WebAssembly
- 在 TrustZone 中运行 WebAssembly 实现的智能合约
应用场景:
元宇宙作为背景,电影院作为应用场景,TrustZone 引入安全
研究方向
本课题的研究方向集中在基于可信执行环境(Trusted Execution Environment,TEE)和区块链技术的分布式数字身份系统设计与实现。随着元宇宙技术的迅速发展,用户在虚拟空间中的身份管理和认证问题日益凸显。现有的数字身份管理系统大多依赖于中心化的认证模式,容易面临数据泄露和隐私侵害等问题。分布式数字身份(Decentralized Identity,DID)作为一种去中心化的身份管理方案,能够在不依赖第三方机构的情况下,实现用户身份的自主认证与控制。TrustZone 技术提供了隔离的安全环境,通过与分布式数字身份相结合,可以为元宇宙用户提供更安全、可信的身份管理机制。
本研究方向结合可信计算、区块链、智能合约与 WebAssembly 等前沿技术,旨在探索如何在 TrustZone 架构中实现基于 WebAssembly 的智能合约执行环境,并为分布式数字身份系统提供解决方案。该研究有望为元宇宙用户身份管理提供新的技术方案,推动去中心化身份认证在元宇宙中的应用落地。
课题简介
随着元宇宙的迅猛发展,用户在虚拟世界中的身份管理和隐私保护问题成为亟待解决的挑战。传统的身份认证系统大多依赖于中心化服务器,存在单点故障风险,且用户的隐私数据易被不当获取和滥用。为了解决这一问题,分布式数字身份(Decentralized Identity,DID)系统应运而生,它利用区块链的去中心化特性,实现了用户对自己身份信息的自主控制。然而,如何在保证身份安全性和隐私保护的同时,提升元宇宙中的身份管理和认证效率,是当前面临的一大挑战。
本课题将基于 ARM TrustZone 可信执行环境(Trusted Execution Environment,TEE)设计并实现一个适用于元宇宙的分布式数字身份系统。具体而言,本研究将利用一个可信执行环境框架(如 OP-TEE)在 Raspberry Pi 3B+ 或华为鲲鹏开发板等硬件平台上搭建安全环境,并在该环境中运行基于 WebAssembly 的智能合约,实现数字身份的创建、认证和验证过程。TrustZone 提供的隔离环境能够确保用户身份数据的安全性,同时通过区块链平台实现身份信息的去中心化存储和验证,从而防止未经授权的访问与篡改。WebAssembly 作为智能合约的执行环境,运行在 TrustZone 的安全世界中。通过将 WebAssembly 与智能合约结合,在保证执行效率的同时,提升灵活性与可移植性。此外,课题将引入 W3C 提出的去中心化身份标准(W3C-DID),确保用户在元宇宙中的身份符合国际标准,具备兼容性和扩展性。
本课题的预期成果包括一个在 TrustZone 中运行的分布式数字身份原型系统。该系统将展示如何在可信执行环境中保障数字身份的安全性,并通过区块链实现去中心化管理,为元宇宙中的身份认证提供了一种全新的安全方案。此外,课题还将实现一个基于分布式数字身份的应用场景原型,例如一个基于分布式数字身份的虚拟电影院系统,用户可以通过其去中心化的数字身份进行购票、进行身份验证等操作。该应用场景将进一步验证本课题系统的实际可用性和拓展性。此研究不仅具备学术价值,还将在未来的元宇宙应用场景中具有广泛的应用前景。