👋介绍

ZKSAFE Password

你有没有想过,管理员可以修改你的密码,其实你从来没拥有过你的密码

所以我们想要设计这样一个密码体系,它应该满足:

  • 永不宕机

  • 密码不暴露

  • 只有你自己能修改你自己的密码

在EVM智能合约里,可以实现,但是有一个新的问题:三明治攻击

三明治攻击

比方说你提交了一个取款的tx,里面带上了你的密码验证信息,因为tx是公开的,在缓冲区排队的时候,黑客复制这个tx,把取款地址换成自己的,因为没动密码验证信息,所以在合约里是可以校验通过的,然后用更高的gas提交,这样能在你前面抢跑,就能取走你的钱

所以还得加上一条:

  • 签名功能

签名功能

在你提交取款tx的时候,tx里要把提多少钱给谁这个信息用密码进行签名,如果篡改了tx的信息,在合约里就能校验出来,从而阻止三明治攻击

传统的算法里只有私钥能对数据签名,我们意外的发现ZK-SNARK做一些电路编程,也可以实现密码对数据签名,虽然历尽千辛万苦,在N次质疑和9次算法调整后,我们做出来了

起源

采用这套密码体系做的第一个产品:ZKSAFE,运行非常棒!

然后我们觉得这么棒的密码体系应该发扬光大,它不光能支持ZKSAFE,还能支持各种资管平台,甚至能支持无私钥钱包(这将大大降低用户进入加密世界的门槛)。所以这套密码体系就是:

ZKSAFE Password(简称ZKPass)

你的密码,你值得拥有!

竞品MPC

再次强调一下,ZKPass (ZKSAFE Password简称ZKPass) 没有采用MPC(私钥分片)方案。很多人问这个,可以当作竞品对比一下:

  • MPC将私钥分布式存放在多个节点

    • 有中心化风险,节点被攻击可能导致所有人私钥丢失

    • 私钥被盗,密码啥的都没用

  • ZKPass纯算法实现密码功能,没有节点

    • 去中心化,不存储私钥也不存储密码

    • 私钥被盗,密码依然管用

当然了,作为私钥托管方案,MPC是不错的。而ZKPass是协议级、非托管的密码算法。

最后更新于