MoleEdu|安全合规之周 - 数据隐私 +DID
2023-03-08 12:00
Moledao
2023-03-08 12:00
订阅此专栏
收藏此文章

Moledao 和 OGBC 联合举办的 Web3 系列课已经进入尾声啦,本周是第七周,开发者项目实战之周,会给大家带来 Solidity 语言教程和 NFT 智能合约教程。我们的课程笔记也进入到了第四周,Web3 安全合规之周。

今天带大家回顾 w3tester 导师的”数据隐私 +DID“课程!课程录屏已经上传 Moledao 的 Bilibili。

第四周:Web3 安全合规之周 | 数据隐私 +DID

www.bilibili.com/video/BV1bA41127i9/?spm_id_from=333.999.0.0&vd_source=8497d6b38e91681ca1de4fd1c2530a4c
导师介绍
w3tester, founder of zCloak Network, holds a PhD In Computer Science from University of Twente of the Netherlands. He has participated in multiple EU research projects with a total funding of more than 5 million euros. He has published over 20 research papers. His research background was distributed and dependable computer systems. Now he leverages this background to design scalable and trustless zero-knowledge proof system.
学习收获

01 ZK-VM 介绍

1.1 ZKP 的基本概念

ZK-VM 是零知识证明虚拟机。ZK-VM 采用了类似于以太坊虚拟机(Ethereum Virtual Machine,EVM)的结构,可以运行智能合约和去中心化应用程序(DApps)。不同之处在于,ZK-VM 的执行过程是在零知识证明的保护下进行的通用计算,能够保证计算过程的隐私性和安全性。

零知识证明是一种计算完整性的证明方法,它可以证明某个计算结果的正确性,而不需要揭示输入数据或计算过程。零知识证明的基本思想是通过构建一种可验证的证明,来证明计算的正确性和完整性,而不需要揭示实际的计算过程。

Prover 是证明者,也被称为证明生成者。它的任务是生成一个证明,证明某个计算结果的正确性,而不需要揭示计算的过程和输入数据。Prover 需要确保证明的正确性和完整性,同时需要保护输入数据的隐私。

Verifier 是验证者,也被称为证明验证者。它的任务是验证 Prover 生成的证明,并确认计算结果的正确性。Verifier 可以使用零知识证明来验证计算结果的正确性,同时也需要保护数据的隐私和安全。

在零知识证明体系中,Proof 是一种用来证明某个计算结果正确性的工具。它通常由 Prover 生成,并发送给 Verifier 进行验证。Proof 可以包含一些证据,证明某个计算结果是正确的,而不需要揭示计算过程或输入数据。

在传统的计算系统中,计算和验证的成本通常是相似的,因为计算结果需要被传输到验证者进行重新计算。然而,在零知识证明系统中,证明结果可以直接传输给验证者进行验证,而不需要传输所有的计算结果。这种验证方式大大降低了验证所需的资源,从而提高了系统的效率和可扩展性。

1.2 计算层面

在计算机科学领域有两种主要计算方法,一种是基于电路的计算方法,而另一种是基于机器的计算方法。

基于电路的计算方法是一种计算模型,它使用电路的逻辑门(例如 AND、OR、XOR 等)来实现各种计算操作。这种计算方法广泛应用于数字电路设计和集成电路设计等领域,被称为 ASIC(Application Specific Integrated Circuit)。

基于机器的计算方法是一种计算模型,它使用机器的状态和指令来实现计算操作。这种计算方法广泛应用于计算机科学和计算机工程领域。在基于机器的计算方法中,状态机是一种常见的计算模型。状态机是一种抽象的计算模型,它由一组状态和转移函数组成,用于描述机器在不同状态下的行为。状态机可以用于实现各种计算操作,如识别语言、解析 XML、执行编译器等。
ZKP 方法中也有两种计算方法与之相似。分别是专用应用的 ZKP(Application-specific ZKP)和 ZK 虚拟机(ZK-VM)。

1.2.1 App-specific ZKP

在基于电路的 ZKP 系统中,电路结构和 ZKP 的生成和验证机制是绑定关系,如果计算改变,则电路结构需要改变,ZKP 也需要重新生成和验证。这种情况下,重新生成可信设置确实是很麻烦的。因此,在设计和实现基于电路的 ZKP 系统时,需要考虑到计算的可扩展性和可适应性,以便在计算环境发生变化时能够快速适应。
App-specific ZKP 的案例有:Zcash、Tornado、Polygon ID。这种方式的好处在于简单高效,生成的 proof 比较小,相关库比较丰富。但是缺点在于功能有限,灵活性较低。

1.2.2 ZK-VM

ZK-VM 是一种虚拟机,它采用了一种模拟 CPU 的机制来执行计算任务。

在 ZK-VM 中,零知识证明是基于 VM 而生成的,而不是基于程序。这种设计使得 ZK-VM 具有更好的可定制性和可适应性,可以根据具体的应用场景进行定制化的设计和实现。同时,ZK-VM 支持公开输入和秘密输入,可以应用于不同的隐私保护场景。同时,ZK-VM 的程序可以进行客制化,以满足不同的应用需求。
这种方式的优点在于简单易用,灵活度高。而缺点在于生成的 proof 比较大,效率相较之下没有那么高。
02 行业中的 ZK-VM 项目

2.1 ZK-optimized VM

ZK-optimized VM 是一种优化的零知识证明虚拟机,用于执行零知识证明操作。与传统的计算机系统不同,ZK-optimized VM 采用了一种特殊的设计,旨在优化零知识证明系统的效率和性能。

相关项目:
  • StarkWare Cairo (register-based)

  • Polygon Miden (stack-based)


  • 这些 VM 的设计本身就会考虑了适合 ZK 使用的函数
2.1 “Real-world” ZK-VM

“Real-world” ZK-VM 指先出现的 VM 架构,后出现的针对这种 VM 的 ZK。
相关项目:
  • RISC Zero:RISC-V processor

  • zkEVM:Scroll,Polygon Hermez,zkSync
03 W3C DID 和 Web3

W3C(World Wide Web Consortium)是一个国际性的组织,致力于开发 Web 标准,以确保 Web 的长期发展。W3C 的使命是促进 Web 技术的互操作性和发展,为用户提供更好的 Web 体验。

W3C 的工作范围包括 Web 标准的制定、Web 技术的研究和开发、测试套件的开发和维护、用户教育和宣传等方面。W3C 制定的 Web 标准包括 HTML、CSS、XML、Web 服务、Web 安全、Web 隐私等方面。这些标准的制定确保了不同设备和浏览器之间的互操作性,使得 Web 应用程序可以跨平台和跨设备使用。

W3C 由 Tim Berners-Lee 在 1994 年创建,总部位于美国麻省理工学院计算机科学与人工智能实验室(MIT CSAIL)。W3C 的成员包括了计算机科学、通信、媒体等行业的专业人士、组织和公司。W3C 的成员可以参与到标准的制定过程中,通过投票和评论来影响 Web 技术的发展。

3.1 W3C DID 标准主要元素

DID 在这里指的是 Decentralized Identifier,是 W3C 在去中心化身份这方面做的标准化工作。其中的主要要素包含 Identifier、DID Document、DID Controller、DID Resolver、VDR 和 Naming System。

  • Identifier:标识符,用于将两个主体区别开来。放在中国大陆就是身份证号。

  • DID Document:指包含了 DID 信息的文档,其中包含了 DID 标识符以及与该标识符相关联的公钥、服务端点和其他元数据等信息。

  • DID Controller:负责创建,更改和保管 DID Document。

  • DID Resolver:DID 解析器,是一种软件组件或服务,用于解析和验证 DID 的信息和数据。

  • Verifiable Data Registry(VDR):存储 DID 信息,信息不能被篡改

  • Nameing System:将 DID 和名字关联起来



3.2 DID 辨别DID 并不是身份,要形成身份需要 VC(Verifiable Credential)。VC 是对主体的某个特定方面的描述。各种各样的 VC 积聚起来就形成了人的身份。

Web3 DID 和 W3C 的 DID 是不同的。Web3 DID 是 Decentralized Identity,而 W3C DID 是 Decentralized Identifier。Web3 DID 中将钱包地址作为 identifier,交易或者 SBT 作为 VC,可以将其理解为一个简化的 DID 系统。但是 Web3 DID 是做不到 P2P 和隐私保护的。

3.3 Web3 隐私

Web3 隐私的核心理念是个人数据主权 W,它强调用户对自己的个人数据拥有完全的控制权和决策权。在 Web3 中,用户可以通过去中心化身份管理系统和去中心化数据存储系统等技术手段,有效地保护自己的隐私和安全,同时也可以更加自主地管理和掌控自己的个人数据。隐私是 DeSoc 的核心,如身份,金融,健康,家庭信息等敏感信息是不适合上链或者上 IPFS 的。

04 案例:用于 DID 隐私保护的 ZK-VM

4.1 用户端 ZK 计算实现数据隐私保护

使用 ZK-VM 来保护 DID 和 VC 的隐私,可以通过在本地进行计算来实现。具体来说,可以将 DID 和 VC 的数据存储在本地,然后使用 ZK-VM 来进行计算和验证,以保护数据的隐私和安全性。
要证明本地计算结果是正确的,就要分别证明:
  1. 计算的输入数据是真实有效的。如果数字凭证经过多个机构的事先签名,可信度就能大大提升。

  2. 计算过程是可信的,可以通过 ZK- program 证明。

4.2 The zkID App

05 鸣谢
感谢以下组织对本次公益课程的支持!
赞助方支持:
One Global Blockchain Centre (OGBC)
https://www.ogbc.com/
OGBC 是 Web 3.0 的领先孵化器,他们与新兴的加密货币初创公司合作,建立未来的基础设施。通过利用 OGBC 在加密货币领域的专业知识、网络和资源,公司和项目可以充分发挥其潜力,努力为区块链行业越来越多的用户开发创新和有价值的解决方案。
其它合作方支持:
06 关于 Moledao
MoleDAO是一个区块链开发者社区,供所有区块链爱好者了解区块链的最新动态,并在经验丰富的区块链先驱者和创新者的帮助下成长,为构建 Web 3 生态系统贡献更多创新想法。
我们旨在通过搭建区块链爱好者交流社区、提供区块链项目支持、举办全球黑客松系列活动、帮助项目人才匹配、提供项目赞助和指导,将区块链理念带给每个人并发展区块链生态系统。
我们的愿景是成为一个精心策划的一站式区块链生态系统。无论你是区块链爱好者、区块链开发者、机构还是投资者,都可以在 Moledao 找到适合自己的定位。
更多内容请查看👉:Moledao 是谁?在做什么?你能在这儿收获什么
加入我们
我们欢迎所有区块链爱好者加入 Moledao 并共建 Web3.0 生态。
官方所有链接⬇️
https://linktr.ee/moledao
Discord 社区⬇️
https://discord.gg/khR98dRPum
微信群⬇️
添加微信申请入群:WeChat ID: Phoebe_Junbo

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
Moledao
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开