零和知识证明和区块链的关系
㈠ 什么是零知识证明
零知识证明,指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的
从本质上讲,零知识证明是一种协议。所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:
1. 协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行。
2. 协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议。
3. 通过执行协议必须能够完成某项任务。
基于数学的推理虽然非常复杂,但思路却很简单一些方案。
所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法。看起来有点别扭,给出几个个例子:(摘自网络)
1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:
(一)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
(二)B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙
后面这个方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。
2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。
(一)B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。
(二)A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。
后面的方法属于零知识证明。
3)有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。
==========================================================
我的理解,零知识证明就是一种认证协议,A向B证明自己拥有“某种东西”(例如身份),而不会给B有使用自己特性的机会,也就是不能让B拥有向别人证明他是A的能力,现实生活中,比如,身份证,你可以出示身份证给他人证明自己,但你不用把你的身份证给他,否则他就可以冒充你,这就是零知识证明协议。
零知识证明协议通常由三个协议步骤组成:
目击者:证明者选择了一个随机数字,发给验证者一个这一秘密数字的知识。这个数字与一系列的问题相关,而证明者能够回答这些问题。
挑战:验证者在这些问题集中随机选择一个问题发给证明者
回复:证明者利用他的秘密数字解决了这个问题,并发给验证者
还是身份证的例子:
A:我是A,并告诉B我有身份证
B:身份证给我看一下?
A:出示身份证。
--------------------
零知识性证明应该是证明A到底泄露了多少信息给B,例如,我的身份证例子必须是在B无法复制伪造身份证的前提下,否则,我们还是泄露了信息给B,建立的曲线模型应该就是考虑了这些。
我再举个认证的的例子(甲校验乙):
方式一:
甲产生一个随机消息发给乙,乙用其私钥加密后发给甲,甲用乙的公钥解密并验证消息
这里就有一个问题,乙有时候并不知道他加密的是什么消息,甲可以拿着乙加密后的消息冒充乙,或者解密(虽然很难)。这种验证的零知识性就不好。
改进一下:在甲确定乙的公钥的前提下,乙自己找一个无关紧要的消息,发送两个消息给甲,一个消息首先使用了消息摘要,然后用私钥加密,另一个是没有加密的消息,这样甲仍然可以验证乙,但零知识性就很好了。
---------------------
==============================
网上有很多关于零知识证明的有趣的故事。
㈡ 区块链中的零知识证明是什么
如何不给你看我妈但是仍然证明我妈是我妈?
零知识证明是指证明者能够在不向验证者提供信息本身内容的情况下,使验证者相信某个论断是真实可信的一种技术。目前匿名性非常突出的数字资产ZCash的匿名交易就是依靠“零知识证明”实现的。
举个例子,A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时候,A可以选择把钥匙交给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
或者A自己用钥匙打开房间,从房间里拿出来一个物体出示给B,B知道这个物体确实只有房间里有。方法二的原理就是零知识证明。
零知识证明可以在不泄漏信息本身内容的情况下,证明我知道这个秘,可以有效解决许多验证问题。
㈢ 区块链和互联网的区别有哪些
区块链本质上是一个去中心化的账本系统,具备去中心化、开放性、信息不可篡改、可编程等特点,可作为价值互联网的底层存储与传输协议。区块链有望带领我们从个人信任、制度信任进入到机器信任的时代,共识机制是区域链建设的核心。数字货币只是开始,区块链可以改变更多,可以重塑世界的信任体系,解决过去很多信任成本太高的问题。
区块链与互联网做类比,他们有一点核心区别:区块链和互联网的底层协议和上层应用的价值完全颠倒。主要源于区块链的两个核心特性:
第一个特性,是零知识证明造成了数据所属权的改变。也就是说,区块链上用户的个人数据属于用户,无需提供给应用方、并存储到中央服务器上。那么互联网应用层的服务,例如BAT,市值背后的核心支撑“数据”,在区块链领域便丧失了原来的价值。
另外一个特性,是代币(token)所带来的经济激励模型,为底层协议赋予了极高的价值。互联网时代没人为http协议付费,没有人为收发Email付费,也没有人为Google的搜索服务付费。
㈣ 什么是零知识证明有什么用
在没有足够(甚至是根本没有)依据的情况下,猜出一个事件(密码反译)的计算方法,虽然是没有任何依据的猜,但是这个猜出的计算法方被证明是正确的,这就是零知识证明。
在Goldwasser等人提出的零知识证明中,证明者和验证者之间必须进行交互,这样的零知识证明被称为“交互零知识证明”。80年代末,Blum等人进一步提出了“非交互零知识证明”的概念,用一个短随机串代替交互过程并实现了零知识证明。非交互零知识证明的一个重要应用场合是需要执行大量密码协议的大型网络。
在零知识证明中,一个人(或器件)可以在不泄漏任何秘密的情况下,证明他知道这个秘密..如果能够将零知识证明用于验证,将可以有效解决许多问题..
证明材料
附相关零知识证明材料:
零知识证明不是证明在条款的数学感觉因为有一个固定的可能性 p 在任一零知识证明Peggy 能提供对挑战的正确反应即使她不知道钥匙。但是如果测试被重覆 n 计时欺诈被减少Peggy 的可能性 p n , 和由增加测试胜者的数字可能使Peggy 的可能性降低欺诈到一个任意水平。
例子战略
Peggy 的公开密钥是一张大图表, 我们将称 G。Peggy 被组建的 G 某时从前, 和广泛然后出版它。由于她特别地制造了它为目的, Peggy 知道一个汉密尔顿的周期。Peggy 将对胜者证明她的身份, 她知道一个汉密尔顿的周期在 G。即使 G 是公开信息, 没人能做到, 因为没人知道G 的一个汉密尔顿周期 , 并且发现汉密尔顿的周期在图表是一个困难的问题(参见NP 完整性) 。
但是, Peggy 不能简单地告诉胜者汉密尔顿的周期,因为这样胜者(或偷听者)就可以装作是Peggy 。Peggy 不能在任何周期显露任何信息, 因为偷听者也许能在几个不同场合收集信息并整合,使偷听者有足够的信息能扮演Peggy 。
要证明她的身份, Peggy 和胜者扮演以下比赛的几个圆:
Peggy 标记G 端点 以随机号。边缘可能然后代表作为一对这些数字。她列出G 边缘 , 和编成密码各个边缘以一个另外密钥。她然后寄发被编成密码的边缘到胜者。
胜者翻转硬币。
* 如果硬币过来头, Peggy 向随机号投降密钥和测绘从端点。胜者解码边缘和然后核实, 被编成密码的边缘被派在步骤1 实际上做 graph.g 和没有某一其它图表。
* 如果硬币过来尾巴, Peggy 投降密钥只为实际上形成汉密尔顿的周期的边缘。胜者解码这些边缘和核实, 他们的确形成正确长度的周期。
冒名顶替者(' Pamela ') 能设法扮演Peggy, 和有成功地唬弄胜者的50% 机会在任何尤其圆。有二个可能的扮演战略。Pamela 能派Peggy 的graph.g 的编成密码 。在这种情况下, 她逃脱侦查如果胜者投掷头; 她显露编成密码, 并且胜者核实图表的确是 G。但如果胜者投掷尾巴, Pamela 被捉住。她被要求显露的一套的钥匙组成一个汉密尔顿的周期G 边缘, 并且她无法做那, 因为她不认识一。
Pamela 能跟随的另一战略是准备某一其它图表她 知道一个汉密尔顿的周期的H编成密码。她在这种情况下是安全的如果胜者投掷尾巴; 她显露周期, 并且, 因为胜者从未看边缘的剩余, 他从未获悉图表是 H 和不是 G。但如果胜者投掷头, Pamela 被要求显露整个图表, 并且胜者看见这不是 G。
由扮演这场游戏二十回合, 胜者能使由Pamela 被唬弄的可能性降低到一仅仅为1/2。由扮演更多圆, 胜者能减少可能性就渴望。
信息由Peggy 显露提供胜者任何信息在所有不G 的汉密尔顿的周期 。看这, 注意胜者能制造比赛的抄本没有谈话与Peggy 根本。他能选择序列头和尾巴, 和然后准备假定回复从Peggy, 没有曾经知道汉密尔顿的周期, 由从事适当的冒名顶替者战略在每个圆。抄本, 和它不遏制, 有线索关于Peggy 的身份合法的信息。Peggy 证明她的身份不是因为她能基于正确的答复, 但因为她能基于正确的答复没有知道将是什么问题。
所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法。看起来有点别扭,我给2个例子,也许好明白一些。
零知识证明的几个例子[原创]
证明举例
1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:
①A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
②B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。
后面的②方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。
2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。
①B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。
②A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。
后面的方法属于零知识证明。
3)有一个缺口环形的长廊 ,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。
㈤ 刚刚了解,谁能告诉我区块链是什么通俗解释一下区块链技术的方法
大家共同记账的方式,也被称为“分布式”或“去中心化”,因为人人都记账,且账本的准确性由程式算法决定,而非某个权威机构。
这就是区块链,核心讲完了,区块链就这么简单,一个共同记账的账本
区块链技术六大核心算法:
区块链核心算法一:拜占庭协定
拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
区块链核心算法二:非对称加密技术
在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。
区块链核心算法三:容错问题
我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。
区块链核心算法四:Paxos 算法(一致性算法)
Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。 节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。
区块链核心算法五:共识机制
区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看成重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。
区块链核心算法六:分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。想了解更多可以多利用网络搜索,网络搜索结果-小知识
㈥ 如何理解区块链与区块链技术
区块链技术用数学方法实现分布式记账,并解决信任问题,从而完成了去中心化,将在通信、金融、物联网、政府管理等众多领域带来深远的影响。
区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是一种全民参与记账的技术方式。而此前的记账方式都是中心化的,需要中心化的中介,无论这个中介是传统的政府、金融机构、公证机构还是新兴的电商平台、网络支付平台。
经济学假设中,信息是充分的。实际上,正是因为信息不充分,才存在非常庞大的中介机构。而中介机构的存在,增加了交易成本,提高了交易门槛。区块链技术本质上来说是一个大规模协作工具,它首次使用纯技术方式让直接的价值转移成为可能,并延续了互联网去中心化和去中介化的趋势。去中介的区块链技术将极大地颠覆信息中介行业。
区块链技术是构建比特币数据结构与交易信息加密传输的基础技术,该技术实现了比特币的发行与交易。区块链技术的核心是所有当前参与的节点共同维护交易及数据库,使交易基于密码学原理而不基于信任,使得任何达成一致的双方,能够直接进行支付交易,不需第三方的参与。
从技术上来讲,区块是一种记录交易的数据结构,反映了一笔交易的资金流向。系统中已经达成交易的区块连接在一起形成了一条主链,所有参与计算的节点都记录了主链或主链的一部分。
一个区块包含以下三部分:交易信息、前一个区块形成的哈希散列和随机数。交易信息是区块所承载的任务数据,具体包括交易双方的私钥、交易的数量、电子货币的数字签名等;前一个区块形成的哈希散列用来将区块连接起来,实现过往交易的顺序排列;随机数是交易达成的核心,所有节点竞争计算随机数的答案,最快得到答案的节点生成一个新的区块,并广播到所有节点进行更新,如此完成一笔交易。
㈦ 零知识证明是什么
在没有足够(甚至是根本没有)依据的情况下,猜出一个事件(密码反译)的计算方法,虽然是没有任何依据的猜,但是这个猜出的计算法方被证明是正确的,这就是零知识证明。
在Goldwasser等人提出的零知识证明中,证明者和验证者之间必须进行交互,这样的零知识证明被称为“交互零知识证明”。80年代末,Blum等人进一步提出了“非交互零知识证明”的概念,用一个短随机串代替交互过程并实现了零知识证明。非交互零知识证明的一个重要应用场合是需要执行大量密码协议的大型网络。
在零知识证明中,一个人(或器件)可以在不泄漏任何秘密的情况下,证明他知道这个秘密..如果能够将零知识证明用于验证,将可以有效解决许多问题..
证明材料
附相关零知识证明材料:
零知识证明不是证明在条款的数学感觉因为有一个固定的可能性 p 在任一零知识证明Peggy 能提供对挑战的正确反应即使她不知道钥匙。但是如果测试被重覆 n 计时欺诈被减少Peggy 的可能性 p n , 和由增加测试胜者的数字可能使Peggy 的可能性降低欺诈到一个任意水平。
零知识证明是指证明者能够在不向验证者提供信息本身内容的情况下,使验证者相信某个论断是真实可信的一种技术。目前匿名性非常突出的数字资产ZCash的匿名交易就是依靠“零知识证明”实现的。
举个例子,A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时候,A可以选择把钥匙交给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
或者A自己用钥匙打开房间,从房间里拿出来一个物体出示给B,B知道这个物体确实只有房间里有。方法二的原理就是零知识证明。
零知识证明可以在不泄漏信息本身内容的情况下,证明我知道这个秘,可以有效解决许多验证问题。
㈧ 什么是零知识证明
密码学中讲的zero-knowledge proof,在不让对方获知任何资讯的情况下证明一件事,实例是身份辨别。或是用演化计算(Evolutionary Computation)产生判断下棋残局的程式,演化计算的”产物”,通常是人类无法读懂的程式(演算法),若我们能经由实验和机率分析得知这个程式以极低的机率(可能比陨石击中你家还低)完全答对残局的结果,那我们确实可以相信这个程式有能力判断残局,就可以在无法理解却信任的情况下使用它。 据个人理解、通俗点说(个人说法): 在没有足够(甚至是根本没有)依据的情况下,猜出一个事件(密码反译)的计算方法,虽然是没有任何依据的猜,但是这个猜出的计算法方被证明是正确的,这就是零知识证明。