比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

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

Author:

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

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

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

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

鏈上證明

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

Turbos Finance在Sui上推出穩定幣智能路由:6月6日消息,Sui 生態 DEX 項目 Turbos Finance 宣布為 Sui 生態引入穩定幣智能路由以建立 USDC 流動性池。此路由將允許客戶使用 Wormhole 跨鏈橋封裝的 USDC 資產與原生 Sui 資產無縫交易。[2023/6/6 21:19:20]

鏈下證明

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

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

ProShares申請名為UltraBitcoin Strategy的期貨比特幣ETF:金色財經報道,兩個主要的比特幣交易所交易基金 ProShares 已經申請了一個名為 UltraBitcoin Strategy 的期貨比特幣 ETF。[2023/4/9 13:52:39]

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

Fantom將推出穩定 fUSD v2,遷移與清算時間尚未確定:1月30日消息,Andre Cronje 發文表示,Fantom 區塊鏈計劃推出其 fUSD 穩定幣的 V2 版,以為構建者、合作伙伴和用戶提供一個更可預測且預算更友好的系統。目前沒有給出發布的時間表。在向 v2 遷移過程中,fUSD v1 將對 fUSD 債務等于或大于 FTM 或 sFTM 支持的任何頭寸進行清算。Fantom 還構建了交換工具,允許用戶平倉,將 DAI 交換為 fUSD 并結清其未償債務。新版本將允許利益相關者以 fantom (FTM) 或 fUSD 分配費用,并根據使用情況預測未來成本。[2023/1/30 11:36:41]

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

以太坊網絡Gas費上升至51gwei:金色財經消息,據Etherscan數據顯示,當前以太坊網絡Gas費上升至51gwei。[2022/6/3 4:00:56]

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

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

火幣下載
代幣化:新加坡金管局:上線數字資產試點和DeFi服務,已試行交易代幣化政府債券

11月2日,新加坡金融管理局(MAS)發文透露上線數字資產試點和去中心化金融服務,并表示其ProjectGuardian下的第一個行業試點探索批發融資市場中潛在的去中心化金融應用的公司已經完成了.

1900/1/1 0:00:00
區塊鏈:深入探究模塊化區塊鏈

本文是基于Celestia官方教程做的筆記整理和注釋。一、單鏈 單鏈包含四個組件 執行層:確保所執行的交易進行正確的狀態更新。執行層必須確保被執行的交易是有效的,即交易的結果是有效的狀態機轉換.

1900/1/1 0:00:00
WEB:Web3 的可持續性循環

|1.介紹 上一篇文章中,我們提出了一個設想:想象一下,你是一個?Web3?項目的創始人,項目生態剛剛起步,同時有幾個團隊在這個生態系統中使用你的技術構建應用程序.

1900/1/1 0:00:00
BTC:三箭、灰度的荒謬巧合

注:@DataFinnovation?原文發表于7月底,因Genesis的危機直到最近才爆發,許多當時提前被捕捉的問題被忽視,值得一讀.

1900/1/1 0:00:00
NFT:香港有哪些值得關注的 Web3 企業

10月31日,香港財政司正式發布《有關香港虛擬資產發展的政策宣言》,就在香港發展蓬勃的虛擬資產行業和生態圈,闡明了港府的政策立場、監管方針及試驗計劃等.

1900/1/1 0:00:00
區塊鏈:FTX崩潰和CEX撤離之際,DeFi平臺終于見到利潤

FTX和Alameda暴雷發生一周后,再看看鏈上數據,非常值得我們觀察和分析。盡管比特幣和以太正在以創記錄的數量和速度離開中心化的交易所,但是也并不是所有去中心化應用(dapp)和協議都顯示出增.

1900/1/1 0:00:00
ads