作者:@MohamedFFouda / 來源:翻譯:火火/白話區塊鏈
https://twitter.com/MohamedFFouda/status/1712193022085992456
之前,我討論了關於使用水平擴展來擴展應用程序合併的問題,重點放在完全基於區塊鏈的遊戲上。
水平擴展在單人遊戲中運作良好。 對於多人遊戲來說,零知識狀態通道是一種更好的擴展選擇。
1、那麼,什麼是零知識狀態通道呢?
狀態通道並不是新概念。 實際上,它們是以太坊最早的擴展解決方案之一。
狀態通道基本上是這樣運作的:
1)獲取鏈上狀態的一部分
2)在鏈外不斷更改該狀態
3)在需要時將最終狀態提交到鏈上。
狀態通道並不是新的概念。 實際上,它們是以太坊最早的擴展解決方案之一。
狀態通道的基本原理如下:
1)獲取鏈上狀態的一部分
2)在鏈下持續地更改該狀態
3)在需要時將最終狀態提交到鏈上。
顯然,這個概念是比特幣閃電網路設計的延伸,而閃電網路本質上是一個支付通道。
然而,如果沒有零知識證明(ZKPs),狀態通道的意義就不大。
如果沒有零知識證明(ZKPs),所有授權更改狀態(鏈外)的簽名都必須在鏈上進行驗證。
這與鏈上交易相比,並沒有顯著降低成本的效果。
零知識證明(ZKPs)輕鬆解決了這個問題。
狀態通道參與者只需生成一個證明(鏈外),證明他們所有的交互和簽名都是有效的。 這個證明可以在鏈上廉價地進行驗證,從而節省了大量的成本。
2、那麼,這與擴展多人在線遊戲有什麼關係呢?
許多多人遊戲,例如撲克,是基於比賽的,即一組玩家創建一個遊戲,參與遊戲競爭,並根據遊戲結果改變每個人的資產。
對於這種類型的遊戲,您需要一個共用層來存儲每個人的資產。 每個遊戲的具體細節並不像遊戲的最終結果(即資產餘額的變化)那樣重要。
此外,一個玩家不能同時參與多個遊戲。
這使得這些遊戲成為零知識狀態通道的理想選擇。
一旦遊戲開始,參與玩家的狀態就會被鎖定在合併鏈上。
在遊戲過程中,玩家生成零知識證明,證明他們的行為是有效的。
這些零知識證明會遞歸地建立在之前的零知識證明之上,以此類推。
當遊戲結束時,只有最終的零知識證明和相關的狀態變化被提交到應用程式合併進行結算。
由於中間交易不在應用程式合併上進行處理,這實現了高達100倍的更好擴展性。
這種方法也適用於非回合制的遊戲,例如《Among Us》。
然而,在這種情況下,需要一個實體充當“臨時”排序器,對通道交易進行排序並生成中間的遞歸式零知識證明。
我將這種情景稱為“短暫的L3”。
零知識狀態通道方法的主要挑戰是通道參與者的活躍性要求。 如果有一個玩家退出,可能會迫使其餘玩家在應用程式合併上繼續執行,從而迫使其他玩家支付更高的成本。
確實,這種方法具有巨大的潛力,許多團隊正在朝著這個目標努力,包括 @ontropy、@PaimaStudios 和 @cartridge_gg。 可以查看他們相關的技術進展。