原文:《Having a safe CEX: proof of solvency and beyond》
編譯:雙花 (@doublespending)
特別感謝 Balaji Srinivasan 以及 Coinbase、Kraken 和 Binance 團隊的探討。
每當大型中心化交易平臺崩潰時,一個常被提及的問題是:我們是否可以利用加密技術來解決這個問題。交易平臺可以通過創建密碼學證明的方式證明其鏈上持有的資金足以償付用戶,而不僅僅依靠政府牌照、審計員、調查公司治理以及交易平臺法人背調等「法幣」方案。
更有野心的是,交易平臺可以建立一個未經儲戶同意無法提取儲戶資金的系統。我們可以嘗試探索「不作惡」有職業素養的 CEX 與「無法作惡」卻泄漏隱私的低效鏈上 DEX 之間的界限。這篇文章將深入探討讓 CEX 更加去信任的歷史嘗試,與其采用技術的局限性,以及一些依賴 ZK-SNARKs 等先進技術的有力手段。
交易平臺試圖用密碼學來證明自己沒有欺騙用戶的最早嘗試可以追溯到很久以前。2011 年,當時最大的比特幣交易平臺 MtGox 通過發送一筆移動 424,242 個 BTC 到預先公布地址的交易來證明他們擁有該筆資金。2013 年,大家開始討論如何解決該問題的另一面:證明用戶存款的總規模。如果你證明用戶的存款等于 X(負債證明 proof of liabilities),并證明擁有 X 個代幣的私鑰(資產證明 proof of assets),那么就提供了可償付證明(proof of solvency):你證明了交易平臺有足夠的資金償還給儲戶。
提供存款證明的最簡單方法是公布一個列表。每個用戶都可以檢查他們在列表中的余額,而且任何人都可以檢查完整的列表:(i)每項余額都是非負的;(ii)總額是宣稱的金額。
當然,這會破壞隱私,所以我們可以稍微改變一下該方案:發布一個 username, salt), balance> 列表,并私下給用戶發送 salt 值。但即使這樣也會泄漏余額與其分布。為了保護隱私,我們采用了后續技術:Merkle 樹技術。
V神:防止“統治”是區塊鏈的基本原則:金色財經消息,以太坊聯合創始人Vitalik Buterin在社交媒體發表對DAO(去中心化自治組織)的看法,他認為,發行可轉讓治理代幣的DAO與DAO本質是矛盾的。可轉讓的治理代幣都是為了給“最想統治的人”提供“更多”權力。
此外,他在回復網友評論時表示,“治理”和“統治”是兩件事。防止統治是區塊鏈的基本原則,但是防止所有治理是不可能的。[2022/7/29 2:45:27]
綠色:Charlie 的節點。藍色:Charlie 收到用于證明的節點。黃色:根節點,向所有人公布
Merkle 樹技術會將用戶余額表放進 Merkle 總和樹。在 Merkle 總和樹中,每個節點都是對。底層葉子節點表示各個用戶的余額以及用戶名的加鹽哈希。在每個更高層的節點中,余額是下面兩個節點余額的總和,而哈希是下面兩個節點的哈希。Merkle 總和證明和 Merkle 證明一樣,是一個由葉子節點到根節點路徑上所有姐妹節點組成的「分支」。
首先,交易平臺會向每個用戶發送一份其余額的 Merkle 總和證明。然后,用戶能夠確定其余額作為總額的一部分而被正確地包含。可以在這里找到簡單的示例代碼。
這種設計下的隱私泄露遠低于公開完整的余額表,并可以在每次默克爾根發布時打亂各個分支來進一步降低隱私泄漏風險,但仍存在一些隱私泄露的問題:Charlie 知道某人的余額為 164 ETH,某兩個用戶余額的總和為 70 ETH,等等。控制多個帳戶的攻擊者仍能了解交易平臺用戶的大量信息。
該方案的一個重要的微妙之處在于負余額的可能性:如果一個擁有 1390 ETH 用戶余額卻只有 890 ETH 儲備的交易平臺試圖通過在樹上某處的一個假賬戶下添加 -500 ETH 余額來彌補差額,該怎么辦?這種可能性實際上并沒有破壞該方案,這就是我們特地使用 Merkle 總和樹而不是常規 Merkle 樹的原因。假設 Henry 是交易平臺控制的假賬戶,而且交易平臺在上面放了 -500 ETH:
V神:馬斯克將狗狗幣擴展10倍計劃存在根本缺陷:以太坊聯合創始人Vitalik Buterin發表一篇關于區塊鏈可擴展性限制論文,其中對特斯拉首席執行官伊隆·馬斯克(Elon Musk)此前言論給予批評。Vitalik Buterin主要針對伊隆·馬斯克在5月15日發布一條推文,后者在推文中計劃將狗狗幣區塊大小增加900%,旨在將狗狗幣變成主流區塊鏈,伊隆·馬斯克表示:理想情況下,如果區塊大小擴大十倍,狗狗幣交易速度會有所提升,交易費將會下降100倍,然后勝出。
?Vitalik Buterin認為,區塊鏈可擴展性和吞吐量急劇增加可能會導致極端中心化問題并損害區塊鏈的基本屬性,他強調了去中心化管理的必要性,尤其是消除網絡產生單點故障的風險,繼而享有免受協同攻擊的保護,如果沒有普通用戶自由運行節點的權限,就無法實現去中心化。Vitalik Buterin希望讓普通用戶能夠運行節點,使其變成一種常見活動,他斷言分片可以促進許多中心化區塊鏈實現可擴展性,Vitalik Buterin根據以太坊網絡的當前狀態預測,分片的以太坊可以每秒處理一百萬筆交易,并且確保區塊鏈的完全安全性。(Cointelegraph)[2021/5/24 22:37:59]
Greta 的驗證將不會通過:當交易平臺將不得不把 Henry 余額為 -500 ETH 的節點的給她時,她會拒絕掉該無效節點。Eve 和 Fred 也會驗證失敗,因為 Henry 之上的中間節點余額為 -230 ETH,所以該節點也是無效的!為了盜用行為不被發現,交易平臺只能寄望于樹的右半部分沒人檢查其余額證明。
如果交易平臺能夠挑選出這樣的擁有 500 ETH 的用戶:他們嫌麻煩不去檢查余額證明,或者當他們抱怨未能收到余額證明時,大家并不相信他們,那么交易平臺就可以蒙混過關。但是,交易平臺也可以通過將這些用戶排除在 Merkle 總和樹之外來達到相同的效果。因此,如果僅就負債證明而言,Merkle 樹技術基本滿足了需求。但它的隱私特性仍不夠理想。你可以更巧妙地使用 Merkle 樹進行改進,比如把 satoshi 或 wei 作為一個獨立的葉子節點。然而,通過使用更先進的技術,還可以做得更好。
ZK-SNARKs 是一項強大的技術。ZK-SNARKs 對密碼學的意義類似于人工智能:一項足以碾壓數十年前為了解決一系列問題而開發的一系列專用技術的通用技術。因此,我們當然可以使用 ZK-SNARKs 極大地簡化和改善負債證明協議中的隱私。
V神:永久性的流動性挖礦獎勵毫無意義:V神在推特表示,永久性的流動性挖礦獎勵毫無意義,因為流動性挖礦獎勵本質上是從未來的LP到現在的LP的一種財富轉移。為使UNI保值,需要收取一部分LP費,并在某時將其銷毀。[2020/11/20 21:26:27]
我們可以簡單地將所有用戶的存款放進 Merkle 樹(或者更為簡單的 KZG 承諾),并使用 ZK-SNARK 來證明樹中的所有余額都是非負的,并且加起來等于某個聲稱的值。如果我們添加了一層哈希來保證隱私,那么發給每個用戶的 Merkle 分支(或 KZG 證明)將不會泄漏任何其他用戶的余額。
使用 KZG 承諾是避免隱私泄露的一種方法,因為其不需要把「姐妹節點」作為證明提供,并且可以使用簡單的 ZK-SNARK 來證明余額的總和,并且每個余額都是非負的。
我們可以通過一個專用的 ZK-SNARK 來證明上述 KZG 中余額的總和及其非負性。這里有一個簡單的例子。我們引入了一個輔助多項式 I(x),其「構建出用戶余額的每一位」(為了舉例,我們假設余額低于 215),其中每第 16 個位置追蹤差額保證,只有當實際總額與宣稱總額相等該值才會是 0。如果 z 是一個 128 階的原根,我們可以證明方程成立:
譯者注:對這個多項式等式的解讀。如何把這些等式轉換為多項式校并在后續轉換為 ZK-SNARK 可以參考我撰寫關于 ZK-SNARKs 文章的此處和另外一處。這并不是一個最優的協議,但讓這些密碼學證明比較好理解!
只需要幾個額外的方程式,該約束系統就可以適配更復雜的設定。例如,在杠桿交易系統中,個人用戶擁有負余額是可以接受的,但前提是他們需要擁有足夠的抵押資產以覆蓋其負債。SNARK 可以用于證明這一更為復雜的約束,向用戶保證,交易平臺不能秘密違規豁免某些用戶,從而危及用戶資產。
長遠來看,這種 ZK 負債證明的用處不限于交易平臺中的用戶存款,還可以用于更廣泛的貸款場景。任何貸款的人都會將記錄放入含該貸款的一個多項式或一棵樹中,而根會在鏈上發布。這將使得任何尋求貸款的人向放款方提供零知識證明,以表明其未獲得太多其他貸款。最終,法律上的創新甚至可以使得以這種方式進行承諾的貸款比無承諾的貸款擁有更高的優先級。這與我們在《去中心化社會:尋找 Web3 的靈魂》中討論的一個想法不謀而合:通過某種形式的」靈魂綁定代幣「,使得鏈上負面信譽的概念成為可能。
V神:不認為以太坊2.0第0階段2021年才能上線:金色財經報道,據此前消息,以太坊2.0研究人員Justin Drake表示以太坊2.02第0階段可能在2021年上線。對此,V神在發給Drake的信息中表示:“我個人非常不同意這一點,并且無論準備程度如何,我都希望顯著地早于該日期啟動第0階段。”對此,V神解釋稱,eth1從第一個多客戶端測試網到正式啟動只花了4個月的時間,因此當eth2測試網Altona啟動時,他認為從7月初開始就進入了四個月的倒計時。eth2第0階段在某種程度上比eth1更簡單,但在某些方面也更復雜。因此,總的來說,V神表示沒有理由認為eth2第0階段的發布會比eth1花費更多的時間。[2020/7/11]
資產證明最簡單的版本是我們上面看到的協議:為了證明您持有 X 個代幣,您只需在預定時間移動 X 個代幣或在交易中攜帶「這些資金屬于 Binance」的信息。為了避免支付交易手續費,你可以簽署一條鏈下消息。比特幣和以太坊都有鏈下簽名信息標準。
這種簡單的資產證明技術存在兩個實際問題:
冷錢包處理
抵押品重用
出于安全考慮,大多數交易平臺會將大部分用戶資金存儲在冷錢包中:在離線的計算機上,交易需要手動簽名并攜帶到互聯網上。這種手段是很普遍的:我過去用于存放私人資金的冷錢包放在一臺永久離線的計算機上,它會生成包含已簽名交易的二維碼,然后我會用手機掃描這些二維碼。由于資金量龐大,交易平臺使用的安全協議會更加復雜,經常涉及在多個設備間的多方計算,以進一步降低單設備被黑導致密鑰泄露的可能性。在這種背景下,即使是創建一條額外消息來證明對地址的控制也是一項昂貴的操作!
交易平臺可以采用以下幾種方式:
維護一些長期使用的公開地址。交易平臺生成若干地址,僅發布一次每個地址所有權證明,然后重復使用這些地址。這是迄今為止最簡單的方案,盡管它在保護安全及隱私上增加了一些限制。
持有很多地址,然后隨機證明幾個地址。交易平臺持有很多地址,甚至可能每個地址只用一次,并在單次交易后不再使用。在這種情況下,交易平臺需要有一個協議,不時地隨機選擇一些地址,交易平臺必須「打開」以證明所有權。一些交易平臺已通過審計員進行了類似的操作,但原則上,這種技術可以轉化為完全自動化的程序。
V神:ETH的復利只有0.01% 其存在自我糾正的負反饋機制:4月6日消息,一名推特用戶發推稱,DeFi服務和POS協議之間的競爭將導致網絡的脆弱性、攻擊和集中化。如果PoS的區塊獎勵會隨著時間的推移而減少,特別是在ETH采用的通縮模型下,那么資產借貸和持有之間的長期均衡將向前者傾斜。V神評論稱,“我不相信這些。即使在今天,ETH的復利也只有0.01% (lol)。V神進一步解釋說:“許多人錯誤地認為,不同貨幣的貸款利率應該相等。這是錯誤的,因為法幣本來就是一種計息資產,而加密貨幣不是,所以法幣的利率當然更高。”V神還解釋說,目前對以太坊的貸款需求還不是很高。此外,他還指出,存在一種“自我糾正的負反饋機制”,可以防止抵押的以太坊走到極端。(AMBcrypto)[2020/4/7]
更復雜的 ZKP 方式。例如,交易平臺可以將其所有地址設置 1/2 多簽,這些地址的其中一份密鑰各不相同,而另一份相同的密鑰是以某種復雜但安全的方式(如,12/16 多簽)存儲起來重要的緊急備份盲版。為了保護隱私并避免泄漏其全部地址,交易平臺甚至可以在區塊鏈上運行零知識證明以證明該格式鏈上地址的總余額。
另一個主要問題是防止抵押品重用。彼此間來回轉移抵押品以證明儲備金對交易平臺而言通常很容易辦到,這使得實際上沒有償付能力的情況下蒙混過關。理想情況下,可償付證明應該實時完成,并在每個區塊后更新證明。如果不切實際的話,那么下一個最好的辦法就是交易平臺間協調出一個固定的時間進行證明,例如在 UTC 時間每周二下午 2 點證明儲備。
最后一個問題是:能在法定貨幣上做資產證明嗎?交易平臺不僅持有加密貨幣,還持有銀行系統內的法幣。在這方面,回答是肯定的,但這樣的程序將不可避免地依賴于「法幣」信任模型:銀行自身可以證明余額,審計人員可以證明資產負債表等。鑒于法幣不能通過密碼學驗證,這是在該框架內的最佳方案,仍然值得一做。
另一種方法是將實體 A 和實體 B 分離開來,A 負責運行交易平臺并且處理 USDC 這種由某種資產背書的穩定幣;而 B 負責在加密貨幣和傳統銀行系統之間處理現金流入和流出的過程,在這個案例中 B 即是 USDC 本身。由于 USDC 的「負債」只是鏈上的 ERC20 代幣,所以負債證明是可以「輕易」獲得的,而我們只需處理資產證明的問題。
假設我們想更進一步:我們不想僅僅證明交易平臺有足夠資金償還其用戶。相反,我們想徹底防止交易盜用用戶的資金。
在這上第一個嘗鮮的是 Plasma,這是一種 2017 年和 2018 年在以太坊研究界流行的擴容解決方案。Plasma 的工作原理是將余額拆分為一組獨立的「代幣」,每個代幣都會分配一個索引,并放到 Plasma 區塊的 Merkle 樹中的特定位置上。要進行有效的代幣轉移,需要將交易放到樹中的正確位置上,而樹根會被發布到鏈上。
Plasma 的一個版本的極簡圖。代幣被保存在智能合約中,該合約在取款時會強制執行 Plasma 協議的規則。
OmiseGo 試圖基于此協議創建一個去中心化交易平臺,但從那時起,他們就轉向去做其他事了——就這而言,Plasma Group 也是如此,他們去做了 optimistic rollup 項目 Optimism。
2018 年對 Plasma 的局限性(如,證明代幣碎片整理)的探討讓大家從根本上懷疑 Plasma 的可行性。自 2018 年對 Plasma 的探討達到頂峰以來,ZK-SNARKs 在擴容相關用例上變得愈加可行,正如我們上面所說的,ZK-SNARKs 改變了一切。
Plasma 更新的版本是 Starkware 稱為 validium 的方案:除了數據被保存在鏈下以外,基本上與 ZK-rollup 相同。該構造適用于許多用例,可以想象其適用于任何中心化服務器需要證明其正確執行代碼的場景。在 validium 中,運營方無法竊取資金,但根據具體的實現細節,如果運營方消失,一些用戶資金可能會被卡住。
現在看來一切很棒:CEX 和 DEX 遠非二選一,事實證明,其中有一系列的選擇,包含各種形式的混合中心化,在那里你能獲得一些好處,比如效率,但仍有很多密碼學保障,可以防止中心化運營方的大部分形式的惡意行為。
然而,余下的基本問題也值得思考:如何處理用戶錯誤。到目前為止,最重要的錯誤類型是:如果用戶忘記了密碼、丟失了設備、被黑或無法訪問其帳戶,那該怎么辦?
交易平臺可以解決這個問題:首先利用電子郵件恢復,如果連這都失敗了,再通過 KYC 進行更復雜的恢復。但若要解決這些問題,交易平臺需要真正控制這些代幣。為了能夠合理地恢復用戶資金,交易平臺需要擁有同樣可用于無故竊取用戶資金的權力。這是一個不可避免的權衡。
理想的長期解決方案是依靠自我托管,用戶在未來可以方便地使用諸如多簽及社交恢復錢包等技術來幫助處理緊急情況。而短期內,有兩種明顯的替代方案,有著不同的成本和收益:
另一個重要問題是對跨鏈支持:交易平臺需要支持很多不同的鏈,諸如 Plasma 和 validiums 等系統需要用不同的語言編寫代碼以支持不同的平臺,并且在當前形式下無法在一些平臺(尤其是比特幣)上實現,這有望通過技術升級和標準化來解決;然而,從短期來看,這是如今托管型交易平臺保持托管模式的另一個原因。
短期內,有兩種明確的交易平臺類別:托管型交易平臺和非托管型交易平臺。如今,后一類即像 Uniswap 那樣的 DEX,未來我們可能還會看到受密碼學約束的 CEX,其中用戶資金會以類似 validium 智能合約的方式持有。我們也可能會看到半托管型交易平臺,其中我們信任其對法幣而非加密貨幣的處理。
這兩種類型的交易平臺將繼續存在,而提高托管型交易平臺安全性的向后兼容最簡單方法是增加儲備證明。這包括資產證明和負債證明的結合。為兩者都設計出優秀的協議仍存在著一些挑戰,但我們能夠且應當推動兩類技術的齊頭并進,并盡可能開源軟件和程序,以便所有交易平臺都能獲益。
從長遠來看,我希望我們向著所有交易平臺皆為非托管的方向發展,至少在加密貨幣上如此。錢包恢復將會存在,可能需要為小額資金的新用戶和出于法律因素需要此類安排的機構提供高度中心化的恢復選項,但這可以在錢包層而非交易平臺內部完成。在法幣方面,傳統銀行系統和加密貨幣生態系統之間的移動可以通過 USDC 等資產背書穩定幣原生的資金進出流程完成。然而,我們仍有很長的路要走。
譯者注:
每 16 個數字代表一個用戶(前面 15 個數字代表該用戶的余額,最后一位代表目前為止用戶余額總和跟聲明的差額)。我們可以看到上面的舉例代表了兩個用戶(這里要讀者洞察一下)
宣稱的用戶平均余額:185
用戶 1 的余額:20 -> 000 0000 0001 0100
差額:20 - 185 = -165
用戶 2 的余額:50 -> 000 0101 0011 0010
差額:-165 + 50 -185 = -300
最終遍歷完所有用戶,最后一個用戶的差額要求為 0
四個等式的解釋
等式 1:遞推的初始值為 0
等式 2:每個用戶余額需要跟 KZG commitment 相對應
等式 3:每個用戶余額的遞推公式,約束余額 >= 0 且 214
(上面說余額 215應該是筆誤,因為按照等式 3,遞推公式只有 14 個取值,I(zi) 214,
16 個數字對應:I(z{16x})=0| I(z{16x+1}) | I(z{16x+2}) | … | I(z{16x+14}) | 差值
16 個數字對應最大取值:0 | 21-1| 22-1| … | 214-1| 差值)
等式 4:約束所有用戶總余額與交易平臺宣稱的余額一致
原文鏈接律動 BlockBeats 提醒,根據銀保監會等五部門于 2018 年 8 月發布《關于防范以「虛擬貨幣」「區塊鏈」名義進行非法集資的風險提示》的文件,請廣大公眾理性看待區塊鏈,不要盲目相信天花亂墜的承諾,樹立正確的貨幣觀念和投資理念,切實提高風險意識;對發現的違法犯罪線索,可積極向有關部門舉報反映。
Vitalik Buterin
個人專欄
閱讀更多
金色財經
金色財經 子木
金色早8點
去中心化金融社區
虎嗅科技
區塊律動BlockBeats
CertiK中文社區
深潮TechFlow
念青
Odaily星球日報
看多了李國慶搶公章,哈啰單車經理劃破 70 輛美團單車拒不承認,Soul 運營合伙人在競爭平臺 Uki 上發內容這樣的離譜新聞后,人們會對「商業戰爭」這個詞有些許懷疑.
1900/1/1 0:00:0011月17日,在TechCrunch于邁阿密舉辦的以加密為主題的活動中,OpenSea首席執行官Devin Finzer探討了公司業務與NFT的未來市場.
1900/1/1 0:00:0060歲的“星爺”周星馳要進軍元宇宙了?誰能想到,向來低調的他首次注冊社交賬號,竟是為了發布一條招人信息,挑選的還不是新片男女主角,而是Web3人才,一腳跨界到了互聯網科技領域.
1900/1/1 0:00:00▌知情人士:SBF可能將前往美國接受問詢金色財經報道,據三位知情人士透露,美國和巴哈馬當局一直在討論將FTX創始人SBF帶到美國接受問詢的可能性.
1900/1/1 0:00:001.從庫里到奧尼爾 給 FTX 代言的美國明星們要賠大錢了?在經歷巨額虧損后,投資者開始將矛頭轉向曾為 FTX 代言的名人們.
1900/1/1 0:00:00來源:光子星球 元宇宙的故事,似乎講不通了。當下,刮起元宇宙熱潮的Roblox股價已跌去大半,帶頭大哥Meta也正因元宇宙虧損深陷泥潭.
1900/1/1 0:00:00