原文標題:CEX的梅克爾樹儲備證明是什麼?它有什麼潛在問題?

由於FTX因挪用用戶資金資不抵債被擠兌後暴雷,各大交易所都紛紛表示會推出自己的100%梅克爾樹儲備證明,以證明自己的資產儲備是100%充足的,不會挪用,也不會發生類似事件。

那麼,什麼是梅克爾樹儲備證明,它爲何能證明有100%儲備,以及它有什麼潛在問題呢?

首先了解一下什麼是梅克爾樹(Merkle Tree)。梅克爾樹是一種數據結構。如圖我們有4份數據,每份數據爲用戶的ID和餘額。將4個數據分別哈希就構成了梅克爾樹的樹葉,再將兩個葉子的哈希值合併起來再進行哈希,如此迭代我們將得到一顆完整的梅克爾樹。最上面的節點叫做樹根。由於哈希算法的特性,任何一個數據節點有更改,都會導致樹根的哈希值發生變化。

而當我們需要證明某一用戶確實在樹上,如證明User1及其餘額,我們只需要提供如圖中的藍色節點的值。User1只需要知道自己的用戶ID和餘額,以及Hash2和Hash34(這兩個hash由交易所提供),就可以驗證自己是否在樹根上。顯然,只給出這幾個節點就足夠一路哈希算到樹根,只需要驗證樹根的值是否吻合即可。我們稱[User1,Hash2,Hash34]爲證明User1的梅克爾證明或路徑。

梅克爾儲備金證明實現的形式可有多種,我們先以Gate.io的方案看看。 其實現思路是:

1.公開梅克爾樹根。

2. 有能力向任何用戶證明其餘額和UID在樹上。

3.第三方審計公司來審覈樹上所有用戶的餘額加總。

4.第三方審計公司來審覈交易所所有錢包地址的餘額加總。

1和2是一種來自數學和社會的動態威懾。不論是對用戶還是對審計公司,他們都無法確定這個梅克爾樹根是否能對應Gate的所有用戶。但由於每個人都可以驗證自己是否在樹上(顯然出於隱私問題普通用戶不可能去驗證其他用戶),一旦有一個人提供了我不在樹上的證據,那Gate造假無疑。在沒人聲稱Gate有詐時,我們都默認樹根是正確的,審計公司也可以基於此去審計樹裏的每個節點並加總出用戶的餘額。

3和4是基於第三方的信任。這裏可能會遭到詬病,但對於CEX來說,找到免信任的方法幾乎不太可能,我們只需要注意這裏可能出現的問題即可。

潛在的問題有:

樹根的更新頻率問題。CEX每秒有大量的交易,每一筆交易就去更新樹根這個不現實。大概率你看到的樹根不會是最新的,也即瞭解的情況不是最新的。更新頻率是保障這套系統有效性的一個關鍵參數。

前端欺詐問題。用戶基本是打開交易所的前端頁面對自己在不在樹上進行驗證,這個頁面可以返回假的結果,可能需要一些第三方的開源軟件解決這個信任問題。

第三方審計的信用問題。傳統金融中暴雷的很多公司也是經過層層審計的,有審計並不意味着萬無一失。

吹哨人可用性問題。即使某個用戶發現樹根有假,他是否能意識到自己應該做什麼,是否能有效地證明自己說的是對的,並傳播這一事實?

雖然我們列舉了一系列問題,但愈加透明總體上對CEX用戶而言是一種更好的趨勢。

希望日後所有的交易所都能實現類似的或更優秀的100%保證金儲備證明系統,提供更公開透明的環境。