以太坊的擴容問題及解決方案

買賣虛擬貨幣

以太坊開發者很早就意識到以太坊網路擴容是一個值得探討和投入的主題。然而,直到2017年底,擴容性問題才開始顯現:一個名為 CryptoKitties (加密貓)的去中心化應用程式(dApp)造就了大量流量,導致網路產生延遲。除此之外,gas(以太坊區塊鏈合約中執行每項操作所需的費用)的價格也隨著使用者競相進行交易驗證而飆升。

雖然這個故事現在已經過度報道和消費,但 CryptoKitties 事件確實揭示了一個現實:目前以太坊網路的容量狀態可能還沒有為成功的 dApp 帶來的巨大流量做好準備。速度緩慢和成本不穩定的原因使人們對以太坊平臺和去中心化應用程式敬而遠之。DApp 開發者正致力於首個能真正實現廣泛採用的應用程式,所以開發者必須持續攻克區塊鏈擴容問題。

擴容性解決方案面臨“三元悖論”

圖源 ConsenSys

區塊鏈技術中有這樣一個理論:網路可以同時支援以下的兩種屬性,即安全性、去中心化和擴容性。此即“三元悖論”,在這個現象越來越為人熟知時,也已經成為了以太坊開發者要面臨的挑戰,因為開發者想要在提升擴容性以供更廣泛的採用和實現時,也能維持區塊鏈的核心特徵(去中心化和安全性)。然而目前有些擴容性解決方案會嚴重影響安全性或者去中心化:

  • 從理論上來說,使用代幣是擴容問題的解決方案之一。這個方案擯棄了所有交易都發生在一條區塊鏈上的想法,採行多個代幣共存但執行於獨立區塊鏈上的模式。透過將執行壓力分佈至其他區塊鏈上使得擴容性得以實現。但是,如此一來每條區塊鏈的節點將會減少,那麼區塊鏈就更容易受到攻擊或產生欺詐行為。因此,使用代幣的解決方案兼顧去中心化和擴容性,但對於安全性卻是捉襟見肘。
  • 擴大區塊容量是另一個解決擴容性問題的理論方案。如果每個區塊的容量增加,所有的節點仍然可以執行各種操作,但是同樣的時間卻可以容納更多的交易。然而,隨著區塊容量增大,需要耗費更高的成本來打包交易,這對於許多礦工來說是難以負擔的。這就可能導致網路將來被一些超級計算機掌控,因為它們擁有足夠驗證每個區塊的資源。由此看來,增加區塊容量能夠保證安全性和擴容性,卻顯著降低了網路的去中心化程度。
我們要如何對以太坊進行擴容,而不影響安全性和去中心化的前提。

目前有四種協議在開發中,以期解決擴容性問題,即分片(sharding)、Plasma和雷電網路,至於第四種協議,Casper,在內容上更為廣泛,但仍然對以太坊甚至是其他區塊鏈網路提供擴容性參考。

分片 Sharding

分片這種擴容方案仍然將所有交易執行在原來的區塊鏈上,因此被稱為“鏈上”方案。上文提到以太坊中的每個節點都需要處理每筆交易,而分片就旨在解決在以太坊網路交易的線性問題。

分片可以讓節點同時並行操作,也就提高了整體區塊鏈的每秒交易處理量。在分片方案下,以太坊網路可以被劃分成多組節點。每組節點構成一個分片,每個分片處理組內的所有交易。這就使得每個分片可以同時處理不同的交易。

在每個分片內部,某些節點扮演了“彙總人”(collators)的角色,定期建立“彙總”(collation),或者說是關於該分片的資訊合集。每個 collation 都會包括以下資訊:

1. 該 collation 所屬分片資訊;

2. 交易完成之前分片狀態的資訊;

3. 交易完成之後分片狀態的資訊;

4. 2/3彙總人的數字簽名以驗證 collation 中的資訊。

在網路中,每個分片中的彙總資訊都會被整合進一個單獨的區塊,然後新增到到以太坊區塊鏈中。也就是說,分片技術使得節點組合處理並驗證交易,但只有彙總資訊會被新增到區塊鏈上。假設有10個分片,每個分片處理5筆交易,那麼下個區塊鏈中的區塊則包含了50筆交易資訊,而不再要求節點按順序處理這五十筆交易。

但是分片技術會伴隨兩個問題。首先,每個分片都必須保證有足夠多的節點才能確保網路的安全性。如果節點過少,那麼2/3的彙總人則有可能進行串通,從而產生惡意行為。其次,兩個分片之間的交易處理難度很高,如果只存在一個分片,則不會產生類似問題,因為它代表了整個區塊鏈。目前的方法還需要詳盡的收據和證明。

Plasma

Plasma是另一種在 “鏈下” 處理交易的解決方案,也就是說,交易並不是在以太坊主網上進行。Plasma使得許多區塊鏈(子鏈)能夠從原來的區塊鏈上分離出來(根鏈)。因此,每條子鏈都能在基於根鏈底層安全性的前提下,獨自處理和維護交易。

透過Plasma,子鏈中的所有計算都由根鏈助推,但是根鏈只需要在某條子鏈中產生爭議的時候親自進行計算。這種方案使得區塊鏈上的所有交易資訊可以由子鏈分擔,從而在速度和效率上達到最優。根據子鏈節點的意願,他們可以撤回交易資訊,並且將交易記錄輸出至根鏈。

這個方案有一個獨特的優點。每個 Plasma 鏈都能制定自己的標準和規範,這意味著不同的子鏈能夠支援針對不同需求的交易(例如隱私性),同時所有的交易都處於同樣的、安全的環境中。

雷電網路

雷電網路也是一種鏈下擴容解決方案,可以使節點之間維護交易記錄而不用請求根鏈驗證每筆交易。兩個節點之間可以開通一個“狀態通道”(state channel),這是使用者間的雙向通道。交易資訊會在兩個節點之間傳遞,並且需要雙方簽名來保證不可篡改性。

雷電網路對於經常性和規律性支付來說十分實用,例如,使用者需要每週支付某公司10美金以獲取某項服務,或是在超市進行定期採購。在兩個節點間記錄並驗證此類交易,而無需調動整條區塊鏈中的節點,如此一來根鏈就可以釋放出巨大的空間。

無論何時,狀態通道中的參與者可以選擇關閉交易,但所有交易的最終結果都會記錄在根鏈上,繼而被包含在下一個區塊中。這意味著,假使連續一年每週支付10美元,區塊中的最終交易記錄是520美元,而非52筆10美元的交易。

雷電網路解決方案有利有弊。問題在於節點只能與他們的“鄰居”交流,也就是說如果節點A和節點B之間開啟了一條狀態通道,節點B和節點C之前也有一條狀態通道,A無法直接向C傳送資金。但是以這種通道形式進行交易可以避免資金被盜取或鎖定。A雖然無法直接轉賬給C,但可以將B作為“中間人”,而B由於受到A和C的限制,也無法竊取資金。

而雷電網路最主要的優點,就是可以大幅降低交易的gas費用。因為與根鏈上的交易相比,發生在節點之間的鏈下交易所需gas成本更低。

Casper

Casper 是一系列共識協議的集合,該協議旨在幫助以太坊從工作量證明 (PoW)轉向權益證明 (PoW)。在工作量證明演算法下,為了解決加密難題挖出新區塊,礦工必須要耗費一定能源。若是正確解決難題,他們就可以獲得獎勵,但這個過程需要大量能源成本(並且由於區塊難度上升,成本還在持續增加)。PoS挖礦確實有燒錢和能源浪費兩大缺陷,目前每年需要花費120億美元來維持工作量證明機制。

在權益證明 (PoS) 中,驗證者會取代礦工在區塊鏈中對區塊進行驗證(驗證取代挖礦)。驗證者透過在某個區塊上質押資產進行驗證,避免了計算難題所需的資源成本。質押數額最高的區塊會被驗證,進而被新增到區塊鏈中。

實質上,驗證者透過在合約中鎖定資金押注某個區塊會被新增到區塊鏈中,直到下一個區塊被加入並且被證明是正確的區塊,他們就會獲得獎勵。如果驗證者施行不正當行為,那麼他們所質押的資金將會被罰沒。

從概念上來看,PoW 到 PoS 的轉變可以防止區塊鏈被惡意攻擊。在 PoW 演算法下,一次失敗的區塊鏈攻擊僅僅使攻擊者損失了時間和資源成本。但在 PoS 演算法下,失敗的攻擊則會直接導致經濟損失,因為他們質押在錯誤區塊中的資金將會被立即罰沒。

Casper 最終的部署將基於該協議的兩個迭代:Casper FFG 和 Casper CBC。這兩個協議將被部署在以太坊上用於網路測試 PoS,並且在演算法過渡完成之前識別潛在問題。

Casper FFG 

(Casper the Friendly Finality Gadget)

Casper FFG 使 Casper 的首個迭代版本,其中區塊依然經由 PoS 演算法挖出。不同的是,每50個區塊就會有驗證者介入測試 PoS 機制。這個“檢查點”會使用 PoS 協議來評估最終確定性。“最終確定性”意指該次操作已經完成且完全不可篡改。在 FFG 中,驗證者質押資金以完成前50個區塊的最終驗證。

譯者注:Casper FFG 由於混合了 PoW 和 PoS 機制,使得主鏈和分片鏈的開發工作中存在大量重複的勞動,因此 FFG 於去年6月被棄置。而在理論上 Casper CBC 更具有可實現性、部署速度會更快,因此 CBC 將會被部署於以太坊2.0中。

Casper CBC

Casper CBC (Correct-by-Construction) 是 Casper 的第二個迭代。通常來說,要部署一個協議需要先正式確定,然後證明其符合所有給定的特性。而 CBC 中的 PoS 協議僅需要部分確定,為了滿足相關屬性再做進一步精細調整。因此,不同於從一開始就有精確的定義,該協議將採用循序漸進的方式進行部署。

那麼 CBC 如何適應過程中可能出現的問題呢?這就需要透過一個被稱為“理想對手”的協議來為 CBC 提出假設、錯誤和協議未來可能面臨的問題。

Casper 系列協議不僅僅囊括了擴容性議題,其中還包括節省能源和提高安全性的考慮。然而,隨著增加區塊所需能源損耗的降低,要實現網路擴容也將更具有挑戰性。儘管 Casper 並不是專門為實現擴容設計的,但仍然會為網路的流量承載能力作出積極貢獻。

譯者注:進一步瞭解 Casper CBC,可閱讀文章《Casper CBC:什麼是共識和確定性?》、《Casper CBC 協議安全性證明》。

結語

值得注意的是,以上這四個方案互不相斥,它們將被全部應用到以太坊2.0的更新中,或多或少地解決以太坊的擴容問題。擴容性問題是近幾年來以太坊開發者的關注焦點。隨著越來越多的 dApp 開發和上線,更完善的擴容性解決方案也會持續出現在我們的視野之中,幫助未來的以太坊將潛力發揮到極致。

免責聲明:

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

推荐阅读

;