为什么加密交易平台要用默克尔树证明储备金?

11 月 9 日Binance 创始人 CZ 建议各大交易平台都采用默克尔树证明资金储备情况。而受到本次事件影响,部分交易平台虽然此前已证明过资金储备量,但也将再次采用默克尔树方式来提高平台资金透明度。对于大多数用户来说,可能并不了解默克尔树方法是什么,以及为何要用这种方式来证明。对此,BuidlerDAO 创始人 Jason Chen 在推特上进行了简单的科普

CZ 发文说所有交易平台都应该做默克尔树准备金证明,并且币安也将开始进行,紧接着 OKX 和 Huobi 也宣布跟进,其实 Gate 和 Kraken 这两家交易平台早已采用默克尔树准备金证明,并且用户可以自己去验证准备金是否充足,只是之前没有成为行业共识,相信 Binance 这一波带节奏会让行业更加自律,也更稳健。

很多朋友不了解什么是默克尔树准备金证明,为什么要证明准备金,又为什么要用梅克尔树来证明?

采用准备金证明技术原因

首先我们其实都不清楚自己存在交易平台里的钱是否被挪用了,这个问题不光交易所存在银行也是如此,以及包括 USDT 宣称会严格遵守 1:1 的美金储备,但谁知道呢,这次 FTX 就被曝挪用储户资金导致资不抵债。

其实一切的中心化都是黑盒毕竟是链下的而链上的去中心化链上交易所均公开透明暴雷概率自然也小很多,所以对于交易所来说 100% 准备金证明就是用户存在你这里 100 块,你必须要保证自己手里确实有 100 块,最直接的操作就是公开全部账面资产,但是这带来的问题包括隐私泄露毕竟要公开全部的储户情况。

以及数据量级太大可能是一张几百万行的 Excel,默克尔树的作用主要就是用很小的成本就可以验证数据完整性,它大量的应用在区块链方方面面,比如 NFT 在 mint 的时候验证白名单就使用的默克尔树,毕竟几千个钱包地址如果一个个的遍历一遍累死了,于是用默克尔树可以快速的验证一个地址是否存在于白名单集合中。

默克尔树准备金证明的原理

包括区块链本身如何验证数据没有经过篡改,也是会在每个区块的块头中存储默克尔树,它具体的原理是什么呢?如下图所示,每一个账户是最下面的一个 Acct 节点,可以将每个账户的余额和账户名进行一次 SHA256 加密计算,然后将得到的哈希值再相邻进行一次计算,一层层往上最后得到了一个树根。

所以我作为一个普通用户,这时候验证当前的准备金库存是否有过变动,我只需要按照规则将我自己账户进行一次哈希计算,找到我在这个树中的位置,和相邻节点,然后再一层层的向上计算哈希,最终得到一个我自己算出来的树根,如果和官方公布的一致那就说明是准备金无误的。

中心化与去中心化之争就是信任与共识之争,越来越多的交易所开始主动通过技术手段为自己拷上枷锁透明化,这次行业大变局也是行业整顿的一次机会,不破不立。