• <del id="siso2"><dfn id="siso2"></dfn></del> <strike id="siso2"><input id="siso2"></input></strike>
    <strike id="siso2"></strike>
    <ul id="siso2"></ul>
    
    
    <strike id="siso2"></strike>
    <strike id="siso2"></strike>

    零知識證明能否通過減少全鏈游戲與區(qū)塊鏈交互次數(shù),提升用戶體驗?

    發(fā)布時間 :

    遇到的問題

    PopCraft 是一款全鏈上的消除游戲,每局游戲時長 4 分鐘,玩家在規(guī)定時間內(nèi)消除棋盤上所有元素,會獲得代幣獎勵。

    由于全鏈上的特性,玩家在游戲過程中的每次操作都需要跟區(qū)塊鏈交互。以太坊二層的區(qū)塊時間通常為 2 秒,導(dǎo)致玩家在游戲中每次操作需要至少等待 2 秒才能完成,這遠遠超過同類 Web2 游戲中的等待時間,從而使 PopCraft 游戲體驗欠佳。

    零知識證明能否通過減少全鏈游戲與區(qū)塊鏈交互次數(shù),提升用戶體驗?零知識證明能否通過減少全鏈游戲與區(qū)塊鏈交互次數(shù),提升用戶體驗?

    PopCraft 游戲主界面

    設(shè)想的方案

    我們設(shè)想在 PopCraft 中利用零知識證明技術(shù)(以下簡稱 ZKP),減少玩家在游戲過程中與區(qū)塊鏈的交互次數(shù)。

    預(yù)期的方式是:游戲過程不上鏈,但有機制可以確保無作弊風(fēng)險。玩家在游戲中每一步操作都會生成 ZKP,后一步操作的 ZKP?基于前一步的 ZKP 來生成,從而形成一種類似區(qū)塊鏈結(jié)構(gòu)的自包含 ZKP,游戲結(jié)束時將最后一步操作的 ZKP 發(fā)送到鏈上,交由智能合約驗證其結(jié)果。

    方案調(diào)研與推導(dǎo)

    1. 游戲過程與結(jié)果的防作弊:僅對游戲結(jié)果生成 ZKP 是不夠的,因為游戲的過程同樣存在作弊可能。因此,既要對游戲結(jié)果生成 ZKP,也要對游戲過程進行驗證。

    2. 逐步生成 ZKP 的技術(shù)挑戰(zhàn):為了防作弊,需要對玩家在游戲中的每一個操作都生成 ZKP,在游戲結(jié)束時將最后一個 ZKP 上鏈進行驗證。這個過程中,每一步的 ZKP 都會依賴于前一步的 ZKP,直到游戲結(jié)束為止。

    但難點是:

       1> 新的 ZKP 生成需要依賴前一步的 ZKP,這使得驗證過程復(fù)雜且不確定能否可實現(xiàn)。此外, ZKP 驗證通過智能合約(鏈上)來做,后一步生成 ZKP 時該如何去驗證前一步的 ZKP 是正確的。

       2> 在通過智能合約驗證每一步的 ZKP 是否正確時,如何確保每個 ZKP 與前一個 ZKP 的連貫性,該問題不確定是否有方案可以解決。

    3. 公開游戲數(shù)據(jù)的問題:PopCraft 的游戲數(shù)據(jù)是公開的,因此通過 ZKP 做信息隱藏沒必要。如果上述驗證步驟均可實現(xiàn)的話,下一步需要考慮在合約端保存游戲數(shù)據(jù)。然而問題在于 ZKP 的性質(zhì)無法解出具體的游戲數(shù)據(jù),此時也不可直接相信客戶端傳給智能合約的游戲結(jié)果數(shù)據(jù),這意味著智能合約無法直接存儲這些數(shù)據(jù)。

    4. PopCraft 中消耗游戲道具(消耗 Token)的問題:當(dāng)游戲過程涉及到通過游戲道具完成孤立元素的消除時,本質(zhì)上對應(yīng)的是 Token 消耗,需要將用戶錢包中對應(yīng)的 Token 轉(zhuǎn)移,如何處理這一步 ZKP 生成和驗證也是一個問題。

        1> 一個可能的解決方案是:這一步繼續(xù)按照之前的流程生成 ZKP,驗證消耗的 Token 數(shù)量并最終發(fā)送給智能合約。然而,由于智能合約無法通過 ZKP 得到具體游戲數(shù)據(jù),因此無法判斷應(yīng)該轉(zhuǎn)移的 Token 數(shù)量。

        此外,假設(shè)玩家擁有 3 個 Token A,卻嘗試在游戲中消耗 4 個 Token A,這種錯誤會在游戲結(jié)束時才被發(fā)現(xiàn),而不是在用戶操作實時被發(fā)現(xiàn)。

        2> 另一個可能的解法是:在使用 Token 完成孤立元素的消除時,直接與智能合約交互完成消除,然后更新玩家的 Token 余額。生成的 ZKP 只負責(zé)保存此時游戲操作和狀態(tài)的證明。

        那么此時在轉(zhuǎn)移 Token 成功之后,還需要像前面操作一樣繼續(xù)生成 ZKP,如果不生成,那么在轉(zhuǎn)移 Token 操作的上一步生成的 ZKP 與下一次生成的 ZKP 中間,多了一次與智能合約交互的步驟,那么 ZKP 中的游戲狀態(tài)就會沖突,這樣游戲結(jié)束時生成的 ZKP 是否有效也是一個懸而未決的問題。

    5. ZKP 的數(shù)據(jù)隱藏問題:對于 PopCraft 這種不需要隱藏游戲數(shù)據(jù)的場景來說,通過 ZKP 做數(shù)據(jù)隱藏是多余的,且增加了游戲數(shù)據(jù)獲取的難度以及工程實現(xiàn)方案的不確定性。PopCraft 只需確保游戲過程和結(jié)果無作弊風(fēng)險即可,并不需要隱藏游戲過程數(shù)據(jù)。

    結(jié)論

    在 PopCraft 這樣的游戲中,游戲數(shù)據(jù)不需要隱藏,因此通過 ZKP 做信息隱藏沒有必要。為了通過縮短響應(yīng)時間來提升游戲體驗,可以考慮游戲過程不上鏈,僅將最終結(jié)果上鏈。關(guān)鍵在于找到一種方法,可以確保從玩游戲的第一步到最后一步都沒有作弊可能,最后將正確的結(jié)果上鏈驗證即可

    如果通過 ZKP 進行信息隱藏,反倒是增加了工程實現(xiàn)難度。其次是如何確保游戲過程無作弊風(fēng)險,使用 ZKP 能確保單個游戲操作無作弊風(fēng)險,但為了減少跟區(qū)塊鏈的交互次數(shù),又不能生成一次 ZKP 就提交一次。所以從游戲開始的第一步操作到游戲結(jié)束整個過程,又該如何保證無作弊風(fēng)險,目前看來 ZKP 無法解決該問題。

    從我們的調(diào)研來看,游戲領(lǐng)域 ZKP 適合做兩類事情:

    1. 非完全信息博弈類游戲的信息隱藏,比如:黑暗森林、德州撲克、狼人殺、爐石傳說等。
    2. 游戲過程為單步的游戲結(jié)果證明,比如:彩票、猜數(shù)字、石頭剪刀布、骰子游戲等。

    由于我們在零知識證明技術(shù)上的儲備有限,本文內(nèi)容可能存在事實性錯誤或不合理的工程設(shè)想,懇請具備豐富經(jīng)驗的零知識證明領(lǐng)域?qū)<遗u指正。

    主站蜘蛛池模板: 亚洲国产精品一区二区第四页| 无码国模国产在线无码精品国产自在久国产 | 午夜不卡久久精品无码免费| 99久久免费国产精品热| 精品国产青草久久久久福利| 久久精品毛片免费观看| 国产午夜精品一区理论片| 精品国产爽爽AV| 91久久精品91久久性色| 亚欧乱色国产精品免费视频| 精品视频在线v| 日韩精品无码一区二区三区免费| 国产啪亚洲国产精品无码| 精品无码国产污污污免费网站| 国产精品第1页| 99re这里只有精品6| 无码精品A∨在线观看| 精品欧美小视频在线观看| 亚洲精品欧美日韩| 97精品伊人久久大香线蕉app| 亚洲精品无码国产| 久久国产精品无码网站| 3级黄性日本午夜精品| 国产韩国精品一区二区三区久久| 午夜精品一区二区三区免费视频| 巨大黑人极品VIDEOS精品| 国产精品99久久久久久猫咪| 久久精品国产69国产精品亚洲| 国产中老年妇女精品| 久久久久成人精品无码中文字幕| 亚洲国产精品综合久久一线| 精品99久久aaa一级毛片| 99热都是精品久久久久久| 午夜精品视频在线| 精品999久久久久久中文字幕| 国产国产成人精品久久| 久久久精品无码专区不卡| 国产精品尹人在线观看| 国产成人高清精品免费观看| 91午夜精品亚洲一区二区三区| 日本精品久久久久中文字幕|