以太坊生態的最大挑戰之一是如何在資源有限的前提下實現低延遲和高吞吐量。
系統的去中心化程度取決于網絡中最弱的節點驗證系統規則的能力。可以在低資源硬件上運行的高性能協議被稱為“可伸縮的”。
在本文中,我們將深入探究現代“Layer2方案”的原則,這些方案的安全模型,及其在解決以太坊可擴展性問題上采取的策略。
本文的預設讀者是那些對密碼學技術感興趣的人。如果你想要深入了解以太坊前沿可擴展性技術,以及如何設計并構建這類系統,千萬不要錯過這篇文章。
在本文中,重要的關鍵詞和概念都已加粗,因為這些都是你在了解密碼學貨幣技術時經常遇到的術語。本文涉及的概念比較復雜。如果你在閱讀中遇到困惑,請不要放棄,守得云開見月明。
區塊鏈資源要求
在比特幣和以太坊等去中心化網絡中,運行節點的資源要求主要有三種:
帶寬:下載并廣播區塊鏈相關數據的成本。計算:在腳本或智能合約中運行計算的成本。存儲:出于索引目的存儲事務數據的成本,以及為了繼續處理新的事務塊而存儲“狀態”的成本。影響性能的因素有:
吞吐量:系統每秒可處理事務的數量延遲:處理一筆事務所需的時間比特幣和以太坊等新興密碼學貨幣網絡的理想特性是去中心化。那么問題來了,網絡是如何實現去中心化的呢?
低信任:有了這個特性,任何人都能自主驗證比特幣的總供應量永遠不會超過2100萬個,及其持有的比特幣不是偽造的。運行節點軟件的人可以獨立計算最新狀態,并驗證出塊流程是否遵循所有規則。低成本:如果節點軟件的運行成本很高,人們就會選擇依靠可信第三方來驗證狀態。成本高意味著信任要求也高,這是我們極力想要避免的。另一個理想特性是可擴展性:吞吐量能夠隨運行節點的成本增加呈超線性增長。這個定義很棒,但是并未指明與“信任”慣性。因此,我們另外定義了“去中心化可擴展性”:在幾乎不會提高系統信任假設的情況下實現可擴展性。以太坊的運行時環境是EVM。在EVM中,事務在執行不同操作時需要承擔的成本不同。事務的計算單位叫做“gas”。在以太坊系統中,每個區塊的gas上限被設為1250萬gas。平均每12.5秒可以挖出一個區塊。由此可得,以太坊的延遲是12.5秒,吞吐量是每秒100萬gas。你可能會問一個問題:每秒100萬gas能做什么?
比特幣期權單日名義成交額超過33億美元,創三個月新高:6月22日消息,比特幣價格在周三一度飆升至30,800美元上方,為4月14日以來的最高水平。過去一周,貝萊德、WisdomTree和Invesco分別提交現貨比特幣ETF申請,突顯出機構對比特幣的持續興趣。周三,在Deribit等主要交易所交易的比特幣期權合約總價值超過33億美元,這是三個月以來單日名義成交額最高的一天,其中Deribit占全球總額的80%以上。
Deribit亞洲業務拓展人員Lin Chen表示,我們已經看到三個月以來最大的交易額。人們對購買看漲期權非常感興趣。[2023/6/22 21:54:42]
每秒可完成大約47筆“簡單轉賬”事務。所謂“簡單轉賬”事務,就是指“A向B轉了一筆ETH”這樣最基礎的事務。每筆事務需要2.1萬gas。每秒可完成大約16筆ERC20代幣轉賬。這類事務相比ETH轉賬事務需要執行更多存儲操作,因此每筆事務需要約6萬gas。每秒可完成大約10筆Uniswap資產交換操作。代幣對事務的平均成本約為10.2萬gas。……選擇你感興趣的事務,用100萬gas除以其gas消耗量。請注意,隨著事務的執行復雜度提高,系統的吞吐量急劇下降。還有很大的提升空間!
方案1:使用中間方我們可以使用大家都信任的第三方來達成所有事務。這樣一來,我們就可以得到很高的吞吐量,并將延遲降至亞秒級。簡直太棒了!這樣也不會改變任何系統參數,但是我們需要參與一個由第三方單方面設置的信任模型。第三方可能會對我們進行審查,甚至奪走我們的資產,這就不妙了。
方案2:擴大區塊容量并提高出塊頻率我們可以通過減少出塊時間來降低時延,我們還可以通過提高區塊gas上限來提高吞吐量。這一改變可能會導致節點運營成本提高,從而阻礙人們運行節點。方案1會提高對信任的需求,方案2會增加成本。因此,二者都不是理想的可擴展性方案。
重新認識OptimisticRollup
接下來會涉及一些關于哈希函數和默克爾樹的知識。了解了這么多之后,我們來模擬一段蘇格拉底式對話,看看能否找到一個既能提高以太坊的實際吞吐量,又不會增加用戶和節點運營者負擔的協議。
彭博社:香港新加密貨幣監管制度是對投資者保護的重視,而不是降低商業成本:金色財經報道,彭博社發文稱,自香港6月1日新加密貨幣監管制度實施以來,越來越清晰的表明該監管制度是對投資者保護的重視,而不是降低商業成本。新加坡金融管理局前監管機構 Angela Ang 表示,問題在于監管機構和行業的預期是否符合現實。OKX表示,它仍在嘗試開設所需的銀行賬戶。盡管事實上官員們承諾要解決加密公司在進入銀行業時面臨的困難。[2023/6/2 11:54:57]
問:我們想要提高以太坊的可擴展性,又不想改變其信任和成本假設。我們該怎么做?
答:可以嘗試降低現有操作的成本。不過,說起來容易做起來難,我們先來看一下以太坊的架構:以太坊網絡中的每個節點目前都存儲并執行來自用戶的每筆事務。事務是在EVM中執行的,并與EVM的狀態進行交互。常見的智能合約優化技術主要聚焦于在最大程度上減少與狀態交互的次數,但是它們起到的作用很有限。
問:是否存在不與狀態交互就能達成交互的方法,以此降低資源成本?
答:在極端情況下,我們是否可以將所有執行都轉移到鏈下,并將數據保存在鏈上?我們可以引入第三方,即,排序者,來做到這點。排序者負責在本地存儲并執行用戶提交的事務。為了保持系統的活性,排序者會定期將它們收到的事務的默克爾根以及狀態根提交到以太坊上。這個思路是正確的,因為O(N)筆鏈下事務只需在以太坊上存儲O(1)的狀態數據。
問:通過使用排序者執行鏈下計算,只將默克爾根發布到鏈上,我們就能增強以太坊的可擴展性了是嗎?
答:是的。
問:也就是說,只要我們選擇了排序者,就能大幅降低轉賬成本。那用戶怎么存錢進去呢?
答:你在以太坊區塊鏈上把錢存進某個合約,就能加入這樣的系統了。排序者會將相應的存款記在你的名下。用戶只需要發送一筆事務稱“我想要取出3ETH,我當前的賬戶余額大于3ETH,這是證明”,就可以取出資金。即使L1上沒有該用戶的實際狀態,該用戶也可以提供默克爾證明并引用排序者發布的狀態根來證明自己在當前狀態下擁有足夠多的資金。
隊記:NBA開拓者隊結束與加密貨幣公司StormX的球衣廣告贊助協議:10月2日消息,NBA波特蘭開拓者隊記者Sean Highkin在社交媒體上表示,開拓者方面發布了一份聲明,聲明中稱他們已經結束了與StormX的球衣贊助商合作關系,并尋找新的球衣廣告合作伙伴。Sean Highkin稱,就在四天前的媒體日,他們的球衣上仍有StormX的標志。
據悉,開拓者隊于去年7月份與StormX達成合作。[2022/10/2 18:37:19]
問:我們已經確定用戶需要提供默克爾證明才能取出資金。用戶如何獲得構建默克爾證明所需的數據?
答:用戶可以要求排序者來提供數據!
問:如果總是聯系不上排序者,該怎么辦?
答:這種情況可能是因為排序者作惡,或因技術問題掉線,這會導致性能退化。因此,我們必須要求排序者將完整的事務數據提交到鏈上,只用于存儲,不用于執行。這里的目的是實現數據可得性。由于所有數據都永久存儲在以太坊上,即使一個排序者倒下了,新的排序者也可以從以太坊上重新找回所有與Layer2相關的數據,重新構建最新的L2狀態,并接替上一個排序者的工作。
問:如果排序者在線卻拒絕向我提供默克爾證明數據,我可以從以太坊上下載這些數據對嗎?
答:對的,你可以自己同步一個以太坊節點,也可以從眾多節點托管服務提供商中選擇一家。
問:我還有個不明白的地方……如何將數據存儲在以太坊上卻不執行它?難道不是每筆事務都要經過EVM執行的嗎?
答:假設你提交了10筆A向B轉ETH的事務。執行每筆事務需要執行以下操作:增加A的nonce,減少A的余額,并增加B的余額。這需要多次寫入和讀取世界狀態。你可以將所有事務的編碼發送至智能合約的publish(bytes_transactions)public{}函數。請注意,這個函數的函數體是空的!也就是說,如此發布的事務數據是不會被解釋、執行或訪問的。它只存儲在區塊鏈的歷史日志中。
問:我們能信任排序者嗎?如果排序者發布非法的狀態轉換怎么辦?
The Sandbox引入安全公司BrandShield以防止NFT欺詐:金色財經報道,元宇宙游戲公司The Sandbox已與在線威脅檢測公司BrandShield(BRSD)簽約,以確保其市場上加密錢包和NFT的安全。該公司表示,在2022年3月至4月的兩個月內,BrandShield移除了120個網絡釣魚網站和58個冒充元宇宙平臺的虛假社交媒體賬戶,使The Sandbox的經濟得以安全運行。(coindesk)[2022/7/20 2:26:40]
答:無論排序者何時發布一批狀態轉換,都會有“爭議期”。在“爭議期”內,任何人都可以發布“欺詐證明”來證明其中某個狀態轉換是無效的。欺詐證明就是通過重放導致鏈上發生狀態轉換的事務,并將得到的狀態根與排序者發布的狀態根進行對比。如果兩個狀態根不同,則欺詐證明成功,狀態轉換被取消。跟在該無效狀態轉換后面的狀態轉換也會被取消。爭議期一過,就無法再對事務提出爭議,即,事務被敲定。
問:等等!你之前明明說過,只要會增加成本,或引入新的信任假設,就是不可行的可擴展性方案。你這里提到的方案不是要假設時刻有人會報告欺詐嗎?
答:沒錯。我們假設有一組被稱為“驗證者”的實體負責監控欺詐行為。如果Layer1和Layer2之間出現狀態不匹配的情況,驗證者就會發布欺詐證明。我們還假設驗證者能夠在爭議期內將其欺詐證明發布到以太坊區塊鏈上。我們認為,驗證者的存在是一個弱假設。想象一下,如果有數萬名用戶采用該方案,你只需要1個人來擔任驗證者的角色。聽起來不是那么不切實際吧!另外,改變以太坊的信任模型,或增加運行以太坊節點的成本是一個強假設,會做出我們不想要的改變。這就是我們的中心化可擴展性定義中的“幾乎不會改變底層系統的設想”的意思。
問:我同意會有人擔任驗證者的角色,因為這個新的解決方案牽涉到很多人的利益。但是,具體怎樣還得取決于實際成本。那么,運行驗證者和排序者需要消耗多少資源?
答:排序者和驗證者必須運行一個以太坊全節點,以及一個L2全節點來生成L2狀態。驗證者運行創建欺詐證明的軟件,排序者運行打包并發布用戶事務的軟件。
數據:最近30天以太坊網絡新增近910萬枚NFT資產:6月2日消息,根據NFTScan瀏覽器數據顯示,最近30天以太坊網絡新增9,099,756枚NFT資產,平均每天新增鑄造30.33萬NFT資產,比NFT熱潮期間上漲 50%,處于高速發展的狀態。[2022/6/2 3:57:59]
問:就這些嗎?
答:沒錯!恭喜!你已經重新發現了?OptimisticRollup,這個2019至2021年最有前景的可擴展性方案。我可沒有在說大話,這是以太坊社區經過多年研究得出的成果。也就是你在這段簡短的對話中聽到的。
OptimisticRollup的激勵機制
Layer2可擴展性方案基于這樣一個事實,即,我們試圖盡可能減少鏈上執行的事務的數量。我們使用欺詐證明來取消已發生的無效狀態轉換。由于欺詐證明是鏈上事務,我們想盡可能減少在以太坊上發布的欺詐證明的數量。在理想情況下,欺詐永遠不會發生,也就不會有欺詐證明發布。
我們通過引入誠信保證金來反激勵欺詐行為。想要成為排序者的用戶必須首先在以太坊上存入一筆保證金。如果他們的欺詐行為被證明,就會失去保證金。為了激勵用戶積極發現欺詐行為,排序者的保證金會被獎勵給驗證者。
誠信保證金和爭議期
在欺詐證明激勵機制的設計中,有兩個參數需要設計:
誠信保證金金額:排序者所繳納的保證金就是驗證者所能獲得的獎勵。金額越高,對驗證者的激勵越大,對排序者作惡的激勵就越小。爭議期持續時間:可以發布欺詐證明的時間窗口。一旦過了這個時間窗口,L2事務就會在L1上敲定。如果爭議期較長,就會提高安全性,更好地抵御審查攻擊。如果爭議期較短,用戶在將L2上的資金取出到L1時就能享有更好的用戶體驗,因為他無需等待很長時間就能在L1上使用這筆資金。我認為,這兩個參數都沒有所謂正確的靜態值。或許10ETH的保證金和1天的爭議期就足夠了。真正的答案是,這取決于成為驗證者的激勵,以及發布欺詐證明的難度。這些都是可以手動或自動調整的。例如,EIP1559在以太坊上引入了?BASEFEE?操作碼。這個操作碼可以用來預測鏈上擁堵程度,讓爭議期的長度也變成可編程的。正確地實施這一懲罰機制很重要,否則就有可能在實際操作中被利用。例如,這里有一個不可行的原生實現:
Alice繳納1ETH的保證金,成為了排序者Alice發布了一個虛假狀態更新Bob發現了,并提出爭議。如果成功,Alice的1ETH保證金就會獎勵給Bob,虛假狀態更新也會被取消。Alice發現該爭議,也提出爭議Alice拿回了自己的1ETH,成功逃避了原本會因作惡遭到的懲罰。Alice可以通過“搶跑事務”來發起這一攻擊,即,廣播一個跟Bob一樣的事務,但是支付更高的gas價格,讓自己的事務搶在Bob的前面執行。這意味著,Alice可以一直以極低的成本作惡。解決這個問題很簡單:不要將作惡者的全部保證金獎勵給提出爭議者,而是將其中X%銷毀。在上述例子中,如果我們將保證金的50%銷毀,Alice只能通過搶跑事務拿回0.5ETH,這就足以嚇阻Alice在上述第2步中作惡。當然了,保證金銷毀機制也會削弱人們運行驗證者軟件的激勵,因此銷毀后剩下的部分要足以激勵驗證者才行。
對OptimisticRollup批評的回應
我們已經了解了OptimisticRollup的設計。現在,讓我們來聽聽人們對OptimisticRollup的批評,并做出回應。
較長的取款/爭議期不利于采用和可組合性
我們在上文提到,較長的爭議期有助于提高安全性。這里面似乎有一個內在權衡關系:較長的爭議期不利于OR采用,因為任何想要從OR中取出資金的用戶都需要等待很久。較短的爭議期會帶來較好的用戶體驗,但是這會提高未能及時對欺詐提出爭議的風險。我們不認為這是個問題。由于取款延遲較長,我們預期將有做市商提供快速取款服務。這是有可能的,因為驗證L2狀態的人能夠正確判斷取款是否存在欺詐性,從而以略低一些的價格買下這筆取款。例如:參與方:
Alice:在L2上有5ETHBob:在L1上的“做市商”智能合約中有4.95ETH,是L2的驗證者步驟:
Alice告訴Bob說她想要快速取款,并向他支付0.05ETH的費用Alice向Bob的“做市商”智能合約發起一筆取款事務可能會發生兩種情況:Bob在L2上驗證這筆取款是有效的,并同意Alice的快速取款請求。做市商合約中的4.95ETH立即發送至Alice在L1的地址。等爭議期結束,Bob就能獲得5ETH,獲得一筆不菲的利潤。Bob在驗證時發現這筆取款是無效的。Bob對這筆事務的狀態轉換提出爭議,取消該狀態轉換,并得到了試圖作惡的排序者的保證金作為獎勵。如果Alice是誠實的,就能立即完成取款;如果她想要做惡,就會遭到懲罰。我們預期,如果真的存在對快速事務服務的需求,支付給做市商的服務費會逐漸降低,最終讓用戶完全感受不到這一過程。快速事務服務帶來的最重要影響是,可以實現與L1合約的可組合性,無需等待整個爭議期結束。注:該技術首次出現于《簡單的快速事務》一文。
礦工會受賄審查取款事務,破壞OR的安全性
《OptimisticRollup上幾乎零成本的攻擊場景》指出,排序者可以輕而易舉地賄賂以太坊礦工來審查爭議事務。對于OptimisticRollup系統來說,這會是致命的,因為整個系統的安全性源自爭議機制。我們不認同這個觀點。我們認為誠實一方會出與惡意一方同樣乃至更多錢的來賄賂礦工。此外,礦工每次助紂為虐時都會產生額外的成本。這會影響以太坊的價值,從而影響礦工自身的利益。事實上,已經有學術文獻研究過這一場景,結果證明“這種反擊的威脅會產生一種子博弈精煉納什均衡,因此攻擊從一開始就不會發生”。感謝Hasu向我們推薦了這篇文章。
驗證者的兩難困境會帶來反向激勵,降低OR的安全性
關于驗證者的兩難困境,EdFelten已經在他的雄文中分析過了,并提出了解決方案。我們總結如下:
如果系統的激勵機制如預期般運行,沒人會做惡如果沒人作惡,運行驗證者軟件就沒有意義,因為無法帶來收益如果沒人運行驗證者軟件,排序者就會有機會做惡如果排序者做惡,系統就不會再如預期般運行這個問題看起來很重要,而且似乎是一個悖論!假設總的獎勵金額是固定的,驗證者人數越多,每個驗證者的預期收益越低。另外,如果驗證者人數增多,總的獎勵金額有可能減少,因為欺詐行為會減少,導致驗證者的收益更低。在接下來的分析中,Felten提出了如何解決驗證者兩難困境的方法。我要提出反對意見,我認為驗證者兩難困境不像批評者說的那么嚴重。實際上,驗證者靠的不是經濟激勵。假設你在rollup上構建了一個大型應用,或者你是持幣者。如果這個系統被破壞,你的應用就無法運作,你的代幣就會喪失價值。此外,對快速取款的需求會催生做市商服務,這與是否存在欺詐行為無關。舉個現實的例子,比特幣就沒有通過經濟激勵的方式來鼓勵節點運營者存儲完整的區塊鏈事務史,或將本地數據提供給對等節點,但是人們還是會無私地做這些事情。即使不為運行驗證者提供經濟激勵是激勵不兼容的,但是它可以保障系統的安全性,這對于投資該系統的實體來說是很重要的。因此,我們認為,OptimisticLayer2系統不需要通過設計機制來解決驗證者兩難困境問題。
總結
就像文章標題說的那樣,我們分析了2021年對以太坊來說最重要的技術之一:OptimisticRollup。OR的優點包括:它是對以太坊的擴展,集成了以太坊的安全性和可組合性,以及開發者優勢。與此同時,它還能提高以太坊的性能,而且幾乎不會增加以太坊用戶的成本或信任需求。我們探索了讓OR可行的激勵機制,并對常見的批評觀點提出了反駁。我們想要強調的是,OR的性能上限是L1上能夠承載的數據量。因此,我們最好能做到兩點:1)盡可能壓縮你在L1上發布的數據,2)擁有一個大且低成本的數據層。如需補充閱讀,我們推薦Vitalik的《Rollup不完全指南》和《信任的模式》。我們還建議你了解一下另一個rollup方案ZKRollup。我們的朋友StarkWare正在構建ZKRollup方案。最后,還有其它方法可以實現去中心化可擴展性,如,分片和狀態通道。它們都有各自的優缺點。在下一篇文章中,我們將深入分析由Optimism構建的首個兼容EVM的OR方案的機制和代碼庫。我們想要感謝Hasu、PatrickMcCorry、LiamHorne、BenJones、KobiGurkan和DaveWhite對本文的寶貴反饋。
2021年1月28日6:00,白名單用戶通過開啟盲盒的方式獲得一次抽取五福NFT或牛年系列NFT的機會,NFT里鑄有COCOS且可進行后續礦池的挖礦.
1900/1/1 0:00:00拾級日報每天為您帶來最新的行情信息,以及行業動態。幫助投資人在最短的時間內了解市場中的最新動態,更好的把握行情.
1900/1/1 0:00:00時至今日,還沒有人寫出關于加密項目如何獲得主流普及的招牌劇本。那么新的加密貨幣項目創始人應該如何開始贏得關注呢?這種受歡迎程度能給產品等其他功能帶來怎樣的啟示?加密技術將給傳統的go-to-ma.
1900/1/1 0:00:00在白銀市場中,不少投資者都會在銀價發生強勢單邊行情時,抓住機會順勢進場收割利潤。不過,即使白銀行情走勢符合我們的預期,但若投資者在做單過程中忽略了對倉位的把控,也會成倍增加市場風險,容.
1900/1/1 0:00:00基本面|FundamentalAnalysis消息面|News1.AmberGroup首席執行官:比特幣不再是泡沫2.
1900/1/1 0:00:00現在,讓我們舉一個例子。假設您要向其他有需要的社區成員提供100美元的幫助,主頁上有兩個大按鈕:“提供幫助”和“獲取幫助”,請單擊“提供幫助”以輸入幫助金額生成訂單.
1900/1/1 0:00:00