科普 | 極簡 Ethereum Plasma Debit 和 More Viable Plasma 介紹
看完上篇 ofollow,noindex">Plasma MVP 跟 Plasma Cash 的介紹 ,感覺 Plasma MVP 目前還處於是概念上的階段,正式上線好像還有段距離。Plasma Cash 每個 coin 都是不可分割的,在實際上的使用上有點困難。而本篇是要接續介紹Ethereum researcher 更新的提案: Plasma Debit 以及 More Viable Plasma 。
Plasma Debit
Plasma Debit 要解決的就是 Plasma Cash 每筆進帳不可分割的問題。Plasma Cash 的賬戶裡只有一個值(而且值等於1),在 Plasma Debit 改成兩個值 a 跟 v。
- v 代表這個賬戶最多可以擁有多少錢(也就是存了多少 ETH 進 Plasma chain)
- a 是目前賬戶裡的錢
舉例來說:(1) 甲存了 5 ETH 進入 Plasma chain 後, v=5, a=5 ;(2)甲轉 2 Plasma token 給乙, v=5, a=3 。可以想作是信用卡的 最高額度(v) 跟 還可以使用的額度(a) 。
但是,這裡有個問題,在最一開始大家的 a 跟 v 的值都一樣,代表著大家不能相互轉賬。什麼意思呢?舉例來解釋一下:
- 甲、乙各存了 5ETH、7ETH 進 Plasma chain,此時甲:(v=5, a=5)、 乙:(v=7, a=7)
- 甲想轉賬給乙,但因為乙的 v=a,若甲轉給乙則會造成乙的 a>v 的狀況,這在設計上是不允許的(信用卡公司給你5萬的額度,總不能刷超過5萬吧) 因此,為了要有流動性,operator 可以透過不同的 function 存錢進你的賬戶(也就是某個coin),也就意味著你的 v 值會變被增加(當然會需要付一些手續費給operator),以上例來說
- operator 提供 2ETH 的額度給乙(v=9, a=7)
- 甲就可以轉 2ETH 給乙(甲:(v=5, a=3), 乙:(v=9, a=9))
目前 Plasma Debit 的設計類似 payment channel,每個 coin 的擁有者 跟 operator 建立一個雙向的 payment channel(提案中多處都在模擬 Lightning Network 的channel,不過我不夠熟悉 payment channel,就不在這裡提出比較),所以在交易時,都是透過 operator 做中介做交易。由於channel 結構上的問題,目前這個提案,只限於單一個 operator。
More Viable Plasma
More Viable Plasm( MoreVP )是基於 Plasma MVP 作發展,改進提款的流程( Exit Game )。 上一篇 Plasma MVP 只有簡單介紹概念,沒有特別著墨在 exit 的部分,因為 MoreVP 是針對 exit game 的部分做改進,所以這次會對 exit game 的部分在做多一些的解釋。
在Plasma MVP中,有人要離開 plasma chain(把錢提出)時,需要大家的簽名( confirmation signature ),而 confirmation sign 對使用者非常的不方便,每次有人離開,都需要收集簽名。但移除了 confirmation sign ,operator 就很容易可以作怪,例如不打包使用者的 tx( in-flight tx ),甚至可以憑空鑄幣。MoreVP 改變了原本離開 plasma chain 的排序機制,在 MoreVP 中越新的 input( youngest input )有越高離開 plasma chain 的優先權。此外,挑戰期( challenge period )也改成兩段式。
整理一下:
MVP的 exit game
- 越舊的 UTXO 的優先權越高
- 送出交易需要簽名,離開時也需要簽名(confirmation signature)
- 單一挑戰期(需要 exit bond)
MoreVP 的exit game
- 越新的 input(youngest input)優先權越高
- 只需要送出交易的簽名,不需要 confirmation signature
- 兩段式挑戰期(需要 exit bond 跟 piggyback bond)
接下來再深入一點介紹兩段式的挑戰,這裡只針對 worst case(byzatine 共識且是 in-flight tx )作討論,因為被打包的的 tx 不會有問題,就照正常程式離開即可。 in-flight tx 就是還沒被打包的 tx,無論是還沒被打包或是被 operator 惡意不打包。
當有人要離開 plasma chain 時,要先壓錢作擔保( exit bond ),任何想一起離開的人需要壓附帶擔保( piggyback bond ),如果沒有附帶擔保( piggyback bond )就不能離開。此時,進入第一階段挑戰期
第一挑戰期,原則上就是讓大家提出要離開的這個 tx 是不是無效的或被花過的。如果是,提出證明的 tx‘ 來更換原本的 tx,提出證明的人可以拿到上一個的附帶擔保( piggyback bond ),然後壓上新的 piggyback bond 。然後一直直到沒人提得出新的證明為止。
若有人挑戰,就進入到第二階段
第二階段,上一階段只有提出挑戰,但是沒有人去確認,而這階段就是去確認/驗證第一階段的挑戰,如果驗證後是正確的,則第一階段的挑戰者可以拿到申請離開人的 exit bond ,並且申請者不能離開。若無人能驗證,則退還 exit bond ,此時申請者也不能離開(不能把 plasma chain 的錢提出)。 若第一階段無人挑戰,則有申請離開者就順利離開。 有沒有覺得聽完有點頭昏眼花 2333,這裡有提案者的圖解。
今天的介紹大概就到這邊,有任何的錯誤或是意見歡迎指教!
other references:
原文連結: https://kimiwublog.blogspot.com/2018/10/ethereum-plasma-debit-and-more-viable.html
作者:Kimi Wu
本文為臺灣社區成員作品,為閱讀便利修改部分術語並轉為簡體中文。EthFans 經作者授權再出版。