重大突破:路印协议将交易成本再降15倍!

本文详细说明了路印协议在zkSNARK证明生成上的一些优化措施,我们成功地将生成零知识证明的成本降低为每笔交易仅0.03分RMB(100万笔交易成本大约300RMB),与目前我们线上的版本相比,成本降低了15倍。再加上其他一些优化手段,最终路印协议每笔撮合交易总成本仅仅只需0.09分RMB(100万笔交易成本大约900RMB)。

零知识证明 - 新手入门指南

不知不觉,写了不少零知识证明相关的文章,单独总结成列表。方便对零知识证明感兴趣的小伙伴,学习开发。零知识证明,乃至区块链技术,需要学习,深入研究的东西太多太多了。零知识证明学习入门...

  • Star Li
  • 发布于 2020-03-01
  • 阅读 ( 7217 )
  • ( 73 )

零知识证明 - 电路及证明示例(libsnark)

libsnark库代码层次非常清晰。libsnark也给出了SNARK相关算法的全貌,各种Relation,Language,Proof System。为了更好的生成R1CS电路,libsnark抽象出protoboard和gadget,方便开发者快速搭建...

  • Star Li
  • 发布于 2020-03-01
  • 阅读 ( 3996 )
  • ( 9 )

零知识证明 - 基于多项式构造零知识证明

理解为什么以及如何基于多项式构造零知识证明,这篇文章讲的比较清楚。虽然文章只讲到了皮诺曹协议,但是足够理解基于多项式构造零知识证明的本质。想深入零知识证明的小伙伴都建议看看。

ht...

  • Star Li
  • 发布于 2020-02-21
  • 阅读 ( 5359 )
  • ( 10 )

[译]几种通用的zk-SNARKs 实现的比较

几种通用的zk-SNARKs 实现的比较

  • 石头
  • 发布于 2020-02-20
  • 阅读 ( 5319 )
  • ( 73 )

零知识证明 - DIZK源代码导读

DIZK源代码导读

  • Star Li
  • 发布于 2020-02-14
  • 阅读 ( 2726 )
  • ( 10 )

零知识证明 - DIZK介绍

DIZK,Distributed Zero Knowledge,分布式的零知识证明系统。在分布式环境下,DIZK能支持超大规模电路(10亿门级别)的计算。

  • Star Li
  • 发布于 2020-02-13
  • 阅读 ( 3418 )
  • ( 6 )

从零开始学习zk-SNARK(五)—Pinocchio 协议

作为本系列的最后一篇文章,本文继续对 zk-SNARK 协议进行完善,最终形成一个完整的 zk-SNARK 协议

从零开始学习zk-SNARK(四)—多项式的约束

上一篇文章中我们学习了如何将程序转换为多项式进行证明。到这里似乎已经有点晕了,本文将对协议执行进一步的约束,并对协议展开优化。

从零开始学习zk-SNARK(三)—从程序到多项式的构造

前文主要介绍了如何构造多项式的零知识证明协议,现在将开始探讨如何构造更通用的协议。本节主要是讲如何将一组计算的证明转换为多项式进行证明。本文重点主要包括:多项式的算术性质,多项式插值等。

零知识证明 - 椭圆曲线基础

有限域上的椭圆曲线是零知识证明的基础。零知识的实现是基于离散对数问题。从计算的角度来看,F_p是个有限域,在之基础上建立的椭圆曲线点的运算都是在这个域范围内。有限域上的椭圆曲线上有很多循环子群F_r,具有加法同态的特性。离散对数问题指的是,在循环子群上已知两点,却很难知道两点的标量。

  • Star Li
  • 发布于 2020-01-20
  • 阅读 ( 5064 )
  • ( 18 )

浅谈零知识证明之二:简短无交互证明(SNARK)

相信看完前一篇文章的朋友们会有一点很不解的地方:为什么我们可以如此简短的创建一个证明,并且证明很长的信息呢?在上课前我也有这同样的疑惑,甚至觉得这个是一个“黑科技”,不过相信大家看完这篇文章,就会知道如何去驾驭这个“黑科技”了。

探索零知识证明系列5-构建非交互式零知识证明

探索零知识证明系列(五)

从零开始学习zk-SNARK(二)-多项式的非交互式零知识证明

上一篇文章(多项式的性质与证明)中,作者介绍了如何利用多项式的性质来证明某个多项式的知识,相信大家已经对构造证明有了一些基本的认识。目前的证明协议仍然存在一些缺陷,本文将会针对这些薄弱项进行改进,进而最终构造出关于多项式的零知识证明协议。本文重点:KEA,交互式零知识证明,非交互式零知识证明和 Setup。

零知识证明 Learn by Coding:libsnark 入门篇

希望通过本系列文章,所有开发者都能亲自上手实践,在短时间内迅速入门 libsnark,一步步了解 libsnark 的基本概念.

从零开始学习zk-SNARK(一)-多项式的性质与证明

偶然一次机会,看到了 Maksym Petkus 的这篇文章。文章从最基本的多项式性质讲起,从一个简单易懂的证明协议开始,然后像堆积木一样在发现问题,修改问题中逐步去完善协议,直到最终构造出完整的 zk-SNARK 协议。于是想把它翻译出来(已获得作者授权),一方面加深自己的学习,另一方面也将这份宝藏分享给小伙伴们。

浅谈零知识证明:背景与起源

本文介绍零知识证明的背景和起源,阅读后大家对为什么需要零知识证明,和零知识证明到底有多强大,有了一个更加深入的了解。

零知识证明 - Groth16计算详解

Groth16算法是zkSNARK的典型算法,目前在ZCash,Filecoin,Coda等项目中使用。本文从计算量的角度详细分析Groth16计算。Groth16计算分成三个部分:Setup针对电路生成Pk/Vk(证明/验证密钥),Prove在给定witness/statement的情况下生成证明,Verify通过Vk验证证明是否正确。

  • Star Li
  • 发布于 2019-12-19
  • 阅读 ( 11657 )
  • ( 20 )

十分钟开发零知识证明之混币-实操篇

上一篇我们梳理了一下混币的基本原理,在这一篇中我们开始动手实现一个混币。

  • 吴寿鹤
  • 发布于 2019-12-18
  • 阅读 ( 5297 )
  • ( 5 )

十分钟开发一个混币-原理篇

混币的目的是切断加密货币交易中发送方与接受方的联系,提高加密货币的隐私性和匿名性,使第三方更难追踪加密货币的用途以及它属于谁。

  • 吴寿鹤
  • 发布于 2019-12-18
  • 阅读 ( 6752 )
  • ( 11 )