零知识证明
TurkeyCock
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
零知识证明|1.什么是同态隐藏?
所谓零知识证明,指的是在不泄露秘密的前提下,证明我知道这个秘密。举个简单例子,假设我一个月工资2000,我老婆一个月工资3000。我不会把这两个数字透露给你,但是我可以告诉你,我俩每个月的工资加起来是5000。你可以通过某种方式验证我俩的工资加起来确实是5000,但是你没办法反推出来我每个月的工资是多少,我老婆每个月工资是多少。要做到这一点,需要引入一个概念,叫做同态隐藏。这需要一些数论的知识...原创 2019-06-10 11:18:43 · 2195 阅读 · 2 评论 -
零知识证明|2.什么是多项式盲计算?
上一篇介绍了什么是同态隐藏。假设取E(x)=gxE(x) = g^xE(x)=gx,则E(x+y)E(x+y)E(x+y)可以通过E(x)E(x)E(x)和E(y)E(y)E(y)计算出来:E(x+y)=E(x)⋅E(y)E(x+y) = E(x) \cdot E(y)E(x+y)=E(x)⋅E(y)实际上,不仅仅支持加法,支持所有"线性组合"的同态隐藏,比如E(ax+by)E(ax + by...原创 2019-06-10 11:23:52 · 1177 阅读 · 1 评论 -
零知识证明|3.什么是KCA系数知识假设?
上一篇介绍了盲计算,所谓盲计算,就是Alice在不知道s的情况下完成多项式计算。那么,Bob如何确定Alice的计算结果是正确的呢?要实现这一目标,需要先介绍一个概念:α对。在有限循环群G中,如果α,β≠0且b=α⋅a\alpha, \beta \neq 0 且 b = \alpha \cdot aα,β̸=0且b=α⋅a,那么就称(a,b)(a,b)(a,b)为一个α对。也就是说,b是a...原创 2019-06-10 11:26:28 · 2146 阅读 · 0 评论 -
零知识证明|4.如何验证多项式盲计算的值?
这篇文章正式介绍一下Bob如何验证Alice发过来的E(P(s))E(P(s))E(P(s))的值是否正确。实际上,我们想要实现2个目的:双盲:Alice不知道s,Bob也不知道P(X)可验证:Alice只有发送正确的E(P(s))E(P(s))E(P(s))的值,才会被Bob接受要实现第2个目标,需要用到上一篇文章里介绍的α对和KCA的概念。上一篇文章里的KCA只用到了一个α对,我们...原创 2019-06-10 11:29:35 · 1087 阅读 · 1 评论 -
Zcash - 深入浅出Pedersen Hash/Commitment计算
接触过Zcash的人一定都听说过Pedersen Hash,或者Pedersen Commitment。实际上,在Zcash中存在下面4种不同的概念:1.Pedersen Hash2.Mixing Pedersen Hash3.Windowed Pedersen Commitment4.Homomorphic Pedersen Commitment你能分清楚它们直接的区别和联系吗?本文将...原创 2019-07-27 23:18:22 · 4316 阅读 · 0 评论 -
Zcash - 各种密钥和签名,你懂吗?
Zcash的发展大体经过了OverWinter(过冬) -> Sprout(发芽) -> Sapling(树苗)这几个阶段,随着业务和功能的逐渐丰富,密钥系统也越来越复杂,刚开始接触时感觉一头雾水,但是静下心来仔细分析,就能逐渐领略其中的魅力。Zcash中的各种密钥,主要是为了实现下面2类功能:1.Signature2.In-band secret distribution签名...原创 2019-07-27 23:32:42 · 3255 阅读 · 0 评论
分享