大家好,我是来自Coinmanlabs(欢迎关注推特,《程序员角度全分析千个项目》持续更新中)的Paul,昨天我们跟大家聊了下Nocturne。
今天Nocturne发布了自己的任务,那我们今天就来看看怎么做Contributor任务。
什么是可信设置?
许多零知识证明系统,包括Nocturne V1使用的Groth16证明系统,需要将一层熵(随机性)应用于电路,以确保证明的安全性。然而,问题是没有人知道这种随机性。因此,所说的随机性通常被称为“有毒废物”——我们必须确保没有人抓住随机性,否则零知识证明方案将被打破。 在实践中,我们可以通过使用多方计算(MPC)来或多或少地保证这一点。其主要思想是,我们让尽可能多的人产生自己的随机性,并将其应用于电路,以一种让人想起“召唤仪式”或“随机仪式”的方式将其一个接一个地分层。只要只有一名参与者真正丢弃了他们的“有毒废物”,证明系统就会是安全的。
Nocturne V1希望用户也能贡献自己的随机性,成为确保Nocturne V1安全的重要组成部分。
先决条件
在自己的电脑安装过node.js,会使用npm
目前contributor CLI不支持Windows,建议使用Mac或Linux,且该工具目前不支持在VM和Docker容器中运行。
建议使用node.js版本为18,你可以在下面网站下载18的版本
为了防止女巫攻击,需要持有一个github账号且你需要已经建立了一个仓库,并且
至少有1个追随者,同时跟随5个其他github用户。
截止时间为**美国东部时间11月6日00:00(北京中午12点)**结束
快速安装node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
source ~/.bashrc
nvm install 18.18.2
操作步骤(最困难的就是网络问题)
当你满足了先决条件,那么贡献需要三个简单的步骤:
通过运行“nocturne-setup auth”,使用您的GitHub帐户对CLI进行身份验证(满足上述要求)。
这一步主要是验证github账号,会跳出github页面让你验证,直接粘贴那串code就可以了。我们在这里可以看作是你下载了客户端想github请求后等到github给你返回token。
如果出现上面的问题请继续尝试,因为网络问题很多次重试
注意点
1.根据您的互联网连接以及队列中有多少其他贡献者,这可能需要30分钟到几个小时。当你做其他事情的时候,只要它们不是上传密集型的,就可以让它在后台嗡嗡作响。
2.每个电路的贡献都有时间限制。如果您的贡献花费太长时间,您将被从仪式中删除,并被迫等待2个小时后重试。这是为了确保其他人有机会做出贡献。
3.请确保您的计算机在脚本运行时不会进入睡眠状态。如果你这样做了,你很可能会暂停并阻止其他人做出贡献。
4.如果你确实遇到错误,99%的时间都会出现在第三条也是最大的电路上。在最坏的情况下,如果你不能让它为最后一个电路工作,你对前两个电路的贡献仍然是最终确定的。
5.CLI在运行时会创建一些临时文件。不要删除它们。
常见问题
1.“unable to retrieve authenticated user”。如果您看到这个,请等待一分钟左右,然后重试。有时,在运行“nocturne-setup auth”后,后端更新有点慢。
2.多次尝试后上传失败(如下图)。这通常是由于你的互联网速度太慢。不幸的是,在这种情况下,您将无法做出贡献。
3.验证失败,出现[FirebaseError:INTERNAL]
。不幸的是,这是一个我们没有时间解决的已知问题。如果您遇到这种情况,请告诉我们,等待超时,并在几个小时后重试。
4.排了好几个小时的队。如果很多人都试图同时做出贡献,这是意料之中的事。只要有耐心,尽量不要让你的电脑进入睡眠状态。