跳至主要内容
Change page

Plasma 鏈

最後編輯: @Joe-Chen(opens in a new tab), 2024年1月25日

Plasma 鏈是錨定以太坊主網的獨立區塊鏈,其交易在鏈外執行並有自己的區塊驗證機制。 Plasma 鏈有時被稱為「子」鏈,本質上是以太坊主網的縮小複製版, 使用(如樂觀卷軸)來仲裁爭議。

使用默克爾樹可以建立這些鏈的無限堆疊,將父母鏈(包括以太坊主網)的頻寬載荷轉移到 Plasma 鏈。 然而,雖然這些鏈會繼承以太坊的一些安全性(透過詐欺證明),但它們的安全性和效率受多項設計限制的影響。

基本資訊

推薦你先熟悉以太坊的所有基本概念,並大致了解以太坊擴張

何謂 Plasma 鏈?

Plasma 是一個改善公共區塊鏈(如以太坊)可擴展性的框架。 如原始版 Plasma 白皮書(opens in a new tab)中所述,Plasma 鏈建置在另一個區塊鏈(稱為「根鏈」)之上。 每個「子鏈」都是從根鏈延伸而來,通常由部署於父母鏈上的智慧型合約來管理。

Plasma 合約的功能之一是作為跨鏈橋,讓使用者可以在以太坊主網和 Plasma 鏈之間移動資產。 雖然這讓 Plasma 鏈看似很像側鏈,但不同的是,Plasma 鏈至少某種程度上受益於以太坊主網的安全性, 而側鏈則是完全為自身的安全性負責,與以太坊主網無關。

Plasma 鏈如何運作?

Plasma 鏈的基本組成部分有:

鏈外計算

以太坊目前的處理速度限制約是每秒 15 到 20 筆交易,短期內無法有效地擴張以面對更多使用者。 存在這個問題的原因是,以太坊的共識機制需要大量點對點節點來驗證區塊鏈狀態的每次更新。

雖然以太坊的共識機制對於安全性是必需的,但這並不適用於所有使用案例。 例如,Alice 不需要讓整個以太坊網路來驗證她每天付給 Bob 的咖啡錢,畢竟她跟 Bob 雙方之間已經有一定的信任關係了。

Plasma 鏈假設以太坊主網不需要驗證所有交易。 相反,我們可以在主網外處理交易,讓節點不必驗證每一筆交易。

由於 Plasma 鏈可以最佳化速度和成本,鏈外運算是有必要的。 舉例來說,Plasma 鏈可能(實際上經常如此)使用單一的「營運者」來管理交易的排序與執行。 既然只有一個實體驗證交易,在 Plasma 鏈上處理交易的速度就比以太坊主網快得多。

狀態承諾

儘管 Plasma 鏈在鏈外執行交易,這些交易仍會在以太坊主網的執行層結算,否則 Plasma 鏈也無法受益於以太坊的安全保障。 但如果在最終確定鏈外交易時未能獲知 Plasma 鏈的狀態,那將打破前述安全性模型,並可能導致無效交易氾濫。 這就是為何在 Plasma 鏈上負責產生區塊的營運者,需要定期在以太坊主網上發布「狀態承諾」。

承諾方案(opens in a new tab)是一種密碼學技術,用以在不洩漏給另一方的情況下承諾某個價值或是主張。 承諾就其意義而言是一種約束,一旦做出承諾就無法變更承諾的價值或主張。 Plasma 鏈上的狀態承諾會採用「默克爾根」(源自默克爾樹)的形式,營運者會定期把狀態承諾傳送到以太坊鏈上的 Plasma 合約。

默克爾根為密碼學基元,讓我們得以將大量資訊進行壓縮。 默克爾根(在這一情境下也稱「區塊根」)可以代表區塊內的所有交易。 默克爾根還讓我們可以很容易地驗證,一小份資料是否存在於較大資料集中。 舉例來說,使用者可以透過產生一個默克爾證明,來證明一筆交易有被納入特定區塊中。

默克爾根非常重要,用於把鏈外狀態的相關資訊提供給以太坊。 我們可以把默克爾根想像成「暫存點」:營運者表示,「這是 Plasma 鏈在時間點 x 的狀態,以此默克爾根為證」。 營運者承諾 Plasma 鏈的目前狀態,並附上一個默克爾根,也就是所謂的「狀態承諾」。

進入與退出

以太坊的使用者如果想要享受到 Plasma 的好處,會需要一個機制來在以太坊主網與 Plasma 鏈之間轉移資金。 我們不能把以太幣隨意地傳送到 Plasma 鏈上的地址,不過由於兩個鏈並不相容,所以交易結果不是失敗就是資金消失。

Plasma 鏈使用一個在以太坊上執行的主合約來處理使用者的進入和退出。 這個主合約也負責追蹤狀態承諾(上文提到的),並依據詐欺證明來懲罰不誠實的行為(我們等等會詳談)。

進入 Plasma 鏈

若要進入 Plasma 鏈,Alice(使用者)會需要存入以太幣或是任意 ERC-20 代幣到 Plasma 合約。 Plasma 上負責監視合約存款的營運者,會建立一筆與 Alice 的首筆存款等額的資產並發放到她在 Plasma 鏈上的地址。 Alice 需要在子鏈上證明有收到這筆資金,接著就可以使用這些資金進行交易。

退出 Plasma 鏈

退出 Plasma 鏈則因為各種原因,比進入時複雜了許多。 最大的原因是,雖然以太坊有關於 Plasma 鏈狀態的資訊,但以太坊並無法驗證那些資訊是否真實。 惡意使用者可以不實地宣稱(如「我有 1000 枚以太幣」),透過提供虛假證明來支持其謊言並逍遙法外。

為了避免惡意提款,「挑戰期」應運而生。 在挑戰期間(通常為一週),任何人都可以使用詐欺證明,對一個提款請求進行挑戰。 如果挑戰成功,提款請求就會被拒絕。

不過,使用者通常都是誠實的,對其擁有資金的宣稱也是正確的。 延續 Alice 的情境,她會透過向 Plasma 合約提交一筆交易,在根鏈(以太坊)上發起提款請求。

她還必須提供一個默克爾證明,驗證 Plamsa 鏈上有一筆建立 Alice 資金的交易已被納入到區塊中。 這對於 Plasma 的迭代實作來說很有必要,如 Plasma MVP(opens in a new tab),它採用的是未花費交易輸出 (UTXO)(opens in a new tab) 模型。

其他的實作方案如 Plasma Cash(opens in a new tab),將資金視作非同質化代幣,而非未花費交易輸出模型。 在這一實作方案中,提款時需要附上 Plasma 鏈上代幣的擁有權證明。 這可以透過提交兩筆包含代幣的最新交易,及一份默克爾證明,驗證這兩筆交易有被打包進區塊。

使用者也需要在提款請求中加入保證金,來擔保其行為誠實。 如果有挑戰者證明 Alice 的提款請求是無效的,她的保證金會被罰沒,其中一部分保證金會給挑戰者作為獎勵。

如果直至挑戰期結束,仍沒有任何人提供詐欺證明,Alice 的提款要求就會被視為有效,她便能把存款從以太鏈上的 Plasma 合約中取回。

爭議仲裁

與任何區塊鏈一樣,Plasma 鏈需要一種機制來確保交易的完整性,防範參與者的惡意行爲(例如,雙重消費資金)。 爲此,Plasma 鏈使用詐欺證明來對有關狀態轉換有效性的爭議進行仲裁並懲罰不良行爲。 詐欺證明可作爲一種機制,Plasma 子鏈可以透過它向父母鏈或根鏈提出投訴。

詐欺證明只是聲明特定的狀態轉換無效。 例如,如果使用者 Alice 嘗試兩次消費同一資金。 也許她在與 Bob 的交易中消費了未花費交易輸出 (UTXO),並希望在另一筆交易中消費相同的未花費交易輸出(但現在是 Bob 的了)。

爲了防止提款,Bob 將透過提供 Alice 在之前交易中消費上述未花費交易輸出 (UTXO) 的證據以及該交易已納入區塊的默克爾證明,來建構詐欺證明。 在 Plasma Cash 中使用相同的程序 — Bob 需要提交證明,證明 Alice 先前已經傳送了她嘗試提取的代幣。

如果 Bob 挑戰成功,Alice 的提款請求將被取消。 然而,這種方法依賴於 Bob 有能力監視鏈上的提款請求。 如果 Bob 離綫,一旦挑戰期結束,Alice 就可以處理這筆惡意提款。

Plasma 鏈中的大規模退出問題

當大量使用者試圖同時從 Plasma 鏈提款時,就會出現大規模退出問題。 出現該問題的原因與 Plasma 的最大問題之一有關:資料不可用性

資料可用性是驗證所提議區塊的資訊是否已實際發佈在區塊鏈網路上的能力。 如果生產者自己發佈區塊但保留用於建立區塊的資料,則該區塊是「不可用的」。

如果節點要能夠下載區塊並驗證交易的有效性,區塊必須是可用的。 區塊鏈透過迫使區塊生產者在鏈上發佈所有交易資料來確保資料可用性。

資料可用性還有助於保護建構於以太坊基礎層之上的鏈外擴張協議。 透過迫使這些鏈上營運者在以太坊上發佈交易資料,任何人都可以藉由構建引用正確鏈狀態的詐欺證明,來挑戰無效區塊。

Plasma 鏈主要儲存與營運者的交易資料,並且不在主網上發佈任何資料(即除了定期狀態承諾之外)。 這意味著如果使用者需要建立詐欺證明來挑戰無效交易,他們就必須仰賴營運者提供交易資料。 如果該系統正常運作,則使用者始終可以使用詐欺證明來保護資金。

當進行惡意行爲的是營運者而不僅僅是使用者時,問題就開始了。 由於營運者完全控制區塊鏈,他們更有動力更大規模地推進無效狀態轉換,例如竊取 Plasma 鏈上屬於使用者的資金。

在這種情況下,使用經典的詐欺證明系統是行不通的。 營運者可以簡單地進行無效交易,將 Alice 和 Bob 的資金傳送到其錢包中,並隱藏建立詐欺證明所需的資料。 這是可能的,因爲營運者不需要向使用者或主網提供資料。

因此,最樂觀的解決方案是嘗試從 Plasma 鏈上「大規模退出」使用者。 大規模退出減慢了惡意營運者竊取資金的計劃,並為使用者提供了一定程度的保護。 提款請求根據每個未花費交易輸出 (UTXO)(或代幣)的建立時間排序,以防止惡意營運者搶先交易誠實的使用者。

盡管如此,我們仍然需要一種方法來驗證大規模退出期間提款請求的有效性,以防止機會主義個人在處理無效退出的混亂中獲利。 解決方案很簡單:要求使用者發佈最後一個有效的鏈狀態來退出其資金。

但這種方法仍然存在問題。 例如,如果 Plasma 鏈上的所有使用者都需要退出(在惡意營運者的情況下是可能的),Plasma 鏈的整個有效狀態就必須立即轉儲到以太坊的基礎層。 由於 Plasma 鏈可能為任意大小(高吞吐量 = 更多資料)和以太坊處理速度的限制,這不是一個理想的解決方案。

儘管退出游戲在理論上聽起來不錯,但現實中的大規模退出可能會引發以太坊本身的全網路擁塞。 除了損害以太坊的功能之外,協調不善的大規模退出意味著使用者可能無法在營運者耗盡 Plasma 鏈上的每個帳戶之前提取資金。

Plasma 的優勢和劣勢

優勢劣勢
提供高吞吐量和低單位交易成本。不支援一般運算(無法執行智慧型合約)。 僅透過特定運用邏輯支援基本的代幣轉移、交換及其他幾種交易類型。
適合任意使用者之間的交易(若雙方使用者都處於 Plasma 鏈上,則不會產生任何開銷)需要本人定期監看網路(活躍性要求)或委託他人監看,以保障資金安全。
Plasma 鏈可以適應與主鏈無關的特定使用案例。 包括企業在内的任何人,都可以自訂 Plasma 智慧型合約,以提供可在不同情境下運作的可擴展基礎設施。仰賴一或多個營運者來儲存資料並根據要求提供此資料。
透過將計算和存儲遷移到鏈外來減少以太坊主網的載荷。提款可被延遲數日以容許挑戰。 對於同質化資產,流動性提供者可以緩解這種情況,但存在相關的資本成本。
如果太多使用者同時嘗試退出,以太坊主網可能會擁塞。

Plasma 與二層網路擴張協定

雖然 Plasma 曾被視爲對以太坊有用的擴張解決方案,但後來被棄用,由二層網路 (L2) 擴張協定所取代。 二層網路擴張解決方案解決了 Plasma 的幾個問題:

效率

零知識卷軸為在鏈外處理的每批交易的有效性產生加密證明。 這可防止使用者(和營運者)推進無效的狀態轉換,因而不再需要挑戰期和退出游戲。 這也意味著使用者不必透過定期監視鏈來保護其資金安全。

支援智慧型合約

Plasma 框架的另一個問題是無法支援以太坊智慧型合約的執行(opens in a new tab)。 因此,Plasma 的大多數實作主要是用於簡單的支付或 ERC-20 代幣交換。

相反,樂觀卷軸與以太坊虛擬機相容,並且可以執行以太坊原生智慧型合約,使其成爲擴張去中心化應用程式的實用且安全的解決方案。 類似地,建立以太坊虛擬機的零知識實作 (zkEVM)(opens in a new tab) 正在計劃中,使零知識卷軸能夠處理任意邏輯並執行智慧型合約。

資料不可用

如前所述,Plasma 存在資料可用性問題。 如果惡意營運者在 Plasma 鏈上推進了無效轉換,使用者將無法挑戰它,因爲營運者可以扣留建立詐欺證明所需的資料。 卷軸迫使營運者在以太坊上發佈交易資料,允許任何人驗證鏈的狀態並在必要時建立詐欺證明,從而解決了該問題。

大規模退出問題

零知識卷軸和樂觀卷軸都以不同方式解決了 Plasma 的大規模退出問題。 例如,零知識卷軸依賴加密機制來確保營運者在任何情況下都無法竊取使用者的資金。

類似地,樂觀卷軸對提款施加了延遲期,在延遲期内任何人都可以發起挑戰並阻止惡意的提款請求。 儘管這與 Plasma 類似,但區別在於,驗證者可以存取建立詐欺證明所需的資料。 因此,卷軸使用者無需瘋狂地「爭先恐後」般遷移到以太坊主網。

Plasma 與側鏈和分片有何不同?

Plasma、側鏈和分片技術有一定的相似,因爲它們都以某種方式連線到以太坊主網。 然而,連線到以太坊主網的級別和强度有所不同,影響這些擴張解決方案的安全屬性。

Plasma 與側鏈

側鏈是一種獨立運行的區塊鏈,透過雙向跨鏈橋連線到以太坊主網。 跨鏈橋讓使用者可以在兩條區塊鏈之間交換代幣,以便在側鏈進行交易,降低了以太坊主網上的擁塞並增加了可擴展性。 側鏈使用獨立的共識機制,並且它們通常比以太坊主網小得多。 因此,將資產橋接到這些區塊鏈會增加風險;由於側鏈模型中缺少從以太坊主網繼承的安全保證,在側鏈受到攻擊時,使用者會承擔資金損失的風險。

相反,Plasma 鏈的安全性來自主網。 這使其明顯比側鏈更安全。 側鏈和 Plasma 鏈都可以使用不同的共識協定。但區別是,Plasma 鏈在以太坊主網上發佈每個區塊的默克爾根。 區塊根是小段的資訊,可用於驗證在 Plasma 鏈上進行的相關交易的資訊。 如果 Plasma 鏈受到攻擊,使用者可以使用適當的證明來安全地將資金提取回主網。

Plasma 與分片

Plasma 鏈和分片鏈都會定期向以太坊主網發佈加密證明。 然而,它們的安全屬性有所不同。

分片鏈向主網提交「定序頭」,其中包含有關每個資料分片的詳細資訊。 主網上的節點驗證和執行資料分片的有效性,減少了無效分片轉換的可能性並防止網路上出現惡意活動。

Plasma 有所不同,因爲主網只接收最少量的子鏈狀態資訊。 這意味著主網無法有效驗證子鏈上進行的交易,降低了交易的安全性。

請注意,以太坊區塊鏈分片已經不再包含在開發藍圖中。 它已經被卷軸和 Danksharding 擴張所取代。

使用 Plasma

有多項專案提供 Plasma 實作,歡迎整合到你的去中心化應用程式:

延伸閱讀

知道對你有幫助的社群資源嗎? 請編輯此頁面並新增資源!

這篇文章對你有幫助嗎?