Appearance
应用场景
zk-message
类似于在zkp的框架下实现群签名,证明某条消息是在某个小组内发送的。
js
component:
public input hashes[n]; // 群成员的哈希列表
public input msg; // 要发布的哈希
private input s;
(hash(s)-hashes[1])*(hash(s)-hashes[2])... === 0
// prover
prove {s, hasher[n], msg}添加nullifier
在某些应用中,如tornado.cash和semaphore,为了防止双重使用(double-spending)或重复提交,通常会引入一个称为“nullifier”的概念。Nullifier 是一个唯一标识符,用于标记某个特定的操作或状态已经被使用过,从而防止同一操作被多次执行。
如下图,tornado就是一个混币器,支持四个档位的存入,然后会生成一个提取证明作为凭据。

而在提取时,只需输入提取凭据和账户地址即可:

由于在一个混币器中,多个用户的输入是相同的,输出也是相同的,故而外界难以分辨到底是谁提取了谁的资金。
zk-maid
取代DKIM
Dark-Forest
通过zk实现战争迷雾,外部可见的只有操作哈希,但是不知道具体操作。对于玩家来说自己的坐标(x,y)是私密的,其他玩家无法获知。
ESCROW
假设Alice要向Bob出售一个哈希原像 ,但是要如何确保Aice不会发送错误的原像以及Alice会收到钱后不付款,这时候可以创建一个智能合约,具体流程如下: