每次當一個玩家進行一次操作的時候,他們向智慧合約發起一個交易。當其中一個玩家贏了的時候,就像規則裡描述的那樣,智慧合約就給贏家支付1ETH。雖然上述邏輯是可行的,但是 Alice和Bob正在讓整個區塊鏈網路處理這個遊戲合約,每次有玩家想要進行操作的時候,他都必須支付gas費用,而且必須等幾個塊被挖出後才能採取下一步行動。這明顯多於他們的需求並且效率低下。相反的,我們可以設計一個系統,讓玩家儘可能少的在鏈上進行操作。Alice或Bob可以在鏈下更新遊戲合約的狀態,如果有必要的話,他們可以恢復到主鏈的狀態。
Ludos狀態通道的應用及限制
狀態通道在需要頻繁合約互動的應用中非常有用,能切實擴容並提高區塊鏈的承載能力。在Ludos狀態通道機制中將有如下的一些限制:
·依賴於狀態的有效性
如果通道參與者在遊戲挑戰期(期間認為遊戲結果不公正的人可以提出挑戰)內丟失了網路連線,則可能無法在遊戲挑戰期結束前做出迴應。例如Bob為了贏得比賽,偽造了遊戲結果,並破壞了Alice家的網路,導致Alice無法在遊戲挑戰期訪問區塊鏈。在這種情況下,Alice可以讓Ludos提供的狀態託管網路保留自己的狀態副本,並支付一定費用,來保持有效性。
·僅適合在較長一段時間內做高頻率狀態更新的DApp
·參與的多方在單一合約中需要相對固定
·通道內操作將預設被隱藏
一切都在參與者之間的通道“內部”發生,而不是廣播和記錄在鏈上。只有最初和最後的交易必須公開。
·狀態通道將具有即時終結性
只要遊戲合約的參與者多方都簽署了一個狀態更新,這個狀態就可以被認為是最終狀態。如果有必要,他們可以隨時“強制執行”將此狀態放到主鏈上。