建议你看CSDN上一个博主,id:哪吒《JavaScript进阶:如何写出优雅的JavaScript代码》本文分享自华为云社区《共识算法之Raft算法模拟数》,作者:TiAmoZhang。01、Leader选举存在A、B、C三个成员组成的Raft集群,刚启动时,每个成员都处于Fol
探索零知识证明系列(五)
这次去 Devcon5 有机会跟 AZTEC 的开发者聊天,后续讨论中也厘清了我自己使用 AZTEC 的一些疑问,搞清楚后也分享本篇文章来介绍此协议。
Ethereum 区块链是一个透明的平台,虽然不知道特定地址的拥有人是谁,但是发生在区块链上的交易都可以看得一清二楚。而在日常使用时交易的保密性还是非常重要的。
缘起
进来参与了很多安永的区块链技术活动,安永发布了基于零知识证明的Nightfall框架。因此决定把零知识证明这个加密体系中的硬核知识给全方位的梳理一遍,就有了此零知识证明系列文章。...
谈到ZKP算法,大伙可能听过一些,比如zk-snark,zk-stark, bulletproof, aztec, plonk等等。今天,咱就给大伙聊聊这一对“表面兄弟”,zk-stark和zk-snark算法的异同之处。
zkSync通过zk Rollup协议,实现了L2的转账。zkSync项目非常完整,是学习L2非常好的参考项目。zkSync采用Plonk零知识证明算法向L1证明状态的正确性。Plonk算法是Universal的零知识证明算法,只需要一次可信设置。zkSync电路设计采用Chunk设计,支持不同的区块大小。
有限域上的椭圆曲线是零知识证明的基础。零知识的实现是基于离散对数问题。从计算的角度来看,F_p是个有限域,在之基础上建立的椭圆曲线点的运算都是在这个域范围内。有限域上的椭圆曲线上有很多循环子群F_r,具有加法同态的特性。离散对数问题指的是,在循环子群上已知两点,却很难知道两点的标量。
摘要
Nightfall是一种零知识证明的实现, 它使用zk-SNARKS让同质化ERC20和非同质化的通证ERC721系列的通证进行隐私化转移,使得交易能够完成但是又能足够的匿名。本文主要是通过对架构设...
什么是Tornado.cash,如何使用它
本文来自PPLabs, PPIO 是为开发者打造的去中心化存储与分发平台,让数据更便宜、更高速、更隐私。官方网站是 https://pp.io。
玩过zkSNARK的小伙伴都知道,R1CS是目前描述电路的一种语言。目前实现zkSNARK电路的框架有libsnark(C++),bellman (Rust),ZoKrates(DSL),Circom(js)等等。有的时候,需要将一个框架中生成的电路,导入其他框架。网络上研究了一下,发现两个有意思的项目。
zkSync采用PlonK零知识证明系统。在电路设计上,非常巧妙的将交易分割成一个个小的通用处理单元(Operation)。一个Operation对应的证明电路逻辑支持所有可能交易的Operation逻辑。多个有关联的Operation电路组成交易电路。多个交易的电路再组合成区块电路。从而,在固定大小的区块中也能包含不同组合的交易。
Groth16算法是zkSNARK的典型算法,目前在ZCash,Filecoin,Coda等项目中使用。本文从计算量的角度详细分析Groth16计算。Groth16计算分成三个部分:Setup针对电路生成Pk/Vk(证明/验证密钥),Prove在给定witness/statement的情况下生成证明,Verify通过Vk验证证明是否正确。
DIZK,Distributed Zero Knowledge,分布式的零知识证明系统。在分布式环境下,DIZK能支持超大规模电路(10亿门级别)的计算。
DIZK源代码导读