优惠论坛
Well123
注册
找回密码 |
天策评选的优秀公司,所有会员与公司发生的问题我们将负责尽力协助处理。
收起/展开
新晋公司
 

新晋公司具有驻站代表,并不在论坛纠纷服务范围内,请会员自行判断选择

  • 356
S级信誉公司
ManBetX万博
YZ
乐投
taptap(点点)
E世博
瑞丰国际
A级信誉公司
吉祥坊
星宝合营
乐动体育
B级信誉公司
bet365
C级合作公司
CMP
金星
LOKI
平博
  • 推荐主题
  • 热门活动
  • 币圈快讯
  • 商城动态
重要通知
 
论坛搜索
              搜索
Array ( [fid] => 6980 [description] => [password] => [icon] => [redirect] => [attachextensions] => [creditspolicy] => Array ( [post] => Array ( [usecustom] => 1 [cycletype] => 1 [cycletime] => 0 [rewardnum] => 75 [extcredits1] => 0 [extcredits2] => 0 [extcredits3] => 0 [extcredits4] => 0 [extcredits5] => 0 [extcredits6] => 0 [extcredits7] => 0 [extcredits8] => 0 [rid] => 1 [fid] => 6980 [rulename] => 发表主题 [action] => post [fids] => 32,52,67,447,1120,1151,1156,6750,6762,6763,6766,6769,6772,6773,6787,6796,6808,6809,6810,6813,6814,6820,6829,6830,6846,6856,6864,6865,6827,6930,6931,6776,6858,6880,6764,6932,6871,6758,6905,1116,6788,6812,6798,6736,6759,6842,6966,6767,6828,6924,6935,6936,6938,6940,6941,6826,6909,6803,6919,6911,6908,6881,6920,6912,6913,6921,6925,6922,6789,6818,6819,6872,6928,6969,6889,6888,6917,6939,6947,6961,6937,6943,6970,6869,6900,6902,6783,6817,1111,6870,6821,6951,6876,6952,6954,6960,6942,6910,6949,6962,6963,6964,6927,6926,6973,6728,6929,6874,6894,6896,6885,6857,6868,1113,6778,56,6844,6878,6802,6933,6811,6923,6877,6875,6918,6892,6757,6832,6833,6795,6793,6848,6837,6849,6850,6851,6852,6853,6854,6863,6882,6836,6790,6838,6794,6791,6873,555,6895,6934,6958,6944,6945,6907,6779,6886,6950,6904,6956,6862,6957,6855,6955,6959,6914,6965,6971,6972,6953,6975,6976,6799,6974,6824,6815,6891,6866,6979,6977,6765,6903,6948,6845,6879,1121,6980 ) [reply] => Array ( [usecustom] => 1 [cycletype] => 4 [cycletime] => 0 [rewardnum] => 0 [extcredits1] => 0 [extcredits2] => 0 [extcredits3] => 0 [extcredits4] => 0 [extcredits5] => 0 [extcredits6] => 0 [extcredits7] => 0 [extcredits8] => 0 [rid] => 2 [fid] => 6980 [rulename] => 发表回复 [action] => reply ) [digest] => Array ( [usecustom] => 1 [cycletype] => 4 [cycletime] => 0 [rewardnum] => 0 [extcredits1] => 0 [extcredits2] => 0 [extcredits3] => 0 [extcredits4] => 0 [extcredits5] => 0 [extcredits6] => 0 [extcredits7] => 0 [extcredits8] => 0 [rid] => 3 [fid] => 6980 [rulename] => 加精华 [action] => digest ) ) [formulaperm] => a:5:{i:0;s:0:"";i:1;s:0:"";s:7:"message";s:0:"";s:5:"medal";N;s:5:"users";s:0:"";} [moderators] => [rules] => [threadtypes] => Array ( [status] => 1 [required] => 0 [listable] => 0 [types] => Array ( ) ) [threadsorts] => Array ( ) [viewperm] => [postperm] => [replyperm] => [getattachperm] => [postattachperm] => [postimageperm] => [spviewperm] => [seotitle] => [keywords] => [seodescription] => [supe_pushsetting] => [modrecommend] => Array ( [open] => 0 [num] => 10 [imagenum] => 0 [imagewidth] => 300 [imageheight] => 250 [maxlength] => 0 [cachelife] => 0 [dateline] => 0 ) [threadplugin] => Array ( ) [replybg] => [extra] => a:2:{s:9:"namecolor";s:0:"";s:9:"iconwidth";s:0:"";} [jointype] => 0 [gviewperm] => 0 [membernum] => 0 [dateline] => 0 [lastupdate] => 0 [activity] => 0 [founderuid] => 0 [foundername] => [banner] => [groupnum] => 0 [commentitem] => [relatedgroup] => [picstyle] => 0 [widthauto] => 0 [noantitheft] => 0 [noforumhidewater] => 0 [noforumrecommend] => 0 [livetid] => 0 [price] => 0 [fup] => 6974 [type] => sub [name] => 币圈资讯 [status] => 1 [displayorder] => 0 [styleid] => 0 [threads] => 84891 [posts] => 84962 [todayposts] => 0 [yesterdayposts] => 0 [rank] => 56 [oldrank] => 56 [lastpost] => 2760085 The Smarter Web Company 筹集 500 万美元,用于增持比特币 1756189025 比推快讯 [domain] => [allowsmilies] => 1 [allowhtml] => 1 [allowbbcode] => 1 [allowimgcode] => 1 [allowmediacode] => 0 [allowanonymous] => 0 [allowpostspecial] => 1 [allowspecialonly] => 0 [allowappend] => 0 [alloweditrules] => 0 [allowfeed] => 0 [allowside] => 0 [recyclebin] => 1 [modnewposts] => 0 [jammer] => 0 [disablewatermark] => 0 [inheritedmod] => 0 [autoclose] => 0 [forumcolumns] => 0 [catforumcolumns] => 0 [threadcaches] => 0 [alloweditpost] => 1 [simple] => 16 [modworks] => 0 [allowglobalstick] => 1 [level] => 0 [commoncredits] => 0 [archive] => 0 [recommend] => 0 [favtimes] => 0 [sharetimes] => 0 [disablethumb] => 0 [disablecollect] => 0 [ismoderator] => 0 [threadtableid] => 0 [allowreply] => [allowpost] => [allowpostattach] => )
打印 上一主题 下一主题
零知识证明入门指南: 发展历史、应用和基本原理
[复制链接]
avatar
跳转到指定楼层
1#
从头梳理 ZKP 理论和应用层面的一些变化。

撰文:HashKey Capital

当前区块链行业里零知识证明项目(ZKP)增速惊人,特别是 ZKP 在扩容和隐私保护两个层面应用的崛起,令我们接触到了各种花样繁多的零知识证明项目。由于 ZKP 极富数学性的特质,对于加密爱好者来说,想要深度了解 ZK 的难度大幅提升。因此我们也希望从头梳理 ZKP 理论和应用层面的一些变化,与读者一起探索对于 crypto 行业的影响和价值——通过几篇报告的形式共同学习,也作为 HashKey Capital 研究团队的思考总结。本篇是该系列的第一篇,主要介绍 ZKP 的发展历史、应用和一些基本原理。

一、零知识证明的历史

现代零知识证明体系最早来源于 Goldwasser、Micali 和 Rackoff 合作发表的论文:The Knowledge Complexity of Interactive Proof Systems(即 GMR85),该论文提出于 1985 年,发表于 1989 年。这篇论文主要阐释的是在一个交互系统中,经过 K 轮交互,需要多少知识被交换,从而证明一个证言(statement)是正确的。如果可以让交换的知识为零,则被称之为零知识证明。这里面会假设证明者(prover)具有无限资源,而验证者(verifer)只具有有限资源。而交互式系统的问题在于证明不完全是数学上可证的,而是概率意义上正确的,虽然概率很小 (1/2^n)。

所以交互式系统并不完美,只有近似完备性,以此为基础诞生的非交互式系统(NP)系统则具有完备性,成为零知识证明系统的完美所选。

早年的零知识证明系统在效率以及可用性方面都有所欠缺,所以一直都停留在理论层面,直到最近 10 年才开始蓬勃发展,伴随着密码学在 crypto 成为显学,零知识证明走向台前,成为至关重要的一个方向。特别是发展出一个通用的、非交互的、证明大小有限的零知识证明协议,是其中最关键的探索方向之一。

基本上零知识证明就是要在证明的速度、验证的速度和证明体积的大小之间做取舍,理想的协议是证明快、验证快、证明体积小。

零知识证明最重要的突破是 Groth 在 2010 年的论文 Short Pairing-based Non-interactive Zero-Knowledge Arguments,也是 ZKP 里面最重要的一组 zk-SNARK 的理论先驱。

零知识证明在应用上最重要的进展就是 2015 年 Z-cash 使用的零知识证明系统,实现了对交易及金额隐私的保护,后来发展到 zk-SNARK 和智能合约相结合,zk-SNARK 进入了更为广泛的应用场景。

在此期间,一些重要的学术成果包括:

  • 2013 年的 Pinocchio (PGHR13):Pinocchio: Nearly Practical Verifiable Computation,将证明和验证时间压缩到适用范围,也是 Zcash 使用的基础协议。

  • 2016 年 的 Groth16:On the Size of Pairing-based Non-interactive Arguments,精简了证明的大小,并提升了验证效率,是目前应用最多的 ZK 基础算法。

  • 2017 年的 Bulletproofs (BBBPWM17) Bulletproofs: Short Proofs for Confidential Transactions and More,提出了 Bulletproof 算法,非常短的非交互式零知识证明,不需要可信的设置,6 个月以后应用于 Monero,是非常快的理论到应用的结合。

  • 2018 年 的 zk-STARKs (BBHR18) Scalable, transparent, and post-quantum secure computational integrity,提出了不需要可信设置的 ZK-STARK 算法协议,这也是目前 ZK 发展另一个让人瞩目的方向,也以此为基础诞生了 StarkWare 这个最重量级的 ZK 项目。

其他的发展包括 PLONK、Halo2 等也是极为重要的进展,也对 zk-SNARK 做出了某些层面上的改进。

二、零知识证明的应用简述

零知识证明最广泛的两个应用就是隐私保护和扩容。早期随着隐私交易和几个有名的项目 Zcash 和 Monero 等推出,隐私交易一度成为非常重要的门类,但由于隐私交易的必要性并没有业界希望的那样突出,因此这一类代表性项目开始慢慢进入二三线的阵营(不是退出历史舞台)。而应用层面,扩容的必要性提升到无以复加,随着以太坊 2.0(已经改名叫 consensus layer)在 2020 年转变为以 rollup 为中心的路线,ZK 系列正式又回归业界的视线,成为焦点。

隐私交易:隐私交易有很多已经实现的项目,包括使用 SNARK 的 Zcash,Tornado,使用 bulletproof 的 Monero, 以及 Dash。Dash 严格意义上用的不是 ZKP,而是一种简单粗暴的混币系统,只可以隐藏地址而不能隐藏金额,在此略过不表。

Zcash 应用的 zk-SNARKs 交易步骤如下:

Source: Demystifying the Role of zk-SNARKs in Zcash
  • System setup 阶段生成证明秘钥(加密证明多项式)和验证秘钥,借助 KeyGen function

  • CPA 阶段 ECIES 加密方法(Elliptic Curve Integrated Encryption Scheme)用来生成公钥和私钥

  • Minting Coins 阶段,生成新币的数量。公共地址和币的 commitment

  • Pouring 阶段,生成 zk-SNARK 证明,证明被加到了 pour 交易账本中

  • Verification 阶段,验证者验证 Mint 和 Pour 的交易量是否正确

  • Receiving 阶段,receiver 接收币。如果想使用收到的币,则继续调用 Pouring,形成 zk-SNARK 验证,重复上述 4-6 的步骤,完成交易。

Zcash 使用零知识还是有局限性的,就是其基于 UTXO, 所以部分交易信息只是被 shield 了,而不是真正的掩盖。因为其基于比特币的设计的单独网络,所以难以扩展(和其他应用结合)。真正使用 shielding(即隐私交易)的使用率只有不到 10%,说明隐私交易并没有很成功的扩展。(from 2202)

Tornado 使用的单一大混币池更加通用,而且基于以太坊这样“久经考验”的网络。Torndao 本质上就是一个用了 zk-SNARK 的混币池,可信设置基于 Groth 16 的论文。Tornado Cash 可以提供的特性包括:

  • 只有被存进去的 coin 可以被提取

  • 没有币可以被提取两次

  • 证明过程和币的废止通知(Nullifier)是绑定的,相同证明但不同 Nullifier 的哈希不会允许提币

  • 安全性有 126-bit 的安全,不会因为 composition 而降级

Vitalik 提到过,和扩容相比,隐私相对比较容易实现,如果一些扩容的 protocol 都可以成立的话,隐私基本上不会成为问题。

扩容:ZK 的扩容可以在一层网络上做,如 Mina,也可以在二层网络上做,即 zk-roll up. ZK roll up 的思路可能最早来自于 Vitalik 于 2018 的 post,On-chain scaling to potentially ~500 tx/sec through mass tx validation。

ZK-rollup 有两类角色,一类是 Sequencer, 还有一个是 Aggregator。Sequencer 负责打包交易,Aggregator 负责将大量的交易合并并创造一个 rollup, 并形成一个 SNARK 证明(也可以是基于其他算法的零知识证明),这个证明会和 Layer1 以前的状态进行比较,进而更新以太坊的 Merkle 树,计算新的状态树。

Source: Polygon

ZK rollup 的优缺点:

  • 优点:费用低,不像 OP 会被经济攻击,不需要延迟交易,可以保护隐私,快速达成最终性

  • 缺点:形成 ZK 证明需要大计算量,安全问题(SNARK 需要一个可信设置),不抗量子攻击(SNARK, STARK 可以),交易顺序可能被改变

Source: 以太坊 research

根据数据可用性以及证明的方法,Starkware 对 L2 有一张经典的分类图(Volition 的数据可用层可以在链上和链下选择):

Source: Starkware

目前市场上最有竞争力的 ZK rollup 项目有:Starkware 的 StarkNet,Matterlabs 的 zkSync 和 Aztec 的 Aztec connect,Polygon 的 Hermez 和 Miden,Loopring,Scroll 等。

基本上技术路线就在于 SNARK( 及其改进版本 ) 和 STARK 的选择,以及对 EVM 的支持(包括兼容还是等同)。

  • Aztec 开发了通用化的 SNARK 协议 -Plonk 协议,运行中的 Aztec3 可能会支持 EVM,但是隐私优先于 EVM 兼容

  • Starnet 用的是 zk-STARK,一种不需要可信设置的 zkp,但是目前不支持 EVM,有自己的编译器和开发语言

  • zkSync 也是用的 plonk,支持 EVM。zkSync 2.0 是 EVM 兼容的,有自己的 zkEVM

  • Scroll, 一种 EVM 兼容的 ZK rollup, 团队也是以太坊基金会 zkEVM 项目的重要贡献者

简要讨论下 EVM 兼容性问题:

ZK 系统和 EVM 的兼容一直令人头疼,一般项目会在两者间取舍。强调 ZK 的可能会在自己的系统里做一个虚拟机,并有自己的 ZK 语言以及编译器,但会加重开发者的学习难度,而且因为基本上不开源,会变成一个黑箱子。一般业界目前是两种选择,一是和 Solidity 的操作码完全兼容,另一种是设计一种新的虚拟机同时 ZK 友好并兼容 Solidity。业界一开始也没有想到可以这么快的融合,但是近一两年技术的快速迭代,让 EVM 的兼容提升到一个新高度,开发者可以做到一定程度的无缝迁移(即以太坊主链到 ZK rollup),是振奋人心的进展,这将影响 ZK 的开发生态和竞争格局。我们会在之后的报告中仔细讨论这个问题。

三、ZK SNARK 实现的基本原理

Goldwasser、Micali 和 Rackoff 提出了零知识证明有三个性质:

  • 完整性(Completeness):每一个拥有合理见证的声明(statement),都是可以被验证者验证的

  • 可靠性(Soundness):每一个只拥有不合理见证的声明,都不应该被验证者验证

  • 零知识(Zero-knowledgeness):验证过程是零知识的

所以为了了解 ZKP, 我们从 zk-SNARK 开始,因为很多目前的区块链应用都是从 SNARK 开始。首先,我们先了解一下 zk-SNARK。

zk-SNARK 的意思是:零知识证明(zh-SNARK)是 zero-knowledge Succint Non-interactive ARguments of Knowledge。

  • Zero Knowledge:证明过程零知识,不会暴露多余信息

  • Succinct:验证体积小

  • Non-interactive:非交互过程

  • ARguments:计算具备可靠性,即有限计算能力的证明者不能伪造证明,无限计算能力的证明者可以伪造证明

  • of Knowledge:证明者无法在不知道有效信息的情况下构建出一个参数和证明

  • 对于证明者来说,在不知道证据(Witness,比如一个哈希函数的输入或者一个确定 Merkle-tree 节点的路径)的情况下,构造出一组参数和证明是不可能的。

Groth16 的 zk-SNARK 的证明原理和如下:

Source: https://learnblockchain.cn/article/3220

步骤是:

  1. 将问题转换为电路

  2. 将电路拍平成 R1CS 的形式.

  3. R1CS 转换成 QAP(Quadratic Arithmetic Programs)形式

  4. 建立 trusted setup, 生成随机参数,包括 PK (proving key),VK(verifying key)

  5. zk-SNARK 的证明生成和验证

下一篇我们将开始研究 zk-SNARK 的原理、应用,通过几个案例来透视 ZK-SNARK 的发展,并探索它与 zk-STARK 的关系等。

来源:金色财经

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

:) :( :D :'( :@ :o
:P :$ ;P :L :Q :lol
:loveliness: :funk: :curse: :dizzy: :shutup: :sleepy:
:hug: :victory: :time: :kiss: :handshake: :call:
{:8_286:} {:8_287:} {:8_288:} {:8_289:}
{:8_290:} {:8_291:} {:8_292:} {:8_293:}
{:8_294:} {:8_295:} {:8_296:} {:8_297:}
{:8_298:} {:8_299:} {:8_300:} {:8_301:}
{:8_302:} {:8_303:} {:8_304:} {:8_305:}
{:8_306:} {:8_307:} {:8_308:} {:8_309:}
{:8_310:} {:8_311:} {:8_312:}
{:8_313:} {:8_314:} {:8_315:} {:8_316:}
{:8_317:} {:8_318:} {:8_319:} {:8_320:}
:) :( :D :'( :@ :o
:P :$ ;P :L :Q :lol
:loveliness: :funk: :curse: :dizzy: :shutup: :sleepy:
:hug: :victory: :time: :kiss: :handshake: :call:
:) :( :D :'( :@ :o
:P :$ ;P :L :Q :lol
:loveliness: :funk: :curse: :dizzy: :shutup: :sleepy:
:hug: :victory: :time: :kiss: :handshake: :call:
:hug: :victory:
:) :( :D :'( :@ :o
:P :$ ;P :L :Q :lol
:loveliness: :funk: :curse: :dizzy: :shutup: :sleepy:
:hug: :victory: :time: :kiss: :handshake: :call:
:hug: :victory: :time: :kiss: :handshake: :call:
:hug: :victory: :time: :kiss: :handshake: :call:
:hug: :victory: :time: :kiss: :handshake: :call:
:hug: :victory: :time: :kiss: :handshake: :call:
:hug: :victory: :time: :kiss: :handshake:
未有绑定记录
 


Powered by 天策论坛   © 2007-2025 天策论坛 | 小黑屋 | 手机|
1717 : 0