比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

中心化交易所如何用Merkle Tree實現資產儲備證明_ERK

Author:

Time:1900/1/1 0:00:00

最近,在cz幾條推特的轟炸之下,全球第二大交易所FTX因為挪用用戶資產,被擠兌后迅速宣告破產,由此導致了用戶對CEX資產儲備不透明的強烈不信任感。而cz提出CEX要做MerkleTree的資產證明,并計劃幾周內發布,其他交易所紛紛表示跟進。

那么,什么是MerkleTree,中心化交易所應如何通過MerkleTree實現自身資產儲備≥用戶資產?本文將從技術角度討論并給出完整的證明方案與代碼實現。

我們以ETH為例,當我們要實現資產證明時,我們要證明的是鏈上資產ETH總額≥交易所用戶ETH資產總額。因此,證明分為鏈上與鏈下兩部分。

鏈上證明

鏈上證明比較簡單,因為交易所通常會將所有用戶充值匯總到幾個地址,列出這幾個地址在鏈上自查即可。為證明這些地址是交易所擁有,可用私鑰簽名一條簡單的消息即可,簽名只需要發布一次。

API3短線突破1.2美元后回落,24小時漲幅超30%:金色財經報道,行情顯示,API3短線突破1.2美元后回落,現報1.167美元,24H漲幅為33.05%。行情波動較大,請做好風險控制。[2023/8/6 21:28:12]

鏈下證明

鏈下證明就比較復雜,需要用到MerkleTree。

MerkleTree是一種二叉樹,其最底層葉子節點存儲數據以及數據的哈希,而每上一層節點則存儲兩個子節點的哈希,最后由根節點的哈希保證這個MerkleTree的任何節點數據的完整性。因為修改任何一個葉子節點的數據都會導致根節點的哈希變化,因此,使用MerkleTree可以保證,只要發布了Root,樹的所有子節點均不可修改:

Coin98 Labs宣布已收購鏈游CyBall:12月8日消息,Coin98 Labs宣布已收購鏈游CyBall,進一步進入Web3游戲,將對其注入新的資金和資源。

此前消息,CyBall融資180萬美元,Bitkraft Ventures領投。[2022/12/8 21:31:53]

假設交易所全部5個用戶持有若干不等的ETH,按用戶ID可表示如下:

6000萬枚USDC從幣安轉移到未知錢包:金色財經報道,Whale Alert數據顯示,6000萬枚USDC(60,120,000 USD) 從幣安轉移到未知錢包。[2022/11/13 12:56:26]

可將用戶ID視為索引,構造MerkleTree并計算MerkleRoot:

交易所發布MerkleRoot后,可確保所有子節點——即用戶ID對應的子節點余額均完全確定下來,每個用戶均可根據自己的用戶ID查詢余額是否相符,只要有任何一個用戶發現自己的余額在指定索引的位置不符,即可判斷交易所造假。

香港加密投資平臺Q9 Capital已獲得迪拜虛擬資產監管局的臨時批準:10月31日消息,香港加密投資平臺Q9 Capital已獲得迪拜虛擬資產監管局 (VARA) 的臨時批準,計劃在迪拜建立一個區域中心,以幫助發展其虛擬資產生態系統。此外,該公司還計劃向全球資產和財富管理公司提供產品創建和執行服務。

據悉,Q9 Capital成立于2020年,其投資引擎和白標解決方案使資產和財富管理機構能夠通過單一UI創建、執行、管理和報告數字資產投資策略。[2022/10/31 11:59:16]

為了證明交易所的用戶資產儲備總額,交易所也不得不公開所有子節點的索引與余額,這樣任何第三方才能計算出用戶資產總額,并根據交易所公布的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

Tags:MERERKLETTREEMERL幣BerkshireBITWALLET幣tree幣合約地址

歐易交易所
趙長鵬發員工內部信 解釋擬收購 FTX 原委與挑戰_BLOC

幣安人,?鑒于過去幾天發生的事件。我想重申幾點。?一,我們沒有總體規劃這個或與之相關的任何事情。不到24小時前,SBF打電話給我。在此之前,我對FTX的內部情況知之甚少.

1900/1/1 0:00:00
審視 DeFi 新敘事 #RealYield_REA

自8月份以來,推特上的KOL對RealYield的討論越來越激烈。這一討論的起源和爆火與GMX在熊市里出色的表現相吻合.

1900/1/1 0:00:00
48 小時 300% 回報,我買 Reddit NFT 不只是因為好賺_NFT

周末,我在日常瀏覽文章時,偶然發現了Reddit的NFT。這些對我來說并不新鮮,因為我們已經在之前的文章中報道過了,但他們在幾天前剛剛發布了第二代NFT.

1900/1/1 0:00:00
IOSG:智能合約安全分析工具商業化的機會來了么?_RAN

在9月底Paradigm官宣完成了區塊鏈安全項目Blowfish的領投又一次引起了大家對智能合約安全分析領域的廣泛關注.

1900/1/1 0:00:00
A16z 在最糟糕的時候,All in加密貨幣_DIX

隨著去年加密貨幣價格的飆升,沒有任何投資者比AndreessenHorowitz對該行業投入更多.

1900/1/1 0:00:00
Web3錢包SDK生態速覽_WEB

引導web2用戶創建一個錢包,是出圈敘事的開局與關鍵長時間內,出圈都將是web3世界中的有力敘事。將web2用戶成功引導至web3的標志,是讓用戶擁有第一個Crypto錢包.

1900/1/1 0:00:00
ads