近日,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 進行了保護?
評論
查看更多