原文作者:JoachimNeuJoachim-Ne,Paradigm研究實習生、斯坦福大學區塊鏈科學博士
原文編譯:隔夜的粥
任何L1區塊鏈的核心職責是保證數據可用性。這種保證對于客戶端能夠解釋L1區塊鏈本身至關重要,并且它也是更高層應用的基礎。為此,一種經常被討論的技術會用于數據可用性驗證的隨機抽樣,正如MustafaAl-Bassam、AlbertoSonnino以及VitalikButerin在2018年發表的一篇論文中所推廣的那樣。該技術是Celestia區塊鏈的核心,并被提出通過「Danksharding」包含在權益證明以太坊中。
這篇博文的目的是解釋數據可用性采樣的基礎、它所依賴的模型,以及在實踐中實施該技術時所面臨的挑戰與未解決的問題。我們希望這篇文章能夠吸引研究人員關注這個問題,并激發解決一些突出挑戰的新想法。
問題
有人生成了一個數據區塊。他們聲稱已經向「公眾」提供了數據。你的目標是檢查可用性聲明,即,如果需要,你是否真的能夠獲得數據?
數據的可用性至關重要,基于欺詐證明的樂觀系統,例如Optimism,需要數據可用性進行驗證,甚至基于有效性證明的系統,例如StarkNet或Aztec,它們也需要數據可用性以確保活躍性。
對于迄今為止的問題表述,有一個簡單的「幼稚」測試過程,這也是比特幣等早期系統隱式采用的:只需下載整個數據塊。如果你成功了,你就知道它是可用的,而如果你沒有成功,你就會認為它不可用。然而,現在我們希望測試數據的可用性,而不需要自己下載太多的數據,比如因為數據量超出了我們的處理能力,或者因為在我們實際上不感興趣的數據上花費大量帶寬來驗證其可用性似乎很浪費。在這一點上,我們需要一個模型來闡明僅下載或保留「部分數據」的「含義」。
模型
計算機科學中的一種常見方法是首先在具有相當豐富設施的模型中描述一項新技術,并隨后解釋如何實現該模型。我們對DAS采用了類似的方法,但正如我們將看到的,當我們嘗試實例化模型時會彈出有趣的開放式研發問題。
CleanSpark以2510萬美元在喬治亞州購買36MW設施和3400臺礦機:8月9日消息,比特幣礦企CleanSpark在美國喬治亞州以1620萬美元的價格從Waha Technologies收購了該州一座36 MW的設施,并以890萬美元的價格收購了該設施運營的3400臺礦機。(CoinDesk)[2022/8/9 12:13:16]
在我們的模型中,在一個黑暗的房間里有一個公告板。首先,區塊生產者進入房間,并有機會在公告板上寫一些信息。當區塊生產者退出時,他可以給你一小段信息。你帶著一個手電筒進入房間,手電筒的光束很窄,電池電量很低,所以你只能在公告板的幾個不同位置閱讀文字。你的目標是讓自己相信區塊生產者確實在公告板上留下了足夠的信息,這樣如果你打開燈并閱讀完整的公告板,你就可以恢復文件。
起初,這個問題似乎很棘手:我們可以要求區塊生產者在公告板上寫下完整的文件。現在考慮兩種可能性:要么區塊生產者誠實地寫下整個文件,要么區塊生產者行為不當,其漏掉了一小部分信息,使得整個文件不可用。通過僅在幾個位置檢查公告板,你無法可靠地區分出這兩種情況,因此,你無法準確地檢查數據可用性。我們需要一種新的方法!
解決方案
這就是里德-所羅門糾刪碼發揮作用的地方。讓我們簡單回顧一下,簡單來說,糾刪碼的工作方式如下:k個信息塊組成的向量被編碼成一個n個編碼塊的向量。編碼的比率R=k/n衡量了編碼引入的冗余。隨后,從編碼塊的某些子集中,我們可以解碼原始信息塊。
如果編碼是最大距離可分的,那么原始信息塊可以從編碼塊大小的任何子集中恢復,這是一個有用的效率和魯棒性保證。里德-所羅門碼是一種流行的MDS編碼家族,其工作原理如下。記住,在學校里,你可能知道兩點唯一地決定一條線:
這是因為一條線可以描述為具有兩個系數的1次多項式:y=a1xa0。事實上,這一觀點可以推廣:任何次數的多項式t-1,它對應于描述多項式
的一組系數
基于波卡的去中心化借貸和質押平臺Parallel Finance獲得Web3基金會資助:Parallel Finance宣布獲得Web3基金會資助,將用于在Polkadot上建立去中心化借貸和質押平臺。
截至目前,Parallel Finance已在測試網上構建借貸和質押界面,可以用來在Kusama上對主網即將推出的功能進行回溯測試,Parallel將在贏得平行鏈拍賣后立即進行部署。此界面可用于測試稱為“杠桿質押(leverage staking)”的協議,該協議允許用戶利用其質押的KSM和DOT進行借貸,以便在獲取質押收益的同時獲得貸款收益。Parallel還構建了節點驗證者評估模式,
該模式使用其質押界面。此模式用于根據驗證者的信譽歷史為用戶指定最佳驗證者。Parallel已經提供教育材料(教程和媒體文章),允許用戶與新的借貸界面進行交互,并對其第一個版本進行Beta測試。在不久的將來,Parallel Finance計劃部署固定利率平行鏈貸款界面。此外,Parallel正在開發一種動態跟蹤利率的新方法。[2021/7/4 0:25:30]
,由多項式通過的任何t個點唯一確定。換句話說:一旦知道多項式在不同位置的求值,就可以在任何其他位置獲得其求值。
里德-所羅門碼就是基于這種洞察力構建的。對于編碼,我們從k個信息塊
開始,構造相關的多項式
,并在不同的x坐標上對其進行求值以獲得編碼塊。現在,由于上述見解,這些編碼塊中的任何k個都允許我們唯一地恢復k-1次多項式,并讀取系數以獲得原始信息塊。瞧!
回到我們的數據可用性問題:我們不再要求區塊生產者在公告板上寫下原始文件,而是要求他將文件分成k個塊,使用Reed-Solomon碼對它們進行編碼,例如,速率R=1/2,并將n=2k編碼塊寫入公告板。現在讓我們假設區塊生產者至少誠實地遵循編碼。再次考慮兩種情況:生產者行為誠實并寫下所有塊,或者生產者行為不端并希望保持文件不可用。回想一下,我們可以從n=2k個編碼塊中的任何k個恢復原始文件。所以為了保持文件不可用,區塊生產者最多可以寫入k-1個塊。換句話說,現在至少有k1,超過n=2k個編碼塊的一半將丟失!
動態 | Sparkpool挖出升級區塊近一周算力占比排名第一 且和Ethermine共同控制ETH超50%算力:在以太坊伊斯坦布爾升級完成后,以太坊創始人V神發推文稱,恭喜Sparkpool挖出以太坊伊斯坦布爾升級區塊。據《幣世界》監測,目前Sparkpool礦池為以太坊主力礦池,近一周數據顯示,Sparkpool礦池算力份額以31.89%的占比排名第一;Ethermine礦池算力份額占比排名第二位,為21.45%;兩大礦池控制著53.34?%的以太坊網絡算力,并超過了今年1月8日的52.95%記錄,且Sparkpool礦池算力份額明顯上升,已超過Ethermine。此前1月8日,Ethermine和SparkPool兩個礦池分別以28.16%和24.79%控制著以太坊總網絡算力的50%以上。[2019/12/8]
但是現在這兩種情況,一個寫滿的公告板和一個半空的公告板,很容易區分:你在少數r個隨機抽樣的位置檢查公告板,如果每個采樣位置都有其各自的塊,則認為該文件可用,如果任何采樣位置為空,則該文件不可用。請注意,如果文件不可用,因此一半的公告板是空的,你錯誤地認為文件可用的概率小于
,即在r中呈指數級小。
存在的挑戰
給定的「暗室公告板」模型是非常簡單的。現在讓我們考慮一下模型:組件代表什么?我們可以在真實的計算機系統中實現它們嗎?如何實現?
事實上,為了幫助發現理論與實踐之間的差距,我們已經使用「奇怪的」「暗室中的公告板」模型解釋了問題和解決方案,其中的隱喻與真實的計算系統幾乎沒有相似之處。這是為了鼓勵你思考現實世界和模型世界的各個方面是如何對應的,以及它們是如何實現的。如果你的模型中有一些部分無法轉化為計算機/網絡/協議等價物,那么你知道還有一些事情要做,可能是你的理解還有問題,也可能是開放的研究問題!;)
這是一個非詳盡的挑戰集合,對于其中一些挑戰,社區多年來已經找到了合理的答案,而另一些仍然是開放的研究問題。
動態 | Dragonfly Capital Partners籌資一億美元投資加密貨幣初創企業:Dragonfly Capital Partners已成功從投資者那里籌集了1億美元,將啟動一只專注于投資于加密貨幣初創企業的基金。該基金由管理合伙人Alexander Pack和Bo Feng牽頭。兩人在管理風投公司方面都有豐富的經驗。[2018/10/19]
挑戰A:如何確保公告板上的塊實際上是由提議者寫的?考慮采樣塊在網絡上以任何形式傳輸到采樣節點時的變化。這是一小段信息的來源,當生產者離開并且采樣節點進入暗室時,區塊生產者可以將其傳遞給采樣節點。在實踐中,這被實現為對寫入公告板的原始內容的綁定向量承諾,并作為區塊頭的一部分進行共享。給出承諾后,區塊生產者可以在公告板上留下每個編碼塊的證明,以表明該塊確實是由區塊生產者編寫的。第三方無法在傳輸過程中更改塊,因為承諾方案不允許為修改的塊偽造有效證明。請注意,這本身并不排除區塊生產者在公告板上寫入無效/不一致的塊,我們接下來將討論這一點。
挑戰B:確保區塊生成者糾刪碼正確。在上述方案中,我們假設區塊生產者正確地編碼信息塊,因此糾刪碼的保證成立,也就是說,從足夠的編碼塊中,實際上可以恢復信息塊。換句話說,區塊生產者所能做的就是保留塊,但不能將我們與無效塊混淆。在實踐中,有三種常見的排除無效編碼的方法:
欺詐證明。這種方法依賴于這樣一個事實,即一些采樣節點足夠強大,可以對如此多的塊進行采樣,以至于它們可以發現塊編碼中的不一致,并發布無效的編碼欺詐證明,以將所討論的文件標記為不可用。這方面的工作旨在最小化節點必須檢查的塊數量以檢測欺詐。
多項式承諾。該方法使用KZG多項式承諾作為包含在區塊頭中的綁定向量承諾來解決挑戰A。多項式承諾允許根據對未編碼信息塊的承諾直接驗證Reed-Solomon編碼塊,因此沒有無效編碼的空間。可以這樣想:向量承諾和Reed-Solomon編碼在多項式承諾中是不可分割的。
有效性證明。可以使用密碼學證明系統來證明向量承諾提交的編碼塊的正確糾刪碼。這種方法是一種很好的教學「心理模型」,并且對于所使用的糾刪碼來說是通用的,但在相當長的一段時間內可能效率不高。
Particl 錢包增加新功能 可以篩選交易歷史:Particl (PART)錢包新增交易歷史篩選功能。[2017/12/12]
挑戰C:公告板是「什么」以及「在哪里」?提議者如何「寫」到上面?在我們討論公告板「是什么」和「在哪里」、提議者如何「寫入」它以及驗證者如何從中「讀取」/「采樣」之前,讓我們回顧一下兩種基本P2P網絡原語的眾所周知的缺點:
1、基于低量級泛洪的發布-訂閱gossip網絡,例如GossipSub,其中通信被組織成不同的「廣播組」,參與者可以加入并向其發送消息:
在任意對抗行為下不安全;
常見的變體甚至不提供Sybil抵抗機制
通常無法保證參與者的組成員身份與其他參與者的隱私
如果有大量主題且每個主題的訂閱者很少,則通信往往變得不可靠
2、分布式哈希表(DHT),例如Kademlia,其中每個參與者存儲哈希表中存儲的全部數據的一部分,參與者可以快速確定到存儲特定信息的對等體的短路徑:
也不是拜占庭容錯
事實上,DHT在對抗行為的恢復能力方面比gossip協議差得多:gossip協議「僅」要求由誠實節點形成的子圖是連接的,這樣信息可以從任何誠實節點到達所有誠實節點。而在DHT中,信息是專門沿著路徑路由的,當查詢到達其路徑上的對手節點時,查詢可能會失敗。
也不提供Sybil抵抗機制
哪些參與者存儲或請求哪些信息的隱私不受保障
考慮到這一點,我們可以回到關于如何實現公告板及其讀/寫操作的中心問題。編碼塊存儲在哪里?它們如何到達那里?社區正在考慮的三種主要方法是:
GOSSIP:使用一個gossip網絡分散編碼塊。例如,每個編碼塊可能有一個主題,負責存儲某個塊的節點可以訂閱相應的主題。
DHT:將編碼塊上傳到DHT中。然后,DHT將「自動」為每個參與者分配他們應該存儲的塊。
REPLICATE:來自附近副本的樣本。一些節點存儲數據的完整副本,并將塊請求提供給采樣節點。
這些方法的挑戰是:
如何確保「公告板上有足夠的空間」開始,以及公告板的所有部分隨著時間的推移而保持在線?在一個真正無許可的系統中,這將特別棘手,因此大部分節點可能是對抗性的并且可能在瞬間消失。幸運的是,在區塊鏈環境中,通常存在一些Sybil抵抗機制,并可用于建立聲譽,甚至進行攻擊,但關于如何利用Sybil抵抗機制來保護對等網絡層,還有很多細節有待確定。
在前一點上進行擴展,因為網絡是共識的基礎,因此是所謂拜占庭容錯系統的基礎,網絡層本身最好是BFT——但如前所述,流行的gossip或DHT協議并非如此。
最后,一些人認為,從長遠來看,節點應該存儲或轉發不超過一個區塊的一小部分,否則可擴展性和支持相對「弱」參與者的可能性是有限的。這與REPLICATE是對立的。對于GOSSIP,這需要大量的廣播組,每個廣播組都有少量訂閱者,在這種情況下,gossip協議往往變得不那么可靠。在任何情況下,上述方法都會帶來開銷,例如,代表其他節點轉發數據塊的帶寬不得超過單個節點的預算。
挑戰D:我們「如何」實施隨機抽樣?這個問題有兩個方面:期望的塊如何在網絡中定位和傳輸,以及如何確保采樣相對于對手「保持隨機」,即,對抗性區塊生產者沒有機會根據誰查詢哪些塊來自適應地改變其策略。
當然,直接從區塊生成者那里進行采樣不是一個可行的選擇,因為這需要來自區塊生產者的高帶寬,并且如果每個人都知道區塊生產者的網絡地址,則會產生相關的拒絕服務向量。
另一種方法是在使用上述方法之一分散塊后從swarm「群」中采樣。具體來說:
在使用GOSSIP或DHT分散塊之后,DHT可能會方便地路由采樣請求和隨機采樣塊,但這會帶來上面討論的挑戰,最明顯的是缺乏BFT和隱私。
或者,在GOSSIP下,每個節點都可以訂閱與其想要采樣的塊相對應的主題——但存在上述挑戰:除了缺乏BFT和隱私之外,擁有大量主題而每個訂閱者都很少會導致不可靠的通信。
REPLICATE可以在「來自區塊生產者的樣本」和「來自群體的樣本」之間進行折衷,其中從數據的完整副本中抽取塊,并在網絡對等方之間識別副本。
請注意,上面只解決了采樣,而不是將來任何時候從公告板「閱讀」。具體來說,GOSSIP本質上實現了一個臨時公告板,而DHT實現了一個永久公告板。通常,我們需要的是一個永久性公告板,為此,GOSSIP必須輔以DHT來路由塊,這會帶來上述挑戰。而REPLICATE會立即實現永久公告板。
下表說明了不同P2P協議來實現模型的不同情況。具體地說,面向gossip的方法有兩種變體,一種使用gossip對塊進行采樣,另一種使用DHT對塊進行采樣。相比之下,面向DHT的方法完全依賴于DHT進行所有相關操作。在面向replication的方法中,每個節點使用請求/響應協議從附近的完整副本中讀取/采樣塊。它有效地使用gossip進行塊的初始傳播,盡管兩個對等方之間的gossipping在技術上可以通過請求/響應協議來實現。
此外,在上述所有技術中,「誰采樣了什么」被泄露給了攻擊者,因此攻擊者可以通過自己的行為自適應地削弱/促進某些節點采樣的塊傳播,從而欺騙某些節點相信該塊是可用的。雖然早期的工作表明只有少數節點可以被欺騙,但這是不可取的。或者,早期的工作假設匿名網絡通信,這在實踐中至少會帶來相當大的性能損失,如果不是完全不切實際的話。
挑戰E:如何「修復」公告板的內容?也就是說,如果編碼塊丟失,它是如何恢復的?簡單的修復涉及解碼和重新編碼,因此會帶來相當大的通信和計算負擔,特別是對于常見的Reed-Solomon糾刪碼。誰來承擔這個負擔?他們如何得到補償?如何避免惡意區塊生產者通過保留一些編碼塊,并迫使節點花費資源進行昂貴的修復來傷害采樣節點?分布式維修方案呢?修復所需的塊是如何檢索到的,這回到了上一點關于將來從公告板上「讀取」的問題。
挑戰F:激勵。如果采樣是免費的,如何防止拒絕服務向量?如果抽樣需要付費,如何同時做到完全匿名?那些在對等網絡中存儲公告板、路由信息或執行諸如塊修復之類的維護任務的人如何獲得補償?
另一種模型
為了完整起見,我們簡要提及一個稍微不同的模型,DAS實現了稍微不同的保證。即使沒有匿名和可靠的網絡,攻擊者也最多可欺騙一定數量的誠實節點,使其相信不可用的文件可用。否則,它將不得不釋放如此多的塊,以便從誠實節點獲得的所有塊的聯合中恢復文件。該模型的優點是,網絡所需的屬性更容易實現。缺點是對單個用戶沒有具體的保證,并且目前還不清楚如何收集誠實節點獲得的所有樣本并恢復文件。
未來的研究與發展方向
根據這篇博文中提出的觀察和論點,我們認為以下將是未來關于數據可用性研究和開發的一些有趣方向:
顯然,為了保護網絡層,一些Sybil抵抗機制是必要的。方便的是,共識層正好提供了這一點,例如,以權益證明的形式。因此,在網絡層上重用共識層的Sybil抵抗機制似乎是很自然的,例如從驗證器集中在gossip協議中采樣一個節點。雖然這可能不會立即保護非積極共識參與者的節點的網絡,但它可以幫助在共識節點之間建立安全的「主干」,并隨后可能成為為每個人提供更好安全的墊腳石。這條道路上合乎邏輯的下一步,將是仔細分析共識和網絡與這種共享的Sybil抵抗機制的相互作用。
改進的gossip和DHT協議:
拜占庭容錯(BFT),特別是使用共識層常見的Sybil抵抗機制
效率
隱私保證
修復機制:
以分布式方式實施修復
研究和設計相關的激勵措施
致謝:特別感謝MustafaAl-Bassam、DannyRyan、DankradFeist、SreeramKannan、SrivatsanSridhar、LeiYang、DanRobinson、GeorgiosKonstantopoulos以及DanLee對本文早期草稿提供的富有成果的討論和反饋,并感謝AchalSrinivasan提供了漂亮的插圖。
原文鏈接
本文要點: .美聯儲將于23年夏季推出CBDC替代品 .V神寫了一本書! .CRYPTO.COM以最佳狀態失敗美聯儲將于23年夏季推出CBDC替代品“FedNow”——這是一項新的即時支付服務的.
1900/1/1 0:00:00DearHuobiGlobalUsers,OurOLANDpromotionwillkickofftoday,whereyoustandtowinashareofaprizepoolof40.
1900/1/1 0:00:00道富銀行負責數字產品開發和創新的副總裁NicoleOlson表示,隨著機構繼續對加密領域表現出興趣,代幣化仍然是銀行業務未來的重中之重.
1900/1/1 0:00:00原文作者:RaoulPal,RealVision創始人兼CEO原文編譯:0x9F,BlockBeats本文梳理自RealVision創始人兼CEORaoulPal在個人社交媒體平臺上的觀點.
1900/1/1 0:00:008月31日,谷歌正式成為FIBA國際籃聯及女籃世界杯全球合作伙伴,開創了其在體育合作領域的先河。隨著月底即將在悉尼開賽的2022女籃世界杯,此次合作將對提高女籃知名度及影響力有著巨大的推動力.
1900/1/1 0:00:00SubQuery項目介紹SubOuery的使命是幫助其他人創造產品,使我們能夠更快地走向去中心化的夫來。SubOuery是一個區塊鏈開發者工具包和web3基礎設施的骨干.
1900/1/1 0:00:00