比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 世界幣 > Info

TREE:Vitalik:如何構建安全的中心化交易所平臺?

Author:

Time:1900/1/1 0:00:00

特別感謝BalajiSrinivasan以及Coinbase、Kraken和Binance團隊的探討。每當大型中心化交易所崩潰時,一個常被提及的問題是:我們是否可以利用加密技術來解決這個問題。交易所可以通過創建密碼學證明的方式證明其鏈上持有的資金足以償付用戶,而不僅僅依靠政府牌照、審計員、調查公司治理以及交易所法人背調等「法幣」方案。更有野心的是,交易所可以建立一個未經儲戶同意無法提取儲戶資金的系統。我們可以嘗試探索「不作惡」有職業素養的CEX與「無法作惡」卻泄漏隱私的低效鏈上DEX之間的界限。這篇文章將深入探討讓CEX更加去信任的歷史嘗試,與其采用技術的局限性,以及一些依賴ZK-SNARKs等先進技術的有力手段。余額表和Merkle樹:傳統的可償付證明

交易所試圖用密碼學來證明自己沒有欺騙用戶的最早嘗試可以追溯到很久以前。2011年,當時最大的比特幣交易所MtGox通過發送一筆移動424,242個BTC到預先公布地址的交易來證明他們擁有該筆資金。2013年,大家開始討論如何解決該問題的另一面:證明用戶存款的總規模。如果你證明用戶的存款等于X,并證明擁有X個代幣的私鑰,那么就提供了可償付證明:你證明了交易所有足夠的資金償還給儲戶。提供存款證明的最簡單方法是公布一個列表。每個用戶都可以檢查他們在列表中的余額,而且任何人都可以檢查完整的列表:每項余額都是非負的;總額是宣稱的金額。當然,這會破壞隱私,所以我們可以稍微改變一下該方案:發布一個<username,salt),balance>列表,并私下給用戶發送salt值。但即使這樣也會泄漏余額與其分布。為了保護隱私,我們采用了后續技術:Merkle樹技術。

綠色:Charlie的節點。藍色:Charlie收到用于證明的節點。黃色:根節點,向所有人公布Merkle樹技術會將用戶余額表放進Merkle總和樹。在Merkle總和樹中,每個節點都是對。底層葉子節點表示各個用戶的余額以及用戶名的加鹽哈希。在每個更高層的節點中,余額是下面兩個節點余額的總和,而哈希是下面兩個節點的哈希。Merkle總和證明和Merkle證明一樣,是一個由葉子節點到根節點路徑上所有姐妹節點組成的「分支」。首先,交易所會向每個用戶發送一份其余額的Merkle總和證明。然后,用戶能夠確定其余額作為總額的一部分而被正確地包含。可以在這里找到簡單的示例代碼。#Thefunctionforcomputingaparentnodegiventwochildnodesdefcombine_tree_nodes(L,R):L_hash,L_balance=LR_hash,R_balance=RassertL_balance>=0andR_balance>=0new_node_hash=hash(L_hash+L_balance.to_bytes(32,'big')+R_hash+R_balance.to_bytes(32,'big'))return(new_node_hash,L_balance+R_balance)#BuildsafullMerkletree.Storedinflattenedformwhere#nodeiistheparentofnodes2iand2i+1defbuild_merkle_sum_tree(user_table:"List"):tree_size=get_next_power_of_2(len(user_table))tree=(*tree_size++)foriinrange(tree_size-1,0,-1):tree=combine_tree_nodes(tree,tree)returntree#Rootofatreeisstoredatindex1intheflattenedformdefget_root(tree):returntree#Getsaproofforanodeataparticularindexdefget_proof(tree,index):branch_length=log2(len(tree))-1#^=bitwisexor,x^1=sisternodeofxindex_in_tree=index+len(tree)//2returnforiinrange(branch_length)]#Verifiesaproof(duh)defverify_proof(username,salt,balance,index,user_table_size,root,proof):leaf=userdata_to_leaf(username,salt,balance)branch_length=log2(get_next_power_of_2(user_table_size))-1foriinrange(branch_length):ifindex&(2**i):leaf=combine_tree_nodes(proof,leaf)else:leaf=combine_tree_nodes(leaf,proof)returnleaf==root這種設計下的隱私泄露遠低于公開完整的余額表,并可以在每次默克爾根發布時打亂各個分支來進一步降低隱私泄漏風險,但仍存在一些隱私泄露的問題:Charlie知道某人的余額為164ETH,某兩個用戶余額的總和為70ETH,等等。控制多個帳戶的攻擊者仍能了解交易所用戶的大量信息。該方案的一個重要的微妙之處在于負余額的可能性:如果一個擁有1390ETH用戶余額卻只有890ETH儲備的交易所試圖通過在樹上某處的一個假賬戶下添加-500ETH余額來彌補差額,該怎么辦?這種可能性實際上并沒有破壞該方案,這就是我們特地使用Merkle總和樹而不是常規Merkle樹的原因。假設Henry是交易所控制的假賬戶,而且交易所在上面放了-500ETH:

Vitalik Buterin(V神)突然現身基輔科技峰會:金色財經報道,以太坊聯合創始人Vitalik Buterin(V神)突然現身基輔科技峰會,Buterin 在基輔現身特別值得注意,因為目前距離以太坊備受期待的合并只有幾天的時間。作為峰會閉幕發言人之一,Buterin表示區塊鏈、以太坊、加密世界中的很多人在關心和支持烏克蘭,其他峰會發言人包括Binance烏克蘭總經理 Kiril Khomiakov、NEAR Protocol 聯合創始人Illia Polosukhin和烏克蘭創業基金董事 Pavlo Kartashov。(coindesk)[2022/9/11 13:22:08]

Greta的驗證將不會通過:當交易所將不得不把Henry余額為-500ETH的節點的給她時,她會拒絕掉該無效節點。Eve和Fred也會驗證失敗,因為Henry之上的中間節點余額為-230ETH,所以該節點也是無效的!為了盜用行為不被發現,交易所只能寄望于樹的右半部分沒人檢查其余額證明。如果交易所能夠挑選出這樣的擁有500ETH的用戶:他們嫌麻煩不去檢查余額證明,或者當他們抱怨未能收到余額證明時,大家并不相信他們,那么交易所就可以蒙混過關。但是,交易所也可以通過將這些用戶排除在Merkle總和樹之外來達到相同的效果。因此,如果僅就負債證明而言,Merkle樹技術基本滿足了需求。但它的隱私特性仍不夠理想。你可以更巧妙地使用Merkle樹進行改進,比如把satoshi或wei作為一個獨立的葉子節點。然而,通過使用更先進的技術,還可以做得更好。使用ZK-SNARKs來提高隱私性和健壯性

ZK-SNARKs是一項強大的技術。ZK-SNARKs對密碼學的意義類似于人工智能:一項足以碾壓數十年前為了解決一系列問題而開發的一系列專用技術的通用技術。因此,我們當然可以使用ZK-SNARKs極大地簡化和改善負債證明協議中的隱私。我們可以簡單地將所有用戶的存款放進Merkle樹將不會泄漏任何其他用戶的余額。

歐洲刑警組織打擊比利時龐氏騙局Vitae,收回150萬歐元加密貨幣:歐盟法律機構歐洲刑警組織打擊了比利時龐氏騙局Vitae。歐洲刑警組織突襲了與該網站相關的17個地點,這些地點被宣傳為擁有自己的加密貨幣的社交媒體網站。該公司以VITAE AG的名義在瑞士運營。在此次行動中,執法人員收回了110萬歐元現金和150萬歐元的加密貨幣。(Bitcoin)[2021/6/28 0:11:32]

使用KZG承諾是避免隱私泄露的一種方法,因為其不需要把「姐妹節點」作為證明提供,并且可以使用簡單的ZK-SNARK來證明余額的總和,并且每個余額都是非負的。我們可以通過一個專用的ZK-SNARK來證明上述KZG中余額的總和及其非負性。這里有一個簡單的例子。我們引入了一個輔助多項式I(x),其「構建出用戶余額的每一位」,其中每第16個位置追蹤差額保證,只有當實際總額與宣稱總額相等該值才會是0。如果z是一個128階的原根,我們可以證明方程成立:

譯者注:對這個多項式等式的解讀。如何把這些等式轉換為多項式校并在后續轉換為ZK-SNARK可以參考我撰寫關于ZK-SNARKs文章的此處和另外一處。這并不是一個最優的協議,但讓這些密碼學證明比較好理解!只需要幾個額外的方程式,該約束系統就可以適配更復雜的設定。例如,在杠桿交易系統中,個人用戶擁有負余額是可以接受的,但前提是他們需要擁有足夠的抵押資產以覆蓋其負債。SNARK可以用于證明這一更為復雜的約束,向用戶保證,交易所不能秘密違規豁免某些用戶,從而危及用戶資產。長遠來看,這種ZK負債證明的用處不限于交易所中的用戶存款,還可以用于更廣泛的貸款場景。任何貸款的人都會將記錄放入含該貸款的一個多項式或一棵樹中,而根會在鏈上發布。這將使得任何尋求貸款的人向放款方提供零知識證明,以表明其未獲得太多其他貸款。最終,法律上的創新甚至可以使得以這種方式進行承諾的貸款比無承諾的貸款擁有更高的優先級。這與我們在《去中心化社會:尋找Web3的靈魂》中討論的一個想法不謀而合:通過某種形式的「靈魂綁定代幣」,使得鏈上負面信譽的概念成為可能。資產證明

聲音 | IOTA愛好者George:Vitalik對IOTA協議的理解并不正確:針對Vitalik評價IOTA Coordicide協議是Avalanche協議的升級克隆,IOTA愛好者George認為Vitalik有些輕浮和草率,并沒有認真研究IOTA的新研發成果。他表示:Avalanche協議和IOTA一樣是無礦工和第三者驗證者的新型加密協議,也稱為Leaderless協議。BCH是有礦工的,不是leaderless協議,所以IOTA和BCH絲毫沒有關系。IOTA Coordicide協議是第一個Leaderless的協議,所以說IOTA克隆Avalanche協議不現實。[2019/5/31]

資產證明最簡單的版本是我們上面看到的協議:為了證明您持有X個代幣,您只需在預定時間移動X個代幣或在交易中攜帶「這些資金屬于Binance」的信息。為了避免支付交易手續費,你可以簽署一條鏈下消息。比特幣和以太坊都有鏈下簽名信息標準。這種簡單的資產證明技術存在兩個實際問題:冷錢包處理抵押品重用出于安全考慮,大多數交易所會將大部分用戶資金存儲在冷錢包中:在離線的計算機上,交易需要手動簽名并攜帶到互聯網上。這種手段是很普遍的:我過去用于存放私人資金的冷錢包放在一臺永久離線的計算機上,它會生成包含已簽名交易的二維碼,然后我會用手機掃描這些二維碼。由于資金量龐大,交易所使用的安全協議會更加復雜,經常涉及在多個設備間的多方計算,以進一步降低單設備被黑導致密鑰泄露的可能性。在這種背景下,即使是創建一條額外消息來證明對地址的控制也是一項昂貴的操作!交易所可以采用以下幾種方式:●維護一些長期使用的公開地址。交易所生成若干地址,僅發布一次每個地址所有權證明,然后重復使用這些地址。這是迄今為止最簡單的方案,盡管它在保護安全及隱私上增加了一些限制。●持有很多地址,然后隨機證明幾個地址。交易所持有很多地址,甚至可能每個地址只用一次,并在單次交易后不再使用。在這種情況下,交易所需要有一個協議,不時地隨機選擇一些地址,交易所必須「打開」以證明所有權。一些交易所已通過審計員進行了類似的操作,但原則上,這種技術可以轉化為完全自動化的程序。●更復雜的ZKP方式。例如,交易所可以將其所有地址設置1/2多簽,這些地址的其中一份密鑰各不相同,而另一份相同的密鑰是以某種復雜但安全的方式存儲起來重要的緊急備份盲版。為了保護隱私并避免泄漏其全部地址,交易所甚至可以在區塊鏈上運行零知識證明以證明該格式鏈上地址的總余額。另一個主要問題是防止抵押品重用。彼此間來回轉移抵押品以證明儲備金對交易所而言通常很容易辦到,這使得實際上沒有償付能力的情況下蒙混過關。理想情況下,可償付證明應該實時完成,并在每個區塊后更新證明。如果不切實際的話,那么下一個最好的辦法就是交易所間協調出一個固定的時間進行證明,例如在UTC時間每周二下午2點證明儲備。最后一個問題是:能在法定貨幣上做資產證明嗎?交易所不僅持有加密貨幣,還持有銀行系統內的法幣。在這方面,回答是肯定的,但這樣的程序將不可避免地依賴于「法幣」信任模型:銀行自身可以證明余額,審計人員可以證明資產負債表等。鑒于法幣不能通過密碼學驗證,這是在該框架內的最佳方案,仍然值得一做。另一種方法是將實體A和實體B分離開來,A負責運行交易所并且處理USDC這種由某種資產背書的穩定幣;而B負責在加密貨幣和傳統銀行系統之間處理現金流入和流出的過程,在這個案例中B即是USDC本身。由于USDC的「負債」只是鏈上的ERC20代幣,所以負債證明是可以「輕易」獲得的,而我們只需處理資產證明的問題。Plasma和validiums:我們可以實現非托管CEX嗎?

動態 | Vitalik Buterin 反駁 Tuur Demeester 對以太坊的批評:以太坊創始人 Vitalik Buterin 在 Reddit 上逐條點評和反駁了 Adamant Capital 創始人 Tuur Demeester 此前對以太坊做出的批評。Vitalik Buterin 稱,這些批評意見無視以太坊在研究和開發方面取得的進展,忽視了以太坊社區在過去一年中規模的擴張和專業度的提升。此前,Tuur Demeester 連發 50 條推文,歷數他眼中以太坊的種種短板,認為以太坊最多是一個科學實驗,其目前市值已經跌至 130 億美元,依然估值過高,這一系列推文引發大量討論。[2019/1/1]

假設我們想更進一步:我們不想僅僅證明交易所有足夠資金償還其用戶。相反,我們想徹底防止交易盜用用戶的資金。在這上第一個嘗鮮的是Plasma,這是一種2017年和2018年在以太坊研究界流行的擴容解決方案。Plasma的工作原理是將余額拆分為一組獨立的「代幣」,每個代幣都會分配一個索引,并放到Plasma區塊的Merkle樹中的特定位置上。要進行有效的代幣轉移,需要將交易放到樹中的正確位置上,而樹根會被發布到鏈上。

Plasma的一個版本的極簡圖。代幣被保存在智能合約中,該合約在取款時會強制執行Plasma協議的規則。OmiseGo試圖基于此協議創建一個去中心化交易所,但從那時起,他們就轉向去做其他事了——就這而言,PlasmaGroup也是如此,他們去做了optimisticrollup項目Optimism。2018年對Plasma的局限性的探討讓大家從根本上懷疑Plasma的可行性。自2018年對Plasma的探討達到頂峰以來,ZK-SNARKs在擴容相關用例上變得愈加可行,正如我們上面所說的,ZK-SNARKs改變了一切。Plasma更新的版本是Starkware稱為validium的方案:除了數據被保存在鏈下以外,基本上與ZK-rollup相同。該構造適用于許多用例,可以想象其適用于任何中心化服務器需要證明其正確執行代碼的場景。在validium中,運營方無法竊取資金,但根據具體的實現細節,如果運營方消失,一些用戶資金可能會被卡住。現在看來一切很棒:CEX和DEX遠非二選一,事實證明,其中有一系列的選擇,包含各種形式的混合中心化,在那里你能獲得一些好處,比如效率,但仍有很多密碼學保障,可以防止中心化運營方的大部分形式的惡意行為。

動態 | Gravity將為難民推出自我主權數字身份平臺:據btcmanager消息,內羅畢區塊鏈初創企業Gravity為非洲難民推出證明自我主權數字身份的平臺,從而幫助難民獲得金融服務。據報道,該公司已經開始在肯尼亞卡庫馬的一個難民營部署其平臺,約有80,000名用戶。測試將在營地的三所學校舉行,允許Gravity跟蹤每日出勤率和學生的學習成績。該公司還將與非政府組織建立密切關系,以便能夠追蹤可能對難民營難民生活條件產生積極影響的其他數據和指標。[2018/12/2]

然而,余下的基本問題也值得思考:如何處理用戶錯誤。到目前為止,最重要的錯誤類型是:如果用戶忘記了密碼、丟失了設備、被黑或無法訪問其帳戶,那該怎么辦?交易所可以解決這個問題:首先利用電子郵件恢復,如果連這都失敗了,再通過KYC進行更復雜的恢復。但若要解決這些問題,交易所需要真正控制這些代幣。為了能夠合理地恢復用戶資金,交易所需要擁有同樣可用于無故竊取用戶資金的權力。這是一個不可避免的權衡。理想的長期解決方案是依靠自我托管,用戶在未來可以方便地使用諸如多簽及社交恢復錢包等技術來幫助處理緊急情況。而短期內,有兩種明顯的替代方案,有著不同的成本和收益:

另一個重要問題是對跨鏈支持:交易所需要支持很多不同的鏈,諸如Plasma和validiums等系統需要用不同的語言編寫代碼以支持不同的平臺,并且在當前形式下無法在一些平臺上實現,這有望通過技術升級和標準化來解決;然而,從短期來看,這是如今托管型交易所保持托管模式的另一個原因。結論:展望未來更好的交易所

短期內,有兩種明確的交易所類別:托管型交易所和非托管型交易所。如今,后一類即像Uniswap那樣的DEX,未來我們可能還會看到受密碼學約束的CEX,其中用戶資金會以類似validium智能合約的方式持有。我們也可能會看到半托管型交易所,其中我們信任其對法幣而非加密貨幣的處理。這兩種類型的交易所將繼續存在,而提高托管型交易所安全性的向后兼容最簡單方法是增加儲備證明。這包括資產證明和負債證明的結合。為兩者都設計出優秀的協議仍存在著一些挑戰,但我們能夠且應當推動兩類技術的齊頭并進,并盡可能開源軟件和程序,以便所有交易所都能獲益。從長遠來看,我希望我們向著所有交易所皆為非托管的方向發展,至少在加密貨幣上如此。錢包恢復將會存在,可能需要為小額資金的新用戶和出于法律因素需要此類安排的機構提供高度中心化的恢復選項,但這可以在錢包層而非交易所內部完成。在法幣方面,傳統銀行系統和加密貨幣生態系統之間的移動可以通過USDC等資產背書穩定幣原生的資金進出流程完成。然而,我們仍有很長的路要走。譯者注:?每16個數字代表一個用戶。我們可以看到上面的舉例代表了兩個用戶?宣稱的用戶平均余額:185?用戶1的余額:20->000000000010100差額:20-185=-165?用戶2的余額:50->000010100110010差額:-165+50-185=-300?最終遍歷完所有用戶,最后一個用戶的差額要求為0?四個等式的解釋等式1:遞推的初始值為0等式2:每個用戶余額需要跟KZGcommitment相對應等式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:約束所有用戶總余額與交易所宣稱的余額一致原地址

Tags:TREEANCMERERKTreeptoDogeDao FinanceVOMERTERK價格

世界幣
元宇宙:7 O''Clock Capital:Web3視角下的元宇宙

自從自然宇宙從混沌中變成一個有序的世界之后,經過無數次的變異、演化,終于出現了人類。有了人類,有了人類的思想,即物質和精神.

1900/1/1 0:00:00
FOR:Foresight Ventures Weekly Brief:山寨超跌反彈,NFT高潮迭起

市場觀點: 1、宏觀流動性 貨幣流動性趨緊。美聯儲會議紀要偏鷹派,預測2023年的政策利率將升至5.1%,較9月公布的預期值4.6%上調50個基點,無人預計2023年適合降息.

1900/1/1 0:00:00
SDC:資管巨頭貝萊德如何將USDC變成“后門CBDC”?

本文來自BPI,Odaily星球日報譯者|Moni 美國銀行政策研究所1月6日發布研究文章指出,美元穩定幣USDC或將在資管巨頭貝萊德的幫助下變成一種“后門央行數字貨幣”.

1900/1/1 0:00:00
EFI:一文讀懂市場操縱和預言機操縱的區別

區塊鏈預言機的安全性對于Web3來說至關重要,安全的預言機催生出了一系列豐富的去中心化應用,大幅降低了對手方風險并實現了流暢的價值交換.

1900/1/1 0:00:00
okx:歐易第二次儲備金證明透明度再升級,用戶可任意瀏覽所有定期審計結果

全球最大數字貨幣交易所之一歐易OKX于2022年12月23日發布了其第二份儲備金證明。為保障其儲備金證明透明度,OKX還宣布將每月定期公開最新PoR,用戶可以隨時使用開源工具查看和自我驗證PoR.

1900/1/1 0:00:00
NFT:全方位對比8大頭部NFT市場平臺

初學者NFT創作者和收藏者通常通過簡單的Google搜索開始他們的NFT旅程。但是尋找最好的NFT市場——這在很大程度上取決于獨特的數字收藏品需求——現在比以往任何時候都更需要正確的背景和盡職調.

1900/1/1 0:00:00
ads