比特派钱包app|以正确的方式进行“储备证明”

- 编辑:admin -

比特派钱包app|以正确的方式进行“储备证明”

介绍

过去几周,加密货币世界一片混乱。随着 FTX 的崩盘,出现了全行业的清算,呼吁中心化交易所证明他们持有用户资金——即所谓的“储备证明”。在这篇文章中,我将首先概述为什么加密货币交易所需要有“储备证明”的基本原理,然后再深入分析其使用 Merkle Trees 和 zk-SNARKs 等技术的实施。

“储量证明”的基本原理

为什么我们需要中心化交易所?

推荐阅读 1

储备证明

2

最大可提取价值

FTX 的崩盘既突然又戏剧性。将中心化交易所最近的破产比作“加密的雷曼时刻” [1] 并不为过。2022 年 1 月,FTX 的估值为 320 亿美元,是加密货币交易量最大的中心化交易所之一。然而,在 11 月初,在人们开始质疑 FTX 资产(主要以 FTT 表示,它是自己的加密货币代币)的真实价值后,交易所面临流动性危机。FTT 的价格似乎在一夜之间暴跌 90% 以上,债权人纷纷撤资,当尘埃落定后,FTX 申请了第 11 章破产保护 [2]。

不出所料,所有这些都粉碎了人们对加密货币市场的信心,尤其是对中心化交易所 (CEX) 的信心。事实上,CEX 在加密货币世界中处于一个尴尬的位置,因为在一个意识形态上通过去中心化来奖励无信任的行业中基于信任的中心化实体。尽管有许多去中心化交易所 (DEX) 可以与中心化交易所的流动性和多样性相媲美,甚至无法超越,但即使面对所有明显的缺点和风险,中心化交易所仍然存在存在的持续需求。

从根本上说,中心化交易所是人们进入加密货币行业的主要途径之一。考虑用户在像 Uniswap v3 这样的 DEX 上为(盘点的)BTC 加密货币交易赚取 5 美元 ETH 所需的所有活动部分和技术知识。首先,用户需要知道并安装一个钱包,比如 Metamask。12字的助记词、不同链的账户管理、不同的代币等等,光是这点就足以让普通用户望而却步了。然后用户需要使用第三方供应商(比如 MoonPay)将信用卡钱存入他们的钱包。这还涉及为该第三方供应商注册、KYC 等,以及了解他们的 64 位钱包地址——这又是一个麻烦。用户还需要了解所有这些的汽油费、点评币、中心化流动性等。非常初学者不友好。现在将其与 CEX 购买进行对比:用户在熟悉的过程中完成注册和 KYC,刷信用卡,选择“ETH/BTC”对并点击“购买”。非常适合初学者。

此外,中心化交易所不仅服务于个人用户——传统金融公司和公司等机构客户也依赖中心化交易所来投资他们的资产。除了使用简单之外,这些机构客户还希望中心化问责制和支持——在需要时求助于人,在过度贪婪时起诉人。所有这些都不是 DEX 可以以任何有意义的能力匹配的东西;要使 Web 3 成为主流,它需要传统机构的支持,并且必须有一个易于大众使用的入职机制。因此,我们不能用中心化交易所代替去中心化交易所。事实上,即使是 FTX 惨败也没有显着增加所谓“逃离”CEX 的加密货币数量。正如 Chainalysis 指出的那样,

所有这一切都指向一个冷酷的事实:尽管中心化交易所可能带来所有潜在的欺诈和风险,但放弃 CEX 并不是一种选择。

为什么 CEX 应该有全额准备金支持?

到目前为止,我们已经确定我们需要 CEX,即使是在 FTX 崩盘等灾难之后。但为什么储备需要有全额储备支持呢?为什么 CEX 不能像银行那样以部分准备金运行?

简而言之,加密货币交易所的运作方式与银行不同。首先考虑银行在经济中扮演的角色。从根本上说,银行是一个汇集借款人和贷款人的平台。假设爱丽丝向银行家鲍勃存入 1000 美元(储蓄利率为 5%),准备金率为 20%。虽然 Bob 会向 Alice 承诺她可以随时拿到她的钱,但 Bob 实际上只会保留 200 美元(准备金率 20%),以防 Alice 想提取一些钱来支付账单,并打赌爱丽丝不会想要立即收回她所有的钱。对于另外的 800 美元,Bob 以 10% 的利率将其借给企业家 Carol。假设企业家卡罗尔建立了一个新的鞋厂并销售了足够的鞋子来返还 800 美元的本金和 80 美元的利息。

部分准备金银行的例子。来源:原始内容

在最好的情况下,每个人都会赢:爱丽丝获得 50 美元,鲍勃获得 30 美元,卡罗尔获得她的新鞋厂。更重要的是,经济赢了:卡罗尔从她的工厂生产更多的鞋子,如果爱丽丝把她的 1000 美元放在床垫下面,她就不可能这样做。正是在这个意义上,经济学家说“银行创造货币”——通过借贷,银行创造了必要的新资本,帮助像卡罗尔这样的企业家创造更多的经济产出。DepositAmount * (1/ReserveRatio)银行创造的特定货币量相当于1/ReserveRatio也被称为“货币乘数”。准备金率越低,银行创造的经济产出价值会增加,但银行手头现金不足以满足取款需求的风险也会增加。另一方面,如果你要求 Bob 保持 100% 的准备金率,那么 Carol 就得不到她的鞋厂,经济就会停滞,Bob 将不得不自掏腰包支付 Alice 的存款利息。每个人都输了。因此,这里的总结是,由于经济活动主要由借贷提供资金,因此银行对于保持健康的经济运转和增长至关重要 [4]。

银行使用部分准备金来“创造货币”并刺激经济增长。但是没有与加密货币交易所类似的机制。像币安、Coinbase 或 FTX 这样的中心化交易所不会为经济创造新的价值。用户(通常)不会获得任何利息,加密货币交易所通常不会像传统银行那样从事借贷活动。它的行为更像是一家证券交易所,而不是一家银行——它只是将持有现金的人与持有加密的人联系起来。这些中心化交易所为你(作为托管人)保管你的资金,只是作为附带奖励,因为跟踪你自己的加密货币可能很麻烦(特别是如果你经常交易)并且在技术上具有挑战性。对于拥有法定货币的银行来说,这只是在一定程度上是正确的——获得一个保险箱并锁好你的现金并不难。

CEX 不是银行:CEX 最重要的作用是促进资金的交易和提取,而不是为了刺激经济生产而进行的借贷。更重要的是,运行部分准备金模型并不能真正使 CEX 上的交易者受益,就像部分准备金使传统银行业务中的储户受益一样。因此,虽然银行可能需要部分准备金才能充分实现其经济重要性,但加密货币交易所并不需要以同样的方式进行部分准备金。鉴于此,对于中心化加密货币交易所而言,全额准备金支持带来的信任和安全性远远超过部分准备金模型可能带来的任何优势。因此,中心化加密货币交易所应采用全储备模式。

储量证明的实施

到目前为止,我们已经为中心化加密货币交易所应采用全储备模型的原因建立了明确的理由。现在,我们需要看看我们究竟是如何实现它的,尤其是以 Web 3 原生方式;换句话说,使用原生 Web 3 技术而不是传统的审核员模型来实现这一目标。完整的“储备证明”包括两个部分:负债证明和资产证明,以表明 CEX 的资产等于(或大于)其负债,这样如果每个用户决定从交易所提取所有资金,交易所将不会面临偿付能力问题。

责任证明

首先,让我们看一下负债证明,或者证明用户的存款确实在交易所中被正确记录。毕竟,我不想存入 1 个 ETH 到 币安然后让他们回来告诉我我不能提取它,因为它没有记录在系统中。

提供完整负债证明的最简单方法是简单地发布一(account, value)对每个人的资产。但这会导致隐私问题:每个人都可以看到其他人有多少钱。对此的边际改进是简单地发布用户帐户的随机散列以及用户的余额。但是,所有这些余额的泄露仍然是一个隐私问题。此外,所有交易的变化——本质上是这个交易所的所有交易,都会被泄露给攻击者。

在实际的负债证明中,我们要向每个人保证他们的余额保存在交易所中,但同时不向任何给定用户泄露任何其他用户的余额或任何交易信息。我们如何做到这一点?默克尔树是 Web 3 中最重要的数据结构之一。

Merkle 树(也称为二叉哈希树)提供了一种简洁的方法来证明列表中存在一个元素,同时提供关于所有其他元素的最少信息。它通过首先将列表中所有数据的散列作为二叉树上的叶节点,每个父节点由其两个子节点的散列之和组成。树的顶部将是一个向所有人公开显示的根节点 [5]。为了证明给定的叶节点(比如我的账户)保存在一个列表(比如 币安的账户列表)中,币安为我提供了一个简短的证明(大小为O(log(n)),称为树中某些关键节点的 Merkle 证明,这将允许我重建和验证树的根。

Merkle 树负债证明。来源:https ://vitalik.ca/general/2022/11/19/proof_of_solvency.html

在下面的示例中,我们有 8 个用户使用不同数量的 ETH。假设我是查理,我在 币安上持有我的余额,它使用 Merkle 证明实现“责任证明”。币安会给我一个 Merkle 证明,由三个蓝色节点的哈希值组成。然后我可以使用 Merkle 树公式 ( parentValue = hash(leftValue, rightValue)) 来散列我自己的值,将它连续添加到 Merkle 树上,最终到达根节点。如果我得到的根节点值与公布的值相同,那么币安确实有我的余额。

实际上,用于负债证明的 Merkle 树实现本质上是“古老但黄金”。虽然它已经存在很长时间了,但最近对“储备证明”的大部分呼吁实际上可以与要求交易所使用 Merkle 树来证明存款 [6] 互换。正如 Vitalik 指出的那样,“Merkle 树技术基本上与责任证明方案一样好”[7]。除了使用 Merkle 树之外,还可以利用 zk-SNARK 形式的零知识证明 (ZKP) 来获得更强大的责任证明。zk-SNARKs 的基本用途是提供一个简洁的证明,证明某物存在,而无需透露该“某物”是什么的任何细节。在负债证明的情况下,这个“东西”本质上是账户余额。因此,使用 ZKP,

资产证明

负债证明只是等式的一方面。为了证明中心化交易所完全由储备支持,我们需要证明该交易所的资产大于或等于这些负债。那你怎么证明你有钱呢?对于法币,最简单的回答基本上就是“给我一个装现金的公文包”。与此等效的加密货币是将你的兑换资金发送到一个公开同意的钱包,这样每个人都可以看到钱在那里。正如 Vitalik 指出的那样,如果你不想支付在链上转移现金的费用,你可以发送链下签名消息 [7]。

但当然,现实并没有那么简单。这种资产证明方法带来的主要问题是,大部分交易所的余额都存储在链下、气隙冷钱包中 [7]。这些“冷藏”钱包主要用于保证资金安全:从从未连接到互联网的计算机上窃取私钥要困难得多。冷钱包离线生成并签署交易,该签署的交易通常通过二维码传输到网络上。因此,即使是从一个冷钱包提交交易(或者更确切地说,任何信息)也是一个非常麻烦的过程。结合这一事实,交易所通常需要为每个不同的代币和每个不同的链提供大量的冷钱包。因此,

此外,虽然交易所可以向所有人公开显示他们控制的地址以及这些地址中有多少资金,但这种资产证明方法并不能显示这些资金的来源。假设在我的资产负债表上,我只有 80 ETH,但我的储户存入了 100 ETH。当时间到了,我需要做准备金证明时,我可以很容易地借 20 ETH(从朋友或银行)来赚取 100 ETH,将其发送到商定的钱包,并吹嘘如何负责我是一个交易所。宣传噱头完成后,我悄悄归还那 20 个 ETH(可能逐渐归还,混淆用户提款),并重新拥有部分准备金。对于指定为储备钱包证明的一次性钱包,这尤其令人担忧。

正如 Vitalik 指出的那样,解决这两个问题的最简单方法是使用一些长期地址,你可以永久使用这些地址将所有资金存储在 [7] 上。你只需要证明一次所有权,其余时间人们只需要监控进出这些地址的交易来跟踪你的资金动向,并检查这些是否与你的负债证明中声称的负债相符默克尔树。但是,作为拥有数十亿美元用户资金的交易所,你是否希望将所有这些存储在几个永不改变的地址中?毫无疑问,这会带来安全问题,并且是任何想要榨取你资金的攻击者的诱人目标。

由此可见,资产证明其实并不像乍看起来那么简单。虽然你可以使用一些技术措施,比如公开地址,甚至是这些地址的零知识证明,但交易所似乎总是有办法(比如借钱的例子)偷工减料并欺骗消费者。也就是说,至少在资产证明上,单纯的技术手段也只能到此为止。你最终仍然需要传统的审计师来真正验证资金是否来自合法来源。

结论

中心化交易所是必要的,但要让它们蓬勃发展,就需要获得信任,并保证 FTX 崩盘等灾难不会再次发生 [8]。这样做的一个重要步骤是在全额储备支持下运作。正如 币安首席执行官 CZ 所说,“银行依靠部分准备金运行,但加密货币交易所不应该”[9]。

币安首席执行官赵长鹏 (CZ) 表示加密货币需要储备证明。来源:https ://twitter.com/cz_binance/status/1590055819416330240

自从 FTX 崩盘以来,许多人或明或暗地暗示,中心化加密货币交易所可以通过 Merkle 树等措施拥有纯技术性的“储备证明”,因此审计机构已成为过去。甚至“储备证明”的名称也隐含地强化了这一点,让人想起“工作证明”和“股权证明”的纯机械过程。但在这种情况下,现实要复杂得多。

纯粹客观的算法,例如使用 Merkle 证明,肯定有助于对交易所的偿付能力状况产生一些保证(例如表明它已记录在案的所有用户存款)。但这通常是不够的。正如我们对“资产证明”的探索所表明的那样,聪明(和邪恶)的交易所通常可以很容易地战胜这些本应保证其偿付能力的算法。毕竟,因为有偿付能力的交易所需要同时证明其资产和负债。因此,简单地强调 Merkle 树可以解决所有问题充其量是误导,最坏的情况是故意欺骗。这里的关键要点是,即使在 Web 3 的技术官僚世界中,仍然需要有人参与监管不法行为。仍然需要一个审计员