证明的英文单词,证明的英文单词怎么写

Web3.0中,去中心化身份(DID)以及比特币等虚拟货币交易时都需要验证拥有者的身份,由于没有中心化的第三方机构存在,那该怎么证明"你确实有什么"和"我就是我"的问题呢?其中零知识证明起了非常重要的作用。

证明的英文单词,证明的英文单词怎么写

零知识证明定义,参考维基百科

密码学中,零知识证明(英语:zero-knowledge proof)或零知识协议(zero-knowledge protocol)是一方(证明者)向另一方(检验者)证明某命题的方法,特点是过程中除“该命题为真”之事外,不泄露任何资讯。因此,可理解成“零泄密证明”。例如,欲向人证明自己拥有某情报,则直接公开该情报即可,但如此则会将该细节亦一并泄露;零知识证明的精粹在于,如何证明自己拥有该情报而不必透露情报内容。这也是零知识证明的难点。

简单点说就是,证明者可以在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。最关的两个点是"不泄露信息"和"证明有效"。

证明的英文单词,证明的英文单词怎么写

如上图所示,在虚拟货币交易中,小明通过区块链钱包向咖啡店老板支付了一笔虚拟货币,用于购买一杯拿铁咖啡。由于比特币等虚拟货币是没有中心化节点的,完全是P2P的对等网络,没有一个权威机构可以证明这笔交易已经生效。在比特币网络中,需要由小明的钱包发起一笔交易,然后广播到全网,网络中的矿工节点验证和争夺记账权。当网络中的节点达成共识后,包含交易的区块入链,最终交易生效。最后,小明喝到了咖啡,商家收到了虚拟货币,矿工收到了出块激励和交易手续费。全网参与验证的节点,怎么证明这笔交易是准确的呢?或者说,这笔交易的发起方是不是小明呢?如果有人伪造了小明的交易,是不是可以花小明的虚拟货币来消费呢?

证明的英文单词,证明的英文单词怎么写

每个用户都有一对公钥和密钥来管理钱包,公钥类似于银行账户的用户名,私钥类似于账户密码,账户地址是根据公钥通过不可逆算法算出来的字符串,公钥和地址都是可以公开的,私钥是需要个人妥善保管的。如果要证明这笔交易的发起方确实是小明,小明的钱包如果将私钥打包在交易中,那全网都知道了小明的私钥,相当于小明的银行卡密码被泄露了,那小明的资产就极其不安全。所以私钥不能泄露,多少比特币用户早年因为私钥丢了,结果当初不值钱的比特币现在已经是一笔巨款,简直是拍断大腿。

因此,接下来的问题是怎么在不泄露私钥的情况下证明这笔交易确实是有小明自己发起的,然后让网络上形成共识让这笔交易入链,交易完成后,小明才能喝到咖啡,咖啡店才能收到钱。这就是个很典型的零知识证明问题。

怎么向别人证明你有走廊中门的钥匙?

证明的英文单词,证明的英文单词怎么写

有这样一个场景,如下图所示。有一个缺口环形的长廊,B和A在途中当前位置。B先走到C位置发现有个门无法通行到D,接下来B走到D位置发现同样的门无法通行到C。A对B说"我有一把钥匙可以打开CD中间的门,但是这个钥匙是私密的,我不想让你看到"。那该怎么解这个问题呢?

  1. 步骤1:B站在当前位置不动,让A从B身边经过,然后走向C
  2. 步骤2:A看了看B没有跟过来,赶紧拿出钥匙打开门
  3. 步骤3:B打开门后到达D,然后从另一个方向出来经过B的位置然后回到门口
  4. 步骤4:B确信A确实有钥匙。

整个过程中,A没有向B泄露任何信息,但是B却相信了A拥有CD间门钥匙的结论。

怎么识别老朋友?

在很多年以前,A和B都是小朋友的时候经常在一起玩耍,两个人是好朋友,经常玩对暗号的游戏。A说暗号1时,A经常回复暗号2。好多年过去了,A和B长相大变,但是有一次见面时候,B认出了A,说"好久不见啊,我是B"。A却没有认出B,认为B是一个骗子,有可能是诈骗犯。B呢,又不想把身份证拿给A看,因为这会泄露自己的信息。最终A说"我们来对暗号吧?"。接下来B成功对应上了两个人小时候的暗号,最终还有相认。

证明的英文单词,证明的英文单词怎么写

整个过程中,B没有向A泄露身份证信息。

哪个数学家发明了一元三次求根公式?

其实,零知识证明并不是什么新东西,早在16世纪的文艺复兴时期,意大利有两位数学家为竞争一元三次方程求根公式发现者的桂冠,就采用了零知识证明的方法。当时,数学家塔尔塔里雅和菲奥都宣称自己掌握了这个求根公式,为了证明自己没有说谎,又不把公式的具体内容公布出来(可能在当时数学公式也是一种技术秘密),他们摆开了擂台:双方各出30个一元三次方程给对方解,谁能全部解出,就说明谁掌握了这个公式。比赛结果显示,塔尔塔里雅解出了菲奥出的全部30个方程,而菲奥一个也解不出。于是人们相信塔尔塔里雅是一元三次方程求根公式的真正发现者,虽然当时除了塔尔塔里雅外,谁也不知道这个公式到底是个什么样子。

抽象一层后的逻辑

过程中主要有两个角色,一个是证明者,另一个是检验者。检验者向证明者提出真实可以验证的问题,证明者给出真实可靠的答案。最终检验者相信证明者的结论有效。

证明的英文单词,证明的英文单词怎么写

底层的逻辑框架

零知识证明大体有四部分组成。第一部分是多项式问题的转化,需要将待证明的问题转换为多项式问题,证明者提交证明让验证者确认多项式成立。第二部分是随机挑选验证,随机选择数值验证多项式成立。第三部分是同态隐藏,这个是函数的一种特性,输入和输出的计算保持同态。

以加法同态为例,

  1. 给定f(x),很难导出x
  2. 不同的输入对应不同的输出
  3. f(x+y)可以从f(x)、f(y)计算得出

第四部分是零知识,即证明者和验证者之间除了问题证明与否外,不可知道其他任何知识。

证明的英文单词,证明的英文单词怎么写

首先需要把问题进行归约后抽象成一个QSP问题,即给定一系列的多项式以及给定一个目标多项式,找出多项式的组合能够整除目标多项式。具体的证明过程比较复杂,感兴趣的同学可以自行搜索。在setup阶段会公开一部分公开信息,然后证明者来解QSP问题获得解,然后将解和证据提交给验证者,验证者根据解和证据来确定是否相信证明者的论断。

继续回到小明买咖啡的付款问题

小明发起支付交易后,小明的钱包用小明的私钥对交易进行签名,这里要用到签名函数。在交易数据中会包含小明的公钥,网络中的验证节点会通过公钥来验证小明的钱包应用对交易的签名,这里用到了验证函数。如果可以验证通过,则表示这笔交易一定是小明发起的,因为小明的公钥匹配了小明的私钥。否则,这笔交易就是伪造的。

这里继续分析一下虚拟货币中的公钥、私钥和地址的概念。

证明的英文单词,证明的英文单词怎么写

比特币等虚拟货币钱包中会包含一组密钥对,每个密钥对由公钥和私钥组成。私钥通常是随机挑选数字组成的字符串,比特币场景下的私钥是一个随机挑选的数字。可以通过特定的函数计算生成公钥,进而可以通过公钥生成比特币的地址。私钥生成公钥、公钥生成私钥这两个计算函数都是单向加密函数,不可逆向推导。因此,在比特币场景下,只要你的私钥不丢,虚拟资产就不会丢,一旦私钥丢了,全都丢了。

证明的英文单词,证明的英文单词怎么写

对于签名函数来说,如果你输入一条交易记录和你的私钥,就会得到一串字符,即用户对于这一条交易表示认可的电子签名。同时这个函数是不可逆转的,因为只有用户知道账户的私钥,当然也只有该用户可以签名。对验证函数来说,输入待验证的交易、电子签名以及向所有人都可以公开的账户公钥,验证函数就可以告诉你这个电子签名是不是真的来自于这个账户,即公钥和签名中隐藏的私钥信息是否匹配。

零知识证明有着巨大的现实意义。其一,零知识证明对数字货币的认证意义重大,可以保证交易的准确性。其次,零知识证明可以用于人的身份验证,即在不泄露密码的前提下,验证方通过一系列问题来让对方提供"我知道答案",或者在安全领域提供"我就是我本人"的证明。

............阅读全文............

请关注微信公众号如来写作网

如来写作网gw.rulaixiezuo.com

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3231169@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.xuekezhijia.com/8480.html