一文了解Merkle Tree儲備證明,有何意義和漏洞?
原文編輯:吳說區塊鏈
前言:FTX 暴雷,使得所有交易所開始共同推進默克爾樹儲備證明方案,未來這將成為類似DeFi 項目的安全審計一樣、幾乎所有交易所的必備選項。目前國外與國內實踐時間較長的是Kraken 與Gate。究竟什麼是Merkle Tree 儲備證明,它有什麼意義,又有什麼不足?這篇文章匯總了一些內容,以供讀者了解。
內容一:
國內最早長期使用的Gate 的說明
默克爾樹(Merkle tree)是一種哈希二叉樹,1979年由Ralph Merkle發明,將數據存儲在樹狀結構的葉子節點中,並通過對數據的逐級哈希(Hash)操作確保數據的不可篡改性。葉子節點數據的任何變動,都會傳遞到上一級節點並最終反應到樹根的變化。比特幣區塊裡面的每一筆交易就是通過默克爾樹結構進行存儲的。
我們提出的方法中,採用兩種方式分別提供平台用戶所屬資產總額證明和有效用戶保證金證明。通過默克爾樹的方式將每一個用戶的賬戶資產哈希值存儲在默克爾樹的葉子節點中。通過第三方的財務審計機構審計默克爾樹的葉子節點中存儲的用戶資產總額,同時也由第三方的財務審計機構審查和驗證平台所持有的有效用戶保證金。最終由第三方的財務審計機構提供書面審計報告對外公佈審計結果。同時對外公開存儲所有用戶資產哈希值的默克爾樹。每一個平台用戶都可以通過數學算法驗證自己的賬戶資產金額是否被準確包含在默克爾樹中。
對於主流幣種,我們將跟審計公司配合,逐一完成審計報告,在Github平台上公佈所有用戶資產哈希值默克爾樹,並且開源驗證代碼程序,任何平台用戶都可以從“我的財務”的“餘額證明頁面”獲取驗證信息,並且通過我們公開的默克爾樹和驗證程序驗證自己的資產是否被我們準確公佈和包含到審計過程中。
對於其他幣種,任何項目方或個人均可以提出要求讓平台按同樣標準完成審計工作和公開用戶資產默克爾樹,但需要由提出人承擔一定的費用。費用標準將根據審計難度確定,根據幣種是否多鏈存儲,是否具有PoS理財功能,是否具有隱私功能等製定。
原文鏈接
原文鏈接
2019 年2 月,比特幣和區塊鏈基礎設施公司Blockstream 發表了名為《標準化比特幣儲備證明》的博客文章,闡述瞭如何自證交易所等機構的比特幣儲備以及對這些儲備資金的控制權。 Blockstream 最初研究該方案是旨在向審計員證明比特幣側鏈Liquid Network 上的比特幣儲備,後發展為比特幣儲備證明的一種規範。
在Blockstream 之前,驗證的方案的多樣性使得用戶難以了解每個交易所的儲備情況。此外,由於需要驗證私鑰的所有權,所以在簽名交易轉移資產的過程中可能有資金被盜的風險。
該方案通過比特幣特殊的UTXO(未花費交易輸出)交易格式實現,交易所通過構建一個包含交易所所有比特幣儲備的交易輸出,但同時構建一個無效的輸入。該交易會在廣播時被網絡拒絕從而無法產生實際的交易,但該交易仍可以作為交易所控制的比特幣數量的證明。
事實上,早在2014 年,Crypto 社區就對交易所如何向審計機構證明其儲備展開了討論。在Blockstream 提出了比特幣的儲備證明方案並加入BIP 之後,市場開始研究更加細化的方案,而基於Merkle Tree 的證明模式就是當下市場普遍認可的一種方案。
總部位於美國的加密貨幣交易所Kraken 對其儲備證明的方案進行了較為詳細的解釋。 Kraken 表示,所謂PoR(Proof of Reserves,儲備證明)是由第三方進行的獨立審計,審計員將對所有的賬戶餘額進行匿名快照,並將其聚合至Merkle Tree 中,並獲得Merkle Root:一種在創建快照時產生的唯一的標識這些餘額的數據組合。
然後,審計員收集由Kraken 生成的數字簽名,這些簽名通過可公開驗證的餘額來證明對鏈上地址的所有權。最後,審計師比較並驗證這些餘額是否超過或匹配Merkle Tree 中顯示的客戶賬戶餘額,來確定交易所是否持有足額的準備金。

簡單解釋一下,Merkle Tree 的底層數據為每個賬戶持有的資產數據生成的Hash,之後Merkle Tree 再通過兩個Hash 生成一個新的Hash,以此類推,最終的Hash 代表著交易所所擁有的資產總額,該數字應該大於或至少等於所有用戶持有的資產。該方案能夠被接受的最大原因在於每個用戶的資產數據都被包含其中,如果交易所想要篡改該過程中任何一個數據,都會對最終數據產生極大的影響(產生影響的原因來自於生成Hash的算法特性,在此不做贅述)。

雖然該方案在證明審計時交易所擁有足以兌付所有用戶資產的能力,但也存在一定的缺陷。例如無法證明私鑰是獨家擁有的、審計時的資產是否為臨時藉入、如何證明以將交易所資金(相當於所有者權益)與用戶資產(相當於交易所負債)進行了隔離以及審計本身的審慎性等。
寫在最後
寫在最後
寫在最後
雖然FTX 事件為我們敲響了警鐘,也推動了交易所透明度的進一步發展,但事實上當前的資產驗證方案仍存在包括上述缺點在內的不少漏洞。在很多細節方面,交易所仍然難以「自證清白」。中心化機構的透明度一直以來都是一個被廣泛關注和討論的問題,不夠透明會引發投資者的擔憂,但過於透明可能會一定程度上暴露商業機密,而這些矛盾不僅僅發生在Web3 領域。
舉個簡單的例子,當前中心化交易所很多都推出了加密貨幣理財產品。在交易所沒有濫用這些資產的前提下,可能部分用於量化交易,部分用於對沖風險,部分用在DeFi 中,部分用於抵押借貸,交易所本身很難將全部的用途公之於眾。
當下,證明交易所兌付能力的儲備證明僅僅是一個開始,如何證明用戶資金沒有與自有資金混淆、如何證明理財產品並非旁氏騙局、如何證明做市商的承兌能力等等,都是交易所後續需要去思考和解決的問題。
內容三:
不同觀點,來自Chainfeed
Ben :潛在的問題有:1. 樹根的更新頻率問題;2. 前端欺詐問題;3. 第三方審計的信用問題;4. 吹哨人可用性問題。但愈加透明總體上對CEX 用戶而言是一種更好的趨勢。
Haotian:交易所CEX 都說要採用默克爾樹儲備證明,有積極影響,但潛在問題依然存在:1)默克爾樹儲存的數據頻率如何更新,不能做到每筆input 和output 都實時刷新,資金挪用問題還是存在;2)默克爾樹數據存在交易所自家服務器上,頂多算可驗證了,「驗證」都是事後查證性質了,說到底還是會存在平台公信力問題。
Jolestar:Merkle tree 方案實際上起不了多大作用,不過聊勝於無吧,這個趨勢是好的。真正的方案需要參考layer2 的思路,要保證用戶單方面的提幣權,要有欺詐懲罰。
Mindao :核心問題是光知道儲備還不夠,關聯交易、負債關係、保證金交易,這些都無法通過儲備體現。牛市來了,用戶殺紅眼,更不在乎這。聊勝於無吧,但最終:他律> 自律。 DeFi 是永續資產鏈上證明,而且連業務邏輯、權限都明明白白、可驗證。我們又回到原點,all in DeFi 就對了。
Benmo:除了各家Cex 做保證金100% 證明,希望跨鏈橋們也做一下保證金100% 證明。


