作者:Vitalik
編譯:董一鳴,ChainCatcher
每當一個重要的中心化交易所爆炸時,一個常見的問題就會被提出來,那就是我們是否可以使用加密技術來解決問題。交易所可以創建加密證明,表明他們在鏈上持有的資金足以支付他們對用戶的負債,而不是僅僅依靠政府許可、審計師和審查公司治理和經營交易所的個人背景等"法定"方法。
交易所可以建立一個系統,在未經儲戶同意的情況下,根本無法提取他們的資金。潛在地,我們可以探索在"不要做壞事"的有抱負的好人CEX和"不能做壞事",但現在效率低下和泄露隱私的鏈上DEX之間的整個光譜。這篇文章將深入探討試圖讓交易更接近無信任的一兩步的歷史嘗試,這些技術的局限性,以及一些依靠ZK-SNARKs和其他先進技術的更新和更強大的想法。
收支平衡表和Merkle?tree:老派的清償能力證明
交易所最早嘗試用密碼學方法證明他們沒有欺騙他們的用戶,這可以追溯到很久之前。2011年,當時最大的比特幣交易所MtGox通過發送一筆交易,將424242個BTC轉移到一個預先公布的地址,證明他們有資金。2013年,人們開始討論如何解決問題的另一面:證明客戶存款的總規模。如果你證明客戶的存款等于X,并證明X幣的私鑰的所有權,那么你就有了償付能力的證明:你已經證明交易所有資金來償還所有的存款人。
證明存款的最簡單方法是簡單地發布一個對的列表。每個用戶都可以檢查他們的余額是否包括在列表中,任何人都可以檢查完整的列表,以查看每個余額都是非負的,總金額為賠索金額。當然,這破壞了隱私,所以我們可以稍微改變一下方案:發布一個對的列表,并私下向每個用戶發送他們的salt值。但即使這樣也會泄露余額,而且會泄露余額的變化模式。保護隱私的愿望把我們帶到了下一個發明:Merkle?tree技術。
公鏈平臺及去中心化交易所Vites已上線:據官方消息,近日,由美國Vites基金會打造新一代公鏈平臺、去中心化交易所Vites已正式上線,VTS幣是其流通所有生態領域的唯一憑證。Vites基金會表示:“Vites不斷探索區塊鏈技術及其在商業領域的應用,融合DeFi概念,推出融合流動性挖礦、質押挖礦的一體化挖礦機制,致力于打造一家真正的去中心化交易所,開拓DeFi金融新局面,讓鏈上交易更快速、鏈上資產更安全。”據悉,Vites已獲得美國MSB金融牌照,可以有權融資、發行數字貨幣。[2021/3/14 18:44:05]
綠色:Charlie節點。藍色:David節點,也是Charlie將接收到的節點,作為他證明的一部分。黃色:根節點,向大家公開展示。
Merkle?tree技術是將客戶的余額表放入Merkle?sum?tree中。在Merklesum?tree中,每個節點都是一個對。底層的葉子節點代表個別客戶的余額和salted的用戶名哈希值。在每個高層節點中,余額是下面兩個余額的總和,而哈希值是下面兩個節點的哈希值。Merkle?sum證明,就像Merkle證明一樣,是樹的一個"分支",由從葉到根的路徑上的姐妹節點組成。
交易所將向每個用戶發送其余額的Merklesum證明來證明他們的余額。然后,用戶將得到一個保證,他們的余額被正確地包括在總數的一部分。一個簡單的代碼示例可以從這里找到。
這種設計中的隱私泄露比完全公開的列表要低得多,而且可以通過每次發布根目錄時對分支進行洗牌來進一步減少隱私泄露,但一些隱私泄露還是存在的。Charlie可以得知某人的余額為164ETH,有兩個用戶的余額加起來為70ETH,等等。一個控制許多賬戶的攻擊者仍有可能了解到交易所用戶的大量信息。
VitalikButerin提議使用Flashbots系統實現“賬戶抽象”:3月11日消息,以太坊聯合創始人 Vitalik Buterin 在研究機構 Flashbots 的 GitHub 倉庫中提議利用 Flashbots 作為“賬戶抽象”的一種實現方式。“賬戶抽象”是以太坊社區中討論的改進提案之一,以實現交易不需要從私鑰控制的 EOA 賬戶發起,而是可以直接從智能合約發起,具體的用例包括智能合約錢包、Tornado.Cash 這類隱私保護工具等。Vitalik Buterin 認為 Flashbots 可以解決這個問題,通過搭建一個插件將其變成智能合約錢包的中繼器以實現。他表示該方案不需要對以太坊底層協議進行很多改動。
Flashbots是由五位區塊鏈行業人士發起成立的開放研究機構,旨在針對以太坊及各智能合約公鏈所面對的 MEV 問題進行研究,并實施解決方案。[2021/3/11 18:35:51]
該方案的一個重要的微妙之處在于負余額的可能性:如果一個交易所有1390ETH的客戶余額,但只有890ETH的儲備,試圖通過在樹上的某個假賬戶下增加一個-500ETH的余額來彌補差額怎么辦?事實證明,這種可能性并沒有破壞該方案,盡管這就是我們特別需要Merkle?sum樹而不是普通Merkle?樹的原因。假設Henry是交易所控制的假賬戶,交易所把-500ETH放在那里。
Greta的證明驗證將失敗:交易所將不得不給她Henry的-500ETH節點,她將拒絕這個節點,因為它是無效的。Eve和Fred的驗證也會失敗,因為Henry上面的中間節點的ETH總量為-230,所以也是無效的!為了逃脫盜竊,交易所將不得不希望整個樹的右半部分沒有人檢查他們的余額證明。
如果交易所能夠識別出價值500ETH的的用戶,他們相信這些用戶要么不會費心檢查證明,要么在抱怨從未收到證明時不會被相信,那么他們就有信心逃脫偷竊的懲罰。但是,交易所也可以將這些用戶從樹上排除,從而達到同樣的效果。
Vitalik持有的ETH已經價值4.749億美元:ETH的價格于今日創下新高,最高達到1439美元,市值達到1600億美元。根據Forbes Crypto的信息,以太坊聯合創始人Vitalik持有33.3萬枚ETH,價值已經達到4.749億美元。[2021/1/19 16:32:46]
因此,如果只是為了實現負債證明的目標,Merkle樹技術基本上和負債證明方案一樣好,。但它的隱私屬性仍然不理想。你可以通過以更巧妙的方式使用Merkle樹,比如讓每個satoshi或wei成為一個單獨的葉子,但最終隨著更現代的技術,還有更好的方法來做到這一點。
用ZK-SNARKs改善隱私和穩健性
ZK-SNARKs是一項強大的技術。ZK-SNARKs對密碼學的作用可能就像變壓器對人工智能的作用一樣:它是如此強大的一種通用技術,以至于它將完全碾壓幾十年前開發的特定應用技術中的一大堆問題。因此,當然,我們可以使用ZK-SNARKs來大大簡化和改善責任證明協議中的隱私。
我們可以做的最簡單的事情是將所有用戶的存款放入一個Merkle樹,并使用ZK-SNARK來證明該樹中的所有余額都是非負的,并且加起來等于某個聲稱的值。如果我們為隱私添加一層哈希,給每個用戶的Merkle分支將不會透露任何其他用戶的余額。
使用KZG承諾是避免隱私泄漏的一種方法,因為不需要提供“姐妹節點”作為證明,一個簡單的ZK-SNARK可以用來證明余額的總和,并且每個余額都是非負的。
我們可以用一個特殊用途的ZK-SNARK來證明上述KZG中余額的和與非負性。這里有一個簡單的例子,可以做到這一點。我們引入一個輔助多項式??,它"建立了每個余額的位",并且每16個位置都跟蹤一個帶有偏移的運行總數,因此只有當實際總數與聲明的總數一致時,它的總和才為零。如果z是-128次的單位根,我們可以證明以下等式。
以太坊創始人Vitalik提倡加密貨幣廣泛采用社交恢復型錢包:1月11日消息,以太坊創始人VitalikButerin發布博文章提倡加密貨幣行業應采用一種社交恢復型錢包(socialrecoverywallets),這種新型智能合約錢包可更好的提升加密貨幣的安全保護。社交恢復型錢包工作原理主要有兩部分,第一,只有一個簽名密鑰可用于批準交易;第二,至少有3個(或更多)監護人,其中大多數可以配合更改帳戶的簽名密鑰。如果用戶丟失了簽名密鑰,那么社交恢復功能就會啟動。用戶可以直接與監護人聯系,要求他們簽署一項特殊交易,以將錢包合同中注冊的簽名公鑰更改為新的簽名。目前,已實現社交恢復功能的兩個主要錢包是Argent錢包和Loopring錢包。不過,這兩個錢包都存在兩大問題,分別是依賴中繼器來解決交易,以及高交易費,但可以通過將生態系統移至第2層協議解決,例如ZKrollups。[2021/1/11 15:51:02]
有效設置的第一個值是0000?0000?0012?51020-165?0000?0000?13612?2550-300...
關于如何將這樣的方程轉化為多項式檢查,然后再轉化為ZK-SNARK,請參見我在ZK-SNARK的文章中的這里和這里的進一步解釋。這不是一個最佳協議,但它確實顯示了這些天來這些類型的加密證明并不那么詭異!
只需幾個額外的公式,像這樣的約束系統就可以適應更復雜的環境。例如,在一個杠桿交易系統中,個別用戶出現負余額是可以接受的,但前提是他們有足夠的其他資產來覆蓋有一些抵押保證金的資金。一個SNARK可以用來證明這個更復雜的約束,讓用戶放心,交易所不會通過暗中豁免其他用戶的規則來給他們的資金帶來風險。
在更長遠的未來,這種ZK債務證明也許不僅可以用于客戶在交易所的存款,還可以用于更廣泛的貸款。任何人在貸款時,都會將一條記錄放入一個包含該貸款的多項式或樹中,而該結構的根將被公布在鏈上。這將讓任何尋求貸款的人向貸款人提供他們還沒有借出太多其他貸款的ZK證明。最終,法律創新甚至可以使已經以這種方式承諾的貸款比沒有承諾的貸款具有更高的優先級。這將我們引向與?"去中心化社會:尋找Web3的靈魂"中討論的一個想法完全相同的方向:通過某種形式的"靈魂代幣",在鏈上建立一個負面的聲譽或抵押品的概念。
GTX(GravitationX)即將上線TokenBetter:據TokenBetter官方公告,GTX(GravitationX)將于2020年5月3日15:00上線TokenBetter。
GTX(GravitationX)的目標是通過結合 CryptoNote 協議和智能合約等一些經過驗證的最佳技術,創建一種獨特的先進區塊鏈技術,增強可靠性,隱私性,安全性,可用性和可移植性,從而實現創建私人智能合約。GTX(GravitationX)發行總量限定1億,永不增發。GTX擁有首個POD毀滅證明機制,百分之九十六的GTX將被摧毀,最后只剩下 4,000,000枚GTX。[2020/5/2]
資產證明
資產證明的最簡單版本是我們上面看到的協議:為了證明你持有X枚幣,你只需在某個預先約定的時間或在數據字段包含"這些資金屬于幣安"的交易中移動X個幣。為了避免支付交易費用,你可以簽署一個鏈外信息來代替;比特幣和以太坊都有鏈外簽名信息的標準。
這種簡單的資產證明技術有兩個實際問題。
“冷庫”處理
抵押品的雙重用途
出于安全考慮,大多數交易所將絕大多數客戶的資金保存在"冷庫"中:在離線計算機上,交易需要手動簽署并轉移到互聯網上。我曾經為個人資金使用設置的冷庫涉及到一臺永久離線的計算機,它會生成一個包含簽名交易的二維碼,我可以用我的手機掃描。現代交換協議更加瘋狂,經常涉及到幾個設備之間的多方計算。鑒于這種設置,即使是一個額外的信息來證明對一個地址的控制,也是一個昂貴的操作!
一個交易可以采取以下幾種路徑:
保留幾個公開的長期使用的地址。交易所將生成幾個地址,對每個地址發布一次證明,以證明所有權,然后重復使用這些地址。這是迄今為止最簡單的方案,盡管它確實在如何保護安全和隱私方面增加了一些限制。
設置許多地址,隨機地證明幾個。交易所會有許多地址,也許甚至每個地址只使用一次,并在一次交易后退役。在這種情況下,交易所可能有一個協議,不時地隨機選擇幾個地址,必須"打開"以證明所有權。一些交易所已經用審計師做了類似的事情,但原則上這種技術可以變成一個完全自動化的程序。
更復雜的ZKP選項。例如,一個交易所可以將其所有的地址設置為1/2個多重簽名,其中每個地址的密鑰是不同的,另一個是某個"重大"緊急備份密鑰的盲版,以某種復雜但非常高安全的方式存儲,例如12/16個多重簽名。為了保護隱私和避免暴露其地址的整個集合,交易所甚至可以在區塊鏈上運行一個零知識證明,它證明鏈上所有具有這種格式的地址的總余額。
另一個主要問題是防止抵押品的雙重用途。交易所可以很容易地在彼此之間來回運送抵押品以進行儲備證明,這將使他們在實際沒有償付能力時假裝有償付能力。理想情況下,償付能力的證明是實時進行的,在每個區塊之后都會更新證明。如果這不現實,次優選擇是在不同的交易所之間協調一個固定的時間表,例如,在每周二UTC14點證明儲備。
最后一個問題是:能在法幣上做資產證明嗎?交易所不只是持有加密貨幣,他們還在銀行系統內持有法幣。在這里,答案是:可以,但這樣的程序將不可避免地依賴于"法幣"信任模型:銀行本身可以證明余額,審計師可以證明資產負債表,等等。考慮到法幣是不可加密驗證的,這是在該框架內所能做到的最好的,但它仍然值得做。
另一種方法是將一個運行交易所和處理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.link與Polymarket等平臺的互動方式就是這種方法的一個例子。在法幣方面,傳統銀行系統和加密貨幣生態系統之間的流動可以通過資產支持的穩定幣的本地現金流入/現金流出流程來完成。然而,在我們完全達到這個目標之前,還需要一段時間。
特別感謝BalajiSrinivasan,以及Coinbase、Kraken和幣安工作人員的討論。
撰文:BuidlerDAOCo-founder?Jason,《BuidlerDAO:我所理解的Layer0、1、2層到底是什么?》這是我第一篇宏觀分析類型的文章.
1900/1/1 0:00:00據CoinDesk報道,根據一份公開法庭文件顯示,內部調查后,加密借貸平臺VoyagerDigital計劃與兩名高管就他們對三箭資本的貸款處理達成和解.
1900/1/1 0:00:00作者:?R3PO 加密不缺故事,而Aptos貢獻了一次事故。Move生態的威力不應被輕視,跟隨Aptos主網上線的,已經有域名服務AptosNames、錢包Pontem、多簽錢包Momentum.
1900/1/1 0:00:00據官方公告,ApeCoinDAO社區已投票通過為APE質押系統智能合約設立漏洞賞金計劃的提案AIP-134,APE質押系統的上線日期將被推遲至漏洞賞金計劃結束后.
1900/1/1 0:00:00作者:X2Y2 主持人(X2Y2):@alex_pengfei 嘉賓:? X2Y2大使B 貓狗大戰發起人BayMaxMIMICSHHANS大使Hebe黑貓社區共建者FearlessZi 錄音鏈接.
1900/1/1 0:00:00作者:R3PO 在上周發出的首尾相連:DID和鏈上數據構建的去中心化鏈路一文中,R3PO指出鏈上數據是一種“下沉”的數據基礎設施.
1900/1/1 0:00:00