📜 [專欄新文章] A Secure State Channels Framework for Ethereum by Liam Horne 解析以太坊上的安全狀態通道
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Crosslink 第二天早上由 Liam Horne,狀態通道的主要開發團隊 L4 共同創辦人開場。本以為這場會提到筆者前一天晚上還看得霧煞煞的 Counterfactual ,沒想到這次的演講較為科普、以分享開發近況為主,也被以太坊基金會研究員 Chih-Cheng Liang 稱為最接地氣的一場!
何謂狀態通道?
比特幣的支付通道
若熟悉閃電網路,比特幣的支付通道是一個記錄支付行為的通道,只有開關通道時會接觸到區塊鏈。
假設A公司與B公司有頻繁的交易需求,兩方各自把 10 元放入支付通道中:
19:00 交易開始,兩方所擁有的錢: (10,10)
19:15 A->B 3元: (7,13)
20:10 B->A 7元: (14,6)
20:30 A->B 13元: (1,19)
21:45 B->A 4元: (5,15)
到了 21:45 時,交易結束,此時可以將交易結果 (5,15) 寫到區塊鏈上並分配結餘,而區塊鏈上有的紀錄就只有以下兩筆。
19:00 交易開始,兩方所擁有的錢: (10,10)
21:45 交易結束,兩方所擁有的錢: (5,15)
這代表著交易的結果能被記錄到區塊鏈上,卻大幅減少了要和區塊鏈互動的次數,不只可以降低交易雙方等待區塊鏈回應的次數與時間,也讓區塊鏈要處理的交易數量減少 。
以上只是提供一個很粗淺的例子,可以參考以下連結,精美圖示有助理解:
【動區專題】五分鐘看懂:圖說閃電網路 Ligntning Network
狀態通道 State Channel
由於狀態通道是在以太坊上,和比特幣的環境不同,所以實作方法不盡相同 (提示:UTXO),但本質上是相同的概念:只要牽涉到「狀態轉換 state-altering」,我們就能開一個通道讓交易參與者在通道中任意次數改變「狀態的值」,而最終將結果寫回區塊鏈上就好。
這邊我引用 Pelith 創辦人 Ping Chen 對於狀態通道精闢的解釋:
狀態通道通常是有別種邏輯疊在上面的通道 — 陳品
也就是說,相對於支付通道的邏輯就只是參與者虛擬貨幣的數量,狀態通道通常指的是該應用場景有自身的邏輯/規則。
舉例來說,在一遊戲中,玩家所擁有的虛寶就可以被視為是許多種狀態:遊戲中金幣及等級的是數值、但同時也是狀態;而 (0,1) 可以用來代表道具的擁有狀態 (沒有,有)。
假設一玩家 A 在遊戲中的起始狀態為 (電卷, 金牌, 鞍切, 金幣, 經驗值) = (0, 0, 0, 300, 1),隨著遊戲進行,虛寶/狀態的改變:
A 花費 100 金購買了金牌: (0, 1, 0, 200, 1)
A 首殺獲得 200 金、升兩等: (0, 1, 0, 400, 3)
A 花費 300 金用金牌合成了鞍切: (0, 0, 1, 100, 3) # 其實好像還要妖刀?xD
A 擊殺了 B 玩家,升一等: (0, 0, 1, 100, 4)
當玩家要登出、暫停遊戲時,最後的 (0, 0, 1, 100, 4) 就可以被更新到區塊鏈上,而下次登入時就會讀取這個區塊鏈上的狀態讓玩家繼續遊玩。
若了解了此例,就不難想像為什麼狀態通道被提出之時,遊戲以及虛擬貨幣的支付被視為最適合運用的兩個場景:給定參與者=玩家,在限定的場域中=遊戲,進行狀態的更新。
更多細節可以參考此一概念的提出人 Jeff Coleman 的解釋:點我
決策者 Mover
每一個狀態都有一位決策者,由通道中所有參與者輪流擔任。決策者透過對一狀態進行「簽署」來表達是否同意此狀態,也就是說狀態的正當性取決於當前的簽署是否來自正確的決策者。
狀態確認 Valid Transaction
狀態的先後順序是驗證狀態是否有效的方法。取決於應用的場景,有不同的實作方式。若簡單以一個計數器 counter 來實作,只要要求新狀態的計數值為舊狀態 +1,即可驗證。
state(N).counter + 1 == state(N+1).counter
關閉通道與終結性 Finality
當沒有更多交易或有參與者決定要結束交易時,只要全部參與者皆同意就可以關閉通道,ex: 給一 boolean 變數 isFinal,全部人都把自己的 isFinal 皆設為 true 就可以將通道關閉。
萬一有參與者半途消失了?Finality 終結性指的就是「每一個狀態都可以是最終的狀態」。假設部分參與者消失,只要有搭配的機制,例如:計時器,就一定會輪替到仍在線的人;即使參與者全部消失,當前的狀態因具備終結性,所以也能被提交為最終的狀態。
狀態通道實作的規劃與開發進程
Liam 將實作狀態通道的規劃劃分成上圖的六層:
Protocol & Contracts:
- State Progression Protocol
這邊就是上方的「決策者、狀態確認、關閉通道與終結性」。
除了以上所提及的內容,目前團隊也正在開發更方便的協議 Protocol Hardening:有別於交易的結束需要所有參與者的同意,目標是想做到「在特定時間內,任一參與者都能自行決定交易的推進或結束而不受其他參與者影響」。
- Channel Funding Protocol
此處是系統設計的另一個協議 Nitro Protocol,也就是如何開「子通道」,可以參考以下連結:
Nitro Protocol
Client & Hub:
- Client & Protocol Engine
這部分是講 Client 端彼此之間會傳送什麼訊息來進行溝通。
https://specs.counterfactual.com/en/latest/protocols/install-virtual-app.html#the-installvirtualappparams-type
- Client API & Wire Protocol
以下的 Github 專案就是將上方三部分的協議內容實作到網頁端:
counterfactual/monorepo
目前第一版的狀態通道已正在運行了,詳見下方額外學習資源的 Connext。Liam 列出了一些實作第二版時必須納入考量的點:
Robustly store states (i.e., guarantee no accidental money loss)
Automatic detection and responding to challenges
Ability to launch challenges directly with in-browser hooks
Go-to production quality hub software for apps and businesses to use
Browser Wallet UX:
- Wallet Integrations
這些是將狀態通道實作於現存的各種 Wallet 時,需要新增的內容:
https://github.com/counterfactual/monorepo/blob/d3b06b42710c0b7dd93839033cb43da9ac6e0a28/packages/types/src/node.ts
- Wallet UI
最後則是區塊鏈、也是所有新技術能否被廣泛使用的大哉問:該如何設計才能讓使用者有良好的體驗?
在此 Liam 提出實作 Wallet 時可以考慮的要點:
How should a user interact with a state channel?
What are the best patterns for acquiring user consent?
How much does the user have to trust the app?
To what extent can your channel wallet protect you?
What policies should a channel wallet be able to enforce?
額外學習資源
Liam 在本場演講及 Panel Discussion 中,都很鼓勵大家一起跳進來當開發者。他的大致建議如下:看懂相關文章、開發的要求 specs,就可以試著做做看。卡住的時候就到以下連結的討論區詢問他們,包含 Liam 在內的開發人員都會在上面回答問題:
State Channels - A community of state channels researchers from bitcoin, ethereum, and other blockchains
狀態通道的 Github:
State Channels
已成功實作第一版狀態通道的 Connext 專案:
Where will I be able to use v2.0 of Connext?
讓筆者看得霧煞煞的 Counterfactual ,可以進一步提升狀態通道的效率:
Counterfactual: Generalized State Channels on Ethereum
結語
本次演講實為筆者綜觀 Liam 在 Youtube 上的影片後,他對狀態通道最簡單、親民的一次演講,主要著重於介紹開發的進程、應注意的要點,也提供了初探此議題的新手很多學習資源、推坑大家加入開發的建議!
其實陳昶吾博士也曾於 Taipei Ethereum Meetup 詳細介紹過此議題(閃電網路為主),有興趣者可以看以下影片來得到更完整的認識:
最後,如果我的文章有幫助到你/妳,可以看看我的其他文章,歡迎大家一起交流 :)
田少谷 Shao - Medium
一如往常,感謝 Yahsin Huang 及 Chih-Cheng Liang 幫忙審稿,辛苦了!也特別感謝 Ping Chen 耐心回答素未蒙面的我的問題!!
A Secure State Channels Framework for Ethereum by Liam Horne 解析以太坊上的安全狀態通道 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過5,910的網紅雷根 Regan,也在其Youtube影片中提到,#遺忘之境 #WorldofLethe Android連結:https://play.google.com/store/apps/details?id=com.mover.twyw&referrer=utm_source%3Dgamer.com.tw%26utm_campaign%3Dgnn i...
「mover遊戲app」的推薦目錄:
- 關於mover遊戲app 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於mover遊戲app 在 雷根 Regan Youtube 的精選貼文
- 關於mover遊戲app 在 Mover Games 遊戲平台 的評價
- 關於mover遊戲app 在 mover遊戲app在PTT/Dcard完整相關資訊 - 遊戲基地資訊站 的評價
- 關於mover遊戲app 在 mover遊戲app在PTT/Dcard完整相關資訊 - 遊戲基地資訊站 的評價
- 關於mover遊戲app 在 China's Game List 中資遊戲列表 的評價
- 關於mover遊戲app 在 Facebook (FB) 帳號如何解除遊戲綁定、連結?教你快速取消連動 的評價
- 關於mover遊戲app 在 [教學] Facebook 臉書帳戶解除綁定@解綁遊戲/FB App/網站方法 的評價
mover遊戲app 在 雷根 Regan Youtube 的精選貼文
#遺忘之境 #WorldofLethe
Android連結:https://play.google.com/store/apps/details?id=com.mover.twyw&referrer=utm_source%3Dgamer.com.tw%26utm_campaign%3Dgnn
iOS連結:https://apps.apple.com/tw/app/id1463942173
Mover Games 魔塊遊戲平台代理的日系 RPG【遺忘之境:World of Lethe】
玩遊玩法
一般副本或PVP可以派5名角色出戰
前中排可以擺放輸出和坦克,後排位置放遠程角色同輔助角色
戰鬥畫面彩用橫向戰鬥風格
角色帶領旗下的傭兵去一同戰鬥
操作亦都非常簡單,我地只雖要控制技能釋放就可以
你亦可透過自動,AI系統就會幫你開技,非常適合我這樣的懶人去玩。
角色介面
突破擺放指定寶石可以提升專屬顏色
精煉可以加強角色能力
如果重複抽到同樣角色,可以進行星級提升
技能方面,每個角色均有4個技能
只要專屬顏色提到紫色就可以開放哂4項技能
傭兵一開始只派出兩隻,隨著升級派出數量亦都有提升
歡迎加入Discord 群組:https://discord.gg/Zf2H2XT
激戰傳加入說 LINE: 請留下LINE ID,稍後會加你入群哦!
訂閲我的頻道:https://www.youtube.com/channel/UCGBMkZwaW_6f_vsLAVpxZUw?view_as=subscriber
遊戲介紹及實況分享!!
喜歡影片既朋友可以比個LIKE同&訂閱!!
多謝你們既支持~
_________________________________________________________________
聖鬥士星矢覺醒:https://www.youtube.com/playlist?list=PLn4NnOodd49BsgAPTkV4jSSty7g1dw6Qj
七龍珠爆裂激戰 Dokkan Battle:https://www.youtube.com/playlist?list=PLn4NnOodd49Drw1l5ueldib9Rv8ZqWF6L
七龍珠激戰傳說 DragonBall Legends:https://www.youtube.com/playlist?list=PLn4NnOodd49Dptr4evdv8NmdFI-hmz_8A
![post-title](https://i.ytimg.com/vi/1tWXL5E3m8Q/hqdefault.jpg)
mover遊戲app 在 mover遊戲app在PTT/Dcard完整相關資訊 - 遊戲基地資訊站 的推薦與評價
提供mover遊戲app相關PTT/Dcard文章,想要了解更多魔塊遊戲股價、mover games limited國家、mover遊戲app有關電玩與手遊文章或書籍,歡迎來遊戲基地 ... ... <看更多>
mover遊戲app 在 mover遊戲app在PTT/Dcard完整相關資訊 - 遊戲基地資訊站 的推薦與評價
提供mover遊戲app相關PTT/Dcard文章,想要了解更多魔塊遊戲股價、mover games limited國家、mover遊戲app有關電玩與手遊文章或書籍,歡迎來遊戲基地 ... ... <看更多>
mover遊戲app 在 Mover Games 遊戲平台 的推薦與評價
Create New Account. Mover Games 遊戲平台, profile picture. Log In ... Message. Play 遊戲. App page. 226 people like this. ... <看更多>