五分钟技术趣谈 | 浅谈零知识证明及应用

区块链
随着NFT市场的火热,区块链应用层被进一步打开,性能问题和隐私问题成为了区块链领域极受关注的两个方向。零知识证明技术因在区块链隐私保护和扩容方面的优势逐渐进入大众视野。

Part 01

什么是零知识证明 

零知识证明,指的是证明者能够在不向验证者提供任何超出陈述本身有效性的信息,使验证者相信某个论断是正确的,它实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。

证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。例如,给定一个随机数的哈希值,证明者可以使验证者相信确实存在具有该哈希值的数字,但不能透露它是什么。

Part 02

技术原理 

零知识证明的技术原理包括零知识证明在密码学上需要满足的基本属性,以及以经典的Schnorr协议为例说明交互式零知识证明协议到非交互零知识证明协议的转化。

2.1 基本属性

零知识证明涉及的密码学与数学理论较多,包括计算/统计不可区分性(Computationally/Statistically Indistinguishiable)、模拟器(Simulator)、随机预言机(Random Oracle)模型等计算复杂性理论内容,用较为通俗的语言描述即为:

(1)完备性(Completeness):只要证明者P拥有相应正确知识,就能够通过验证者V的验证,即P有足够大的概率使V确信。

(2)可靠性(Soundness):如果证明者P没有相应正确知识,则无法通过验证者V的验证,即P成功欺骗V的概率可忽略。

(3)零知识性(Zero-Knowledge):证明者P在交互的过程中仅向验证者V揭露其是否拥有相应正确知识,而不会泄露任何关于知识的额外信息。

2.2 交互式零知识证明

零知识证明起源于交互式证明协议,本文以Schnorr协议为例分析交互式零知识证明的原理和特点。Schnorr协议是一种身份认证协议,也是如今许多PKI数字签名方案。

PKI是Public Key Infrastructure的首字母缩写,直译为公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。

在Schnorr协议中,证明者A通过和验证者B进行三次交互的方式证明了其拥有公钥pk对应的私钥sk,而验证者B无法在整个过程中获取私钥sk的信息。

图片图片

2.3 非交互式零知识证明

交互式零知识证明协议依赖于验证者的随机尝试,需要证明者和验证者进行多次交互才能完成。非交互式零知识证明(Non-Interactive Zero-Knowledge, NIZK)将交互次数减少到一次,可实现离线证明和公开验证。例如,在区块链等零知识证明应用场景中,通常需要将证明进行直接发布,而非依赖于交互实现,且需要支持多方的公开离线验证。

Part 03

 理论发展  

零知识证明体系最早来源于 Goldwasser、Micali 和 Rackoff 于1985年合作提出并发表的论文《The Knowledge Complexity of Interactive Proof Systems》,这篇论文阐释了在一个交互系统中,经过 K 轮交互,需要多少知识被交换,从而证明一个证言是正确的,如果需要交换的知识为零,则称之为零知识证明。

早期的零知识证明技术在可用性和效率方面都有所欠缺,一直停留在理论层面,直到2015 年 Zcash 使用零知识证明系统,实现了对交易及金额隐私的保护,推动零知识证明技术快速发展。

目前零知识证明技术主流的算法有3种:

(1)zk-SNARK(Zero-Knowledge Succinct Non-interactive Arguments of Knowledge,零知识简明非交互式知识论证)是一类应用广泛的通用零知识证明方案,通过将任意的计算过程转化为若干门电路的形式,并利用多项式的一系列数学性质将门电路转化为多项式,进而生成非交互式的证明,可实现各类复杂的业务场景的应用。目前,zk-SNARK已在数字货币、区块链金融等区块链领域实际落地,是目前最为成熟的通用零知识证明方案之一。

zk-SNARK的启动需要可信设置,可信设置是指在受信任的设置中,多方各自生成一个部分密钥来启动网络,然后销毁该密钥。如果用于创建信任设置的密钥的保密信息没有被销毁,那么这些保密信息可能会被利用通过虚假验证来伪造交易。

(2)zk-STARK (Zero-Knowledge Succinct Transparent Arguments of Knowledge,代表零知识简洁透明的知识论证),zk-STARK是zk-SNARK算法的一种技术演变,解决了SNARK依赖可信设置的弱点,可以不依赖任何信任设置来完成区块链验证,从而降低启动网络的复杂性并消除任何串通风险。

(3)Bulletproofs(Short Non-interactive Zero-knowledge Proofs,简短的非交互式零知识证明协议),Bulletproofs兼顾了SNARKs和 STARKs的优点,无需可信设置即可运行,并且可以将加密证明的大小从超过 10kB 缩小到不到 1kB,压缩比率达到80%以上,同时降低80%的交易费用,因相对较低的交易费用、算法体积和无需信任在领域内受到极大关注。

经试验对比,三类算法的性能如下:

图片图片

Part 04

实践应用 

零知识证明能够保障数据的安全性,能够解决很多隐私问题,而且证明过程计算量小、双方交换的信息量大大减少,具备安全和高效的优点。零知识证明最初经常被应用于身份验证,数字签名,认证协议等,区块链的出现给零知识证明的应用提供了更多新的方向。

4.1 扩容

区块链由于自身的性能问题导致其难以满足当下需求,基于零知识的扩容方案将有望解决区块链性能瓶颈。扩容是指在不牺牲去中心化和安全性的前提下提高交易速度和交易吞吐量。ZK-Rollups是基于零知识证明的Layer2扩容方案,通过将计算转移到链下来提高区块链的吞吐量,即将大量交易打包到一个Rollup 区块内,并在链下为该区块生成一个有效性证明,Layer 1 上的智能合约只需验证该证明即可直接应用新的状态,可以实现更低的 Gas 和更高的链上安全性。

4.2 隐私保护

在区块链背景下,零知识证明可以用于验证交易的有效性而不会泄露交易中的发送者、接受者、涉及金额及其他敏感数据。因此零知识证明在保护链上数据隐私方面发挥着巨大作用,典型应用包括隐私L2、隐私公链、隐私币和隐私KYC。

4.2.1 隐私L2

Aztec Network是以太坊上第一个Layer2隐私区块链项目,旨在为中心化应用程序提供隐私和扩展能力。

Aztec采用类似比特币账户原理的UTXO模型。在该模型中,票据note是协议运算的基础单元,资产交易时,票据的值被加密,票据所有权变更,票据登记所将会记录每个票据的状态,用户的AZTEC资产即票据登记所里所有被该用户地址所拥有的有效票据之和。与以太坊的账户模型不同,基于UTXO模型的资产交易可以看作是note的所有权变更,而不是交易双方账户的余额状态更新,且只有进行交易的双方才知道所有权已经变更。

4.2.2 隐私公链

Aleo是第一个提供完全隐私保护应用程序的平台,是基于零知识证明隐私保护的公链。Aleo的核心是ZEXE,即去中心化隐私计算DPC(decentralized private computation),将计算和共识分开,提供zkCloud在链下执行交易,执行交易结束后将证明提交到链上。由于只有证明被提交到链上,从技术上来讲任何人都不可能看到或利用任何交易细节的知识,从而实现交易隐私。

Partisia Blockchain是一条半许可隐私公链,专为信任、透明、隐私和高速而构建,用于公共和私人信息的通用协调。Partisia在区块链上提供额外的数据保护层,用户可以通过零知识计算(ZK Computations )控制对其数据的访问。零知识计算即融合零知识证明、安全多方计算、全同态加密等技术,为区块链增加隐私和保密性。

4.2.3 隐私币

Zcash被戏称为隐私币鼻祖,保密交易的隐私依赖于标准密码学中的哈希函数和流密码,在链上将交易记录中的发送人、接收人、交易量进行加密,用户可裁量选择是否向其他人提供查看密钥(拥有此密钥的人才能看到交易的内容),在链下使用zk-SNARKs 对交易的有效性进行验证。

4.2.4 隐私KYC

KYC 是Know Your Customer的简称,可以理解为实名认证。zkPass是基于安全多方计算和零知识证明的去中心化KYC 解决方案,允许用户通过Web2 身份凭据向第三方匿名证明他们的身份声明。如Ufile Chain诚信档案联盟链平台,一个专注于个人信息的认证、储存、流通、确权和隐私保护的联盟区块链平台,以高校、企业、政府部门等这些权威机构为核心节点的联盟链体系,Ufile Chain运用零知识证明技术来保证个人信息的隐私安全。数据使用者只能获取到与其业务相关的有限信息,确保数据使用者难以获取完整有效的明文用户信息,包括UfileChain官方在内,都无法获取有效的用户个人信息。

4.3 上层应用

基于上述基础设施,零知识证明技术在游戏、去中心化金融DeFi、NFT(非同质化代币)、数字身份、数字钱包等方向的上层应用中也展现了其扩容和隐私保护的能力,部分应用如下表所示:

图片图片

Part 05

总结

零知识证明技术在理论研究和工程实现层面都取得了较好的发展,零知识证明技术已然成为区块链领域一项重要的底层技术,尤其是为以太坊等底层链正面临的扩容和隐私保护相关问题提供了解决方案。随着区块链等新兴技术的发展以及隐私计算需求的兴起,零知识证明技术在安全多方计算、金融领域、共性连金融领域等场景中都有着一定的应用潜力。

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2023-07-23 18:47:59

Docker开源

2023-04-15 20:25:23

微前端

2023-07-02 16:34:06

GPU虚拟化深度学习

2023-08-06 07:05:25

Android优化

2023-09-02 20:22:42

自动化测试软件开发

2023-07-16 18:49:42

HTTP网络

2023-06-03 21:06:05

2023-07-02 16:17:31

VR虚拟现实

2023-07-02 16:09:57

人工智能人脸识别

2023-09-12 07:10:13

Nacos架构

2023-09-03 19:21:07

大数据架构

2023-08-23 07:21:44

JsonSchema测试

2023-07-31 08:55:15

AI技术网络暴力

2023-08-07 06:39:03

网络传输

2023-08-29 06:55:43

2023-07-12 15:50:29

机器学习人工智能

2023-08-29 06:50:01

Javamaven

2023-07-12 16:03:37

Android开发架构

2023-08-06 07:00:59

Openstack网络

2023-09-17 17:51:43

Android 14
点赞
收藏

51CTO技术栈公众号