零知识证明区块链
A. 区块链和互联网的区别有哪些
区块链本质上是一个去中心化的账本系统,具备去中心化、开放性、信息不可篡改、可编程等特点,可作为价值互联网的底层存储与传输协议。区块链有望带领我们从个人信任、制度信任进入到机器信任的时代,共识机制是区域链建设的核心。数字货币只是开始,区块链可以改变更多,可以重塑世界的信任体系,解决过去很多信任成本太高的问题。
区块链与互联网做类比,他们有一点核心区别:区块链和互联网的底层协议和上层应用的价值完全颠倒。主要源于区块链的两个核心特性:
第一个特性,是零知识证明造成了数据所属权的改变。也就是说,区块链上用户的个人数据属于用户,无需提供给应用方、并存储到中央服务器上。那么互联网应用层的服务,例如BAT,市值背后的核心支撑“数据”,在区块链领域便丧失了原来的价值。
另外一个特性,是代币(token)所带来的经济激励模型,为底层协议赋予了极高的价值。互联网时代没人为http协议付费,没有人为收发Email付费,也没有人为Google的搜索服务付费。
B. 什么是零知识证明
80年代初,Goldwasser等人提出了零知识证明这一概念.从本质上讲,零知识证明是一种协议.所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:1.协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行.2.协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议.3.通过执行协议必须能够完成某项任务.零知识证明必须包括两个方面,一方为证明者,另一方为验证者.证明者试图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息.零知识证明目前在密码学中得到了广泛的应用,尤其是在认证协议、数字签名方面,人们利用数字签名设计出了大量优良的算法.用一个关于洞穴的故事来解释零知识.洞穴中有一个秘密,知道咒语的人能打开 C 和D之间的密门,对其它人来说,两条通道都是死胡同.Peggy 知道这个洞穴的秘密.她想对 Victor 证明这一点,但也不想泄露咒语.下面是她如何使 Victor 相信的过程:(1) Victor 站在A点.(2) Peggy 一直走进洞穴,到达C点或者D点.(3) 在 Peggy 消失在洞穴中后,Victor 走到B点.(4) Victor 向 Peggy 喊叫,要她:从左通道出来,或者从右通道出来.(5) Peggy 答应了,如果有必要她就用咒语打开密门.Peggy 和 Victor 重复第(1)至第(5)步 n 次.假设 Victor 有一个摄像机能记录下他所看到的一切.他记录下 Peggy 消失在洞中情景,记录下他喊叫 Peggy 从他选择的地方出来的时间,记录下 Peggy 走出来.他记录下所有的 n 次试验.如果他把这些记录给 Carol 看,她会相信 Peggy知道打开密门的咒语吗?在不知道咒语的情况下,如果Peggy和Victor事先商定好 Victor 喊叫什么,那将如何呢?Peggy 会确信也走进 Victor 叫她出来那条路,然后她就可以在不知道咒语的情况下在 Victor 每次要她出来的那条路上出来.或许他们不那么做,Peggy 走进其中一条通道,Victor 发出一条随机的要求.如果 Victor 猜对了,好极了.如果他猜错了,他们会从录像中删除这个试验.总之,Victor 能获得一个记录,它准确显示与实际证明 Peggy 知道咒语的相同的事件顺序.这说明了两件事.其一是 Victor 不可能使第三方相信这个证明的有效性;其二,它证明了这个协议是零知识的.在 Peggy 不知道咒语的情况下,Victor 显然是不能从记录中获悉任何信息.但是,因为无法区分一个真实的记录和一个伪造的记录,所以 Victor 不能从实际证明中了解任何信息-它必是零知识.也就是说,Peggy 在向 Victor 证明的过程中没有泄露任何有关秘密的知识,称为零知识.
C. 区块链使用安全如何来保证呢
区块链本身解决的就是陌生人之间大规模协作问题,即陌生人在不需要彼此信任的情况下就可以相互协作。那么如何保证陌生人之间的信任来实现彼此的共识机制呢?中心化的系统利用的是可信的第三方背书,比如银行,银行在老百姓看来是可靠的值得信任的机构,老百姓可以信赖银行,由银行解决现实中的纠纷问题。但是,去中心化的区块链是如何保证信任的呢?
实际上,区块链是利用现代密码学的基础原理来确保其安全机制的。密码学和安全领域所涉及的知识体系十分繁杂,我这里只介绍与区块链相关的密码学基础知识,包括Hash算法、加密算法、信息摘要和数字签名、零知识证明、量子密码学等。您可以通过这节课来了解运用密码学技术下的区块链如何保证其机密性、完整性、认证性和不可抵赖性。
基础课程第七课 区块链安全基础知识
一、哈希算法(Hash算法)
哈希函数(Hash),又称为散列函数。哈希函数:Hash(原始信息) = 摘要信息,哈希函数能将任意长度的二进制明文串映射为较短的(一般是固定长度的)二进制串(Hash值)。
一个好的哈希算法具备以下4个特点:
1、 一一对应:同样的明文输入和哈希算法,总能得到相同的摘要信息输出。
2、 输入敏感:明文输入哪怕发生任何最微小的变化,新产生的摘要信息都会发生较大变化,与原来的输出差异巨大。
3、 易于验证:明文输入和哈希算法都是公开的,任何人都可以自行计算,输出的哈希值是否正确。
4、 不可逆:如果只有输出的哈希值,由哈希算法是绝对无法反推出明文的。
5、 冲突避免:很难找到两段内容不同的明文,而它们的Hash值一致(发生碰撞)。
举例说明:
Hash(张三借给李四10万,借期6个月) = 123456789012
账本上记录了123456789012这样一条记录。
可以看出哈希函数有4个作用:
简化信息
很好理解,哈希后的信息变短了。
标识信息
可以使用123456789012来标识原始信息,摘要信息也称为原始信息的id。
隐匿信息
账本是123456789012这样一条记录,原始信息被隐匿。
验证信息
假如李四在还款时欺骗说,张三只借给李四5万,双方可以用哈希取值后与之前记录的哈希值123456789012来验证原始信息
Hash(张三借给李四5万,借期6个月)=987654321098
987654321098与123456789012完全不同,则证明李四说谎了,则成功的保证了信息的不可篡改性。
常见的Hash算法包括MD4、MD5、SHA系列算法,现在主流领域使用的基本都是SHA系列算法。SHA(Secure Hash Algorithm)并非一个算法,而是一组hash算法。最初是SHA-1系列,现在主流应用的是SHA-224、SHA-256、SHA-384、SHA-512算法(通称SHA-2),最近也提出了SHA-3相关算法,如以太坊所使用的KECCAK-256就是属于这种算法。
MD5是一个非常经典的Hash算法,不过可惜的是它和SHA-1算法都已经被破解,被业内认为其安全性不足以应用于商业场景,一般推荐至少是SHA2-256或者更安全的算法。
哈希算法在区块链中得到广泛使用,例如区块中,后一个区块均会包含前一个区块的哈希值,并且以后一个区块的内容+前一个区块的哈希值共同计算后一个区块的哈希值,保证了链的连续性和不可篡改性。
二、加解密算法
加解密算法是密码学的核心技术,从设计理念上可以分为两大基础类型:对称加密算法与非对称加密算法。根据加解密过程中所使用的密钥是否相同来加以区分,两种模式适用于不同的需求,恰好形成互补关系,有时也可以组合使用,形成混合加密机制。
对称加密算法(symmetric cryptography,又称公共密钥加密,common-key cryptography),加解密的密钥都是相同的,其优势是计算效率高,加密强度高;其缺点是需要提前共享密钥,容易泄露丢失密钥。常见的算法有DES、3DES、AES等。
非对称加密算法(asymmetric cryptography,又称公钥加密,public-key cryptography),与加解密的密钥是不同的,其优势是无需提前共享密钥;其缺点在于计算效率低,只能加密篇幅较短的内容。常见的算法有RSA、SM2、ElGamal和椭圆曲线系列算法等。 对称加密算法,适用于大量数据的加解密过程;不能用于签名场景:并且往往需要提前分发好密钥。非对称加密算法一般适用于签名场景或密钥协商,但是不适于大量数据的加解密。
三、信息摘要和数字签名
顾名思义,信息摘要是对信息内容进行Hash运算,获取唯一的摘要值来替代原始完整的信息内容。信息摘要是Hash算法最重要的一个用途。利用Hash函数的抗碰撞性特点,信息摘要可以解决内容未被篡改过的问题。
数字签名与在纸质合同上签名确认合同内容和证明身份类似,数字签名基于非对称加密,既可以用于证明某数字内容的完整性,同时又可以确认来源(或不可抵赖)。
我们对数字签名有两个特性要求,使其与我们对手写签名的预期一致。第一,只有你自己可以制作本人的签名,但是任何看到它的人都可以验证其有效性;第二,我们希望签名只与某一特定文件有关,而不支持其他文件。这些都可以通过我们上面的非对称加密算法来实现数字签名。
在实践中,我们一般都是对信息的哈希值进行签名,而不是对信息本身进行签名,这是由非对称加密算法的效率所决定的。相对应于区块链中,则是对哈希指针进行签名,如果用这种方式,前面的是整个结构,而非仅仅哈希指针本身。
四 、零知识证明(Zero Knowledge proof)
零知识证明是指证明者在不向验证者提供任何额外信息的前提下,使验证者相信某个论断是正确的。
零知识证明一般满足三个条件:
1、 完整性(Complteness):真实的证明可以让验证者成功验证;
2、 可靠性(Soundness):虚假的证明无法让验证者通过验证;
3、 零知识(Zero-Knowledge):如果得到证明,无法从证明过程中获知证明信息之外的任何信息。
五、量子密码学(Quantum cryptography)
随着量子计算和量子通信的研究受到越来越多的关注,未来量子密码学将对密码学信息安全产生巨大冲击。
量子计算的核心原理就是利用量子比特可以同时处于多个相干叠加态,理论上可以通过少量量子比特来表达大量信息,同时进行处理,大大提高计算速度。
这样的话,目前的大量加密算法,从理论上来说都是不可靠的,是可被破解的,那么使得加密算法不得不升级换代,否则就会被量子计算所攻破。
众所周知,量子计算现在还仅停留在理论阶段,距离大规模商用还有较远的距离。不过新一代的加密算法,都要考虑到这种情况存在的可能性。
D. 区块链安全问题及抢先记账的奖励来源。
靠区块链技术,零知识证明,代码就是法律。
系统一开始规划好产生的。
@区块链神吐槽
E. 区块链中的零知识证明是什么
如何不给你看我妈但是仍然证明我妈是我妈?
零知识证明是指证明者能够在不向验证者提供信息本身内容的情况下,使验证者相信某个论断是真实可信的一种技术。目前匿名性非常突出的数字资产ZCash的匿名交易就是依靠“零知识证明”实现的。
举个例子,A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时候,A可以选择把钥匙交给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
或者A自己用钥匙打开房间,从房间里拿出来一个物体出示给B,B知道这个物体确实只有房间里有。方法二的原理就是零知识证明。
零知识证明可以在不泄漏信息本身内容的情况下,证明我知道这个秘,可以有效解决许多验证问题。
F. 什么是零知识证明有什么用
在没有足够(甚至是根本没有)依据的情况下,猜出一个事件(密码反译)的计算方法,虽然是没有任何依据的猜,但是这个猜出的计算法方被证明是正确的,这就是零知识证明。
在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拥有钥匙。
G. 区块链技术真正解决了交易互信问题了吗
是的。
区块链可以解决交易互信的问题。
智能合约解决交易互信问题
从比特币开始,区块链技术就在不断发展,以太坊在2014年进一步衍生出一个多种新功能的智能合约技术,智能合约以数字化的形式上链,"而区块链记录的信息一旦生成将永久记录,并无法篡改,"可以解决“陌生信任”信任问题。
Ulord具有智能合约属性,引入了gas的设计理念,但不同于以太gas每一个操作都会消耗gas。相比以太的gas概念,Ulord中采用了更简化抽象的方法。用户发布在Ulord上的资源和站点都是消耗Ulord网络上资源,因此用户发布资源或者站点时候,需要绑定一定量UlordToken。随着区块高度的增长,UlordToken会逐渐地消耗掉,用户需要在消耗掉之前往站点对应的地址充入新的UlordToken,才能确保拥有该域名的所有权。同时通过侧链技术,可以兼容以太虚拟机,发布智能合约,允许用户发布自己的代币,代币与UlordToken存在一定比例的兑换关系。Ulord允许用户自定义的发布自己站点服务,而通过发行自己的代币,可以运营自己的站点。
zk-SNARK技术保护交易隐私
Ulord将采用目前最主流的隐私保护zk-SNARK技术保护交易隐私。在Ulord区块链中,创建一笔有效的交易包括以下三件事:
1.保证地址中的货币没有在之前的交易中花费出去;
2.发送者通过授权签名的方式证明他自己是这笔货币的“持有者”;
3.交易的输入与它的输出相等。
证明货币在此之前没有被花费出去的工作是由账本本身完成的,它不需要发送者作出任何工作。发送者仅需证明他是这些货币的持有者,并且他希望通过地址对应的私钥进行电子签名的方式将这些货币发送出去。为了让这个签名得到验证,发送者的地址必须是公开的。与之相对应的,接收者也必须公开接收地址才能完成交易过程。在Ulord的使用中,验证交易的输入与输出相等是简单的,因为传输的数量被完全地揭露了出来。
H. 最近的明星区块链项目AOS隐私公链,有啥硬核之处
好像还是有不少的
转述下AOS官网的介绍:
AOS开创和引领隐私区块链3.0时代,相较于Monero、ZCash、Dash等隐私货币,AOS支持用户自主发行隐私资产,实现了隐私资产发行层面的图灵完备。
相较于其他普通的隐私智能合约平台,AOS首创性的支持零知识证明编程,实现了隐私应用编程层面的图灵完备,即支持用户轻松便捷的自主开发隐私应用。
AOS是全球范围内性能最强的支持智能合约的隐私公链,支持用户发行隐私代币,被称为“隐私版的EOS”;
AOS也是全球首个支持零知识证明编程的隐私公链,也被称为“隐私版的小程序开发平台”。
I. 区块链项目中的币类都包含哪些项目
第一类是币类项目,也是最早的区块链项目。币类项目主要包括比特币和莱特币等项目。
此外,还有一类资产具有匿名的特点,主要功能包括实现支付的同时可以保护支付双方的隐私,比较知名的有达世币(Dash)、门罗币(Monero)及采用零知识证明的大零币(Zcash)等。
币类主要充当区块链资产领域的“交换媒介”,交换媒介就是你用来换取商品的一般等价物,比如以前黄金、白银、银票可以作为交换媒介。
目前全球的数字资产种类超过1000个品种,币类区块链项目数量增长不快,截止2018年1月市值最大的依旧是比特币。比特币大家已经很熟悉了,接下来几集火小币将详细介绍一下莱特币、新经币、达世币、门罗币、Zcash。