2018年3月以太坊的擴充套件現狀

買賣虛擬貨幣

從2018年3月8日到10日,來自世界各地的以太坊專業人士、研究人員、投資者和愛好者湧入巴黎來參加以太坊社羣會議(EthCC)。

EthCC 是由一家法國的非盈利組織 Asseth 籌備組織的。Asseth 自2016年初以來,一直在推廣和分享以太坊及其生態系統方面的知識。

會議一共有超過800人參加(當然咯,我也是!)。

-關於“擴充套件 EthCC ”的最後一次講座中的人數指標-
在三天的會議期間舉行了超過100個講座,主題範圍從管理、安全和隱私到 DApp 開發、遊戲和去中心化交易等。如果我仔細描述每一個講座的話,這篇文章就會太長了。所以既然我們在 Loom Network 的關注點在於可擴充套件性,在這篇文章中,我們將重點介紹 EthCC 的可擴充套件性講座。
Plasma, Plasma Cash & 分片在第二天, Karl Floersch 展示了 Plasma & 分片的最新進展。這個講座是他上週上傳的解釋Plasma影片的稍微更多細節版本。

這應該是我最喜歡的講座了,主要是由於 Karl 對他描述的概念所表現的能量和熱情。 目前,Plasma是為代幣轉移(ERC20 / Eth)而設計的,但它可以擴充套件到更復雜的代幣,如ERC721或甚至更通用的狀態轉換。

應該明白,Plasma不是一個協議,它是一種設計模式、一種技術。 最主要的要求是Plasma鏈必須(幾乎)像根鏈一樣安全。

Plasma 技術背後的主要安全機制是“ Plasma 出口”,該過程允許參與 Plasma 鏈的使用者停止參與鏈並將他們的資金轉移回根鏈。 每個 Plasma 鏈也由其自己的“ Plasma 操作員”管理。

在使用者在 Plasma 鏈中進行交易並且想要將其資金轉移到主鏈的情況下,他們提交一個“退出交易”(即他們的交易歷史的默克爾(Merkle)證明,以證明他們擁有一定數量的資金)。 那一刻,就會產生一個“挑戰期”。

挑戰機制在大多數鏈下解決方案中都能看到。 從本質上講,你允許任何人透過提交證明你的宣告無效的證據(在 Plasma 中這可以是交易歷史的 Merkle 證明,在支付通道中這可以是來自另一方的簽署訊息)來挑戰你的宣告。

另外,在進行可能會受到挑戰的交易時,你還需要附加一筆小額獎金,以激勵人們在如果他們認為你的行為是惡意的時候挑戰你。 這就像你試圖偷東西,並說“如果你能抓到我,我會付你5美元”。

在正常情況下,如果 Bob 想要將5個 PETH(Plasma ETH)轉移回根鏈,他會提交一個“退出交易”(加上賞金作為抵押品),如果它沒有被挑戰,Bob 就可以在根鏈領取 5ETH。 如果 Bob 的“退出交易”成功受到挑戰,它將被取消,挑戰者將獲得賞金。

-Alice 注意到 Sam 試圖退出並挑戰他。 在這個例子中,Sam 的退出是具有欺詐性的,因此它被取消了,以及 Alice 收到了 Sam 的抵押品-
更危險的情況是,當 Plama 操作員想要退出他們的鏈。 下面所描述的攻擊向量圖涉及 Plasma 操作員開發一個區塊,獲得任意數量的 PETH,然後嘗試退出,並將所有ETH鎖定在自己的智慧合約中。 在這個例子中,Sam 和 Alice 的 PETH 比 Plasma 操作員的 PETH 更早鑄造。

為了“榨乾” Plasma 合約,如果 Plasma 操作員提交“退出”,Sam 和 Alice 注意到瞭然後他們也提交“退出”。 較早的交易會首先被處理,這意味著他們可以首先安全地將他們的 PETH 兌換為 ETH,然後當 Plasma 操作員的“退出”得到處理時,它是無效的,因為合約現在是空的了。

Karl 講座的第二部分是 Plasma Cash,將在下面 Vitalik 的講座中介紹。

最後一部分是關於分片,0期和1期。

分片0期:
無硬分叉
驗證經理合約與一組分片驗證程式,最多100個以太坊分片以及資料可用性保證

分片1期:
帳戶抽象化 [1] [2] [3]
eWASM

如上所述,分片中有3種實體:
使用者:傳送交易的實體
區塊提議者:計算狀態轉換以及提議區塊
驗證者:驗證區塊以及確保資料可用性

想了解有關提議區塊的更詳細描述,請觀看 Karl 的講座,你會喜歡的。

Minimal Viable(最小可行)Plasma的現狀

David Knott 介紹了 Plasma 的 UTXO 模型。 與比特幣類似,UTXO 模型涉及一個具有未支出輸出的交易總和的使用者,以及組成餘額的 未支出輸出交易(UTXO) 的總和。 這在試圖證明時效率不高,因為使用者可能有成千上萬的UTXO,這會增加證據的大小。 在這種情況下,透過使用者將所有的 UTXO 傳送給自己,然後將其壓縮為一個,來完成模擬帳戶的工作。

當使用者在 Plasma 合約中存入(鎖定)ETH 時,會為此金額生成一個 UTXO。 然後,使用者可以在 Plasma 鏈上進行儘可能多的交易,並且享受快速確認和低費用的好處。 當他們想要退出時,他們將他們的 UTXO 提交給根鏈的合約,並取回他們鎖定的 ETH。

這樣設計的目標是讓 Plasma 鏈的 Plasma 鏈可以擁有不一樣的特性。安全性將透過與法院類似的機制來維持。 在發生爭議的情況下,將呼叫下一級許可權,直到爭議在最壞情況下得到根鏈的最終解決。

Plasma Cash

最後,Vitalik Buterin在他的“驚喜”講座中揭曉了 Plasma Cash — — “更少每使用者資料檢查的Plasma”。與此同時,由於房間完全爆滿了,Karl 在外面做了一個即興的講座,你可以在這裡看。這個講座也是 ethresear.ch論壇正在進行的討論 的現場版本。

本質上來說,Plasma Cash是具有一個以下修改的Plasma版本 [1]:
1.每一單筆存入都相對應有一個唯一的幣ID;代幣無法分割也無法合併。
2.我們不是按照txindex的順序將交易儲存在二進位制 Merkle 樹中,而是要求它們儲存在稀疏簡單的 Merkle 樹或 Patricia 樹中,索引是所用幣的ID。

這為幣提供了一些不可互換的屬性,從而可以最佳化其歷史證明。 透過這種結構,使用者只需要驗證他們正在觀看的幣的歷史記錄(Merkle 路徑,遵循 UTXO 模型)。與必須驗證所有幣的整個交易鏈相比,這允許了高效的證明。

狀態通道

我將重點對狀態通道領域的三個主要參與者進行比較:Funfair、SpankChain 和 Raiden Network。

Funfair & Fate 通道

由於這是一個Bo Cai的用例,因此它需要有一個隨機性來源。 當玩家與Du 場之間的支付通道開放時,RNG 將由玩家和Du場播種,從而確保有一個更安全的熵源。 Fate 通道目前是閉源的,Jez將其描述為保留競爭優勢的手段。

FunFair 可以做到“變成完全狀態通道”,這與 SpankChain 的可以進行任意狀態轉換(不同於 Raiden 的僅用於支付)的狀態通道類似。

它們需要1筆交易開通通道,需要1筆來結算。 任何數量的中間交易都發生在鏈下。Fate 通道“生命”也很短暫,意味著它們僅持續一局遊戲的時長。

SpankChain & 通用化狀態通道

Ameen 概述了 SpankChain 的生態系統,然後 Nathan Ginnever 對 SpankChain 的狀態通道實現中做了深入的講解。 通用化狀態通道和“反事實例項化”是由 L4 和 Counterfactual 創造的術語。

其概念就是,參與狀態通道的雙方簽署並分享一個可以隨時被部署到區塊鏈的智慧合約的位元組碼。隨時可以拉動開關的能力使任何不誠實的行為無利可圖,而且足以使雙方都在無需部署合約的情況下,遵守合約規則。

這允許在兩個客戶端按預期行事的情況下進行零鏈上交易。

如果出現了挑戰,情況就不同了:

債券經理合約負責開啟和關閉通道。 它持有結合的 ETH/代幣 以及由鏈下客戶端詮釋的子通道關閉時的最終狀態所決定的餘額。

Raiden Network & 支付通道

Lefteris Karapetsas 關於 Raiden Network 的講座是他們進展和路線圖的最新訊息。你可以把 Raiden 想作是以太坊的 Lightning Network。

執行 Raiden 需要電腦執行以太坊節點並時刻保持線上。這是件困難的事情,因為首先低效能的 IoT(物聯網)裝置就無法執行以太坊節點。此外,時刻保持線上還因為網路覆蓋率和能源上的限制而不可行。

可用性問題依然存在,例如移動客戶端無法執行 Raiden 節點。 定位低功耗裝置時,還需要額外開銷來增加適當的安全性。 當前可用的通訊協議(如 whisper)既不可擴充套件也沒有足夠低的潛伏期給 Raiden,所以導致它們要使用 Matrix。

他們將程式碼重構為多個儲存庫,你可以在 Raiden 的Github上找到。 根據從 μRaiden 學到的,新的智慧合約更加註重可讀性、安全性和 gas 最佳化。

Minimal Viable Product(最小可行產品)的每個模組即將完成,經過在測試網路上的測試和外部稽覈後,Raiden 將最終釋出到主網。 如果你是一名開發人員,這裡有大量文件,你可以透過分叉 Raiden 的任何儲存庫並提交合並請求(PR)來為 Raiden 作出貢獻。

下圖應該可以給你提供一個每種狀態通道解決方案之間的直觀比較:


經過驗證的鏈下計算我覺得關於這方面的討論還不夠。 Oraclize 在任何外部資料來源(例如網路API)和區塊鏈應用程式(如以太坊方面的智慧合約)之間提供安全的認證通道 [1]。 這可以進一步擴充套件到鏈下解除安裝計算資源,但仍然能夠花費60.000 gas驗證其在鏈上的有效性。

Oraclize 在 Devcon3 講座中對其進行了進一步描述。 你可以在鏈下執行任何 Solidity 函式,透過 Oraclize 獲得結果並驗證其真實性。 如果證明透過了,你就節省了很多gas,否則你只能在鏈上執行交易(這讓我想起了 Truebit )。

講座也有提及關於如何使用 Oraclize 來增強支付通道,但是沒有深入描述。

Casper的“建設修正版”,從二元共識到分片

Vlad 的講座和研究集中於建立明確定義、且可以“透過建設來修正 ”的協議。 這個概念有點與直覺相悖。 傳統的方法是首先建立協議,然後再對其進行分析。而 CBC 是先進行分析,然後再建立協議。

“透過建設進行修正”的方式:
1.正式地但僅對協議的部分詳細說明
2.定義協議必須滿足的屬性和證明
3.衍生協議時應增加經過驗證可滿足的條款

目標是使對協議正確性的證明成為幾乎微不足道。

在這種情況下,定義一組數學規則(一些自動機理論可能會在這部分中幫助到你),然後根據這些規則設計協議。

Vlad的講座從定義規則和術語(如共識安全)開始:

如果兩個狀態 σ1和 σ2 具有共同的未來協議狀態 σ3,則透過使用 σ1 和 σ2 之間的前向安全性以及 σ3 和 σ2 之間的後向一致性,在 σ1 處做出的所有決策將與在 σ2 處做出的決策一致。 這將使 σ1 與 σ2 具有共識安全。

關於共識安全的更深入的解釋,請參考這篇論文的定理1。

最後,在講座中討論的分片部分,他描述了合併區塊,這可以被認為是分片之間共享歷史的“檢查點”。

我強烈推薦你在這裡觀看講座(幻燈片),閱讀CBC論文,並觀看 Vlad 在以太坊柏林聚會上關於 CBC 協議的其他講座。因為這仍然處於研究階段,所以還沒有主網的預計釋出日期。

雖然跟上 Vlad 的講座思路有些困難,而且往往需要全神貫注地重新觀看,但我覺得Vlad 的講座內容非常豐富,資訊量很大,所以你應該花時間嘗試理解他的概念。 這是會議中最長的講座。 CBC Casper和協議設計是一個我覺得很複雜的領域,所以我將在未來的單獨一篇文章中嘗試討論它。

那麼Loom Network呢?

就我們對可擴充套件性方向的努力而言,我們正在為使用者構建一個軟體 SDK,以便讓他們能夠構建自己的 DApp 鏈(一種非金融用例的特定側鏈)。 在我們最近的博文中瞭解更多關於 Loom 的 DApp 鏈的資訊:

百萬使用者級DApp-介紹應用程式特定側鏈
DApp鏈:透過側鏈擴充套件以太坊DApps(譯者注:中譯本見文末超連結)

這是一篇很長的博文! 你現在應該對每個可擴充套件性專案的狀態以及進展有更好的概念了。 所有專案都是開源的,所以請去貢獻自己的一份力量吧。

原文連結: https://medium.com/loom-network/the-state-of-ethereum-scaling-march-2018-74ac08198a36
作者: Georgios Konstantopoulos
翻譯: 知乎賬號 LoomNetwork

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;