# zkPass

By [Coinman.eth](https://paragraph.com/@coinman-eth) · 2022-09-16

---

大家好，我是帝哥（推特：@CoinmanLabs），我相信大家应该都有每天被某中介或者客服频繁打电话骚扰的情况，人家还能准确说出我们的信息，其实我们心里或多或少都知道是自己的什么泄漏了。我们先看下2022年上半年信息泄漏的一些重大事件。

*   Swissport是一家收入30亿欧元、且在50个国家的310个机场开展业务的公司，它为机场提供货物装卸、维护、清洁和休息室接待服务。2022年2月，BleepingComputer发现BlackCat组织泄露了在最近勒索软件攻击中获得的TB级用户数据\*\*。\*\*
    
*   英伟达1TB机密文件遭遇遭窃，7万员工信息泄露。
    
*   2022年4月，美国支付巨头Block披露了一项与投资应用Cash App有关的数据泄露事件，并将此事件告知了其820万美国用户。
    
*   2022年5月6日，宜家（IKEA）加拿大公司表示已经将该公司**大约9.5万名客户的个人信息数据**泄露事件通报给加拿大的隐私监管机构。
    

根据最新发布的《2022年数据泄露成本报告》，数据泄露的平均成本创下435万美元的历史新高，比2021年增长了2.6％，自2020年以来增长了12.7％。今年的研究首次发现，83％受访组织已经不是第一次发生数据泄露事件；60％的受访组织在事后提高了商品和服务价格，把数据泄露造成的损失转嫁到消费者身上。

![](https://storage.googleapis.com/papyrus_images/7d15a35acfc9641e6aec1dc43f345f6bd497a6533e9433b4ae8bcc6bb96c2662.png)

从上面帝哥举例中我们大致可以总结出一个点就是：系统漏洞，攻击者利用系统漏洞，入侵了保存信息的数据库。

因为帝哥是程序员出身，我们首先就来看下传统互联网在我们用户认证的。

![图来自zkpass](https://storage.googleapis.com/papyrus_images/9fd010158eb587e011e315c11a95d4fad9083830e3f3ad76212e14b1653faa53.png)

图来自zkpass

*   Verifier（验证者）首先向中心化的kyc服务商注册。
    
*   prover（证明者）向我们的Verifier(验证者)请求服务的同时提供token。
    
*   Verifier(验证者)将kyc的权限的token返回给到prover（证明者）。
    
*   prover（证明者）将个人数据发送到kyc服务商中。
    
*   prover（证明者）可能发送的是身份、护照等不同的身份证明，当kyc服务商收到prover（证明者）的个人信息后则需要给到不同的身份颁发机构进行验证并获取到结果。
    
*   当结果正确kyc服务商则将相应的信息重定向到Verifier(验证者)，Verifier(验证者)根据返回信息进行后续的逻辑业务处理。
    

那这样传统的有什么问题呢？

*   因为存储在中心化存储中可能造成数据泄漏。
    
*   因为数据是给到了kyc服务商存储，用户是失去了对自己个人信息数据的控制权。
    
*   同时现在有很多网页爬虫等会想某些网站爬取个人信息，从而将信息出售给不法分子。
    

那我们是不是让kyc服务商**去中心化存储、用户可以拥有自己信息控制权、同时要求kyc服务商加强网络安全或者及时信息被机器人或者爬虫爬取后的信息是无法使用的就可以了**呢？

那今天帝哥就给大家介绍个项目-**zkPass**。

### 什么是zkPass？

zkPass是一种基于**MPC** (Multi-Party Computation)和**ZKP (Zero- Knowledge Proof)的**去中心化KYC解决方案，旨在克服当前KYC系统中的各种缺陷，消除与身份认证相关的痛点，在扩展KYC能力的同时保护用户隐私。旨在创建具有零知识证明和多方计算的协议级去中心化KYC产品，为所有行业提供隐私保护的身份解决方案。

上面有几个专业的名词，听帝哥慢慢给你解析：

**MPC**

我们都知道现在的数据是新能源，需要流动起来才能充分发挥其的加载，但是数据和其他一般的资源是不一样的，是可以拷贝的，那如何去分离数据的**使用权**和**所有权**。比如现在商家A和商家B共同合作促销，统计双方共同用户的画像，但是双方都不愿意将数据给到对方，因为涉及个人私密切是机密的，所以这样就很难合作了。既然这样找个可信任的第三方、或者将数据脱敏。但是有个问题就是第三方不好找同时数据脱敏就导致了数据的可用性比较差。那下面久的说下**安全多方计算(MPC)技术**，它能使彼此不信任的多方正确计算任何函数，同时还能保证各方输入和输出信息的私密性。MPC可被视为一种提供可信任第三方的方式，即使实际上并不需要这一可信任方。

![](https://storage.googleapis.com/papyrus_images/bf7916229750783ddf82260c5409387a7d42870e1f192245880746d8d2dafc68.png)

帝哥上面有一个简图，首先各方都是获取到了信息的一部分，但是大家将自己的部分信息输入MPC中则会获得同一个完全正确相同的数，同时他人也不知道你输入的是什么。那我们就可以得出来MPC的两个重要的高级属性：**私密性和正确性**。在私密性方面，任何一方都只知道他们自己的输出结果。而且所有各方从MPC获得的输出结果都可以保证是正确的。

**ZKP (Zero- Knowledge Proof)**

阿里巴巴掌握着让芝麻开门的咒语。强盗向他拷问打开山洞石门的咒语时，他不想让人听到咒语，于是想了个好办法。他对强盗说：“你们离我一箭之地，用弓箭指着我。你们举起右手我就念咒语打开石门，举起左手我就念咒语关上石门。如果我做不到或逃跑，你们就用弓箭射死我。”强盗们同意了，因为这能帮助他们搞清楚阿里巴巴到底是否知道咒语这个问题。强盗举起了右手，只见阿里巴巴的嘴动了几下，石门果真打开了。强盗举起了左手，阿里巴巴的嘴动了几下后石门又关上了。强盗还是有点不信，说不准这是巧合呢。于是不断地换着节奏举右手、举左手，石门跟着他们的节奏开开关关。最后强盗们想，如果还认为这只是巧合，自己未免是个傻瓜，那还是还是相信阿里巴巴吧。这就是最简单易懂的零知识证明。总而言之，**要创建零知识证明，验证者（劫匪）需要让证明者（阿里巴巴）执行一系列操作，而证明者只有在得知底层信息的情况下才能正确执行。**

零知识证明有三个基本特征，即：

*   \*\*完整性：\*\*如果statement为true，则诚实的验证者可以相信诚实的证明者确实拥有正确的信息。
    
*   \*\*可靠性：\*\*如果statement为false，则任何不诚实的证明者都无法说服诚实的验证者相信他拥有正确的信息。
    
*   \*\*零知识性：\*\*如果statement为true，则验证者除了从证明者那里得知statement为true以外，什么都不知道。
    

那zkpass能解决什么问题呢？我们下面一起来看看zkpass的整体架构图。

![](https://storage.googleapis.com/papyrus_images/eb33ca00e5e16c25d508c7d8a806dc8253e0099a78938c76c031419e06dc1d3c.png)

在开始讲解前，帝哥需要给大家先说下zkpass的三个重要的组成部分：

*   zkPass Kit: 他是一个插件/sdk的形式，在TCP层和https层之上为三方的TLS协议构建了一个验证器，业务用户根据需要选择或定制合适的 KYC 模板，将模板以参数的形式配置到 zkPass 工具包中，并向区块链上的智能合约发起 KYC 请求。
    
*   Smart Contract：模板:存储模板和相关参数，防止验证者作弊。
    
    任务:分配任务指定 MPC 参与者，防止验证者合谋。
    
    ZK 验证:验证 ZKP，防止用户隐私泄露。ZKP:基于 PLONK的 ZKP。
    
*   zkPass Protocol：由传输层安全、多方计算、零知识证明等技术组成的去中心化开源协议。
    
    zkPass 节点:构建一个参与三方协议的去中心化验证者。
    

业务用户通过 zkPass 工具包从链上模板合约创建模板，并配置 KYC 验证模板相关参数，个人用户访问前端服务并调用 zkPass Kit，向链上任务合约发起 KYC 请求。任务合约根据 KYC 请求生成一个 tid，通过 VRF 随机指定参与 MPC 的 zkPass 节点，并将 tid 和 zkPass 节点信息返回给 zkPass Kit。由 zkPass Kit 选定的 zkPass 节点、身份颁发者服务器、三方根据 zkPass 协议启动多方握手、数据查询、ZKP 生成。zkPass Kit 将生成的 ZKP 发送到链上 ZK 验证合同进行零知识验证。ZK 验证合同执行验证过程，并根据提交的所有 x、w 和 proof 返回此 KYC 的验证结果。MPC的作用是重构TLS协议，包括enckey和mackey，不需要“借助哈希运算消息认证码传过来的信息进行zkp验证”，而是在MPC后，先commitment，然后在客户端生成ZKP，最后在链上验证零知识。

最后帝哥觉得zk是下个周期潜在的核心驱动力之一，具备了长线价值，因为他占据了以太坊扩容和隐私计算比较稳定。目前该项目也在Gitcoin捐款，大家可以去捐点。

zkpass官网：[https://zkpass.org/](https://zkpass.org/)

discord：[https://discord.gg/AhqG6XBQ](https://discord.gg/AhqG6XBQ)

twitter：[https://twitter.com/zkPass](https://twitter.com/zkPass)

我是懂币帝，用技术带你领略区块链魅力，第一时间获取行业最新资讯：

推特：@CoinmanLabs

微信：CoinmanLabs（社群客服微信进群）

---

*Originally published on [Coinman.eth](https://paragraph.com/@coinman-eth/zkpass)*
