最近,在cz幾條推特的轟炸之下,全球第二大交易所FTX因為挪用用戶資產,被擠兌后迅速宣告破產,由此導致了用戶對CEX資產儲備不透明的強烈不信任感。而cz提出CEX要做MerkleTree的資產證明,并計劃幾周內發布,其他交易所紛紛表示跟進。
那么,什么是MerkleTree,中心化交易所應如何通過MerkleTree實現自身資產儲備≥用戶資產?本文將從技術角度討論并給出完整的證明方案與代碼實現。
我們以ETH為例,當我們要實現資產證明時,我們要證明的是鏈上資產ETH總額≥交易所用戶ETH資產總額。因此,證明分為鏈上與鏈下兩部分。
鏈上證明
鏈上證明比較簡單,因為交易所通常會將所有用戶充值匯總到幾個地址,列出這幾個地址在鏈上自查即可。為證明這些地址是交易所擁有,可用私鑰簽名一條簡單的消息即可,簽名只需要發布一次。
FDUSD上市當天價格短暫高于USDT反映出對新上市資產的需求:金色財經報道,根據數字資產數據提供商Kaiko的數據,FDUSD本周早些時候在幣安交易所上市后取得了令人印象深刻的開局。FDUSD上市當天每小時交易量達到500萬筆,零費用交易計劃可能促成了代幣交易量的飆升。7月28日,FDUSD的交易價格短暫高于全球最大的穩定幣Tether(USDT),反映出對新上市資產的更大需求。[2023/7/30 16:06:54]
鏈下證明
鏈下證明就比較復雜,需要用到MerkleTree。
MerkleTree是一種二叉樹,其最底層葉子節點存儲數據以及數據的哈希,而每上一層節點則存儲兩個子節點的哈希,最后由根節點的哈希保證這個MerkleTree的任何節點數據的完整性。因為修改任何一個葉子節點的數據都會導致根節點的哈希變化,因此,使用MerkleTree可以保證,只要發布了Root,樹的所有子節點均不可修改:
PeckShield:Defrost_Finance被黑客利用,損失約173,000美元:金色財經報道,PeckShield監測,Defrost_Finance被利用,導致黑客獲得約173,000美元的收益。由于 flashloan()/deposit() 函數缺少可重入鎖,因此黑客攻擊成為可能,黑客使用該函數在不償還的情況下借出所有 USDC。[2022/12/23 22:03:53]
假設交易所全部5個用戶持有若干不等的ETH,按用戶ID可表示如下:
安全團隊:MRV代幣發生rugpull,下跌超92%:8月28日消息,據CertiK Alert數據監測,MRV代幣發生rugpull,下跌超92%,部署人員已將9600萬枚MRV轉移到營銷錢包相關聯的EOA。BSC地址:0x706BABd2a336fD61653cF8D13DdEefF66CF624BF,請保持警惕。[2022/8/28 12:54:04]
可將用戶ID視為索引,構造MerkleTree并計算MerkleRoot:
交易所發布MerkleRoot后,可確保所有子節點——即用戶ID對應的子節點余額均完全確定下來,每個用戶均可根據自己的用戶ID查詢余額是否相符,只要有任何一個用戶發現自己的余額在指定索引的位置不符,即可判斷交易所造假。
彭博社:6月份加密貨幣交易量跌至2020年以來最低水平:7月15日消息,今年上半年加密貨幣行業交易量大幅下降,各大交易平臺的現貨和衍生品交易量均有所下降,自5月份以來跌幅超過15%,至4.2萬億美元左右,達到去年1月份以來的最低水平。
據CryptoCompare數據,隨著比特幣下跌,僅6月份的現貨交易量就下降了近28%,至1.41萬億美元,為2020年12月以來的最低水平。與此同時,衍生品交易量當月下降了7%,為2021年7月以來的最低水平。而衍生品在加密領域非常重要,占市場的一半以上。(彭博社)[2022/7/15 2:16:00]
為了證明交易所的用戶資產儲備總額,交易所也不得不公開所有子節點的索引與余額,這樣任何第三方才能計算出用戶資產總額,并根據交易所公布的MerkleRoot確認這些子節點數據沒有被篡改。
然而,這樣一來,每個用戶的持幣余額就完全公開了,可以很容易地對持幣大戶進行跟蹤。因此,我們需要一種機制將一個用戶的余額拆成若干份,并存儲在多個不同的索引地址。為了確保索引不會沖突,可使用SparseMerkleTree,用以太坊地址作為索引。對SparseMerkleTree不熟悉的同學可以參考針對以太坊實現的一種SparseMerkleTree。
例如,對于用戶45678持有的45.67余額,我們可以分為3份:
14.727835427.8394771023.10268748然后,根據ID計算出確定的若干地址索引:
6f1cc8a44919eb1c6576d6819b37ac9ab288ecb59759bf1d54e5f25f135d7674dea3bef0d24fb15346daefba020f7e5bfa957b13aeaa4b72034a90fd這樣我們就可以把這個用戶的余額分別存放在3個子節點上。把所有用戶都處理一遍,假設結果如下:
我們就可以得到一個地址索引=余額的列表。對地址進行排序,以便讓同一個用戶的多個地址不再連續列出,得到地址/余額的CSV如下:
交易所計算總額683.91以及MerkleRoot值0x61cdf659...c41c40fe,公開CSV文件及MerkleRoot后,任何第三方可校驗樹的有效性,并獲得用戶資產總額,再與鏈上對比。對于每一個用戶來說,需要根據自己的ID,快照時產生的余額,以及交易所給出的用于生成確定性地址的隨機數,可自行驗證對應的若干節點余額總和與自己的資產額度完全相等。
這種方式既能保證每個用戶可驗證自己的資產,又能保證其他人無法推算某個用戶的資產,其缺點是計算較為繁瑣,需要相應的第三方工具幫助用戶校驗。
小結
本文給出了一種交易所用戶資產的額度證明,并保證不泄漏任何用戶的額度。詳細代碼可參考GitHub源碼:
https://github.com/michaelliao/eth-smt/blob/master/sample/src/main/java/com/itranswarp/sample/Proof.java
責任編輯:Kate
自8月份以來,推特上的KOL對RealYield的討論越來越激烈。這一討論的起源和爆火與GMX在熊市里出色的表現相吻合.
1900/1/1 0:00:00首先是Terra的崩盤,然后是中心化加密貸款機構破產,現在,世界上最大的加密貨幣交易所之一FTX(幾乎可以肯定)破產了.
1900/1/1 0:00:00我本不打算分享這一切,但當我有機會與@MarioNawfal?匿名分享時,我決定分享。不過馬里奧不接受工資單/身份證、數字身份證、電子郵件、錢包傳真作為驗證,而是想要一個LinkedIn連接?我.
1900/1/1 0:00:00我閱讀了400多頁關于電子游戲經濟設計的書籍、學術論文和博客,所以你就不必這樣做了!其中一些發現會讓你吃驚。注:這個主題是我今天通過@glxyresearch發表的33頁報告的濃縮摘要.
1900/1/1 0:00:00這篇文章是回顧和了解比特幣開發的現狀闡述。比特幣,加密貨幣的祖父,今年淹沒在行業的喧囂中。隨著慶祝以太坊合并,被Luna震驚,被3AC清算所羞辱,并且最近,對新的L1Aptos和ElonMusk.
1900/1/1 0:00:00為什么DeFi是大勢所趨 CeFi信任危機 FTX作為行業僅次于幣安的第二大加密生態,在短時間內遭遇擠兌,突然暴雷,震驚了整個加密貨幣世界。我們應該重新審視CEX的風險.
1900/1/1 0:00:00