随着FTX在加密世界中的坠落,在11月9日的FTX事件过后的这几天内,各大中心化交易所(CEX)纷纷表示近期公布或直接公示交易所的默克尔树储备证明(merkle-tree proof-of-reserves),希望通过默克尔证明,将原本不透明的CEX资产准备金透明化,从而证明自家的CEX中心化交易所的资产储备情况,证明资金是没有被挪用或移动的。

毋庸置疑FTX的陨落让整个CEX的黑箱运行机制蒙上了阴影甚至是难以抹去的污点,而默克尔树储备证明似乎给这个行业带来一丝丝曙光。就此技术方案而言,几年前很早之前就已经被提出且应用过。那到底“默克尔证明”是什么,又如何证明交易所里的用户资产是没有被挪用的,是否能证明其资产就是在被安全保管的?

默克尔树是比特币和以太坊等加密货币的数据结构,它是一种可以将数据压缩的密码学技术。通过使用默克尔树,多个数据可以合并成一个数据,并且将较大规模的数据汇总结果存储,同时,又可以通过密码学的手段证明对应的数据被压缩在了汇总结果当中。并且,通过验证默克尔树树根的数据完整性,构成默克尔树的所有数据的完整性都可以被证明。

默克尔树的树叶部分由数据集当中每个数据的哈希值所构成。具体来说,树叶部分的构造是将两个相邻的哈希值连起来,打包到一块再次哈希化,以产生母哈希值。最后打包到最上层的哈希值被称为默克尔树根,根哈希值(Merkle Root)。默克尔树根的哈希值包含了所有数据的哈希特征,这就是说在哪个节点上数据被篡改,它将呈现完全不同的值,即无法篡改记录在默克尔树上的哈希值。

假设我们的账户和余额信息作为数据A被记录在了默克尔根当中,我们可以通过以下几个数据作为证明来验证数据A是否被记录在默克尔树当中:

  • 数据A(账户和余额信息)

  • B的哈希值

  • CD的哈希值

  • 根哈希值

默克尔树储备证明应该成为Crypto交易所的标配

图1: 默克尔树存储数据示意图

接下来我们通过数据A计算A的哈希,再和B的哈希一起计算AB的哈希,最后利用AB的哈希和CD的哈希一起计算根哈希,用我们计算的根哈希和得到的根哈希比较,若相等则验证了A被记录在默克尔树当中。

假如中心化交易所的所有用户的资产被记录在了默克尔树上,证明是真实的,交易所就可以在不公开其他用户信息的情况下去向每个用户证明“数据记录已被到默克尔树,用户的资产是真实存在的”。

这套证明系统在实际中又是如何运用的呢?这套系统的信任是建立在默克尔树(动态威慑)和审计(第三方专业职责)之上的。动态威慑是基于任何一个用户都能够作为检测节点,举证自己不在默克尔树上从而揭露交易所提供的树根是假,除此之外没有其他任何作用,比如树根没有展示所有用户余额之和的功能。二者是缺一不可的,并不是说紧紧依靠密码学的证明方式就能够证明一切问题,实践中比理论复杂很多,其中有很多可以操控的点。

但是比起之前的CEX只有审计的监控,加入默克尔树实际上是给予了用户吹哨的权利,让CEX的资产储备一定程度的得到了去中心式的监控,是很大的进步,对于目前信心强烈不足的市场是一件好事。

然而,采用默克尔树储备证明是否能证明用户资产就是安全的呢?虽然通过默克尔证明,我们可以验证自身的资产是被记录在了不可篡改的哈希中,但这是否能够完全证明资金是没有被挪用或移动的?

中心化交易所每秒都有大量的交易,不可能每一秒都去更新树根,因此我们看到的树根大概率不是最新的。但是从另一个角度讲,默克尔树计算主要是由一系列哈希函数的计算来组成,而哈希函数的计算速度是比较快的,所以在这种意义下,更新频率不会很慢。

除上述更新频率的问题之外,默克尔树储备证明存在以下重要的问题:

  1. 前端欺诈问题:默克尔树数据存在交易所自家服务器上,用户与交易所交互的前端页面是交易所掌控的,交易所完全可能返回假的页面来欺骗用户,存在前端欺诈的可能性。该问题需要通过第三方的软件监督来解决。

  2. 第三方审计的信用问题:同样的传统金融中常常也会有审计犯错甚至的违法的行为,这在Crypto领域虽然还没有大规模应用起来,但是有审计并不永远客观公正。

  3. 关联交易、负债关系、保证金交易等无法通过储备来体现。

加密货币这个市场需要更多公开透明的信息,默克尔树储备证明成为Crypto交易所的标配有助于建立行业规范、重建用户信心。

不管是对投资人还是对用户,保证资金安全永远是一个悬在每个从业者头顶上的达摩克利斯之剑。这轮熊市,无论倒下谁,最后剩下谁,Web3的车轮不会停歇,滚滚向前。