最近,在cz幾條推特的轟炸之下,全球第二大交易所FTX因為挪用用戶資產,被擠兌后迅速宣告破產,由此導致了用戶對CEX資產儲備不透明的強烈不信任感。而cz提出CEX要做MerkleTree的資產證明,并計劃幾周內發布,其他交易所紛紛表示跟進。
那么,什么是MerkleTree,中心化交易所應如何通過MerkleTree實現自身資產儲備≥用戶資產?本文將從技術角度討論并給出完整的證明方案與代碼實現。
我們以ETH為例,當我們要實現資產證明時,我們要證明的是鏈上資產ETH總額≥交易所用戶ETH資產總額。因此,證明分為鏈上與鏈下兩部分。
鏈上證明
鏈上證明比較簡單,因為交易所通常會將所有用戶充值匯總到幾個地址,列出這幾個地址在鏈上自查即可。為證明這些地址是交易所擁有,可用私鑰簽名一條簡單的消息即可,簽名只需要發布一次。
比特幣支持者、阿根廷總統候選人Javier Milei獲30.73%的選票:金色財經報道,阿根廷總統候選人Javier Milei是一名自由主義候選人,主張廢除央行,并大力支持比特幣,他在周日阿根廷總統初選中處于領先地位。計票結果為84%,“La Libertad Avanza”(自由進步)黨的Milei獲得30.73%的選票,而 \"共同變革黨 \"和 \"祖國團結黨 \"的候選人分別獲得了 28.14% 和 26.84% 的選票。盡管對加密貨幣持積極態度,但Milei并不主張在阿根廷(類似于薩爾瓦多)使用比特幣作為法定貨幣。相反,Milei呼吁經濟“美元化”。[2023/8/14 16:24:42]
鏈下證明
鏈下證明就比較復雜,需要用到MerkleTree。
ZK-RaaS網絡Opside將于8月份集成ZK Stack:6月28日消息,Opside官方表示,將大力支持zkEVM的推廣,其中包括zkSync最新公布的ZK Stack。目前,Opside測試網已集成Polygon zkEVM(Hermez),用戶可以一鍵在ETH、BSC和Polygon等L1公鏈上發行一條屬于自己的zkEVM鏈。
據路線圖顯示,Opside測試網預計在8月份集成zkSync的ZK Stack。未來還將提供Scroll、Linea等zkEVM解決方案。Opside的多鏈ZK-PoW算法將為各個公鏈上的ZK-Rollup提供海量算力支撐。
Opside是一個提供ZK-RaaS(ZK-Rollup as a service)的平臺,支持用戶一鍵發布zkEVM。同時支持ZKP挖礦,包括CPU、顯卡、FPGA等機器類型。[2023/6/28 22:05:47]
MerkleTree是一種二叉樹,其最底層葉子節點存儲數據以及數據的哈希,而每上一層節點則存儲兩個子節點的哈希,最后由根節點的哈希保證這個MerkleTree的任何節點數據的完整性。因為修改任何一個葉子節點的數據都會導致根節點的哈希變化,因此,使用MerkleTree可以保證,只要發布了Root,樹的所有子節點均不可修改:
推特或在被馬斯克私有化后于2026年重新上市:10月6日消息,MKM Partners認為,如果馬斯克完成以440億美元收購推特(TWTR.N)的交易,推特可能在成為一家私有公司一段時間后于2026年重返公開市場。馬斯克已表示,將在重組推特后將該公司重新上市,并稱他希望把推特變成一個超級應用。馬斯克一直在召集共同投資者,包括私募股權公司,以便在不受關注的情況下重組這些公司,然后在五年左右的時間里將它們重新上市。MKM管理合伙人Rohit Kulkarni預計,推特再次進行首次公開募股的規模可能達到1,000億美元。(金十)[2022/10/6 18:41:03]
安全團隊:pancake-super[.]com、pancake-vr[.]com是釣魚網站:金色財經報道,PeckShield在社交媒體上稱,檢測到pancake-super[.]com、pancake-vr[.]com 是釣魚網站。它們都與0xF04B869F75680AB53C5965e6705E110dab5Db1A1有關。[2022/7/15 2:15:53]
假設交易所全部5個用戶持有若干不等的ETH,按用戶ID可表示如下:
可將用戶ID視為索引,構造MerkleTree并計算MerkleRoot:
交易所發布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
以太坊的合并已經完成了一段時間,以太坊區塊鏈社區正專注于網絡擴容的工作,以實現更便宜的交易費用、更快的交易,以及更多的吞吐量.
1900/1/1 0:00:0010月19日,新加坡金融管理局宣布啟動「守護者項目」,該項目將與金融業展開合作,旨在測試資產Token化和DeFi應用的可行性,同時也對金融穩定性和完整性進行風險控制.
1900/1/1 0:00:00隨著DeFi不斷發展并逐漸成熟,開發人員的首要考慮是可擴展的基礎設施和可組合性。用于構建基于以太坊的應用程序的標準化工具包ERC一直發揮著重要作用.
1900/1/1 0:00:00本周四?,比特幣(BTC)的價格跌至15,625美元。這是自2020年11月以來最大的加密貨幣首次跌破16,000美元。BTC價格當天下跌14%,是近五個月以來的最大跌幅.
1900/1/1 0:00:00這是加密領域最黑暗的日子之一。由?SBF領導的第二大中心化交易所?FTX?正處于崩潰的邊緣。FTX已無法滿足用戶1:1的提款需求,據稱有多達80-100億美元的客戶存款缺口.
1900/1/1 0:00:00香港特別行政區財經事務及庫務局于今日正式發布《有關香港虛擬資產發展的政策宣言》,就在香港發展蓬勃的虛擬資產行業和生態圈,闡明政府的政策立場和方針.
1900/1/1 0:00:00