

Tornado.Cash 是目前最大的去中心化混币协议,在因为美国其所在州的监管原因经历过一次退币,现在终于发币了!Tornado.Cash 中当前存款金额达到了 2 亿美元,每周有千万美金的交易额和约 2 万美金的收入。此前 FBI 查封的一个中心化混币平台经营 8 个月的收入达到了 5000 万美金,从这个数额来看混币值得关注,Tornado.Cash 也可能因此而具备比较大的发展空间。而且就技术角度来说,Tornado.Cash 也是水平比较高的协议。
Tornado.Cash 已然变成以太坊最大的隐私解决方案,它是自主且去中心化的,但同时也是静态的–这使得它无路发展。现在所提出的是可以改变这种状况的建议。如果这个建议被采纳,那么 Tornado.Cash 的治理将会委托给它的用户,而且 Tornado.Cash 会被允许在其社区的管理下发展。通过这种方式,以太坊的用户将自己控制自己的隐私协议。
这是有关 Tornado.Cash 治理系统可以如何工作的建议:
TORN 代币
TORN 是与 ERC20 兼容的代币,它具有固定的供应来管理 Tornado.Cash。TORN 持有者可通过治理来提出建议,而且可以投票来更改协议。
TORN 不是筹款工具或投资机会。部署 45 天后,直到社区通过治理投票决定解锁转移,并确保其遵守所有适应法律之前,它都将保持不可转让状态。
以下是 TORN 初始分发方式:
*5%(500,000 TORN)**:向 Tornado.Cash 以太坊池的早期用户进行空投
*10%(1,000,000 TORN)**:Tornado.Cash 以太坊池的匿名挖矿,1 年内开始线性解锁
*55%(5,500,000 TORN)**:DAO 库,将在 5 年内线性解锁,并有 3 个月的锁仓期
*30%(3,000,000 TORN)**:创始开发者和早期支持者,将在 3 年内线性解锁,并有 1 年锁仓期


空投
从一开始就相信 Tornado.Cash 的用户应该在治理协议上有发言权。出于这个原因,协议的早期使用者将收到空投的 TORN。
在 11400000 区块高度之前,所有存款至 Tornado.Cash 以太坊池的地址,都将得到空投的 TORN。TORN 将以不可转让的 TORN 凭证(vTORN)的形式进行空投,这个凭证可以在 1 年内 1:1 兑换为 TORN。未兑换的 TORN 将在 1 年后清算到管理合同中,并成为 DAO 库的一部分。兑换的 TORN 可立即使用。
空投金额取决于用户的存款规模和时间长短-较多的存款和较早的存款将获得更多的 TORN。存款规模的乘数是对数的:

因此存 100 个以太坊将获得存 1 个以太坊的两倍数量的代币。乘数使 Tornado.Cash 的大用户或者小用户都可以在管理上拥有发言权。
时间乘数的确切曲线如下所示:

准确的空投公式如下 :

匿名挖矿
Tornado.Cash 背后的基本理念,其一是隐私是人权,其二是每个人采取隐私措施的次数越多,对我们所有人来说就越安全(就像 HTTPS 成为网络浏览器的默认方式使我们所有人都更加安全一样) 。为此,以后添加 Tornado.Cash 匿名集的用户也应收到 TORN。
传统的 DeFi 流动性挖矿是分配代币的自然选择。但是,任何幼稚的流动性挖矿方案都会迫使用户披露他们的存款在 Tornado.Cash 池中花费的时间。这有悖于 Tornado.Cash 的核心价值:保护隐私。
这就是发明匿名挖矿的背后驱动力。在匿名挖矿中,用户将能通过两级屏蔽式流动性挖矿系统来接收 TORN,该系统可充分保护用户隐私。
在 Tornado.Cash 存款后,用户会在一个受保护的帐户中累积私人匿名积分(AP),这个账户将保护用户的钱包地址和余额,并且不会泄露存款的任何信息。一旦用户在其受保护的帐户上积累了足够的 AP,就可以随时通过我们定制的 Tornado.Cash AMM 将 AP 兑换为公共 TORN 代币。
这个系统有点复杂。但这可以确保在认领 TORN 代币的过程中始终保护用户隐私。
注意:只有在部署仪式之后存放的凭证才有资格进行匿名完矿-较早的凭证将通过空投进行分发。
操作步骤如下:
认领 AP
首先,用户只能认领已花费的 Tornado.Cash 凭证的匿名积分(AP)(在用户只有花费了凭证才能认领 AP)。花完票据后,认领 AP 时将会有一个延迟。
为了认领 AP,用户的浏览器会生成一个特殊的零知识证明来计算欠下的 AP (基于用户凭证在以太坊 Tornado.Cash 池中有多少区块),然后将其添加到用户受保护的余额中。下表是不同 Tornado.Cash 凭证规模,每个区块的 AP 表。

在线上其他的用户只能看到某人在一个特定的 Tornado.Cash 池中因一些凭证而认领了一些未知大小的 AP 。为了进一步加强隐私性,用户可以通过中继者(中继者接受 AP 作为支付他们中继费用的方式)认领 AP。
受保护账户
由于 AP 是完全私有的,因此为了存储用户受保护的 AP,用户需要生成一个秘密密钥来存储 AP 余额。该密钥是随机生成的,然后使用以太坊公钥(使用 Metamask 的 eth_getEncryptionPublicKey)进行加密并存储在链上。这样,就算丢失了它,也可以使用用户的以太坊密钥恢复它。
此秘密密钥用于加密,提交认领和提取数据,且不会泄露用户的身份。
将 AP 兑换为 TORN
用户可以使用定制的 Tornado.Cash Automated Market Maker (AMM)将自己的挖矿来的 AP 转换为公开可见的 TORN。
将 TORN 连续且均匀地滴入该 AMM 中(1 年内 100 万个 TORN 代币)。在任何点上认领的 AP 都可以对 AMM 中累计到该点的 TORN 出价。
这确实意味着把 AP 兑换成 TORN 的时机是要有策略的-如果同时撤出的人太多,则 AP / TORN 兑换率会下降,而如果撤出的人很少,则比率就会提高。但是,在最初的 45 天内,TORN 完全不可转让。
这是一个粗略的比喻:可以想象在一年内,TORN 代币通过滴入桶 (AMM) 中而被释放。借助 AP 代币,就可对目前存储在桶中的任意数量的 TORN 进行出价。如果有很多 AP 同时出价,那么这个桶会很快被耗尽,并且每个 AP 的竞价率也会很低。但是,如果 AP 持有者有耐心,它应该会随着时间的流逝而趋于平整,每个人都应该获得与 AP 大致相等的 TORN 数量。
这就是认领 TORN 的整个过程。不幸的是,这其中不乏存在一些不可简化的复杂性。但是,我们不会知道在匿名挖矿过程中将生成多少 AP (因为它是私有的!),因此这是确保 TORN 具有固定供应并且所有 AP 持续被保护直到它兑换为公共 TORN 的唯一方法。
确切的 AMM 公式如下所示:

*T-TORN 挖矿计划分配
*Tvirt —虚拟 TORN 余额
*Twithdrawn —用户已经撤回的 TORN 数量
*TORN-用户将收到的 TORN 数量
*AP —可兑换的匿名积分
*W — AMM 交换权重常数
Tornado.Cash 代理
你可能会想知道这一切是怎么变成可能的- Tornado.Cash 真是不可变的吗?
它是!Tornado.Cash 智能合约无法被更改或被更新。它们是去中心化的且不可变的。
但是,要使 Tornado.Cash 能够进行挖矿,它需要的元数据要多于当前可用的元数据:它需要知道每个 Tornado.Cash 存款和取款的区块号。为此,添加了每一笔交易现有区块号的旧 Tornado.Cash 前面都有一个代理。对使用代理的 Tornado.Cash 用户来说,其凭证可用于匿名挖矿,因为 Merkle 树将包含其存款发生时间的数据。(没有代理的 Tornado.Cash 版本仍然可以正常使用。)
注意:为了将存款和提款汇总到 Merkle 树中,需要运行一个名为 root-updater 的脚本。只要有人在运行,系统就可以平稳且可靠的运行下去。谁来负责这个角色以及如何处理它,是社区通过管理做出决定。
管理
为了参与 Tornado.Cash 的管理,用户首先需要在管理合同中锁定代币。如果用户需投票或创建提案,则无法在提案执行期结束(提案创建后的 8.25 天)之前解锁代币。被锁定的代币也可以委托给另一个地址。
要提出提案,用户至少需要拥有 1000 个 TORN。所有提案需是智能合约,这个合约需有管理合同执行之后通过验证代码的智能合约。这样,就可以轻松审核和测试任何管理的更改。
提案的投票期为 3 天。如果提案获得了多数票,且总投票数至少达到 25,000 票时,则提案将获得成功(如果投票率太低,则提案将自动失效)。
提案成功后,其有效期限为 2 天。期限过后,任何用户都可以执行提案(发起更改)。如果提案在此之后的三天内未被执行,则视为已过期,不可再执行。
所有初始参数都相对较小,因为早期不会有很多 TORN 代币在流通。但是随着循环供应的增多,可能会调整这些阈值。

管理提案有权更改 Tornado.Cash 的内部参数,包括完全升级(通过代理)。
管理启动
归根结底,这只是一个建议。我们不控制 Tornado.Cash,它的用户可以控制,因此,如果社区采纳了此建议,那么它将成为以太坊隐私保护的前进方向。我们已经编写了代码,并将其发布到 GitHub 和 IPFS。
