你的位置: 首页> 常见知识> 文章正文

简明理解零知识证明历史、原理与发展现状 金色财经

时间: 2021年07月16日 22:26 | 作者:朗依制药 | 来源: 医药资讯| 阅读: 158次

原文标题:《零知识证明最简介绍:历史、原理、实现》

密码学可以说是区块链技术的基石,而其中的零知识证明更是因为深度契合区块链的技术特点,而得到了广泛的应用和关注。

本文旨在用最简单的语言和形式,向大家介绍零知识证明相关的历史、概念、原理、技术实现以及发展现状。

那么让我们开始吧。

密码学是一门可以追溯到 2000 多年前的古老学问,其发展历史主要可以划分为以下几个阶段:

这一时期的密码学主要被应用于军事领域,如何有效的传递密文,又能防止被敌人截获后破解,是其主要考量。16 世纪由法国人发明的「维吉尼亚密码」是古典密码理论发展上的一个重要里程碑,它使用一个词组作为密钥,词组中每一个字母都将确定一个替换表,「维吉尼亚密码」循环的使用每一个替换表完成明文字母到密文字母的变化。

对于第一个字母 i,取第 i 行第 s 列,得到 A;第二个字母 l,取第 l 行第 a 列,得到 L…依次循环,最后得到密文:ALHJWIQLCHWF。可见,在不知道密钥的前提下,不借助计算机已经非常难以破解这样的密码。

这一阶段真正的开始源于香农在 20 世纪 40 年代末发表的一系列论文,特别是 1949 年的「Communication Theory of Secrecy Systems (保密系统通信理论)」,把已有数千年历史的密码学推向了基于信息论的科学轨道,密码学终于从艺术转向科学。

这一时期的重要突破是 DES 的出现,直至今日也只能用穷举法对其进行破解。DES 加密算法风行世界,并在金融等商业领域得到了广泛的应用。

1977 年,麻省理工学院的 Ron Rivest、Adi Shamir、Leonard Adleman 提出的非对称加密算法 RSA,有效的解决了密钥传送的问题,标志着密码学进入了百家争鸣的现代阶段。

1989 年,由麻省理工学院研究人员 Goldwasser、Micali 及 Rackoff 提出了「零知识证明」的概念,当时的他们一定不曾想到,若干年后出现的区块链技术彻底激活了零知识证明的应用,而零知识证明则为区块链技术提供了一种绝佳的解决方案。零知识证明的方法特点和区块链技术的系统特点达成了完美的契合。

零知识证明是指,在不揭晓我所知道或拥有的某样东西的前提下,向别人证明我有很大概率确实知道或拥有这样东西。

zkSNARK 则是在区块链中应用最广泛的一种零知识证明,其全称是「zero-knowledge Succinct Non-Interactive Arguments of Knowledge (简洁非交互式零知识证明)」。

光听定义,大家一定一头雾水,本节将借用一个例子,尽可能接地气的向大家介绍这两个概念。

Alice、Bob 和 Charlie 都是数独爱好者,所谓数独是这样一种游戏,玩家需要根据 9×9 盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3x3)的数字均含 1 到 9,且不重复。

有一天 Alice 设计了一道巨难的数独题目来考 Bob 和 Charlie,Bob 苦思冥想了几天也做不出,便向 Alice 抱怨这肯定是道无解的题目。Alice 不想将实际的解告诉 Bob,但是又需要证明她确实知道解,于是她设计了一种巧妙的「零知识证明」的方式。

Alice 拿出 81 (9x9)张空白的卡片,并在每张纸上写上 1-9 中的一个数字,接着她将代表谜面的卡片数字面朝上、代表谜底的卡片数字面朝下都放在桌上,并组成了 9x9 的矩阵。

接下来怎么让 Bob 确认这就是正确的解呢?很简单,由 Bob 随机选择行、列或是粗线宫中的一种进行验证,假如选择行,则将这 81 张卡片按 9 行分别放到 9 个麻布袋中,摇匀并确保卡片次序打乱。

虽然数独游戏有 3 种情况需要验证(行、列、粗线宫),但每次验证时 Bob 实际只需要验证其中的一种,这有效减少了验证工作量,提供给验证者的实际是一个比原命题小的多的证明,这就是所谓的简洁。

文章标题: 简明理解零知识证明历史、原理与发展现状 金色财经
文章地址: //www.pedca.com/zhishi/500197.html
Top
Baidu