以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

Vitalik:分片 + 數據可用性采樣_SLOT:curriculum-vitae

Author:

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

除了 Proof of Stake 之外,eth2 設計中的另外一個顯著改變就是分片 (sharding)。本提案介紹了一種分片的有限形式,即“數據分片” (data sharding),根據"以 rollup 為中心的路線圖"所述:分片會存儲數據,并且證明約 250 kB 數據的可用性。數據可用性驗證為 rollups 之類的二層協議提供了安全和高吞吐量的數據層。

為了免去節點親自下載全部數據的負擔,可以將這兩種技術互相疊加起來對大量數據的可用性進行驗證:1) 由隨機抽樣的委員會提出證明;2) 數據可用性抽樣 (data availability sampling, DAS)。

白話“隨機抽樣委員會”

假設你有大量數據 ,例如 16 MB,這是 eth2 鏈 (至少在初期) 每個 slot 能處理的數據量。我們將這些數據表現為 64 個 blobs,每個大小為 256 kB。假設我們還有一個 PoS 系統,驗證者數量約為 6400。我們如何在 1) 不需要任何人下載所有數據,2) ?不給運行少量驗證者的攻擊者可乘之機的前提下驗證這些數據?

第一個問題,我們可以通過分工來解決:驗證者 1-100 需要下載并驗證第一個 blob,驗證者 101-200 下載并驗證第二個 blob,以此類推。每個子集合 (委員會) 里的驗證者只需簽名證明他們已經驗證了相應的 blob,然后整個網絡接收到相應委員會中大多數驗證者的簽名之后,即可接受該 blob。

但這會導致一個問題:萬一攻擊者控制了連續的驗證者集合怎么辦 (例如 1971-2070)?如果是這樣的話,即使攻擊者僅控制了整個驗證者集合的約 1.5%,他們也能夠控制單個委員會 (在上述情況下,他們可以掌控委員會 20 中 70% 的驗證者 2001-2100),因此攻擊者能夠將無效/不可用的 blob 添加到鏈上。

隨機采樣 (Random sampling) 通過隨機洗牌算法組成委員會來解決這個問題。我們使用某個哈希值作為隨機數生成器的種子,然后我們使用該生成器來隨機混洗驗證者列表 1-6400。混洗列表中的前 100 個值是第一個委員會,下 100 個值即為第二個委員會,依此類推。

Vitalik:跨鏈證明是實現跨鏈社交恢復錢包的關鍵,ZK-SNARK等是可行選擇:6月20日消息,以太坊聯合創始人VitalikButerin在最新文章《更深入探討錢包和其他用例的跨L2讀取》中指出,實現跨鏈社交恢復錢包的一個可行方案是維護一個存放在特定位置的密鑰庫,以及多個不同位置的錢包,這些錢包可以讀取密鑰庫來更新自身的驗證密鑰視圖或在每次交易驗證過程中。跨鏈證明是實現這個功能的關鍵,需要對其進行深度優化,可能的方案包括零知識證明(ZK-SNARK)、等待Verkle證明或自定義KZG解決方案。

從長遠看,我們需要實現聚合協議,通過生成聚合證明來打包所有用戶提交的操作,以此來降低成本。這可能需要將其集成到ERC-4337生態系統中,可能需要對ERC-4337進行一些修改。同時,為了減少從L2內部讀取L1狀態的延遲,L2應被優化。

錢包不只可以放在L2上,也可以放在與以太坊連接程度較低的系統上,如L3或只同意包含以太坊狀態根的獨立鏈。然而,密鑰庫應放在L1或高安全性的ZK-rollupL2上。盡管這樣會增加復雜性,但從長期來看,可能在L2上設置密鑰庫才是成本更低的方案。在這個過程中,我們也需要致力于提供保護隱私的解決方案,并確保我們的方案可以與隱私保護方案兼容。[2023/6/21 21:50:47]

RNG (隨機數生成器) 的種子在驗證者存款之后選定,每個驗證者的索引都是固定的,因此攻擊者無法嘗試使其所有驗證者進入同一個委員會。攻擊者可能會走運,但前提是他們控制所有驗證者的 1/3 以上。

白話“數據可用性抽樣”

在某些方面,數據可用性采樣是隨機抽樣委員會的鏡像。仍然會進行采樣,這是因為每個節點最終只會下載所有數據的一小部分,但采樣發生在客戶端中,并且在每個 blob 中進行,而不是在 blob 之間進行。

每個節點 (包括沒有參與質押的客戶端節點) 對每個 blob 進行檢查,他們不需要下載整個 blob,而是私密地從中選擇 N 個隨機索引,然后嘗試在這些位置下載數據。

ConsenSys與前風險投資負責人Kavita Gupta就雙方訴訟達成和解:4月6日消息,以太坊軟件開發商ConsenSys與前風險投資負責人Kavita Gupta就一場激烈的訴訟達成和解。

“ConsenSys Mesh和Kavita Gupta已經同意解決各自針對對方的訴訟,”ConsenSys的一名發言人表示,“雙方同意,ConsenSys Mesh并未違反其對Gupta女士的任何合同義務。”

據悉,兩位知情人士早些時候透露,雙方已經達成了一項和解協議。Gupta在2017年至2019年期間在ConsenSys工作,他的律師對該公司提起了訴訟,要求至少3000萬美元的金錢賠償。ConsenSys回應了Gupta的訴訟,并于今年1月對她提起了法律訴訟,指控其涉嫌簡歷欺詐。(CoinDesk)[2022/4/6 14:08:40]

這么做的目的在于驗證每個 blob 中至少一半以上的數據是可用的。如果低于一半的數據可用,那么幾乎可以認定任何給定客戶端進行采樣的索引中至少有一個不可用,那么客戶端會拒絕接受該 blob。

這個機制是高效的,因為一個客戶端只需要下載每個 blob 中的小部分數據以驗證其可用性。這個機制同時也是高度安全的,原因在于即使是 51% 攻擊者都無法欺騙客戶端接受不可用的 blob。

糾刪編碼

為了避免攻擊者提供了 50-99% 可用數據的情況 (這可能使得某些客戶端拒絕某 blob 之后又被其他客戶端接受),我們使用了一種叫作糾刪編碼 (erasure coding) 的技術。糾刪編碼使得我們可以使用如下方式對 blobs 進行編碼:如果某 blob 中超過一半的數據已經發布,網絡中的任何人都可以對剩余數據進行重建和發布。

一旦重新發布的數據廣播完畢,起初拒絕該 blob 的客戶端會收斂為接受 (注意,接受 blob 沒有時間限制,每當客戶端收到對其所有抽樣索引的響應時,它就會接受可用的 blob)。

理解糾刪編碼最簡單的數學概念類比是“兩個點總是足以恢復一條線”:如果我以四個點的形式((1, 4), (2, 7), (3, 10), (4, 13))建立“文件”,每個點都在一條線上,那么只要有其中兩個點的坐標,你就能重構這條線,并且將 ? ?剩下的兩個點計算出來 (我們假設 x 坐標1, 2, 3, 4是系統的固定參數,而非文件創建者的選擇)。

Vitalik:以太坊2.0或需多年才能解決擴容問題:以太坊聯合創始人Vitalik Buterin表示,以太坊基礎層可擴展性還有很長路要走,很可能在很多年之后都無法實現區塊鏈基礎層擴容。按照Vitalik說法,基于應用程序基礎層擴容或許會在以太坊2.0最后一個主要階段完成之后才會出現,所以可能需要等待幾年。Vitalik表示,他鑒于當前情況建議將以太坊擴容工作全部放在二層Layer 2解決方案上,同時他建議一旦「以太坊1.5階段」完全通過權益證明,那么基本上就不會關注擴容問題了。如果用戶不確信「以太坊1.5階段」能夠解決容量問題,那么還可以采取折衷方法,即:擁有少量執行分片(比如4-8個)和更多數據分片。Vitalik建議在錢包中直接構建二層協議,比如MetaMask或Status,他也強調在「跨二層協議傳輸」方面需要做更多工作,二層解決方案可以某種方式成為協議本身一部分,而以太坊1.0則可以用作為Optimistic Rollup客戶端。[2020/10/3]

使用高階多項式,我們可以擴展此思想,創建 6 個文件中的 3 個文件,8 個文件中的 4 個文件,或者通常來說 2n 個文件中的n個文件,如果你有文件中的 n個點,則可以計算出 2n 中剩余的點。

默認情況下,一個攻擊者也有可能使得沒有區塊是可用的,并且有選擇性地針對其收到的請求發布信息,但這種行為只能欺騙很小一部分客戶端,因為攻擊者會需要發布一半區塊以上來回應所有的請求 (我們假設客戶端重新公開廣播他們收到的回應)。

我們使用多項式承諾 (polynomial commitments),具體來說是 Kate 承諾而非默克爾根作為數據 blobs 的 printers,因為多項式承諾能夠使我們輕易證明一個給定的值實際上是對特定次 n 多項式在所需坐標處的正確估值。不然的話,我們將不得不 (例如使用SNARKs) 證明默克爾根編碼一個低次多項式,或者依賴于欺詐證明在編碼不正確的情況下進行廣播 (這增加了高復雜度以及更多的同步假設)。

有了委員會機制還需要數據可用性抽樣嗎?

如果只借助委員會的,可能有以下幾個劣勢:

發生 51% 攻擊的時候防御力度較弱。在當前 (不可擴容) 的區塊鏈上,51% 攻擊只能回滾交易或是進行審查,并不能向鏈上添加無效區塊。基于委員會的系統會丟失這個保障。

Swingby與Waves計劃將LTC、BEP-2代幣和隱私幣連接到Gravity:Swingby和Waves聯合力量來增強其鏈間基礎設施,并將LTC、BEP-2代幣和隱私幣連接到Gravity及其各種目標鏈。Swingby和Gravity宣布達成合作,重點是將兩個為跨鏈交互設計的基礎設施結合起來,共同構建鏈間DeFi。(Globe Newswire)[2020/9/1]

更甚者,要對 51% 攻擊者進行有效的懲罰難度會很大,因為他們只有極少量的存款 (參與該特定委員會的存款) 會被證明與惡意行為有關,并在此基礎上進行懲罰。

需要一定門檻 (委員會中證明該 blob 的人數達到什么比例才足以將其添加到鏈上?) 如果這個門檻很高,那么在只有非常少數驗證者在線的時候分片的功能會停滯。如果這個門檻過低 (或是某種動態機制,例如按照最近在線驗證者數量的比例),那么攻擊者可以嘗試迫使節點下線來提高他們自己所占的在線驗證者比例,從而進行攻擊行為。

在抗量子攻擊方面,DAS 比委員會機制稍容易些 (可能需要后量子聚合簽名)。

有了數據可用性抽樣還需要委員會機制嗎?

如果只借助 DAS 可能又會產生以下幾個問題:

DAS 是一個尚未經過測試的新技術,其核心部分 (參見此處) 其實去年才開發完成。因此在 DAS 崩壞或是開發時間意外延長,使用委員會提供保障是可取的。

DAS 的延遲比委員會高。

DAS 的極端情況更多,委員會可以協助解決。一個例子就是在僅使用 DAS 機制的系統中,很難避免信標區塊提議者最早發起 DAS 請求以驗證 blob 的可用性。

這會增加攻擊者發布不可用 blob 并僅對提議者的請求進行合響應的風險。這不會導致網絡的其他節點接受不可用的 blob,但可能會使得其他攻擊更為容易,使誠實提議者構建的信標區塊被拒絕并從主鏈上被分叉出去。委員會可以對這一點進行補救。

委員會機制的向前兼容性更強,使得在將來能在分片中加入執行功能。

數據可用性的重要性?挑戰又何在?

這已經在別處討論過了,篇幅有限我就不貼到此處,但我建議閱讀:

A note on data availability and erasure coding (對數據可用性最初的介紹)

聲音 | V神:郵箱Vitalik@butterin.me不是我的:以太坊創始人V神(Vitalik Buterin)發推表示,“Vitalik@butterin.me不是我的,任何由這個郵箱發出的郵件都是騙子所為。我的所有郵箱地址都是.com或者.org這兩個域名。”[2018/11/1]

Alberto Sonnino、Mustafa Al-Bassam 和 Vitalik Buterin 聯合發表的論文對相關概念進行了擴展

The Dawn of Hybrid Layer 2 Protocols 對數據可用性中的博弈論進行了論述

Base Layers and Functionality Escape Velocity,基于上述概念對數據擴容性部分進行了描述

The Data Availability Problem (Ethereum Silicon Valley Meetup),以視頻形式對數據可用性問題進行了討論

有一點需要明確,BitTorrent 和 IPFS 以及類似的系統并沒有解決數據可用性問題。盡管 BitTorrent 是很好的可擴容的數據發布技術,但它不能就是否有可用的數據達成共識,這為一種“極端案例”攻擊提供了可能性,在某條數據發布時,節點之間可能發生分歧,使得混合型二層協議無法發揮效用。為了就數據可用性達成共識,需要使用本文檔中描述的更強大的技術。

分片如何在 P2P 層上運作?

為了達到分片的擴容性目的,我們需要一個 P2P 系統,這樣就無需每個節點都下載所有數據。所幸我們在階段 0 已經有了一種 P2P 層分片形式。具體來說,有 64 個子集已經用于證明聚合。每個驗證者只需要存在于主要的“整體子網” (global subnet) 和他們自己的證明聚合子網,而無需從其他 63 個聚合證明子集獲取任何數據。

在委員會 + DAS 型分片中,我們將其擴展為“網格”架構,有 2048 個水平子集子網 (horizontal subnets),即每 epoch 的每個分片-slot對中存在一個子集,以及 2048 個垂直子網 (vertical subnets),即每個 blob 中的每個索引存在一個子集。

在每個 slot 中,我們每個分片都會選出一個提議者。每個提議者都有權提議一個 blob:一個最大為 512 kB 的任意數據塊 (我們可以將其理解為約 512 字節的“樣本”集合),以及糾刪編碼擴展和額外的證明,以便對 blob 中的每個部分進行獨立驗證。

Structure of a blob blob 的結構

一個 blob 的“主體”結構包括原始數據、擴展數據以及證明 (如果需要的話,為了提高數據效率,可以省略擴展數據,因為接收 blob 的每個節點重建它的速度都相對較快)。

Blob 的“頭部”包含其相應的 Kate 承諾,以及其他一些數據 (slot、分片和長度證明) 以及提議者的簽名。

Blob 的廣播過程

當一個 blob 被廣播時,其頭部會被廣播到整體子網 (global subnet),主體部分則會被廣播到相應 slot 和分片 ID 的水平子網。

在實際情況中,會存在 2048 個水平子網,以使每個 epoch 中的每個分片-slot對存在對應的一個水平子網。這樣做是為了確保每個驗證者都可以加入一個水平子網,他們將僅接收到到其所處委員會的相應的 blob (不包括他們參與抽樣的少量垂直子網)。

每個驗證者都需要加入以下子網:

整體子網 (Global subnet)

水平子網 (horizontal subnet),對應其所處的分片-slot對 (即委員會)

垂直子網 (vertical subnet),對應其分配到的索引 (每個驗證者使用私密種子進行計算)

廣播區塊

Blob 提議者可以將樣本分發到所有子網,但不必成為子網的一部分。此過程如下:

發布:提議者在正確的水平子網中發布 blob,每個樣本附帶一個證明

直接樣本分發:水平子網中的其他參與者將區塊發布到他們所在的每個垂直子網中

間接樣本分發:提議者向對等節點公布幾個其所在的垂直子網。因此,水平子網中的每個參與者還可以查看其對等節點所在的垂直子網,并向這些對等節點廣播相應的區塊

假設數據塊大小為 512 字節,且數據 blob 最大為 512 kB (除去糾刪編碼),在包含糾刪編碼時約為 1 MB,因此存在 2048 個垂直子網。如果每個節點存在于 15 個私密的垂直子網,5 個公共垂直子網并且有 50 個對等節點,假設在最壞情況下每個水平子網 (僅委員會) 中有128個成員,則單單是子網成員將直接分發到 128 * 20 = 2560 個子網(除去冗余發布后約為 1461),如果加上對等節點,將增加到 128 * 4 * 50 = 25600 個子網。

請注意,從理論上講,惡意區塊提議者有可能在不發布完整區塊的情況下將樣本發布到垂直子網。為了解決這種情況,我們補充了一個過程,其中未完整發布的區塊 (意味著 50% 及以上可用,但不是 100% 可用) 能夠進行“自我修復”。該過程包括三個基本步驟:

1. 反向分發:與上述分發過程相同,只是在這種情況下,垂直子網上的對等節點將樣本從該垂直子網上傳播到與該樣本所屬 blob 相對應的水平子網。

2. 重構:如果水平子網中有 1024 及以上個樣本 (或者通常來說樣本總量的一半),任何人都可以重構整個 blob,然后向水平子網發布其重構后的 blob。

3. 分發:重復上述的分發步驟

信標鏈如何工作?

在每個 slot 中,我們為 64 個分片中的每個分片隨機選擇一個提議者。提議者有權創建一個分片 blob,并通過上述過程對其進行廣播,并且將該 blob 的 ShardHeader 廣播到全局子網。ShardHeader 能夠被打包到信標鏈上的同個 slot 中,也可以包含在同個/下個 epoch 中的任何后續 slot 中。

信標鏈會跟蹤 PendingShardHeader 的對象列表。PendingShardHeader 會存儲:1) ShardHeader 中的關鍵信息 (分片和 slot,該 blob 的承諾及其長度);2) 追蹤隨機選擇的委員會中哪些驗證者在 blob 中簽名的位域 (實際上就是階段 0 已經引進的委員會)。AttestationData 結構擴展為包含一個 shard_header_root,即選定驗證者進行投票的 ShardHeader 的根哈希。如果證明者看不到已分配給他們的分片-slot對的有效且可用的分片 blob,則他們也可以對空的根哈希進行投票。

如果 ShardHeader 得到了委員會中 2/3 驗證者的證明,就會立即得到確認。如果在下一個 epoch 結束時,ShardHeader 得到委員會的支持比其他任何 ShardHeader 更多的支持,則在該 epoch 結束時進行確認。

分叉選擇規則

分叉選擇規則發生了改變,以便僅在該區塊中確認所有 blob 或其祖先都通過了可用性檢查的情況下,該區塊才有效。這稱為緊密耦合 (tight coupling):如果一條鏈指向 (已確認) 某個無效 blob,則整條鏈都被視為無效。這是與“側鏈”結構的主要區別:在側鏈中,側鏈可能會失效,而主鏈仍然有效。

這里有對緊密耦合的進一步探索,以及為什么它是有價值。

驗證者數量較低的情況

如果驗證者少于 262144 個(32 slots* 64 shards* 128 最小委員會規模),那么我們不再為所有分片選擇一個提議者,而是為一個有限的子集選擇一個提議者,循環遍歷這些分片。比如說,如果有 32 * 128 * 50 個驗證者,在 slot N 的起始分片為 0,則 slot N 將為分片 0-49 分配一個提議者,slot N + 1 將為分片 50-63 和 0-35 分配一個提議者,slot N + 2 將為分片 36-63 和 0-21 分配提議者,依此類推。這樣做是為了確保即使在參與度較低的情況下,委員會的規模仍然足夠。

分片數據的 gas 費

添加了一種類似于 EIP-1559 的機制,按字節計費分片數據,并對價格進行了調整:如果區塊的平均容量超過了 50%,則提升費用,反之則降低。因此,指標是 50% 的平均區塊大小。

安全假設

僅支持數據 blob 的分片之所以強大,是因為與其他分片方案相比,它對安全性假設的依賴性很低。尤其是它避免了誠實的大多數假設 (因為 DAS 可以檢測到由大多數發布的不可用 blob) 和時間假設 (與早期的 DAS 機制不同,其使用的是 Kate 承諾而非欺詐證明,因此不依賴于欺詐證明需要極快被廣播的假設)。

惡意的 51% 聯盟可以對 blob 進行審查,但是在非分片鏈中也可以進行 51% 審查。

主要的新假設是“誠實的少數 DAS 假設”:存在足夠多的節點樣本,攻擊者必須要發布區塊中一半以上的內容。如果一個 blob 中有 2048 個樣本,則需要恢復 1024 個樣本 (考慮到某些客戶端將對相同的點進行抽樣,因此 2048 * ln(2)~= 1419),并且每個客戶端都進行 20 個采樣,則如果每個分片有約超過 70 個客戶端在進行抽樣的話就可以認定系統是安全的。

向前兼容性

僅支持數據 blob 的分片設計與以后在分片中添加執行的許多方案具有向前兼容性。特別是我們可以對該方案進行修改以使 blob 包含前狀態和后狀態根,我們還可以使用欺詐證明或 ZK-SNARK 來驗證 blob 中的狀態轉換是否正確。注意,無論選擇哪種方法,確保分片執行的正確性都不依賴于任何誠實大多數假設。

Github PR 鏈接

https://github.com/ethereum/eth2.0-specs/pull/2146

Tags:BLOSLOTVITLOTblockchain錢包下載Alphaslotcurriculum-vitaeFLOT價格

幣安app官網下載
BTC 與 ETH、DOT 價格相關性超 80%?_DEFI:加密貨幣市場分析報告

分析過去30天比特幣和山寨幣價格之間的相互依存關系。在2021年1月的第一周內,比特幣價格同比增長414%,突破38000美元。飆升的部分原因是由機構投資者和廣大散戶的興趣增加引發的.

1900/1/1 0:00:00
Cactus Custody正式推出DeFi連接器以促進機構客戶對DeFi的應用_UST:justice幣值得投資嗎

去中心化金融(DeFi)項目在2020年11月的總鎖定價值(Total Locked Value)達到了136.2億美元的歷史新高。這表明DeFi對廣大用戶以及機構客戶的吸引力正在不斷擴大.

1900/1/1 0:00:00
金色觀察 | 美國民主黨拿下參眾兩院控制權 對比特幣意味著什么?_比特幣:加密貨幣行情

據美聯社7日報道,在美國國會參議院最后兩個席位的改選中,民主黨候選人戰勝了共和黨一方,拿下兩個關鍵席位。這場勝利讓民主黨時隔6年重新控制參議院,也讓民主黨自2011年以來首次控制國會參眾兩院.

1900/1/1 0:00:00
中國經濟導報:央行數字貨幣核心特性是法定性和數字性_BDC:數字人民幣7月28日全國發行

近日,中國人民大學財政金融學院黨委副書記、國際貨幣研究所副所長宋科在CMF宏觀經濟熱點問題研討會上發布了CMF中國宏觀經濟專題報告.

1900/1/1 0:00:00
Cardano超越Polkadot成為最大質押網絡_CARD:cardano幣五個階段

就質押總價值而言,Cardano 已經超越 Polkadot,成為最大的 PoS 網絡。在過去一周里,Cardano 經歷了質押熱潮,這可能是其價格上漲 80% 的結果.

1900/1/1 0:00:00
美「國會山報」罕見發文:比特幣正成為一種主流替代資產類別_比特幣:加密貨幣

北京時間1月8日凌晨,比特幣價格突破4萬美元創下歷史新高,美國最大媒體之一《國會山報》罕見發文闡述比特幣。2021年已經過去一周,但比特幣依然沒有停下上漲的步伐.

1900/1/1 0:00:00
ads