每个余额都是非负的;
总额为索赔金额。
当然,这破坏了隐私,所以我们可以稍微改动一下计划:
为了维护隐私,我们想到了下一个发明:
默克尔树技术包括将客户余额表放入默克尔总和树中。在默克尔总和树中,每个节点都是一个(余额,哈希)对。底层叶节点表示各个客户的余额和 salt 的用户名哈希。在每个较高层节点中,余额是下面两个余额的和,而哈希是下面两个节点的哈希。默克尔总和证明与默克尔证明一样,是树的一个“分支”,由从叶到根的路途上的姐妹节点组成。
该交易所将向每位用户发送一份默克尔存款证明。然后,用户将取得一个保证,他们的余额是准确包括在总额的一局部。可以在这里找到一个冗杂的示例代码完成。
这种想象中保守的隐私比完整公开的列表要低得多,而且可以经过在每次发布“根”时移动分支来进一步增加,但依然具有一些隐私保守:Charlie 了解到有人的余额为 164 ,有两个用户的余额加起离开达 70 ETH 等等。掌握多个帐户的攻击者仍有能够了解交易所用户的少量音讯。
该方案的一个主要的拙劣之处是负余额的能够性:假定一个交易一切 1390 ETH 的客户余额,但只需 890 ETH 的贮藏,试图经过在树的某个位置的假账户下增加 -500 ETH 余额来补偿差额,该怎样办?梦想证明,这种能够性并没有破坏该方案,这就是我们特地需求默克尔总和树而不是惯例默克尔树的缘由。假定 Henry 是交易所掌握的假账户,交易所在那里放了 -500 ETH:
Greta 的证明考证将会失利:交易所将不得不给她 Henry 的 -500 ETH 节点,她会以有效为由拒绝它。Eve 和 Fred 的证明考证也会失利,由于 Henry下面的中间节点有 -230 的 ETH,所以也是有效的。为了防止被怀疑盗用,交易所必需希冀树的右半部分没有人检查他们的余额证明。
假设交易所可以识别出价值500 ETH的用户,他们置信这些用户要么不会省心检查证据,要么在他们埋怨他们从未收到过证明时不疑心他们,他们就可以不被疑心盗用。但是,交易所也可以将这些用户从树中清扫并发生相同的效果。因此,假设仅以完成负债证明为手段,默克尔树技术基本上与权益证明方案一样好。但它的隐私属性依然不梦想。你可以用更聪明的方式使用默克尔树,比如把每个 satoshi 或 wei 做成一个独自的叶,但最终经过更现代的技术,还有更好的方法来做到这一点。
ZK-SNARK 是一项弱小的技术。ZK-SNARK 之于密码学,能够就像变压器之于野生智能。我们可以运用 ZK-SNARK 极大地简化和改善权益证明协议中的隐私。
我们可以做的最冗杂的事情是将一切用户的存款放入默克尔树(大约,更简单的,KZG 许愿),并使用 ZK-SNARK 来证明树中的所缺少额都是非负的,并且加起来是某个宣称的值。如果我们为隐私增加一层哈希,那么给每个用户的默克尔分支(或 KZG 证明)将不会走漏任何其他用户的余额。
我们可以用一个公用的 ZK-SNARK 证明上述 KZG 中余额的总和以及非负性。这里有一个简单的例子。我们引入一个辅佐多项式 I(x),它组成每个余额的比一部分(我们假定余额低于 215),每 16 个位置跟踪一个带有偏移量的总和,只需当实际的总和与声明的总和相婚配时,它的总和才为零。如果 z 是单位的 -128 阶根,我们可以证明上述文章内容等式:
可在这里找到关于 ZK-SNARK 的进一步注释。只需求几个额外的方程,这样的约束系统就可以顺应更繁杂的环境。例如,在杠杆交易系统中,团体用户的余额为负是可以接受的,但前提是他们有足够的其他资产,以肯定的担保保证金掩盖资金。SNARK 可以用来证明这一更繁杂的约束,让用户担忧,交易所不会经过秘密豁免其他用户遵守规则来冒资金风险。
在较暂时的未来,这种 ZK 债务证明大约不只可以用于客户在交易所的存款,还可以用于更普遍的存款。任何人借出一笔存款都会将记载放入一个多项式或包括该存款的树中,该结构的根会在链上发布。这将使任何寻求存款的人向存款机构证明,他们还没有取得过多的其他存款。最终,法律创新甚至能够使以这种方式许愿的存款比没有这样许愿的贷款具有更高的优先级。这与我们在《去中心化社会:寻觅 Web3 的灵魂》文章中议论的一个想法的方向完整相同——通过某种方式的”灵魂绑定代币“,在链上发生反面声誉的概念。
资产证明的最简单版本是我们下面看到的协议:要证明你持有 X 个代币,你只需在事前商定的时间移动 X 个代币,大约在数据字段包括“这些资金属于”字样的交易中移动 X 个代币。为了防止支付交易费用,你可以签署一个链下音讯。比特币和以太坊都有链外签名音讯的规范。
这种简单的资产证明技术具有两个实际效果:
出于思索,大少数交易所将绝大少数客户资金保管在冷钱包中。在离线计算机上,交易需求手动签名并转移到互联网上。我过去用来寄存集团资金的冷钱包设置需求一台永世离线的电脑生成一个包括签名交易的二维码,然后我用手机扫描。往常的交易所协议愈加猖狂,经常触及多个装备之间的多方计算。在这种设置下,制造一个额外的音讯来证明对地址的掌握是一个高尚的操作。
交易所可以采用以下几种方式:
最后一个效果是:你能以法定方式停止资产证明吗?交易所不只持有加密,它们还在银行系统内持有法定货币。在这方面,答案是肯定的,但这样的次第将不可避免地依赖于“法定”信托模型——银行自身可以证明余额,审计师可以证明资产负债表等等。思索到法币无法通过密码学考证,这是在该框架内所能做到的最好的办法,但依然值得一做。
另一种方法是将一个运营交易所处置资产支持的实体(如)和另一个处置在加密货币和保守银行系统之间挪动的现金进出进程的实体(USDC 自身)完整分兼并来。由于 USDC 的“负债”只是链上的 ERC20 代币,负债证明是“收费的”,只需求资产证明。
假设我们想更进一步:我们不想仅仅证明交易所有资金归还用户。相同,我们希冀阻拦完全交易所盗用用户的资金。
第一个次要尝试是 Plasma,这是一种 2017 年和 2018 年在以太坊研讨圈流行的扩容处置方案。Plasma 的义务原理是将余额拆分为一组独立的“代币”,其中每个代币都被分配一个索引,并位于 Plasma 区块的默克尔树的特定位置。要停止有效的代币转移,需求将一笔交易放到根被发布到链上的树的准确位置。
Plasma 的一个版本的过度简化图。代币保具有中,该合约在存款时志愿实施 Plasma 协议的规则。
自 2018 年 Plasma 议论的热潮以来,ZK-SNARK 曾经变得愈加适用于与扩展相关的用例,正如我们上面所说的,ZK-SNARK 改动了一切。
更现代的 Plasma 想法是 Starkware 所称的 validium:基本上与 ZK-rollup 相同,只是数据是链外保管的。这种结构可以用在很多用例中,可以想象任何中心化效力器需要运转一些代码并证明它正在准确实施代码的状况。在有效期限内,操作人员没有办法攫取资金,固然依据完成的细节,如果操作人员消逝,一些数量的用户资金可能会被卡住。
CEX 和 DEX 并不是二进制的,幻想证明,它们有一系列的选择,包括各种方式的混合中心化,在那里你可以取得一些优势,比如效率,但依然有很多加密屏障,避免中心化运营商的滥用。
处置用户过失也是一个大效果。到目前为止,最主要的过失类型是——如果用户遗忘了密码,丧失了装备,被黑客攻击,大约无法访问自己的帐户,该怎样办?
交易所可以处理这个问题。首先是电子邮件恢复,如果连这都失利了,再通过 KYC 停止更复杂的恢复。但为了能够处理这些问题,交易所需要真正控制这些代币。为了有能力以合理的理由收回用户账户的资金,交易所需要有能力以不合理的理由攫取用户账户的资金。这是一个不可避免的权衡。
幻想的暂时解决方案是依托自我托管,并借助诸如多签和社会恢复钱包等技术来辅佐用户处理急切情况。但在短期内,有两种清楚的替代方案,它们的利息和收益清楚不同:
短期内,有两种清楚的交易所类别:托管交易所和非托管交易所。往常,后一类只是像这样的 DEX,在将来我们可能还会看到加密技术受限的 CEX,用户资金以相似 validium 智能合约的方式持有。我们也可能会看到半托管交易所,我们疑心他们使用法定货币,而不是加密货币。
这两种类型的交易所将继续具有,而提高托管交易所平安性的最简单的向后兼容方法是增加贮藏证明。这包括资产证明和负债证明的区分。为两者都制定好的协议存在技术上的应战,但我们可以也应当尽可能在这两个方面取得停顿,并尽可能地开源软件和流程,以便所有的交易所都能受益。
从久远来看,我希冀我们越来越接近所有非托管交易所,至少在加密货币方面是这样。钱包恢复将会存在,而且可能需要为处理小额金额的新用户提供高度集合的恢复选项,以及由于法律缘由需要这种布置的机构,但这可以在钱包层而不是在交易所外部完成。magic.link 与 Polymarket 等平台的交互就是这种方法的一个例子。在法币方面,保守银行系统和加密货币生态系统之间的活动可以通过 USDC 等资产支持坚定币原生的现金进出进程完成。但是,我们要完全完成还需要一段工夫。
标签: 比特币