來源|?dankradfeist.de
作者|?DankradFeist
原標題:《數據可用性檢查》
數據可用性檢查須知
本文旨在解釋數據可用性檢查,以及為什么區塊鏈的擴容方案,例如以太坊2.0,需要它們。本文預設了讀者具有區塊鏈(例如比特幣和以太坊)的基本背景知識、最好對現在使用的共識算法(工作量證明和權益證明)也有所了解。為了簡單起見,解釋內容將建基于權益證明鏈——由所有具有相同權重的全節點運行共識協議,具有2/3誠實假設;但這些分析同樣適用于工作量證明和其他協議。
入門知識
想想看,區塊鏈有全節點和輕客戶端,還有一個點對點網絡,它可能對數據是有損的,但不會自適應地審查數據。相對于全節點來說,輕客戶端是一個更便宜的選擇。在傳統的區塊鏈協議里,我們假設所有客戶端都運行全節點,驗證在狀態轉換中的每一筆交易。運行一個全節點要求計算機有大量的內存、算力和帶寬。對于移動客戶端和許多資源受限的環境來說,這個成本可能太高了。
輕客戶端是只需下載每個區塊的區塊頭的節點,它們信任全節點對狀態轉換的檢查是正確的——并假設共識算法不會產生違背這點的區塊鏈。輕客戶端依賴全節點為任何相關交易提供區塊內的信息。這很可能只占鏈上所有數據很小的百分比。
為了解釋地更清楚,我介紹這里的三類角色:
觀點:絕大多數被迫拋售已經發生,市場似乎相對穩定:金色財經消息,圖表中的相對穩定助長了人們的希望,即在Terra事件后,危機可能已經結束,這場崩盤還導致對沖基金三箭資本和經紀公司Voyager Digital相繼宣布破產。Glassnode首席分析師James Check表示,盡管加密世界的很多杠桿都沒有記錄在區塊鏈上,因此不受審查,但可見的情況令人鼓舞。“我認為絕大多數被迫拋售已經發生,”Check在接受采訪時表示,“從本質上講,市場似乎相對穩定。”
Check同時警告稱,現在市場還剩下兩個重要的潛在賣方,其中一方是比特幣礦工,他們的礦機價值隨著代幣的價格暴跌——如果Celsius的挖礦子公司開始卸載其80850臺鉆機中的一部分來籌集資金,這種壓力可能會加劇。另一方是交易員,如果股市再次崩盤,他們會不加區分地拋售各種風險資產。(彭博社)[2022/7/17 2:18:15]
全節點通過對每個區塊的共識生成一條區塊鏈,并始終下載所有數據和驗證所有狀態。每當它們看到區塊里有不一致的狀態(例如,區塊的最終狀態與區塊內的交易不一致),它們會生成一個欺詐證明,以警告輕客戶端。輕客戶端只下載區塊頭(非交易數據和狀態),除了它們想知道的交易和部分狀態。它們與全節點連接,以請求所需要的數據。點對點網絡傳播區塊頭,并允許隨機訪問上傳到它的數據塊。一個全節點具有下列安全保證:
與其他全節點形成的共識(絕對)多數可以構建另一條區塊鏈,從而進行雙花攻擊;更廣泛來說,它們可以任意對交易進行重新排序,創建另一個版本的交易歷史。由于要檢查狀態,即使是其他全節點形成超級多數對不一致的狀態達成共識,也不可能讓一個誠實全節點同意這條鏈。因此,一個全節點的安全假設是2/3的誠實全節點可以保證交易不會被重新排序,但正確的狀態執行是不需要任何的誠實假設來確保的(一個全節點根本不可能被欺騙接受一個不正確的狀態轉換)。
觀點:中國的法律環境中基于公鏈的數字藏品有四大潛在風險:3月26日消息,數字藏品的全球趨勢與中國創新的直播中,星圖比特創始人張炯在《國產公鏈數字藏品的合規發展》主題分享中稱,基于公鏈的數字藏品有三個優勢,用戶對數字藏品的真實處置權、真實可交割及透明真實感。而基于聯盟鏈的數字藏品有兩大優勢,包括容易獲得政府監管部門的理解,更容易形成企業與企業之間合作的信任。目前,中國的法律合規環境中公鏈數字藏品有一些潛在風險。第一,如何讓國內用戶在沒有數字貨幣的前提下,通過人民幣購買數字藏品NFT。第二,用戶用人民幣購買數字藏品后,可能再賣成數字貨幣,因而數字藏品需要完成與數字貨幣的切割,否則可能淪為OTC渠道。第三,人為操作會造成數字藏品市場波動帶給普通用戶的經濟風險。第四,數字資產的托管問題。此外,張炯認為,基于聯盟鏈的數字藏品存在停止運營的風險等。(8btc)[2022/3/26 14:19:31]
對于輕客戶端來說,情況略有不同,因為它們不下載和驗證狀態。因此,在沒有欺詐證明(詳見下文)的情況下,“天真”的輕客戶端會被騙,相信由絕對多數(2/3)的全節點達成共識的區塊鏈是沒有問題的,即使它實際上有一個不正確的狀態轉換。
欺詐證明
欺詐證明能是給輕客戶端一個更好的安全模型,使其安全性接近于全節點。其目的是,只要至少有一個誠實的全節點(比2/3多數假設弱得多),輕客戶端也可以被保護,免受無效鏈的影響。
觀點:目前非常規的貨幣政策將促使人們轉向比特幣:俄羅斯人權活動家、國際象棋大師Gary Kasparov表示,當前的經濟危機導致了非常規貨幣政策,將推動人們轉向比特幣。在政府和機構的單邊行動日益增多的時候,加密貨幣使公眾能夠重新控制個人財務。Kasparov表示,加密貨幣被濫用的可能性被夸大了,但必須利用它的好處來增強個人的能力。加密貨幣提供了保護個人財務不受通貨膨脹和政府干預的手段,“任何能讓我們有機會重新控制或部分控制我們隱私的東西都是受歡迎的。”
Kasparov補充道:“這就是為什么我認為比特幣和其他加密貨幣和區塊鏈技術的穩定流行是不可避免的,因為這是對權力從個人向國家或其他機構轉移的回應,這些機構可能在未經我們同意的情況下侵犯我們的隱私。”(Bitcoin.com)[2020/7/26]
欺詐證明是如何實現這點的?假設區塊鏈執行區塊B內的交易t1,…,tn,且區塊頭為H。如果我們增加一個執行跟蹤,用來存儲每筆交易前和后的狀態的默克爾根,我們把它叫做s0,…,sn,如果有任何交易被錯誤執行(即其結果沒有正確應用于狀態)就可以構建一個虛假證明:如果說交易ti?是有問題的交易,給出三元組(si?1,ti,si),再加上在區塊頭H里顯示已被打包的默克爾證明,這將構成一個欺詐證明。事實上,我們僅需要打包ti?需要和影響到的si-1和si。這個欺詐證明的大小比原來的區塊B要小得多,因此容易在網絡里廣播,警告輕客戶端不要跟隨這條鏈。
觀點:若比特幣網絡繼續擁堵,用戶將會轉向其他山寨幣:BitInfoCharts的數據顯示,比特幣的平均費用從5月20日的6.65美元降至5月25日的3.07美元,降幅近54%。中位數(最常見的費用)最高曾達到3.91美元,但現在已降至1.65美元。BCH支持者Hayden Otto表示,如果網絡繼續擁堵,用戶將會轉向其他山寨幣。他認為這已經在2017年發生了。Hayden Otto認為比特幣擁堵導致的費用上漲與用戶轉向其競爭對手之間存在直接關聯。按照他的說法,這導致比特幣的市場主導地位下降,而與之競爭的加密技術則出現爆炸式增長。有相當多的猜測認為,比特幣的區塊獎勵減半可能會破壞其區塊鏈的穩定性。Hayden Otto認為,減半確實確實對比特幣的功能動態產生了這種不穩定的影響,盡管這種情況已經開始逐漸消除。他說,在達到今年的最高水平80,000之后,最近在比特幣內存池中進行的未經確認的交易數量穩定在20,000以上。Hayden Otto表示,這是一個跡象,表明比特幣網絡在最近幾次減半后的經濟變化后正在恢復穩定。(Cointelegraph)[2020/5/27]
所以,現在輕客戶端的安全假設就比之前的要強很多了:
2/3的不誠實全節點可以構建另一條鏈,從而改變交易歷史或給交易重新排序(例如,發起雙花攻擊)。但是為了防止出現不正確的狀態轉換,現在的假設是至少有一個誠實全節點(它可以創建欺詐證明),且網絡是同步的(這樣你就能即使接受到欺詐證明)。
觀點:比特幣下跌因微鯨多頭清算導致 與新冠疫情和PlusToken拋售無關:比特幣在過去24小時內急劇下跌,與此同時,出于對新冠狀病的擔憂,周一傳統市場也出現下跌,道瓊斯工業平均指數下跌了7%,標準普爾500指數下跌了5%以上。 龐氏詐騙項目PlusToken拋售了13,000 BTC,進一步推低價格。 不過,多倫多的數字資產經理兼場外交易員James Hapak認為,此次下跌和新冠疫情或PlusToken無關,只是微鯨在清算9,000美元和10,000美元范圍的多頭,并且已經持續幾個月了。臺北算法交易公司Kronos Research聯合創始人Jack Tan則表示,很多人認為加密貨幣市場是因為PlusToken拋售或冠狀病的恐慌而下跌,在某種程度上這個看法是正確的,但是大家應該知道的是,加密貨幣市場是被大量資本緊密控制的。疲軟的市場則為資本操縱創造了條件。[2020/3/10]
數據可用性問題
用欺詐證明保護輕客戶端不受錯誤狀態轉換影響這個方法其實有一個缺口。如果絕對多數的全節點都已經對一個區塊頭簽名了,但不發布部分數據(特別是,這可能是欺詐性交易,它們將晚點發布,以騙過別人接受印出來的或偷來的錢)?顯然,誠實全節點將不會跟隨這條鏈,因為它們不會下載該數據。但輕客戶端不會知道數據是否可用,因為它們只下載區塊頭,不下載數據。因此,現在的情況是誠實全節點知道有貓膩,但它們無法警告輕客戶端,因為它們缺少可能需要用來創建欺詐證明的數據。
難道它們就不能用其他信息警告輕客戶端,告訴它們:“嘿,小心,這個區塊的數據不可用。”嗎?是的,但問題在于它們無法證明——不存在數據不可用的證明,所以上述的簡單欺詐證明機制是不起作用的。
更糟糕的是,這不是可歸責的問題。有些數據可能因為網絡條件不好而丟失了,而這些數據可能在以后再次出現。因此,如果你是一個誠實節點,看到數據不可用的警報,然后檢查發現數據實際上在那里,你不能確定是誰出錯了:可能是出塊者沒有在開始時上傳數據,而是在警報產生后才上傳(出塊者的錯),或者這是一個錯誤的警報。
由于這不是可歸責的問題,我們不能因為警報的結果懲罰出塊者或挑戰者。這很煩人,因為這基本上意味著增加這個功能會增加一個DOS向量(Vitalik的這篇文章對這個問題進行了非常好的說明。)
解決方案:用糾刪碼進行數據可用性檢查
要解決這個難題,就要確保輕客戶端可以知道數據是否真的可用。因為如果它們知道這個數據是可用的,它們也就知道很可能有一個誠實全節點看到并檢查了該數據——如果該數據是不正確的或是欺詐性的,誠實全節點就會廣播一個欺詐證明。
當然我們不想要輕客戶端必須下載整條區塊鏈和狀態來實現這點——因為這樣它們就不再是輕客戶端了。因此,我們將讓它們下載隨機的數據塊,并檢查它們是否可用。如果你嘗試下載100個不同的數據塊,并全部都獲取了,你就可以很確定大部分的數據都是可用的(例如,如果少于50%的數據是可用的,你能成功下載100個數據塊的概率是2-100≈10-3,這是一個非常小的數字)。
然而,這只能證明大多數的數據是可用的——比方說,10兆字節的數據塊中僅有100字節丟失了,在這種情況下,你對那一點數據發出請求的可能性非常低。而100字節足以為作惡交易作掩護,躲過誠實的欺詐證明者。
因此,我們需要對這些數據做一些處理,以確保那些檢查切實保證所有的數據都將是可用的。我們可以用糾刪碼(erasurecode)實現這點。一個糾刪碼以更大量的數據E取代區塊數據B,其特性是某固定百分比q<1將總足以重構整個數據。因此,即使有些數據丟失了,只要輕客戶端確保足夠大部分數據是可用的,它們就知道區塊數據B是可被重構的。
現在,我們準備定義輕客戶端在數據可用性檢查中的行為。對于每個它們下載的區塊頭,它們將嘗試下載數據E中k個隨機數據塊,以評估數據是否實際可用。如果它們可以下載全部的數據塊,那么,在網絡里有實際上足夠的數據重構整個區塊的概率是1-qk。
使用這個機制就無須全節點警告輕客戶端數據是否可用了。只需要下載少量數據,輕客戶端就可以自行測試并知道答案了。
糾刪碼實例:RS碼
我們實際上是如何構建糾刪碼的呢?一個簡單且為人熟知的實例是Reed-Solomoncodes(縮寫為RS碼)。它們是基于這樣一個簡單的事實:在一個域里,任何次數是d的多項式都僅由其在d+1點的估值確定。例如,多項式的次數為1(即一條線),然后只需要知道多項式兩個點的值就足以知道整個多項式了(只有一條線穿過兩個不同的點)。
我們必須在一個有限閾里解多項式,否則系數和估值都會變得任意大。幸運的是,有大小為2m的域可用(即所謂的二進制域或伽羅瓦域F2),這樣我們就不需要研究素域Fp(盡管我們可能在一定方案里因為其他原因需要)。
因此,假設我們有n個數據塊d0,…,dn?1,我們想對其進行糾刪編碼。為了用一個RS碼來實現,我們將插值一個多項式
次數為d=n-1,估值d0在0,即f(0)=d0、f(1)=d1,這樣下去。我們知道有這樣的多項式存在,事實上拉格朗日插值多項式(Lagrangeinterpolationpolynomials)給了我們建構它的明確方法(盡管還有更高效的方法)。
現在,我們通過對多項式在更多的點上估值來拓展數據——比方是n多個點,如果我們想把比率設為q=0.5。那么就會有dn=f(n),dn+1=f(n+1)...,d2n?1=f(2n?1)。由此我們得出它的一個特性,即任何n個點將足以重構這個多項式——如果我們有多項式f(x),我們也可以輕易對它在0,...,n-1進行估值,得到我們的原始數據。
就這些內容了!RS碼不過是一些多項式插值。這實際上就解決了數據可用性問題了,因為它們在編碼效率上是最優的,除了一個小問題——欺詐事件可以以另一種方式發生,即產生錯誤的編碼。而對于RS碼,為了證明編碼是錯誤的,你必須提供n個數據塊,并足以用一個多項式對其中的n-1插值,并顯示最后一個不在這個多項式上。這就是為什么我們現在做大量的研究,旨在找出避免必須做這些不正確編碼證明或使它們盡可能小的方法。
在分片上的應用
數據可用性檢查對于許多不同區塊鏈擴容方案是很重要的,因為即使節點不能檢查所有或甚至下載所有數據,它也能給這些節點提供安全。由于這是區塊鏈的一個根本性瓶頸(共識節點必須下載所有數據),這是一個重要的擴容要求。
例如,在以太坊2.0里,驗證者只需對信標鏈上的數據進行完全驗證,分片上的驗證工作由委員會負責。這個結構旨在減輕驗證者必須驗證所有數據的負擔。但是,這意味著驗證者在多數分片上實際上是輕客戶端(除了活躍驗證者)。因此,數據可用性檢查是需要的。在這種情況下,以太坊2.0的驗證者實際上同時是“全節點”和輕客戶端。那些下載并檢查所有分片數據的節點是“超級節點(supernodes)"——這些節點可能只會由組織或做了大量質押的人來運行,他們會驗證所有分片。我們當然不會想要只是信任這一小部分人是誠實的來運行以太坊2.0。
因此,有數據可用性檢查和欺詐證明是絕對必要的,這樣一般人都可以運行驗證者節點。
擴展閱讀
1.VitalikButerin的這篇文章解釋了欺詐證明和糾刪碼
它介紹了多維RS碼如何形成更小的不正確編碼證明這是論文版本2.多為代碼替代方案的最新想法:
使用STARKs使用FRIs使用Kate’spolynomialcommitment方案原文鏈接:https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html
原文標題:《TheArtRoyaltyRevolution》原文作者:SuperRareTeam編譯:0x13,律動BlockBeats律動BlockBeats消息,7月14日.
1900/1/1 0:00:00提要:CryptoPunk市場在上周末陷入瘋狂,幾乎所有指標都創下了歷史新高,其中包括總銷售額、獨立新買家、平均價值、總交易量.
1900/1/1 0:00:00巴比特訊,7月15日,NFT碎片化平臺Unicly發推表示UniclyGenesisMooncatsCollection在SushiSwap旗下眾籌平臺MISOFactory上的拍賣已經結束.
1900/1/1 0:00:00巴比特訊,BeInCrypto報道,在過去幾天里,熱門NFT項目CryptoPunks的活動激增.
1900/1/1 0:00:00什么是NFT?? NFT是2017年末推出的一種新型獨特且不可分割的基于區塊鏈ERC-721標準的通證.
1900/1/1 0:00:00來源:證券日報網 本報記者張志偉見習記者張博目前,上海、長沙、海南、青島、大連、西安作為數字人民幣第二批試點地區,正有序推進數字人民幣試點工作,成果顯著.
1900/1/1 0:00:00