零知识证明技术在区块链上的应用

原创 PlatON 

零知识证明技术在区块链上的应用

零知识证明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。

目前零知识证明在现实中已得到了广泛应用,尤其是在认证协议、数字签名方面。本篇内容将分为两部分,解析零知识证明技术在区块链中的应用。

| ZKP简介

零知识证明技术(ZKP, zero-knowledge proof)是现代密码学的一个重要组成部分,它是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。一个零知识证明必须满足三个性质:

  • 完备性(Completeness):当证明者和验证者都表现诚实,遵循协议来执行验证步骤时,如果证明者的陈述是真的,那么一定可以被验证者接受。
  • 可靠性(Soundness):如果证明者的陈述是假的,那么任何一个作弊的证明者不可能使一个诚实的验证者相信他的陈述。
  • 零知识(Zero-knowledge):证明执行完成后,验证者仅能知道证明者的陈述是否为真,除此以外,他在证明过程中获取不到其它任何信息。零知识证明技术的背后依赖于强大的理论基础,如计算复杂性理论和信息论。包括图灵机、概率可检查证明、P/NP问题等都在其研究范围内。

零知识证明技术理论研究已经发展了三十几年,发展历程可以分为三期,20世纪80年代初由S.Goldwasser、S.Micali及C.Rackoff提出。

早期,密码学家提出了一些列概念,如Fiat-Shamir变换、CRS、PCP、Sigma等协议概念,为后续零知识证明发展奠定了基础。

理论发展期,2000年后,密码学家提出了双线性映射的非交互式零知识证明技术;基于安全多方计算产生零知识证明的技术思路;GKR协议等,零知识证明逐渐开始走向成熟。

应用发展期,2010年后,零知识证明技术逐渐走向落地,如Groth16,PLONK等被应用到各个领域。

| ZKP算法

近几年,零知识证明技术在区块链领域发展出很多算法,下面整理了目前主流区块链算法

下面简单介绍下目前应用较为广泛的三种算法。

Bulletproofs

Bulletproofs由斯坦福大学的应用密码学小组(ACG)提出。其具有不需要进行可信设置,应用范围广,证明体积小,验证速度快等特点,目前很多项目均使用到这项技术。

Groth16

Groth16是由Jens Groth在2016年提出的算法。该算法的优点是提供的证明元素个数少(只需要3个),验证等式简单,保证完整性和多项式计算能力下的可靠性。目前广泛应用到Layer 1、Layer 2、Dapp。

Plonk

Plonk是由Ariel Gabizon等人提出,它支持一个通用的、可升级的参考串,并且只要电路设计的尺寸不超过SRS上限阈值,一些场景和功能实际上可以共享一个SRS。

本文转载自

(1)
PlatONWorld-M6的头像PlatONWorld-M6管理员
上一篇 29 7 月, 2021 10:00
下一篇 30 7 月, 2021 10:00

相关推荐

发表回复

登录后才能评论