Cocos-BCX技術顧問 Kevin Yin :做最好的鏈遊開發和運營解決方案

買賣虛擬貨幣
近日,2019第二屆全球石墨烯區塊鏈開發者大會在上海召開,作為基於石墨烯開發的知名專案 Cocos-BCX 參與了會議並做了相關分享。Cocos-BCX 首席技術顧問 Kevin Yin 做了主題為“做最好的鏈遊開發和運營解決方案”分享,其中, Kevin 做了 Cocos-BCX 基於區塊鏈、雲等新技術構建新型遊戲生態系統的設想:“區塊鏈與雲技術在遊戲領域能夠取長補短,一方面能夠大幅度降低區塊鏈系統的資源開銷,也為遊戲、應用提供更為可信的承載容器,一方面也能充分發揮區塊鏈技術流通、公正透明、渠道等領域的優勢。

上述方案結合 layer-2 和 TEE 技術的優點,在 Arcadia 框架提供的鏈信任機制下實現更加安全高效友好的遊戲環境,鏈與雲技術在未來將結合為一個面向使用者的虛擬化遊戲執行容器,能夠為使用者帶來不受終端效能限制的各類遊戲業務。”

以下為 Kevin 演講實錄。

大家好!

今天是開發者大會,我將給大家帶來的是區塊鏈遊戲開發解決方案。我自己是開發者,同時也是區塊鏈投資人,我們在2016年開始基於石墨烯框架做區塊鏈遊戲引擎框架的開發。

我們希望為開發者提供一套完整的技術方案支援,希望該方案是低門檻、安全易用的。

1. 智慧合約系統

原版的石墨烯框架是沒有智慧合約的,是在 EOS 時代才引入了附加了智慧合約的體系,讓石墨烯框架具有了處理遊戲邏輯的能力。我們的技術路線和 EOS 有一些區別,首先不是用和框架自身強結合的模式做的,而是類似元件的方式在框架外掛一系列的智慧合約系統,目前支援Lua語言。我們提供的智慧合約編譯方案不是在本地編譯完,把編譯之後的中間語言程式碼上傳到區塊鏈。而是使用全鏈上編譯,一份指令碼程式碼實際上被完整地傳到了某個節點,在節點上用專門的執行緒做編譯。

2、3個月前有過一次駭客盜幣事故,據我們分析是開發者在智慧合約裡留了後門,但很巧妙的是避開了鏈上和鏈下的智慧合約校驗機制,實際存在於在鏈上的合約與鏈下開源給大家看的不是同一份合約,而鏈上編譯後的合約中留有後門,使得使用者手裡的資產存在被轉移的隱患。

但如果智慧合約是全鏈上編譯的話這個問題完全可以避免的。因為你想程式碼寫出來什麼樣子,上傳就必須什麼樣子,這讓區塊鏈的節點是具備智慧合約原版智慧檔案的,所以會更加安全。

現在的智慧合約系統不支援合約的迭代更新,釋出一份合約如果需要更新的話只能創造新的合約,這種方式聽起來是合理的,保障了合約的不可篡改性,但實際這在工程開發中是有問題的。我們做遊戲很多年了,遊戲演進到現在的已經不像當初以 K 為單位,現在的遊戲是非常龐雜的。區塊鏈遊戲往往需要非常多的智慧合約共同組成遊戲,這個時候問題來了,如果智慧合約只能重新發布而不能覆蓋迭代更新的話,那我要修改其中任何一份智慧合約,是不是智慧合約之間的引用關係會發生變化?這意味著每次在除錯的時候必須整個工程重新發布重新上鍊,這個代價是非常大的。在座很多都是開發者,我們知道一個程式寫出來花不了多少時間,除錯的時間才是花的最多的。

當然可能大家也會有問題,如果你們的智慧合約是可以覆蓋的,怎麼保證不可篡改呢?在這當中我們有開關,當開發者完成開發以後把開關撥動一下,智慧合約就變成了和以太坊、EOS 一樣不可篡改的。當有資產被鎖定在智慧合約管控的帳號裡,這時候智慧合約哪怕處於開發者模式也是不能修改的。

這些設定在 Cocos-BCX 網路裡都是生效的。

2. 原子合併操作特性

我們都知道原子是不可分隔的,如果有一把劍,這把劍上鑲嵌了寶石、符文等等,當我們需要轉賬這把劍的時候實際上需要同時多筆轉賬才能把劍轉出去。

但如果劍的本體轉出去同時,網路出現了故障或是駭客故意攻擊,導致寶石和浮文並沒有轉出去,我是不是可以認為這一次交易是失敗的?但這在現在的區塊鏈系統中很難確認,因為很難判定交易的關聯性。但如果有原子合併的話可以有原子合併包,道具在包中以平等的方式結合在一起,如果任何一筆記賬出現失誤的話整個包都會回滾。

區塊鏈網路是去中心的,按道理不存在中間裁決機構。當做同質數字資產與非同質數字資產交易的時候,比如說用一組比特幣買一隻加密貓的時候沒有中間機構保證付完錢以後賣家一定發貨。在這種情況下原子也可以解決這個問題,把轉帳轉錢的操作和資產所有權合併在一個包裡同時生效,如果轉了錢但對方並沒有轉加密貓的時候可以認為整筆操作都是失效的。這種交易可以極大地促進區塊鏈上去中心同質資產和非同質資產相互換手的場景。

3. 可信隨機過程

遊戲中用的最多的就是隨機數,在遊戲裡開寶箱、抽卡、搖骰子、打麻將都會用到隨機數。區塊鏈本身是輸出可預測系統,在傳統的區塊鏈專案中(EOS、以太坊)都是不支援隨機數的。現在的隨機數方案現存可以歸納成兩種形式:第一種是外源的,在外部有一個伺服器、一組伺服器,把隨機數投送到目標鏈、智慧合約裡,作為隨機數的種子來執行;第二種是變相的隨機數方案,用區塊的塊高度、塊 ID 再附以在合約程式碼裡寫出很鬼畜的邏輯,演算出一個看起來像隨機數一樣的東西。第二種方案還有衍生型,比如說 AB 兩個人,A 和 B 各自持有隨機數的種子,各自互相算對方的雜湊摘要。

但這幾種方式都是有問題的,第一種方式是中心化的。第二種方式AB互相摘要的只能用在擲骰子這種隨機性的,但如果用隨機方式洗出來一幅牌,牌在沒有開啟的時候也應該處在黑盒中,這種場景就無力應對了。

為了應對前面方案造成的一系列盜幣、駭客透過推算的方式選準了時間點阻塞別的使用者讓別的使用者無法投中,我們提供了去中心的隨機數解決方案,是完全可信的,它的產生是在所有節點相同規則下一併做的,對普通開發者而言、對 Cocos 引擎的開發者而言用起來非常簡單,只需要引用(隨機)函式就可以使用。

當中除了隨機數外還包含了怎麼防止 BT 發者作弊,怎麼隱藏過程變數。比如說擲骰子隨機數執行完以後要打一幅麻將,按道理麻將牌都是蓋在桌面上的,怎麼隱藏由隨機數產生的過程,這一組也有方案並且封裝到了引擎中。Cocos 是開源引擎,如果大家對此技術感興趣的話可以關注 Cocos 引擎的開源網站。

4. BCX-NHAS-1808非同質數字資產與世界觀

在技術特性的支援下我們做了新的非同質數字資產,非同質資產的使用價值無需討論。Cocos-BCX 是支援世界觀穿越的,在螢幕上資料被分成了很多小塊,為什麼會這樣設計呢?這是經常發生在小學生中的爭論,《火影忍者》裡的主角和《七龍珠》的主角誰更厲害,我們知道《七龍珠》裡的世界觀武力值設定是非常變態的,如果他穿越到《火影忍者》裡一拳就把世界打爆了。但事實上游戲穿越真的這麼搞的話就沒有意思了。我們認為世界和世界之間是存在很多屏障的,世界在穿越的時候需要有高低模轉換符合他要穿越的世界世界觀。

數字資產是支援原子交易的,是可以巢狀的數字資產。像現在在傳統遊戲裡玩的道具一樣,屠龍刀上可以鑲符文、寶石。並且數字資產是全區塊鏈世界通用的,數字資產的設計方式和 ERC-721 的邏輯和資料混在一起有非常大的不同,(在Cocos-BCX裡)邏輯和資料部分是完全分離的。我們知道寫程式碼行業發展到現在已經非常完善了,我們看到大部分成熟應用的資料、邏輯、UI都是分開的,而區塊鏈還比較早期,所以有很多原始時代的產物,比如說邏輯和資料混在一起。如果要把 ERC-721 合約表達的意思翻譯到其他網路上,就需要做兩個不同合約體系語言之間的兩兩翻譯,這太痛苦了。即使現在是2019年了,Basic語言想要完美翻譯成C語言也非常困難,更何況這種。

我現在演示的是在 Cocos--BCX 區塊鏈瀏覽器裡用視覺化的方式創造非同質數字資產,傳送到以太坊網路裡,我們是支援非同質資產的跨鏈轉移的,在以太坊瀏覽器中已經可以看到這筆轉賬了。現在把資產發回 Cocos-BCX 網路,在 Cocos-BCX 中已經收到了從以太坊轉回來的數字資產。

本身我們是遊戲引擎,要為遊戲生態考慮問題。我們把資產權屬做了拆分,這有點像現實世界裡的房產證,房產的所有權和使用權是分開的,可以抵押、典當、租押。可以衍生出新的行業,比如說一種新的代練遊戲,可以把屠龍刀交給一個人打造成神器以後再透過智慧合約還給我。同時也可以做抵押,抵押是把使用權留在我手裡,屠龍刀我繼續使用,但是所有權先抵押給當鋪,先把錢換回來。

5. Cocos-BCX 配套設施

之後給大家介紹一下我們提供的配套環境,目前已經比較全面了,以 Cocos-Terminal 為 例,提供了以圖形模式進入區塊鏈世界的入口,不需要使用者自己記金鑰,只需要使用者記密碼,沒有任何伺服器儲存密碼。如果大家在會後試玩的話可以發現 Cocos-BCX 的區塊鏈遊戲不需要使用者自己記錢包私鑰的,只需要記住自己的賬戶密碼像傳統遊戲一樣登入就可以了。

Cocos-BCX 也是整合去中心交易所的,並且支援傳統的 BD 交易、道具交易,並且提供了方便遊戲開發者和運營者使用的專用區塊鏈瀏覽器,瀏覽器裡包含了流水統計、運營資料分析等功能,並且也為理事會設定了整套圖形介面,可以用圖形介面的方式來操作提議等內容了。

左邊是同質資產交易所,這沒有什麼奇怪的,右邊是非同質數字資產交易所。並且需要注意的是我們把非同質數字資產的鏈上交易做成了 API,所有的第三方在遊戲裡都可以透過引入 API 做資產交易,並且資產交易的訂單是全網深度共享的。

在 Cocos-BCX 網路上發行資產是非常容易的,包括非同質數字資產都可以用純圖形化的方式做出來。

傳統遊戲展示的是抽卡邏輯在鏈上怎麼實現,其次還會給大家看到剛才我講的數字資產道具是怎麼在遊戲中穿越的,包括道具怎麼打造、怎麼升級。在遊戲裡直接訪問區塊鏈的交易介面,把道具在遊戲裡直接賣出去,賣到交易所裡,可以看到我們提供的環境已經相當完善了。

我們把剛才說的所有特性、開發環境整合到了視覺化開發 IDE,Cocos 程式設計師可以使用以往用了十幾年的遊戲用於區塊鏈開發。

6. Cocos-BCX 基於區塊鏈、雲等新技術構建新型遊戲生態系統的設想

講一下願景預期,剛才公信寶的黃總提到了關於 TEE 的事情,Cocos 引擎是華為的合作伙伴,我們在想現在是5G 時代了,網路延遲可以變的越來越小,而且我們國家本來就是5G 時代的領跑者。有沒有可能性把 TEE 可信執行環節放在雲上,雲主機是區塊鏈的節點。我們認為未來的遊戲有沒有可能越來越多是雲渲染遊戲,遊戲是沒有客戶端的,渲染、繪圖都是在雲端完成的。手機的硬體是否強大已經無所謂了,現在手機上也可以玩 PC 遊戲。這種遊戲已經很多了,華為的雲遊戲在 4G 網路下都可以執行的很好,更何況 5G 了。

在這種情況下如果智慧合約的節點自身就是渲染的節點,如果在雲叢集中存在合約池,我們把它當做 Layer2 的網路,在執行智慧合約的時候從池子裡隨機分配一個,在雲端直接渲染遊戲,由於都在一個雲叢集中,他們之間互相通訊的門檻是相當低的。是不是可以認為如此一來區塊鏈的TPS 問題、安全性問題、可信執行環境問題都不再是問題?這是我們的下一階段方案。方案的 Demo 預期會在今年9月份拿出來給開發者試用。

我們把影象數字水印技術結合在素材編輯,如圖遊戲是由很多素材組成的,貼圖、影片、音訊、建模,如果素材上裡面都存在肉眼看不到的水印和聲紋的話,這些水印和聲紋存在在區塊鏈裡登記,是不是意味著遊戲的版權從上鍊釋出的那一刻起已經被 Cocos-BCX 進行了保護?

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;