https://github.com/zcoinofficial/zcoin/wiki/Roadmap 
 

zkSNARK

zkSNARK是zero-knowledge succint non-interactive arguments of knowledge的简称,全称里面每个单词都有特定的含义:

Zero knowledge:零知识证明,见前文。

Succinctness:证据信息较短,方便验证

Non-interactivity:几乎没有交互,证明者基本上只要提供一个字符串义工验证。对于区块链来说,这一点至关重要,意味着可以把该消息放在链上公开验证。

Arguments:证明过程是计算完好(computationally soundness)的,证明者无法在合理的时间内造出伪证(破解)。跟计算完好对应的是理论完好(perfect soundness),密码学里面一般都是要求计算完好。

of knowledge:对于一个证明者来说,在不知晓特定证明 (witness) 的前提下,构建一个有效的零知识证据是不可能的。

 
 
 
Sigma Protocol
http://8btc.com/thread-53941-1-1.html
我们当前实施的零币协议版本使用了RSA2048参数作为强制信任的初始化参数设置。这些参数在互联网安全的各个方面使用广泛,比如HTTPS和SSH。按照当前的科学计算能力,这些参数还能确保在几十年内是安全的。另外方面,我们当前正在努力开发实施西格玛协议(Sigma Protocol),有望能借此完全移除零知识协议证明初始化阶段强制的第三方信任设置。
另外,零币还有一个能减缓最坏情况发生的妥协性设置就是零币的全网货币流通量和个体钱包的余额是可供查询的。如果在代码层或者实施层出现了问题导致发生了双花或者硬币伪造,就可以在早期很容易地被探测到,避免了通向超级通胀。在今年的早些时候零币就遭遇了黑客攻击,但通过检测到大量铸毁硬币信号就发现了这个漏洞并及时地修补了。
零币同时还是加密货币界第一个实现梅克尔树(MTP)算法的加密货币。MTP算法的开发者正是Equihsah算法的提出者。不管怎么说,MTP算法的区块验证速度是非常快的,一旦你能够将其集成入其他的耗内存工作量证明算法,那么它将具有革命整个挖矿算法领域的潜力!现在MTP算法已经在测试网络上成功运行。
为什么要在以太坊上嵌入零币?
零币的核心开发团队正在着手于探讨如何在以太坊区块链上实施零币协议的研究和开发工作。我们相信这一点跟以太坊项目的多解决方案理念是相一致的,特别是这个技术是如此的前卫并高度依赖于密码学原理。
也许有人会说能完全理解zk-SNARKs协议的仅仅是有很小一部分的密码学学者。同时,零币协议背后的密码学哲学原理已经深入人心很长一段时间了。在过去这些年里面,零币协议论文已经成为了学术引用最多的密码学文章,共计多达200余次。此外,我们认为以太坊也应该要有一个后备选项,来确保以太坊网络的基本隐私,不用遭受如同Zcash被SNARK公共参数所连累的那样。如同上面提及,当前零币社区的最新研究进展甚至可以为使用零币协议的加密货币完全移除初始化阶段的三方信任设置。
ZoE,HAWK,现在是零币?
当前已经有好几个项目尝试在以太坊区块链上实现强匿名交易,其中最著名的就是Zcash-on-ethereum(ZoE)和Hawk。零币开发团队正在寻求实现基于智能合约的零币协议赎回验证,目的在于创建一个去中心化的混合器dapp。
Zerocoin交易打断了各个交易之间的直接联系,通过成千上万次似是而非的否认使得以太交易变得模糊不清,这相比于其他少于10次交易直接型匿名机制有相当大的优势。
跟币链接(Coinjoin)和它的变体不一样的是,我们是不需要中心化服务器去进行混币处理的,也不需要你相信任何的第三方,也不需要其他的用户为混币处理提供必要的转币交易量。在不久的将来还会开发出一些其他难以查找的代币特性,支持匿名投票、拍卖和ICO。
作为密码屏蔽的Zerocoin赎回计算是根据累加器容量大小进行调整的,这可以降得足够低并寻求得到一个可以接受的手续费花费。然而相比于Zcash,零币的交易证明数据块相对的要大一些(25kb),提议中首次实现的混币器也仅仅接受固定面额的手续费。
在进行初步的计算并跟Vitalik Buterin沟通后,我们相信随着随后的重大发布完成,我们计划的实施是相当可行的。因为在以太虚拟机上运行这些操作的成本是很高的,我们也在寻求实施预编译智能合约进行替代。
基于Zerocoin混币器的智能合约特性提纲:
智能合约将允许用户通过在RSA累加器中添加一个由智能合约维护的加密委托(序列号)来完成存入固定额度的ETH。
在向智能合约内存入ETH后,用户将会收到一个包装过的ERC20兼容代币及其密码序列号。
为了在不需要暴露身份的前提下将ETH提现,它将使用零知识证明机制去证明我们知道智能合约内部的委托。
在你赎回ETH完成后,用于赎回的代币将被销毁。相关序列号将会被标记为已使用状态,这样用户就无法将同一个赎回序列号进行一次以上的使用。
如果你对于帮助零币社区开发实施混币器有兴趣的话,我们当前正在寻求更多的开发者加入我们的团队。当然也包括在寻求能够使用Solidity语言、Serpent语言或Viper语言写出以太虚拟机的天才。相关的奖励将根据开发能力和开发经验的具体情况而定。我们也会在前期给予提供项目开始的基本费用。

zkSNARK 零知识验证的更多相关文章

  1. go for cryptocurrency

    https://blog.conformal.com/category/btcd/ https://github.com/btcsuite/btcd/tree/master/docs https:// ...

  2. 比特股-去中心化交易所, STEEM - 去中心化社区, EOS - 下一代智能合约

    libsnark 是实现了 zkSNARK 模式的 C++ 库.zkSNARK 是一个证明/验证计算完整性的加密方法,也即零知识验证的算法, https://github.com/scipr-lab/ ...

  3. 详细讲解:零知识证明 之 zk-SNARK 开篇

    作者:林冠宏 / 指尖下的幽灵 博客:http://www.cnblogs.com/linguanh/ 掘金:https://juejin.im/user/587f0dfe128fe100570ce2 ...

  4. 详细讲解:零知识证明 之 ZCash 完整的匿名交易流程

    作者:林冠宏 / 指尖下的幽灵 博客:http://www.cnblogs.com/linguanh/ 掘金:https://juejin.im/user/587f0dfe128fe100570ce2 ...

  5. 一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)

    导言:原文的作者是著名的Ghost和Spectre 这两个协议的创始团队的领队Aviv Zohar.原文作者说他的这篇原文又是引用了以下这两篇学术论文: How to Explain Zero Kno ...

  6. 【探索】无形验证码 —— PoW 算力验证

    先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...

  7. C# 中参数验证方式的演变

    一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空,如果是字符可能有长度限 ...

  8. Yii1.1的验证规则

    在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...

  9. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

随机推荐

  1. 【Java并发编程一】线程安全和共享对象

    一.什么是线程安全 当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用代码代码不必作其他的协调,这个类的行为仍然是正确的,那么称这个类是线程安全的 ...

  2. /etc/profile /etc/profile .bash_profile .bashrc解释

    1.用户登录系统时,bash首先执行/etc/profile配置文件和/etc/profile.d/目录下的配置文件,这些配置文件对系统的所有用户都有效,它们设置了普遍性的环境变量. 2.然后,Bas ...

  3. 百度地图API接口

    js <script type="text/javascript"> // 百度地图API功能 var map = new BMap.Map("map&quo ...

  4. python错误 ImportError: No module named setuptools 解决方法[转]

    在python运行过程中出现如下错误: python错误:ImportError: No module named setuptools这句错误提示的表面意思是:没有setuptools的模块,说明p ...

  5. 【大数据系列】HDFS文件权限和安全模式、安装

    HDFS文件权限 1.与linux文件权限类型 r:read w:write x:execute权限x对于文件忽略,对于文件夹表示是否允许访问其内容 2.如果linux系统用户sanglp使用hado ...

  6. Android 验证APK是否已经签名或是否是Debug签名

    https://source.android.google.cn/ http://www.android-doc.com/tools/publishing/app-signing.html Signi ...

  7. 如何使用Countifs函数动态统计

    我们以前就是一个函数一个功能,一个函数一个区域,这次我们使用动态函数.我们先写好条件范围,因为我们要引用.   同样的我们写下函数出来,我们先把Countifs写出来.选择完区域之后如下图.   条件 ...

  8. OGG 3节点级联时 关键参数

    目标架构为: node1-> node2->node3 node1-> node2 已经同步中,只是需要在此基础上做个node2 ->node3 的同步. 部署后发现 node ...

  9. 异构GoldenGate 12c 单向复制配置(支持DDL复制)

    1.开始配置OGG支持DDL复制(在source端操作) 1.1 赋予权限 SQL> conn /as sysdba 已连接. SQL> grant execute on utl_file ...

  10. Elasticsearch 学习之提升性能小贴士

    小贴士1:规划索引.分片 以及集群增长情况 ES使得创建大量索引和超大量分片非常地容易,但更重要的是理解每个索引和分片都是一笔开销.如果拥有太多的索引或分片,单单是管理负荷就会影响到ES集群的性能,潜 ...