隨著FTX 倒閉後對中心化機構信任的崩塌,CZ 在Twitter 上呼籲交易所採用Merkle Tree 的儲備證明方法來證明他們沒有挪用用戶資產。隨後多家交易所開始響應並積極準備儲備金證明,以向客戶保證他們的資金是安全的。然而Merkle Tree儲備證明方法存在一些基本缺陷。具體來說,中心化機構很容易通過一些路徑繞過這種儲備證明方法希望實現的無挪用檢查。

下文中,我將闡述現有Merkle Tree 儲備證明方法的兩個基本缺陷,並就如何改進提出一些想法。

現有儲備證明方法的工作原理

為了緩解用戶和中心化機構之間的信息不對稱,現有的儲備證明通常採用傳統的審計方法,即由受各方信任的第三方審計公司出具審計報告,證明中心化機構鏈上持有的資產數量(儲備證明)與用戶資產餘額總和(負債證明)相匹配。

對於負債證明,中心化機構需要生成包含用戶帳戶信息和資產餘額的Merkle Tree。 Merkle Tree本質上建立了用戶賬戶資產餘額的匿名化且不可篡改的快照。每個用戶可以獨立計算其賬戶的哈希值,並確定他們的賬戶是否包含在Merkle Tree中。

對於儲備證明,中心化機構需要提供其持有的鏈上地址,並對其進行驗證和審計。一種常見的做法是要求中心化機構提供數字簽名以證明其對鏈上地址的所有權。

在Merkle Tree 的快照和鏈上地址所有權確認完成後,審計機構對負債和儲備兩端各自的資產總量進行核對,進而判斷中心化機構是否挪用了用戶資金。

現有儲備證明方法的缺陷

1. 使用借貸資金通過審計的可能性

儲備證明方法存在的一個問題是,審計只是基於某一個特定的時間點並且通常每隔幾個月甚至幾年才進行一次。也就是說,中心化交易所仍然有機會挪用用戶資金並輕易通過借貸的方式在審計期間填補空缺。

2. 與外部資金方進行合謀通過審計的可能性

提供相關數字簽名並不同於對於相應地址上資產的所有權。中心化機構可以與外部資金方合謀提供鏈上資產證明。外部資金方甚至可以使用同一筆資金為多家機構同時提供資產證明。目前的審計方法很難對這種欺詐行為進行識別。

關於改進證明方法的一些想法

一個理想的儲備證明系統應該向審計者和最終用戶提供對負債和儲備進行實時檢查的能力。但是,它也會隨之帶來高昂的成本和/或用戶帳戶信息的洩露。在獲得足夠數據的情況下,第三方審計公司甚至可以根據匿名數據推斷出用戶的倉位信息。

為了防止審計期間儲備證明被偽造的可能性且不以洩露用戶信息為代價,我在此提出以下兩個主要想法:

1. 抽查式隨機審計

以不可預測的時間間隔進行隨機審計將使中心化機構很難操縱賬戶餘額和鏈上資產。這種方法還可以通過對被隨機性審計抓包的忌憚來威懾不當行為。

如何實踐:審計請求可以由受信任的第三方審計機構隨機發送至中心化機構。在收到指令後,中心化機構需要生成Merkle Tree,其中包含在該特定時間點即按照區塊高度編號標記的用戶賬戶餘額(負債證明)。

2. 用MPC-TSS 方案來加速儲備證明

在隨機審計期間,中心化機構需要在很短的時間內提供儲備證明。這對於為用戶管理大量鏈上地址的中心化機構(例如交易所)來說是一個很大的挑戰。即使中心化機構可以將其大部分資產存儲在幾個固定的地址上(例如熱錢包或冷錢包),存儲在大量鏈上地址中的資金總量仍然很大。在審計期間將所有這些地址中的資金歸集到少數的公開地址上是一項非常耗時的工作。這樣的時間差也給了挪用行為足夠的空間可以去尋求借貸或資金幫助來填補空缺。

中心化機構是否有可能直接在其真正持有資產的地址上證明儲備,而無需將鏈上資產整合到少數地址上?一種可能的方法是利用MPC 閾值簽名方案(MPC-TSS) 技術。

概括來說,MPC-TSS 是一種先進的加密技術,它將私鑰分成兩個或多個私鑰分片,並在加密後由多方持有。這些私鑰分片的持有者可以在無需交換各自的私鑰分片或合併私鑰的情況下共同合作簽署交易。這個MPC-TSS託管技術也是Cobo最近已經推出的一個產品。

在這個解決方案下,第三方審計機構(可以是律師事務所、審計事務所、託管人、受託人甚至監管機構本身)可以持有一份私鑰分片,而中心化機構持有剩餘的私鑰分片。只要將“閾值”設置為大於一的數字,所有資產仍將處於中心化機構的控制之下。同時要指出的是,為了讓中心化機構能夠生成大量由審計方共管的地址,MPC-TSS共管方案需要支持BIP32協議。由於擁有一把私鑰分片,審計機構可以確定的知道中心化機構鏈上的地址集合,並且統計出在指定區塊高度中心化機構的資產規模。