Plasma 鏈
頁面最後更新時間: 2026年2月25日
Plasma 鏈是錨定以太坊主網的獨立區塊鏈,其交易在鏈下執行並有自己的區塊驗證機制。 Plasma 鏈有時被稱為「子」鏈,本質上是以太坊主網的縮小複製版, Plasma 鏈使用(類似樂觀卷軸)來仲裁爭議。
使用默克爾樹可以建立這些鏈的無限堆疊,將父母鏈(包括以太坊主網)的頻寬載荷轉移到 Plasma 鏈。 然而,雖然這些鏈會繼承以太坊的一些安全性(透過詐欺證明),但它們的安全性和效率受多項設計限制的影響。
先決條件
您應該對所有基礎主題有良好的理解,並對以太坊擴張有高層次的了解。
何謂 Plasma 鏈?
Plasma 是一個改善公共區塊鏈(如以太坊)可擴展性的框架。 如原始版 Plasma 白皮書中所述,Plasma 鏈建置在另一個區塊鏈(稱為「根鏈」)之上。 每個「子鏈」都是從根鏈延伸而來,通常由部署於父母鏈上的智慧型合約來管理。
Plasma 合約的功能之一是作為跨鏈橋,讓使用者可以在以太坊主網和 plasma 鏈之間移動資產。 雖然這讓它們類似於側鏈,但 plasma 鏈至少在某種程度上受益於以太坊主網的安全性。 而側鏈則是完全為自身的安全性負責,與以太坊主網無關。
Plasma 鏈如何運作?
Plasma 鏈的基本組成部分有:
鏈外運算
以太坊目前的處理速度限制約是每秒 15 到 20 筆交易,短期內無法有效地擴張以面對更多使用者。 存在這個問題的主要原因是,以太坊的共識機制需要許多點對點節點來驗證區塊鏈狀態的每次更新。
雖然以太坊的共識機制對於安全性是必需的,但這並不適用於所有使用案例。 例如,Alice 不需要讓整個以太坊網路來驗證她每天付給 Bob 的咖啡錢,畢竟她跟 Bob 雙方之間已經有一定的信任關係了。
Plasma 鏈假設以太坊主網不需要驗證所有交易。 相反,我們可以在主網外處理交易,讓節點不必驗證每一筆交易。
由於 Plasma 鏈可以最佳化速度和成本,鏈下運算是有必要的。 舉例來說,Plasma 鏈可能(實際上經常如此)使用單一的「營運者」來管理交易的排序與執行。 既然只有一個實體驗證交易,在 Plasma 鏈上處理交易的速度就比以太坊主網快得多。
狀態承諾
儘管 Plasma 鏈在鏈下執行交易,這些交易仍會在以太坊主網的執行層結算,否則 Plasma 鏈也無法受益於以太坊的安全保障。 但如果在最終確定鏈下交易時未能獲知 Plasma 鏈的狀態,那將打破前述安全性模型,並可能導致無效交易氾濫。 這就是為何在 Plasma 鏈上負責產生區塊的營運者,需要定期在以太坊主網上發布「狀態承諾」。
承諾方案是一種密碼學技術,用以在不洩漏給另一方的情況下承諾某個價值或是主張。 承諾就其意義而言是一種約束,一旦做出承諾就無法變更承諾的價值或主張。 Plasma 中的狀態承諾採用「Merkle 根」的形式(源自 Merkle 樹),營運者會定期將其傳送到以太坊鏈上的 Plasma 合約。
默克爾根為密碼學基元,讓我們得以將大量資訊進行壓縮。 默克爾根(在這一情境下也稱「區塊根」)可以代表區塊內的所有交易。 默克爾根還讓我們可以很容易地驗證,一小份資料是否存在於較大資料集中。 例如,使用者可以產生默克爾證明,以證明特定區塊中包含某筆交易。
默克爾根非常重要,用於把鏈下狀態的相關資訊提供給以太坊。 我們可以把默克爾根想像成「暫存點」:營運者表示,「這是 Plasma 鏈在時間點 x 的狀態,以此默克爾根為證」。 營運者正使用一個 Merkle 根來承諾 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) 的方案,將資金表示為非同質化代幣,而不是 UTXO。 在這一實作方案中,提款時需要附上 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 與 Layer 2 擴張協定
雖然 Plasma 曾被視為對以太坊有用的擴張解決方案,但後來已被棄用,轉而採用 Layer 2 (L2) 擴張協定。 二層網路擴張解決方案解決了 Plasma 的幾個問題:
效率
零知識卷軸 會為鏈外處理的每批交易的有效性產生加密證明。 這可防止使用者(和營運者)推進無效的狀態轉換,因而不再需要挑戰期和退出游戲。 這也意味著使用者不必透過定期監視鏈來保護其資金安全。
支援智能合約
Plasma 框架的另一個問題是無法支援執行以太坊智能合約 (opens in a new tab)。 因此,Plasma 的大多數實作主要是用於簡單的支付或 ERC-20 代幣交換。
相反地,樂觀卷軸與以太坊虛擬機相容,可以執行以太坊原生的智能合約,使其成為擴張去中心化應用程式的實用且_安全_的解決方案。 同樣地,目前正在計劃建立 EVM 的零知識實作 (zkEVM) (opens in a new tab),這將允許 ZK 卷軸處理任意邏輯並執行智能合約。
資料不可用性
如前所述,Plasma 存在資料可用性問題。 如果惡意營運者在 Plasma 鏈上推進了無效轉換,使用者將無法挑戰它,因爲營運者可以扣留建立詐欺證明所需的資料。 卷軸迫使營運者在以太坊上發佈交易資料,允許任何人驗證鏈的狀態並在必要時建立詐欺證明,從而解決了該問題。
大規模退出問題
零知識卷軸和樂觀卷軸都以不同方式解決了 Plasma 的大規模退出問題。 例如,零知識卷軸依賴加密機制來確保營運者在任何情況下都無法竊取使用者的資金。
類似地,樂觀卷軸對提款施加了延遲期,在延遲期内任何人都可以發起挑戰並阻止惡意的提款請求。 儘管這與 Plasma 類似,但區別在於,驗證者可以存取建立詐欺證明所需的資料。 因此,卷軸使用者無需瘋狂地「爭先恐後」般遷移到以太坊主網。
Plasma 與側鏈和分片有何不同?
Plasma、側鏈和分片技術有一定的相似,因爲它們都以某種方式連線到以太坊主網。 然而,連線到以太坊主網的級別和强度有所不同,影響這些擴張解決方案的安全屬性。
Plasma vs 側鏈
側鏈是一種獨立運行的區塊鏈,透過雙向跨鏈橋連接到以太坊主網。 跨鏈橋讓使用者可以在兩條區塊鏈之間交換代幣,以便在側鏈上進行交易,從而減少以太坊主網的擁塞並提高可擴展性。 側鏈使用獨立的共識機制,並且它們通常比以太坊主網小得多。 因此,將資產橋接到這些區塊鏈會增加風險;由於側鏈模型中缺少從以太坊主網繼承的安全保證,在側鏈受到攻擊時,使用者會承擔資金損失的風險。
相反,Plasma 鏈的安全性來自主網。 這使其明顯比側鏈更安全。 側鏈和 Plasma 鏈都可以使用不同的共識協定。但區別是,Plasma 鏈在以太坊主網上發佈每個區塊的默克爾根。 區塊根是小段的資訊,可用於驗證在 Plasma 鏈上進行的相關交易的資訊。 如果 Plasma 鏈受到攻擊,使用者可以使用適當的證明來安全地將資金提取回主網。
Plasma vs 分片
Plasma 鏈和分片鏈都會定期向以太坊主網發佈加密證明。 然而,它們的安全屬性有所不同。
分片鏈向主網提交「定序頭」,其中包含有關每個資料分片的詳細資訊。 主網上的節點驗證和執行資料分片的有效性,減少了無效分片轉換的可能性並防止網路上出現惡意活動。
Plasma 有所不同,因爲主網只接收最少量的子鏈狀態資訊。 這意味著主網無法有效驗證子鏈上進行的交易,降低了交易的安全性。
注意:以太坊區塊鏈分片已不在開發藍圖中。 它已被透過卷軸和 Danksharding 進行的擴張所取代。
使用 Plasma
有多項專案提供 Plasma 實作,歡迎整合到你的去中心化應用程式:
- Polygon (opens in a new tab)(前身為 Matic Network)
延伸閱讀
- 學習 Plasma (opens in a new tab)
- 快速提醒您「共享安全性」的含義及其重要性 (opens in a new tab)
- 側鏈 vs Plasma vs 分片 (opens in a new tab)
- 了解 Plasma,第 1 部分:基礎知識 (opens in a new tab)
- Plasma 的生與死 (opens in a new tab)
知道一個曾經幫助你學習更多社區或社團資源? 歡迎在本頁自由編輯或添加內容!