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. /etc/fstab文件损坏的补救措施

    最近乱搞,把/etc/fstab弄坏了,导致无法进入图形界面,而且所有文件都是只读的(简直郁闷到底啊),查了好多资料什么的终于弄好了,也走了不少弯路 恩,我不喜欢扯太多东西,这个是补救的帖子,还是希望 ...

  2. WebService连接sql serever并使用Android端访问数据

    一.下载sql serever(真真难下) 建立数据库 二.创建WebService VS2015中新建项目,进行连接调试 1. 服务资源管理文件->数据连接->新建连接 2. 继续-&g ...

  3. linux添加静态路由

    1.使用route命令,查看本机路由直接输入route回车即可.route 命令参数: add     增加路由 del     删除路由 -net    设置到某个网段的路由 -host   设置到 ...

  4. linux c++环境

    set expandtab set autoindent set smartindent

  5. Esper学习之十一:EPL语法(七)

    上一篇说到了EPL如何访问关系型数据库这种数据源,实际上别的数据源,比如:webservice.分布式缓存.非关系型数据库等等,Esper提供了统一的数据访问接口.然后今天会讲解如何创建另外一种事件类 ...

  6. css3整理--word-wrap/word-break/white-space

    word-wrap语法: word-wrap : normal | break-word normal : 默认值,单词如果单词超长,会冲出边界(单个单词超长,在当前行显示) break-word : ...

  7. Android O PackageInstaller 解析

    Android O 8.0 1.src\com\android\packageinstaller\permission\mode\PermissionGroups.java @Override pub ...

  8. 让人一看就懂的excel相对引用和绝对引用案例解析

    http://www.ittribalwo.com/article/2831.html 内容提要:本文的excel相对引用和绝对引用.混合引用的使用方法案例截选自<Excel效率手册 早做完,不 ...

  9. Elasticsearch学习之快速入门案例

    1. document数据格式 面向文档的搜索分析引擎 (1)应用系统的数据结构都是面向对象的,复杂的(2)对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式,相 ...

  10. sphinx配置文件详解

    sphinx的配置文件是在配置的时候最容易出错的了: 我们先要明白几个概念: source:数据源,数据是从什么地方来的. index:索引,当有数据源之后,从数据源处构建索引.索引实际上就是相当于一 ...