`

tornado

    博客分类:
  • defi
 
阅读更多
tornado:当用户将资金放入资金池(也称为存款)时,会生成一张私人票据。该私人笔记用作用户以后访问这些资金的私钥。要提取它们,同一用户可以使用不同的地址——旧地址或新地址——并通过这个私钥收回他/她的资金

存钱
5.1 链下计算好一个secret给用户,拥有这个数据相当于有提款的权利

5.1 链下计算要提交的数据(commitment)
const preimage = secret + nullifier;
const commitment = pedersenHash(preimage);
5.2 存钱的时候将byte32的commitment数据上传,并将其作为叶子节点插入到一个Merkle树中,并返回其Merkle树转数组对应的index
5.3 将钱转入合约

取钱
5.4 链下通过secret和nullifier计算出proof(零知识证明)和nullifierHash(防止重复领)
5.5 传入MerkleTree root,校验判断Merkle树的root是否存在
5.6 合约验证proof,成功则将合约的钱转出

总结:
5.6 通过zk实现验证,没有所谓的"混币"过程,所有币都在tornado合约地址内
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics