從「媽媽幫你存紅包」看懂默克爾樹 Merkle Tree
內容目錄
你是否曾經擔心過,你辛苦賺來的錢會被銀行吃掉?你是否也曾懷疑,當你要提款時,銀行是否能夠及時把錢支付給你?
那你知道在加密貨幣的世界,有種技術叫默克爾樹(Merkle Tree),有很多大型交易所都利用這項技術,即時向用戶們證明他們資產的安全性,那這技術又是怎麼做到的呢?
以下這篇文章,將以輕鬆與生活化的例子,帶你了解默克爾樹是什麼,以及它是如何用它來證明用戶資產的安全性。
2022 年 11 月 FTX 交易所宣布破產之後,幣安交易所創辦人趙長鵬 CZ 便在推特上呼籲各交易所公開分享默克爾樹 Merkle Tree 與儲備證明 Proof of Reserves (簡稱 PoR)。
幫你存起來的過年紅包
儲備證明看似很複雜,其實用過年紅包來比喻就很容易明白了:每到過年的時候,對於小孩拿到的紅包,媽媽都會說「媽媽幫你存起來」。
那麼,要怎麼證明媽媽沒有挪用呢?媽媽可以拿出她的帳戶存摺,發現裡面的錢比我們的紅包還要多,這就表示「當我們要跟媽媽領出紅包錢時,媽媽付得出來」。
交易所的儲備證明
我們可以把上述媽媽的帳戶存摺想成交易所的儲備證明:媽媽給你看戶頭裡的錢來證明她有錢,交易所給你看儲備金有多少來證明交易所有錢。
簡單查看交易所儲備金!
那麼要怎麼看各交易所的儲備金有多少呢?
- 直接上 CMC 的網站
- 點選交易所列表
- 有下圖紅色圓圈中“reserve”儲備金的圖標,就表示該交易所有提供儲備金的證明囉!
如果我們進一步點擊上圖儲備金的圖標,還可以看到各交易所有多少錢、分別是以哪些幣種存在(這就好像媽媽給你看銀行帳戶,可能有台幣、美金、日圓不同幣種)。
例如下圖為幣安交易所儲備金的明細和總金額,表示幣安有486億,其中80億是BUSD、2988萬是BNB、25萬是BTC、39億是USDT⋯以此類推。
CMC怎麼知道各交易所的儲備金?
由於各交易所在鏈上資訊都是公開透明的,所以 CMC 透過以下的鏈上數據查詢網站,便可以即時查詢交易所的儲備金
看到這裡,可能大家已經想到:我只看到儲備金有多少,錢多表示夠用嗎?我怎麼知道哪天大家都要提錢的時候夠不夠呢?
沒錯,這就帶到另一個面向的問題:到底有多少用戶、放了多少錢在交易所裡面?
利用默克爾樹 Merkle Tree 計算用戶資金
我們還是回到「媽媽幫你存過年紅包」來比喻:雖然媽媽展現了她戶頭裡的錢,但是如果有兄弟姐妹,而且都不想讓彼此知道各自存了多少紅包錢在媽媽那邊,那我們怎麼知道哪天大家都跟媽媽領錢時,會不會不夠付呢?
從紅包比喻 Merkle Tree
這時,聰明的哥哥想了一招,叫兄弟姐妹四人分別把自己的紅包錢加密成一串可以計算的代碼。
接著,把哥哥和弟弟的代碼相加得到A、姐姐和妹妹的代碼相加得到B,再把 A+B 得到 C。
然後,把 C 從代碼還原成金額,這樣就知道兄弟姐妹紅包的總金額了!
最後,把算出來 C 的金額跟媽媽戶頭帳戶的錢做比較:
- 如果戶頭的錢比較少,表示媽媽挪用資金、沒有真的幫我們把錢存起來 😱
- 如果戶頭的錢比較多,就表示大家要領錢時夠大家領錢 😇
交易所的 Merkle Tree
同樣的道理,將交易所裡所有用戶的錢加密後,利用Merkle Tree兩兩相加,並一層一層往上加總到最上層,就會得到所有用戶在交易所裡的總金額。
最後,將加總後的總金額與交易所的儲備金證明比較,就可以知道這間交易所的儲備金夠不夠囉!
為什麼不直接加就好?
可能也有朋友會覺得交易所用戶資金全部加起來不就好了?為什麼要搞個 Merkle Tree 兩兩相加這麼複雜?
不知道大家有沒有這樣的經驗:當我們使用計算機把一串數字一直加下去時,如果出錯了就得從頭加,因為大多都不知道是哪裡加錯了。
但是如果使用 Merkle Tree 做兩兩相加,如果最上面的 C 錯了、往下檢查 A 和 B,只要把錯的那一條線的資料調出來就可以了,不需要整個從頭算起!
也就是說,如果交易所總金額有問題的話,利用 Merkle Tree 只要從出錯的那一條追查下去,就不用把所有用戶資金調出來重新計算了。
有哪些交易所提交了 Merkle Tree 呢?
交易所每天都有人註冊、每天都有人出入金,時時刻刻金流都不一樣,要建立起 Merkle Tree 不是太容易。
比較謹慎的交易所還會提交給審計單位進行審查,截至 2022年底,已經公佈的有:Coinbase、Kraken、派網、Gate、Bitfinex 等。
最後提醒大家,加密貨幣屬於高風險的投資,大家一定要做好自己的研究與風險管控,而且加密貨幣的資訊更新速度快、波動幅度大,如果想進幣圈的話,就要有保持高速學習的心理準備,所以如果你真的不懂的話,就千萬不要碰!
本文經授權轉載自「冬冬 – 陪你整理區塊鏈」
原文標題:「【名詞解釋】幣圈交易所安全嗎?從「媽媽幫你存起來」看懂交易所儲備證明與默克爾樹 Merkle Tree!」