timezone |
---|
Asia/Shanghai |
- 我是Zemmer,后端转合约,专注defi和nft。
- 能完成本次残酷学习。
- 目前阶段对ZK了解了一些,没有系统学习,正好遇到,拿下。
1、允许作为证明者的一方在不透露其他信息的情况下让作为验证者的另一方相信某个事实或声明。
2、ZKP的目的是:证明我有这个事实。
3、ZKP并不是“零”知识,而是不透露除了这个事实之外的其他任何信息。
我觉得在合约的角度,知识聚焦于交易相关概念的判断,而信息不仅包含知识,而且聚焦于单个变量的数值。
知识 | 信息 |
---|---|
1、某个地址拥有大于100的ETH | 1、地址0x99拥有121.3ETH |
2、某个交易的交易方属于某个DAO | 2、区块的生成时间是12828382938 |
3、某个mint后但未reveal的NFT属于某个地址 | |
4、交易0x88的交易双方都是EOA |
1、P问题:可以在多项式时间(而不是指数时间)内求解的问题
2、NP问题:可以在多项式时间内验证解的正确性的问题。
1、难以求解,但易于验证。
2、P问题是NP问题的子集:即P问题易于求解,也易于验证。
1、如果能在多项式时间内解决任何一个NP完全问题,就能解决所有NP问题
2、所有NP问题都可以归约到某个NP完全问题
1、图着色问题Graph Coloring:给定一个图和k种颜色,是否可以用这k种颜色给图的顶点着色,使得相邻顶点颜色不同?
2、汉密尔顿回路问题Hamiltonian Cycle:在给定的图中,是否存在一条经过每个顶点恰好一次的回路
3、子集和问题Subset Sum:给定一组数字和一个目标值,这组数字是否存在一个子集,其和等于目标值?
4、布尔可满足性问题Boolean Satisfiability Problem, SAT:给定一个布尔表达式,是否存在一组变量赋值使表达式为真?
5、整数分解问题Integer Factorization:给定一个大整数,找出它的质因数。
1、需要地图上n块地图,一共三种颜色国家,相邻的两块颜色都不同。
2、地图遮住颜色。
3、验证者每次只能要求揭露相邻的两块地图颜色。
4、如果验证的结果是颜色不同,则验证通过,说明证明者正确。
5、验证者可以多次验证。
三色图规则有一个非常巧妙的地方,就是每次验证者验证之后,整体的答案进行了刷新,证明者仍保证当前答案符合游戏规则。
1、刷新规则代表了证明者可以证明给验证者一个事实:我这次是对的,也就是这个局部是对的。
2、但不能证明一个事实:我这次的其他地方也是对的,也就是整体是对的。
3、对于验证者来说,他清楚每次有1/2的概率证明者可能出错。
4、然而,如果证明者确实有三色图的答案,那么就不可能出现验证错误的情况。
5、这就像抛硬币,虽然每次有1/2的可能性抛出头像那一面,但是如果你每次都抛出头像面,那么我可以认为你这个硬币只有一面。
6、感觉这是一种无限逼近的证明,不是完备的证明。