中心化交易所如何做資金證明?

中級Dec 04, 2023
這篇文章將深入探討試圖讓交易更接近無信任的一兩步的歷史嘗試,這些技術的局限性,以及一些依靠ZK-SNARKs和其他先進技術的更新和更強大的想法。
中心化交易所如何做資金證明?

每當一個重要的中心化交易所爆炸時,一個常見的問題就會被提出來,那就是我們是否可以使用加密技術來解決問題。交易所可以創建加密證明,錶明他們在鏈上持有的資金足以支付他們對用戶的負債,而不是僅僅依靠政府許可、審計師和審查公司治理和經營交易所的個人背景等 “法定 “方法。

交易所可以建立一個繫統,在未經儲戶衕意的情況下,根本無法提取他們的資金。潛在地,我們可以探索在 “不要做壞事 “的有抱負的好人CEX和 “不能做壞事”,但現在效率低下和泄露隱私的鏈上DEX之間的整個光譜。這篇文章將深入探討試圖讓交易更接近無信任的一兩步的歷史嘗試,這些技術的局限性,以及一些依靠ZK-SNARKs和其他先進技術的更新和更強大的想法。

收支平衡錶和Merkle tree:老派的清償能力證明

交易所最早嘗試用密碼學方法證明他們沒有欺騙他們的用戶,這可以追溯到很久之前。2011年,當時最大的比特幣交易所MtGox通過髮送一筆交易,將424242個BTC轉移到一個預先公布的地址,證明他們有資金。2013年,人們開始討論如何解決問題的另一麵:證明客戶存款的總規模。如果你證明客戶的存款等於X(”負債證明”),併證明X幣的私鑰的所有權(”資産證明”),那麽你就有了償付能力的證明:你已經證明交易所有資金來償還所有的存款人。

證明存款的最簡單方法是簡單地髮布一個(用戶名,餘額)對的列錶。每個用戶都可以檢查他們的餘額是否包括在列錶中,任何人都可以檢查完整的列錶,以查看(i)每個餘額都是非負的,(ii)總金額爲賠索金額。當然,這破壞了隱私,所以我們可以稍微改變一下方案:髮布一個(哈希(用戶名, salt), 餘額)對的列錶,併私下曏每個用戶髮送他們的salt值。但即使這樣也會泄露餘額,而且會泄露餘額的變化模式。保護隱私的願望把我們帶到了下一個髮明:Merkle tree(又稱哈希樹或梅剋爾樹)技術。

緑色:Charlie節點。藍色:David節點,也是Charlie將接收到的節點,作爲他證明的一部分。黃色:根節點,曏大家公開展示。

Merkle tree技術是將客戶的餘額錶放入Merkle sum tree中。在Merkle sum tree中,每個節點都是一個(餘額,哈希)對。底層的葉子節點代錶個別客戶的餘額和salted的用戶名哈希值。在每個高層節點中,餘額是下麵兩個餘額的總和,而哈希值是下麵兩個節點的哈希值。Merkle sum證明,就像Merkle證明一樣,是樹的一個 “分支”,由從葉到根的路徑上的姐妹節點組成。

交易所將曏每個用戶髮送其餘額的Merkle sum證明來證明他們的餘額。然後,用戶將得到一個保證,他們的餘額被正確地包括在總數的一部分。一個簡單的代碼示例可以從這裡找到。

這種設計中的隱私泄露比完全公開的列錶要低得多,而且可以通過每次髮布根目録時對分支進行洗牌來進一步減少隱私泄露,但一些隱私泄露還是存在的。Charlie可以得知某人的餘額爲164ETH,有兩個用戶的餘額加起來爲70ETH,等等。一個控製許多賬戶的攻擊者仍有可能了解到交易所用戶的大量信息。

該方案的一個重要的微妙之處在於負餘額的可能性:如果一個交易所有1390ETH的客戶餘額,但隻有890ETH的儲備,試圖通過在樹上的某個假賬戶下增加一個-500ETH的餘額來彌補差額怎麽辦?事實證明,這種可能性併沒有破壞該方案,盡管這就是我們特別需要Merkle sum樹而不是普通Merkle 樹的原因。假設Henry是交易所控製的假賬戶,交易所把-500ETH放在那裡。

Greta的證明驗證將失敗:交易所將不得不給她Henry的-500 ETH節點,她將拒絶這個節點,因爲它是無效的。Eve和Fred的驗證也會失敗,因爲Henry上麵的中間節點的ETH總量爲-230,所以也是無效的!爲了逃脫盜竊,交易所將不得不希望整個樹的右半部分沒有人檢查他們的餘額證明。

如果交易所能夠識別出價值500ETH的的用戶,他們相信這些用戶要麽不會費心檢查證明,要麽在抱怨從未收到證明時不會被相信,那麽他們就有信心逃脫偷竊的懲罰。但是,交易所也可以將這些用戶從樹上排除,從而達到衕樣的效果。

因此,如果隻是爲了實現負債證明的目標,Merkle樹技術基本上和負債證明方案(proof-of-liabilities)一樣好,。但它的隱私屬性仍然不理想。你可以通過以更巧妙的方式使用Merkle樹,比如讓每個satoshi或wei成爲一個單獨的葉子,但最終隨著更現代的技術,還有更好的方法來做到這一點。

用ZK-SNARKs改善隱私和穩健性

ZK-SNARKs是一項強大的技術。ZK-SNARKs對密碼學的作用可能就像變壓器對人工智能的作用一樣:它是如此強大的一種通用技術,以至於它將完全碾壓幾十年前開髮的特定應用技術中的一大堆問題。因此,當然,我們可以使用ZK-SNARKs來大大簡化和改善責任證明協議中的隱私。

我們可以做的最簡單的事情是將所有用戶的存款放入一個Merkle樹(或者更簡單,一個KZG承諾),併使用ZK-SNARK來證明該樹中的所有餘額都是非負的,併且加起來等於某個聲稱的值。如果我們爲隱私添加一層哈希,給每個用戶的Merkle分支(或KZG證明)將不會透露任何其他用戶的餘額。

使用KZG承諾是避免隱私泄漏的一種方法,因爲不需要提供“姐妹節點”作爲證明,一個簡單的ZK-SNARK可以用來證明餘額的總和,併且每個餘額都是非負的。

我們可以用一個特殊用途的ZK-SNARK來證明上述KZG中餘額的和與非負性。這裡有一個簡單的例子,可以做到這一點。我們引入一個輔助多項式 ,它 “建立了每個餘額的位”(爲了舉例,我們假設餘額在),併且每16個位置都跟蹤一個帶有偏移的運行總數,因此隻有當實際總數與聲明的總數一緻時,它的總和才爲零。如果z 是-128次的單位根,我們可以證明以下等式。

有效設置的第一個值是0 0 0 0 0 0 0 0 0 0 1 2 5 10 20 -165 0 0 0 0 0 0 0 0 1 3 6 12 25 50 -300 …

關於如何將這樣的方程轉化爲多項式檢查,然後再轉化爲ZK-SNARK,請參見我在ZK-SNARK的文章中這裡這裡的進一步解釋。這不是一個最佳協議,但它確實顯示了這些天來這些類型的加密證明併不那麽詭異!

隻需幾個額外的公式,像這樣的約束繫統就可以適應更覆雜的環境。例如,在一個杠桿交易繫統中,個別用戶出現負餘額是可以接受的,但前提是他們有足夠的其他資産來覆蓋有一些抵押保證金的資金。一個SNARK可以用來證明這個更覆雜的約束,讓用戶放心,交易所不會通過暗中豁免其他用戶的規則來給他們的資金帶來風險。

在更長遠的未來,這種ZK債務證明也許不僅可以用於客戶在交易所的存款,還可以用於更廣泛的貸款。任何人在貸款時,都會將一條記録放入一個包含該貸款的多項式或樹中,而該結構的根將被公布在鏈上。這將讓任何尋求貸款的人曏貸款人提供他們還沒有借出太多其他貸款的ZK證明。最終,法律創新甚至可以使已經以這種方式承諾的貸款比沒有承諾的貸款具有更高的優先級。這將我們引曏與 “去中心化社會:尋找Web3的靈魂 “中討論的一個想法完全相衕的方曏:通過某種形式的 “靈魂代幣(soulbound token)”,在鏈上建立一個負麵的聲譽或抵押品的概念。

資産證明

資産證明的最簡單版本是我們上麵看到的協議:爲了證明你持有X枚幣,你隻需在某個預先約定的時間或在數據字段包含 “這些資金屬於幣安”的交易中移動X個幣。爲了避免支付交易費用,你可以簽署一個鏈外信息來代替;比特幣和以太坊都有鏈外簽名信息的標準。

這種簡單的資産證明技術有兩個實際問題。

  • “冷庫”處理
  • 抵押品的雙重用途

出於安全考慮,大多數交易所將絶大多數客戶的資金保存在 “冷庫 “中:在離線計算機上,交易需要手動簽署併轉移到互聯網上。我曾經爲個人資金使用設置的冷庫涉及到一颱永久離線的計算機,它會生成一個包含簽名交易的二維碼,我可以用我的手機掃描。現代交換協議更加瘋狂,經常涉及到幾個設備之間的多方計算。鑒於這種設置,即使是一個額外的信息來證明對一個地址的控製,也是一個昂貴的操作!

一個交易可以採取以下幾種路徑:

  • 保留幾個公開的長期使用的地址。交易所將生成幾個地址,對每個地址髮布一次證明,以證明所有權,然後重覆使用這些地址。這是迄今爲止最簡單的方案,盡管它確實在如何保護安全和隱私方麵增加了一些限製。
  • 設置許多地址,隨機地證明幾個。交易所會有許多地址,也許甚至每個地址隻使用一次,併在一次交易後退役。在這種情況下,交易所可能有一個協議,不時地隨機選擇幾個地址,必鬚 “打開 “以證明所有權。一些交易所已經用審計師做了類似的事情,但原則上這種技術可以變成一個完全自動化的程序。
  • 更覆雜的ZKP選項。例如,一個交易所可以將其所有的地址設置爲1/2個多重簽名,其中每個地址的密鑰是不衕的,另一個是某個 “重大”緊急備份密鑰的盲版,以某種覆雜但非常高安全的方式存儲,例如12/16個多重簽名。爲了保護隱私和避免暴露其地址的整個集合,交易所甚至可以在區塊鏈上運行一個零知識證明,它證明鏈上所有具有這種格式的地址的總餘額。

另一個主要問題是防止抵押品的雙重用途。交易所可以很容易地在彼此之間來回運送抵押品以進行儲備證明,這將使他們在實際沒有償付能力時假裝有償付能力。理想情況下,償付能力的證明是實時進行的,在每個區塊之後都會更新證明。如果這不現實,次優選擇是在不衕的交易所之間協調一個固定的時間錶,例如,在每周二UTC 14點證明儲備。

最後一個問題是:能在法幣上做資産證明嗎?交易所不隻是持有加密貨幣,他們還在銀行繫統內持有法幣。在這裡,答案是:可以,但這樣的程序將不可避免地依賴於 “法幣 “信任模型:銀行本身可以證明餘額,審計師可以證明資産負債錶,等等。考慮到法幣是不可加密驗證的,這是在該框架內所能做到的最好的,但它仍然值得做。

另一種方法是將一個運行交易所和處理USDC等資産支持的穩定幣的實體和另一個處理在加密貨幣和傳統銀行繫統之間移動的現金進出過程的實體(USDC本身)幹凈地分開。因爲USDC的 “負債 “隻是鏈上的ERC20代幣,負債證明是 “免費的”,隻需要資産證明。

Plasma和validiums:我們可以使CEXs不受拘束嗎?

假設我們想更進一步:我們不想僅僅證明交易所有資金來償還用戶的錢。相反,我們想完全防止交易所竊取用戶的資金。

這方麵的第一個重大嘗試是Plasma,這是一個在2017年和2018年在以太坊研究圈流行的擴展解決方案。Plasma的工作原理是將餘額分割成一組單獨的 “硬幣”,每個硬幣都被分配了一個索引,併位於Plasma區塊的Merkle樹中的一個特定位置。對一個硬幣進行有效的轉移需要將交易放到樹的正確位置,而樹的根部會在鏈上公布。

Plasma 一個版本的過度簡化示意圖。硬幣存放在智能合約中,在提現時強行執行Plasma協議的規則。

OmiseGo試圖在這個協議的基礎上做一個去中心化的交易所,但從那時起,他們就轉曏了其他的想法—-就這一點而言,Plasma集團本身也是如此,它現在是optimistic EVM的rollup項目Optimism

在2018年設想的Plasma的技術局限性(例如,證明硬幣碎片化)是不值得一看的。自2018年Plasma論述的高峰期以來,ZK-SNARKs在與擴展有關的用例中變得更加可行,正如我們上麵所説,ZK-SNARKs改變了一切。

Plasma想法的更現代版本是Starkware所謂的validium:基本上與ZK-rollup相衕,隻是數據被保存在鏈外。這種結構可以用於很多用例,可以想象任何集中式服務器需要運行一些代碼併證明其正確執行代碼的情況。在一個validium內,運營商沒有辦法竊取資金,盡管取決於實施的細節,如果運營商消失,一些數量的用戶資金可能會被卡住。

這一切都真的很好:CEX與DEX遠不是二元對立的關繫,事實證明,它有一整套的選擇,包括各種形式的混合中心化,你可以穫得一些好處,如效率,但仍有許多加密護欄,防止中心化的運營商參與大多數形式的濫用。

但是,這個設計空間的右半部分,我們還是有必要討論一下最基本的問題:處理用戶錯誤。到目前爲止,最重要的錯誤類型是:如果用戶忘記了他們的密碼,丟失了他們的設備,被黑客攻擊,或以其他方式失去了對他們賬戶的訪問,該怎麽辦?

交易所可以解決這個問題:首先是電子郵件恢覆,如果連這個都失敗了,可以通過KYC進行更覆雜形式的恢覆。但是,爲了能夠解決這樣的問題,交易所需要真正擁有對硬幣的控製權。爲了有能力以好的理由恢覆用戶賬戶的資金,交易所需要有權力,也可能被用來以壞的理由竊取用戶賬戶的資金。這是一個不可避免的權衡。

理想的長期解決方案是依靠自我保管,併輔以多重簽名和社會恢覆錢包等技術,幫助用戶處理緊急情況。但在短期內,有兩個明顯的替代方案,其成本和收益明顯不衕。

結論:未來更好的交易所

在短期內,有兩個明顯的交易所 “類別”:托管型交易所和非托管型交易所。今天,後一類隻是DEXes,如Uniswap,在未來,我們也可能看到加密學上”受約束 “的CEXes,用戶的資金被保存在類似validium智能合約的東西中。我們也可能看到半托管的交易所,我們用法幣而不是加密貨幣信任他們。

這兩種類型的交易所都將繼續存在,而提高托管交易所安全性的最簡單的曏後兼容的方法是增加準備金證明。這包括資産證明和負債證明的結合。爲這兩者製定良好的協議存在技術挑戰,但我們也應該盡可能地在這兩方麵取得進展,併盡可能地將軟件和流程開源,以便所有交易所都能受益。

在更長遠的未來,我希望我們越來越接近所有交易所都是非托管的,至少在加密貨幣方麵。錢包恢覆會存在,對於處理小金額的新用戶,以及出於法律原因需要這種安排的機構,可能需要有高度集中的恢覆選項,但這可以在錢包層而不是在交易所本身內完成。magic.linkPolymarket等平颱的互動方式就是這種方法的一個例子。在法幣方麵,傳統銀行繫統和加密貨幣生態繫統之間的流動可以通過資産支持的穩定幣(如USDC)的本地現金流入/現金流出流程來完成。然而,在我們完全達到這個目標之前,還需要一段時間。

聲明:

  1. 本文轉載自[Chaincatcher],著作權歸屬原作者[Vitalik],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

中心化交易所如何做資金證明?

中級Dec 04, 2023
這篇文章將深入探討試圖讓交易更接近無信任的一兩步的歷史嘗試,這些技術的局限性,以及一些依靠ZK-SNARKs和其他先進技術的更新和更強大的想法。
中心化交易所如何做資金證明?

每當一個重要的中心化交易所爆炸時,一個常見的問題就會被提出來,那就是我們是否可以使用加密技術來解決問題。交易所可以創建加密證明,錶明他們在鏈上持有的資金足以支付他們對用戶的負債,而不是僅僅依靠政府許可、審計師和審查公司治理和經營交易所的個人背景等 “法定 “方法。

交易所可以建立一個繫統,在未經儲戶衕意的情況下,根本無法提取他們的資金。潛在地,我們可以探索在 “不要做壞事 “的有抱負的好人CEX和 “不能做壞事”,但現在效率低下和泄露隱私的鏈上DEX之間的整個光譜。這篇文章將深入探討試圖讓交易更接近無信任的一兩步的歷史嘗試,這些技術的局限性,以及一些依靠ZK-SNARKs和其他先進技術的更新和更強大的想法。

收支平衡錶和Merkle tree:老派的清償能力證明

交易所最早嘗試用密碼學方法證明他們沒有欺騙他們的用戶,這可以追溯到很久之前。2011年,當時最大的比特幣交易所MtGox通過髮送一筆交易,將424242個BTC轉移到一個預先公布的地址,證明他們有資金。2013年,人們開始討論如何解決問題的另一麵:證明客戶存款的總規模。如果你證明客戶的存款等於X(”負債證明”),併證明X幣的私鑰的所有權(”資産證明”),那麽你就有了償付能力的證明:你已經證明交易所有資金來償還所有的存款人。

證明存款的最簡單方法是簡單地髮布一個(用戶名,餘額)對的列錶。每個用戶都可以檢查他們的餘額是否包括在列錶中,任何人都可以檢查完整的列錶,以查看(i)每個餘額都是非負的,(ii)總金額爲賠索金額。當然,這破壞了隱私,所以我們可以稍微改變一下方案:髮布一個(哈希(用戶名, salt), 餘額)對的列錶,併私下曏每個用戶髮送他們的salt值。但即使這樣也會泄露餘額,而且會泄露餘額的變化模式。保護隱私的願望把我們帶到了下一個髮明:Merkle tree(又稱哈希樹或梅剋爾樹)技術。

緑色:Charlie節點。藍色:David節點,也是Charlie將接收到的節點,作爲他證明的一部分。黃色:根節點,曏大家公開展示。

Merkle tree技術是將客戶的餘額錶放入Merkle sum tree中。在Merkle sum tree中,每個節點都是一個(餘額,哈希)對。底層的葉子節點代錶個別客戶的餘額和salted的用戶名哈希值。在每個高層節點中,餘額是下麵兩個餘額的總和,而哈希值是下麵兩個節點的哈希值。Merkle sum證明,就像Merkle證明一樣,是樹的一個 “分支”,由從葉到根的路徑上的姐妹節點組成。

交易所將曏每個用戶髮送其餘額的Merkle sum證明來證明他們的餘額。然後,用戶將得到一個保證,他們的餘額被正確地包括在總數的一部分。一個簡單的代碼示例可以從這裡找到。

這種設計中的隱私泄露比完全公開的列錶要低得多,而且可以通過每次髮布根目録時對分支進行洗牌來進一步減少隱私泄露,但一些隱私泄露還是存在的。Charlie可以得知某人的餘額爲164ETH,有兩個用戶的餘額加起來爲70ETH,等等。一個控製許多賬戶的攻擊者仍有可能了解到交易所用戶的大量信息。

該方案的一個重要的微妙之處在於負餘額的可能性:如果一個交易所有1390ETH的客戶餘額,但隻有890ETH的儲備,試圖通過在樹上的某個假賬戶下增加一個-500ETH的餘額來彌補差額怎麽辦?事實證明,這種可能性併沒有破壞該方案,盡管這就是我們特別需要Merkle sum樹而不是普通Merkle 樹的原因。假設Henry是交易所控製的假賬戶,交易所把-500ETH放在那裡。

Greta的證明驗證將失敗:交易所將不得不給她Henry的-500 ETH節點,她將拒絶這個節點,因爲它是無效的。Eve和Fred的驗證也會失敗,因爲Henry上麵的中間節點的ETH總量爲-230,所以也是無效的!爲了逃脫盜竊,交易所將不得不希望整個樹的右半部分沒有人檢查他們的餘額證明。

如果交易所能夠識別出價值500ETH的的用戶,他們相信這些用戶要麽不會費心檢查證明,要麽在抱怨從未收到證明時不會被相信,那麽他們就有信心逃脫偷竊的懲罰。但是,交易所也可以將這些用戶從樹上排除,從而達到衕樣的效果。

因此,如果隻是爲了實現負債證明的目標,Merkle樹技術基本上和負債證明方案(proof-of-liabilities)一樣好,。但它的隱私屬性仍然不理想。你可以通過以更巧妙的方式使用Merkle樹,比如讓每個satoshi或wei成爲一個單獨的葉子,但最終隨著更現代的技術,還有更好的方法來做到這一點。

用ZK-SNARKs改善隱私和穩健性

ZK-SNARKs是一項強大的技術。ZK-SNARKs對密碼學的作用可能就像變壓器對人工智能的作用一樣:它是如此強大的一種通用技術,以至於它將完全碾壓幾十年前開髮的特定應用技術中的一大堆問題。因此,當然,我們可以使用ZK-SNARKs來大大簡化和改善責任證明協議中的隱私。

我們可以做的最簡單的事情是將所有用戶的存款放入一個Merkle樹(或者更簡單,一個KZG承諾),併使用ZK-SNARK來證明該樹中的所有餘額都是非負的,併且加起來等於某個聲稱的值。如果我們爲隱私添加一層哈希,給每個用戶的Merkle分支(或KZG證明)將不會透露任何其他用戶的餘額。

使用KZG承諾是避免隱私泄漏的一種方法,因爲不需要提供“姐妹節點”作爲證明,一個簡單的ZK-SNARK可以用來證明餘額的總和,併且每個餘額都是非負的。

我們可以用一個特殊用途的ZK-SNARK來證明上述KZG中餘額的和與非負性。這裡有一個簡單的例子,可以做到這一點。我們引入一個輔助多項式 ,它 “建立了每個餘額的位”(爲了舉例,我們假設餘額在),併且每16個位置都跟蹤一個帶有偏移的運行總數,因此隻有當實際總數與聲明的總數一緻時,它的總和才爲零。如果z 是-128次的單位根,我們可以證明以下等式。

有效設置的第一個值是0 0 0 0 0 0 0 0 0 0 1 2 5 10 20 -165 0 0 0 0 0 0 0 0 1 3 6 12 25 50 -300 …

關於如何將這樣的方程轉化爲多項式檢查,然後再轉化爲ZK-SNARK,請參見我在ZK-SNARK的文章中這裡這裡的進一步解釋。這不是一個最佳協議,但它確實顯示了這些天來這些類型的加密證明併不那麽詭異!

隻需幾個額外的公式,像這樣的約束繫統就可以適應更覆雜的環境。例如,在一個杠桿交易繫統中,個別用戶出現負餘額是可以接受的,但前提是他們有足夠的其他資産來覆蓋有一些抵押保證金的資金。一個SNARK可以用來證明這個更覆雜的約束,讓用戶放心,交易所不會通過暗中豁免其他用戶的規則來給他們的資金帶來風險。

在更長遠的未來,這種ZK債務證明也許不僅可以用於客戶在交易所的存款,還可以用於更廣泛的貸款。任何人在貸款時,都會將一條記録放入一個包含該貸款的多項式或樹中,而該結構的根將被公布在鏈上。這將讓任何尋求貸款的人曏貸款人提供他們還沒有借出太多其他貸款的ZK證明。最終,法律創新甚至可以使已經以這種方式承諾的貸款比沒有承諾的貸款具有更高的優先級。這將我們引曏與 “去中心化社會:尋找Web3的靈魂 “中討論的一個想法完全相衕的方曏:通過某種形式的 “靈魂代幣(soulbound token)”,在鏈上建立一個負麵的聲譽或抵押品的概念。

資産證明

資産證明的最簡單版本是我們上麵看到的協議:爲了證明你持有X枚幣,你隻需在某個預先約定的時間或在數據字段包含 “這些資金屬於幣安”的交易中移動X個幣。爲了避免支付交易費用,你可以簽署一個鏈外信息來代替;比特幣和以太坊都有鏈外簽名信息的標準。

這種簡單的資産證明技術有兩個實際問題。

  • “冷庫”處理
  • 抵押品的雙重用途

出於安全考慮,大多數交易所將絶大多數客戶的資金保存在 “冷庫 “中:在離線計算機上,交易需要手動簽署併轉移到互聯網上。我曾經爲個人資金使用設置的冷庫涉及到一颱永久離線的計算機,它會生成一個包含簽名交易的二維碼,我可以用我的手機掃描。現代交換協議更加瘋狂,經常涉及到幾個設備之間的多方計算。鑒於這種設置,即使是一個額外的信息來證明對一個地址的控製,也是一個昂貴的操作!

一個交易可以採取以下幾種路徑:

  • 保留幾個公開的長期使用的地址。交易所將生成幾個地址,對每個地址髮布一次證明,以證明所有權,然後重覆使用這些地址。這是迄今爲止最簡單的方案,盡管它確實在如何保護安全和隱私方麵增加了一些限製。
  • 設置許多地址,隨機地證明幾個。交易所會有許多地址,也許甚至每個地址隻使用一次,併在一次交易後退役。在這種情況下,交易所可能有一個協議,不時地隨機選擇幾個地址,必鬚 “打開 “以證明所有權。一些交易所已經用審計師做了類似的事情,但原則上這種技術可以變成一個完全自動化的程序。
  • 更覆雜的ZKP選項。例如,一個交易所可以將其所有的地址設置爲1/2個多重簽名,其中每個地址的密鑰是不衕的,另一個是某個 “重大”緊急備份密鑰的盲版,以某種覆雜但非常高安全的方式存儲,例如12/16個多重簽名。爲了保護隱私和避免暴露其地址的整個集合,交易所甚至可以在區塊鏈上運行一個零知識證明,它證明鏈上所有具有這種格式的地址的總餘額。

另一個主要問題是防止抵押品的雙重用途。交易所可以很容易地在彼此之間來回運送抵押品以進行儲備證明,這將使他們在實際沒有償付能力時假裝有償付能力。理想情況下,償付能力的證明是實時進行的,在每個區塊之後都會更新證明。如果這不現實,次優選擇是在不衕的交易所之間協調一個固定的時間錶,例如,在每周二UTC 14點證明儲備。

最後一個問題是:能在法幣上做資産證明嗎?交易所不隻是持有加密貨幣,他們還在銀行繫統內持有法幣。在這裡,答案是:可以,但這樣的程序將不可避免地依賴於 “法幣 “信任模型:銀行本身可以證明餘額,審計師可以證明資産負債錶,等等。考慮到法幣是不可加密驗證的,這是在該框架內所能做到的最好的,但它仍然值得做。

另一種方法是將一個運行交易所和處理USDC等資産支持的穩定幣的實體和另一個處理在加密貨幣和傳統銀行繫統之間移動的現金進出過程的實體(USDC本身)幹凈地分開。因爲USDC的 “負債 “隻是鏈上的ERC20代幣,負債證明是 “免費的”,隻需要資産證明。

Plasma和validiums:我們可以使CEXs不受拘束嗎?

假設我們想更進一步:我們不想僅僅證明交易所有資金來償還用戶的錢。相反,我們想完全防止交易所竊取用戶的資金。

這方麵的第一個重大嘗試是Plasma,這是一個在2017年和2018年在以太坊研究圈流行的擴展解決方案。Plasma的工作原理是將餘額分割成一組單獨的 “硬幣”,每個硬幣都被分配了一個索引,併位於Plasma區塊的Merkle樹中的一個特定位置。對一個硬幣進行有效的轉移需要將交易放到樹的正確位置,而樹的根部會在鏈上公布。

Plasma 一個版本的過度簡化示意圖。硬幣存放在智能合約中,在提現時強行執行Plasma協議的規則。

OmiseGo試圖在這個協議的基礎上做一個去中心化的交易所,但從那時起,他們就轉曏了其他的想法—-就這一點而言,Plasma集團本身也是如此,它現在是optimistic EVM的rollup項目Optimism

在2018年設想的Plasma的技術局限性(例如,證明硬幣碎片化)是不值得一看的。自2018年Plasma論述的高峰期以來,ZK-SNARKs在與擴展有關的用例中變得更加可行,正如我們上麵所説,ZK-SNARKs改變了一切。

Plasma想法的更現代版本是Starkware所謂的validium:基本上與ZK-rollup相衕,隻是數據被保存在鏈外。這種結構可以用於很多用例,可以想象任何集中式服務器需要運行一些代碼併證明其正確執行代碼的情況。在一個validium內,運營商沒有辦法竊取資金,盡管取決於實施的細節,如果運營商消失,一些數量的用戶資金可能會被卡住。

這一切都真的很好:CEX與DEX遠不是二元對立的關繫,事實證明,它有一整套的選擇,包括各種形式的混合中心化,你可以穫得一些好處,如效率,但仍有許多加密護欄,防止中心化的運營商參與大多數形式的濫用。

但是,這個設計空間的右半部分,我們還是有必要討論一下最基本的問題:處理用戶錯誤。到目前爲止,最重要的錯誤類型是:如果用戶忘記了他們的密碼,丟失了他們的設備,被黑客攻擊,或以其他方式失去了對他們賬戶的訪問,該怎麽辦?

交易所可以解決這個問題:首先是電子郵件恢覆,如果連這個都失敗了,可以通過KYC進行更覆雜形式的恢覆。但是,爲了能夠解決這樣的問題,交易所需要真正擁有對硬幣的控製權。爲了有能力以好的理由恢覆用戶賬戶的資金,交易所需要有權力,也可能被用來以壞的理由竊取用戶賬戶的資金。這是一個不可避免的權衡。

理想的長期解決方案是依靠自我保管,併輔以多重簽名和社會恢覆錢包等技術,幫助用戶處理緊急情況。但在短期內,有兩個明顯的替代方案,其成本和收益明顯不衕。

結論:未來更好的交易所

在短期內,有兩個明顯的交易所 “類別”:托管型交易所和非托管型交易所。今天,後一類隻是DEXes,如Uniswap,在未來,我們也可能看到加密學上”受約束 “的CEXes,用戶的資金被保存在類似validium智能合約的東西中。我們也可能看到半托管的交易所,我們用法幣而不是加密貨幣信任他們。

這兩種類型的交易所都將繼續存在,而提高托管交易所安全性的最簡單的曏後兼容的方法是增加準備金證明。這包括資産證明和負債證明的結合。爲這兩者製定良好的協議存在技術挑戰,但我們也應該盡可能地在這兩方麵取得進展,併盡可能地將軟件和流程開源,以便所有交易所都能受益。

在更長遠的未來,我希望我們越來越接近所有交易所都是非托管的,至少在加密貨幣方麵。錢包恢覆會存在,對於處理小金額的新用戶,以及出於法律原因需要這種安排的機構,可能需要有高度集中的恢覆選項,但這可以在錢包層而不是在交易所本身內完成。magic.linkPolymarket等平颱的互動方式就是這種方法的一個例子。在法幣方麵,傳統銀行繫統和加密貨幣生態繫統之間的流動可以通過資産支持的穩定幣(如USDC)的本地現金流入/現金流出流程來完成。然而,在我們完全達到這個目標之前,還需要一段時間。

聲明:

  1. 本文轉載自[Chaincatcher],著作權歸屬原作者[Vitalik],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!