原文標題:《Vitalik:打造安全的中心化交易所 —— 可償付證明及更多》
原文作者:Vitalik Buterin
原文編譯:雙花 (@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在接受采訪后出現在本周《時代》雜志的封面,在接受采訪時他透露對加密行業的未來感到擔憂。V神表示,1. 加密貨幣具有“反烏托邦潛力”;2. 以太坊不僅僅是金錢;3. Buterin 覺得他在“對著風大喊大叫”;4. 烏克蘭危機顯示了加密貨幣的好處;5. 以太坊可能會變得非常不同;6. 被罷免的聯合創始人有酸葡萄;7. 費用讓 Buterin 感到沮喪;8. 在性別平等方面做得不夠;9. Buterin 不喜歡 DAO 的投票方式;10. 以太坊分片需要盡快進行。(coinmarketcap)[2022/3/19 14:05:52]
綠色: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神:OMG是領先的以太坊L2 批評我不如批評BCH社區:推特網友Monsoonie對V神提問稱,有時人們會在判斷上犯錯誤,就像你在omise go(代幣OMG的發行者)和其他eth項目上的建議一樣。那么我們應該怎么看待你呢?對此V神剛剛回復稱,自2019年低迷以來,OMG已經很好地挽回了聲譽。它現在是領先的以太坊L2(Layer 2第二層協議擴展解決方案)之一,甚至USDT也選擇在其區塊鏈上發行。我敢肯定,我在公司內部對他們為升職所做的某些事情表示反感。(這是2年前,具體我記不清了)。我不認為OMG在網絡上是隨意的,比如,他們在如何銷售上比大多數人都要克制。如果你想批評我,BCH在我看來是一個更好的目標,我真的認為在他們擺脫Craig之后會重新振作起來,但到目前為止,他們還沒有真正做到。[2020/9/7]
Greta 的驗證將不會通過:當交易平臺將不得不把 Henry 余額為 -500 ETH 的節點的給她時,她會拒絕掉該無效節點。Eve 和 Fred 也會驗證失敗,因為 Henry 之上的中間節點余額為 -230 ETH,所以該節點也是無效的!為了盜用行為不被發現,交易平臺只能寄望于樹的右半部分沒人檢查其余額證明。
如果交易平臺能夠挑選出這樣的擁有 500 ETH 的用戶:他們嫌麻煩不去檢查余額證明,或者當他們抱怨未能收到余額證明時,大家并不相信他們,那么交易平臺就可以蒙混過關。但是,交易平臺也可以通過將這些用戶排除在 Merkle 總和樹之外來達到相同的效果。因此,如果僅就負債證明而言,Merkle 樹技術基本滿足了需求。但它的隱私特性仍不夠理想。你可以更巧妙地使用 Merkle 樹進行改進,比如把 satoshi 或 wei 作為一個獨立的葉子節點。然而,通過使用更先進的技術,還可以做得更好。
ZK-SNARKs 是一項強大的技術。ZK-SNARKs 對密碼學的意義類似于人工智能:一項足以碾壓數十年前為了解決一系列問題而開發的一系列專用技術的通用技術。因此,我們當然可以使用 ZK-SNARKs 極大地簡化和改善負債證明協議中的隱私。
我們可以簡單地將所有用戶的存款放進 Merkle 樹(或者更為簡單的 KZG 承諾),并使用 ZK-SNARK 來證明樹中的所有余額都是非負的,并且加起來等于某個聲稱的值。如果我們添加了一層哈希來保證隱私,那么發給每個用戶的 Merkle 分支(或 KZG 證明)將不會泄漏任何其他用戶的余額。
V神:以太坊平臺和以太資產的發展是一致的:V神在一場播客活動中表示,以太坊一直以來是一個金融應用平臺,以太坊平臺和以太資產的發展是一致的(所謂以太資產,V神將之定義為以太坊平臺上并非其本人或者以太基金會創造的資產)。如果以太坊平臺不安全,那么以太資產也無法維持其價值,如果以太資產沒有價格,那么以太坊平臺很容易遭受攻擊,如果有很多人用以太坊平臺,那么交易費用將推動以太資產價格上漲。[2020/8/17]
使用 KZG 承諾是避免隱私泄露的一種方法,因為其不需要把「姐妹節點」作為證明提供,并且可以使用簡單的 ZK-SNARK 來證明余額的總和,并且每個余額都是非負的。
我們可以通過一個專用的 ZK-SNARK 來證明上述 KZG 中余額的總和及其非負性。這里有一個簡單的例子。我們引入了一個輔助多項式 I(x),其「構建出用戶余額的每一位」(為了舉例,我們假設余額低于 215),其中每第 16 個位置追蹤差額保證,只有當實際總額與宣稱總額相等該值才會是 0。如果 z 是一個 128 階的原根,我們可以證明方程成立:
譯者注:對這個多項式等式的解讀。
如何把這些等式轉換為多項式校并在后續轉換為 ZK-SNARK 可以參考我撰寫關于 ZK-SNARKs 文章的此處和另外一處。這并不是一個最優的協議,但讓這些密碼學證明比較好理解!
只需要幾個額外的方程式,該約束系統就可以適配更復雜的設定。例如,在杠桿交易系統中,個人用戶擁有負余額是可以接受的,但前提是他們需要擁有足夠的抵押資產以覆蓋其負債。SNARK 可以用于證明這一更為復雜的約束,向用戶保證,交易平臺不能秘密違規豁免某些用戶,從而危及用戶資產。
長遠來看,這種 ZK 負債證明的用處不限于交易平臺中的用戶存款,還可以用于更廣泛的貸款場景。任何貸款的人都會將記錄放入含該貸款的一個多項式或一棵樹中,而根會在鏈上發布。這將使得任何尋求貸款的人向放款方提供零知識證明,以表明其未獲得太多其他貸款。最終,法律上的創新甚至可以使得以這種方式進行承諾的貸款比無承諾的貸款擁有更高的優先級。這與我們在《去中心化社會:尋找 Web3 的靈魂》中討論的一個想法不謀而合:通過某種形式的」靈魂綁定代幣「,使得鏈上負面信譽的概念成為可能。
聲音 | V神:有50%的礦工現在正在投票支持提高GAS上限:V神在推特表示:“幾乎剛好有50%的礦工現在正在投票支持提高GAS上限;它第一次突破了810萬。”據此前報道,以太礦礦工開始與Spark Pool(星火礦池)和F2Pool(魚池)一起進行投票決定提高Gas(燃料)上限。其表示:“考慮到以太坊目前的網絡擁堵狀況,我們已開始測試將Gas上限提高至1000萬。”目前的Gas上限是800萬。[2019/9/15]
資產證明最簡單的版本是我們上面看到的協議:為了證明您持有 X 個代幣,您只需在預定時間移動 X 個代幣或在交易中攜帶「這些資金屬于 Binance」的信息。為了避免支付交易手續費,你可以簽署一條鏈下消息。比特幣和以太坊都有鏈下簽名信息標準。
這種簡單的資產證明技術存在兩個實際問題:
冷錢包處理
抵押品重用
出于安全考慮,大多數交易平臺會將大部分用戶資金存儲在冷錢包中:在離線的計算機上,交易需要手動簽名并攜帶到互聯網上。這種手段是很普遍的:我過去用于存放私人資金的冷錢包放在一臺永久離線的計算機上,它會生成包含已簽名交易的二維碼,然后我會用手機掃描這些二維碼。由于資金量龐大,交易平臺使用的安全協議會更加復雜,經常涉及在多個設備間的多方計算,以進一步降低單設備被黑導致密鑰泄露的可能性。在這種背景下,即使是創建一條額外消息來證明對地址的控制也是一項昂貴的操作!
交易平臺可以采用以下幾種方式:
維護一些長期使用的公開地址。交易平臺生成若干地址,僅發布一次每個地址所有權證明,然后重復使用這些地址。這是迄今為止最簡單的方案,盡管它在保護安全及隱私上增加了一些限制。
持有很多地址,然后隨機證明幾個地址。交易平臺持有很多地址,甚至可能每個地址只用一次,并在單次交易后不再使用。在這種情況下,交易平臺需要有一個協議,不時地隨機選擇一些地址,交易平臺必須「打開」以證明所有權。一些交易平臺已通過審計員進行了類似的操作,但原則上,這種技術可以轉化為完全自動化的程序。
更復雜的 ZKP 方式。例如,交易平臺可以將其所有地址設置 1/2 多簽,這些地址的其中一份密鑰各不相同,而另一份相同的密鑰是以某種復雜但安全的方式(如,12/16 多簽)存儲起來重要的緊急備份盲版。為了保護隱私并避免泄漏其全部地址,交易平臺甚至可以在區塊鏈上運行零知識證明以證明該格式鏈上地址的總余額。
聲音 | V神:DeFi協議想法很強大但還未經測試 不應大力鼓勵人們投錢進去:據CryptoPotato 9月15日消息,在特拉維夫舉行的Ethereal峰會上,V神談論DeFi協議時表示,其對DeFi協議感到非常興奮。在他看來,世界上任何地方的任何人都可以使用一個系統,讓他們互相支付。基本上讓人們自己選擇自己的財務風險敞口,這種想法非常強大。這是很多人無法接觸到的東西。不過,V神也警告說,不應該大力鼓勵人們把錢投入DeFi協議,主要原因是這些協議還沒有經過測試,而且也有可能失敗。[2019/9/15]
另一個主要問題是防止抵押品重用。彼此間來回轉移抵押品以證明儲備金對交易平臺而言通常很容易辦到,這使得實際上沒有償付能力的情況下蒙混過關。理想情況下,可償付證明應該實時完成,并在每個區塊后更新證明。如果不切實際的話,那么下一個最好的辦法就是交易平臺間協調出一個固定的時間進行證明,例如在 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
媒體專欄
閱讀更多
金色財經 子木
金色早8點
去中心化金融社區
虎嗅科技
CertiK中文社區
深潮TechFlow
念青
Odaily星球日報
騰訊研究院
DeFi數據 1、DeFi代幣總市值:437.49億美元 DeFi總市值及前十代幣 數據來源:coingecko2、過去24小時去中心化交易所的交易量26.
1900/1/1 0:00:00摘要 2022年,是加密世界多元化創新的一年,但創新的背后,也發生了許多讓人咋舌的安全事件。零時科技安全團隊發布了《2022年全球Web3行業安全研究報告》,回顧了2022年Web3行業全球政策.
1900/1/1 0:00:00在最近的FTX崩盤事件當中,整個幣圈都因為FTX的死亡螺旋和擠兌而震蕩。在關注FTX及其相關方的財務狀況的同時,部分律師正在關注FTX崩盤的法律影響.
1900/1/1 0:00:00BTC及其他數字資產市場在整個2022年的表現可謂非常慘淡。2022年初,BTC價格約為46700美元,目前價格不到17000美元,近一年來跌幅高達60%以上.
1900/1/1 0:00:002022 年的 NFT 市場,從 PFP 系列的激增,到時尚、音樂、娛樂、游戲和元宇宙體驗的探索性嘗試,這些新想法和實驗在證明它們不僅僅是區塊鏈上的「小圖片」,同時也見證了無數成功和失敗.
1900/1/1 0:00:002022年全年,Beosin EagleEye安全風險監控、預警與阻斷平臺共監測到Web3領域主要攻擊事件超167起,因各類攻擊造成的總損失達到了36億384萬美元.
1900/1/1 0:00:00