目前兩款最有潛力的全鏈游戲引擎Curio和Argus都選擇通過定制化節點的預編譯合約來提高對游戲狀態的查詢性能以及增加對特定全鏈游戲的適配性,那么究竟什么是預編譯合約,以及為什么預編譯合約可以提高性能呢?結下來請看這篇科普短文:全鏈游戲101之預編譯合約。
什么是預編譯合約?
預編譯合約是EVM中用于提供更復雜庫函數(通常用于加密、散列等復雜操作)的一種折衷方法,也可以理解為一種特殊的合約,這些函數不適合編寫操作碼。它們適用于簡單但經常調用的合約,或邏輯上固定但計算量很大的合約。預編譯合約是在使用節點客戶端代碼實現的,因為它們不需要EVM,所以運行速度很快。與使用直接在EVM中運行的函數相比,它對開發人員來說成本也更低。
如下代碼可以看到,evm.go的合約中run函數有兩個分支:第一個分支是通過預編譯索引來實例化索引參數從而指定預編譯合約,第二個分支是如果它不是預編譯合約那evm將會被調用。
Celer宣布推出ZK全鏈數據計算和驗證平臺Brevis:3月22日消息,Celer Network 宣布推出 ZK 全鏈數據計算和驗證平臺 Brevis。基于 Brevis,dApp 能夠以完全去信任的方式訪問、計算和利用跨多個區塊鏈的任意數據。Brevis 將解鎖全新的 dApp 開發范式,包括數據驅動的 DeFi、zkBridge、鏈上用戶獲取、zkDID、社交賬戶抽象化等。
Brevis 的架構包括三個組件:zkFabric、zkQueryNet 和 zkAggregatorRollup。在 Brevis 最初的概念驗證中,Celer 使用 gnark 在 zkFabric 中構建了一些當前運行最快的 ZK 輕客戶端電路,用于 Ethereum PoS、Cosmos 和 BNB Chain,使任何 EVM 和非 EVM 鏈能夠以完全去信任的方式訪問這三條鏈的狀態。
此外,Celer 已基于 Brevis 在 Ethereum Goerli 和 BNB Chain 測試網之間構建了一個面向用戶的資產 zkBridge。[2023/3/22 13:18:44]
//runrunsthegivencontractandtakescareofrunningprecompileswithafallbacktothebytecodeinterpreter.funcrun(evm*EVM,contract*Contract,inputbyte,readOnlybool)(byte,error){ifcontract.CodeAddr!=nil{precompiles:=PrecompiledContractsHomesteadifevm.ChainConfig().IsByzantium(evm.BlockNumber){precompiles=PrecompiledContractsByzantium}ifp:=precompiles;p!=nil{returnRunPrecompiledContract(p,input,contract。for_,interpreter:=rangeevm.interpreters{ifinterpreter.CanRun(contract.Code){ifevm.interpreter!=interpreter{//Ensurethattheinterpreterpointerissetback//toitscurrentvalueuponreturn.deferfunc(iInterpreter){evm.interpreter=i}(evm.interpreter)evm.interpreter=interpreter}returninterpreter.Run(contract,input,readOnly。returnnil,ErrNoCompatibleInterpreter}
全鏈式DEX Sifchain已集成至Emeris Beta:3月2日消息,全鏈式DEX Sifchain已集成至跨鏈門戶Emeris Beta。據了解, Emeris Beta是由Cosmos開發公司Ignite推出,目前提供跨鏈轉賬、交易和流動性池等功能。Sifchain是基于Cosmos SDK構建的一個全鏈式去中心化交易平臺,也是目前唯一一個同時可以交易ERC20掛鉤資產和Cosmos生態系統資產的DEX。[2022/3/2 13:32:55]
用圖形來表示的話,具體的邏輯如下圖:
那么預編譯合約的瓶頸在哪里?
專家:希望利用區塊鏈實現食藥產品全鏈條溯源:8月31日消息,在2020中國食品藥品區塊鏈創新應用論壇上,中國食品藥品企業質量安全促進會專家委員會主任王玉民表示,希望通過區塊鏈技術的廣泛應用,探討區塊鏈技術在食藥領域的長久落地,建立基于區塊鏈技術和物聯網相結合的產品安全信息平臺,開創食藥產品從生產到營銷的全鏈條溯源的新時代,實現智慧監管,為人民群眾提供更加優質的服務。(新京報)[2020/8/31]
以太坊目前有八個預編譯的合約:
ECRecover-通過簽名恢復對應地址
SHA256-計算SHA256哈希
RIPEMD160-計算RIPEMD160哈希
Identity-返回輸入數據的原值
聲音 | 北京市商務委主任閆立剛:將應用區塊鏈等技術實現全鏈條追溯管理:北京市商務委主任閆立剛近日透露,北京市商務委最近幾年通過建立食品安全追溯體系以保證食品安全。今年北京市商務委還與京東集團展開合作,通過應用大數據、區塊鏈、無線射頻技術、云計算和人工智能等新技術,雙方將共同探索,實現從原材料采購、生產加工到成品銷售的全鏈條追溯管理,進一步推進商品從產地到流通的閉環追溯體系。[2018/7/17]
ModExp-進行模數指數運算
ECAdd-橢圓曲線點加法
ECMul-橢圓曲線點乘法
ECPairing-配對運算,驗證橢圓曲線點
可以看到第一到第四個預編譯合約提供的基礎的簽名,哈希等加密功能,第五個到第八個提供了橢圓曲線運算,這些和zk-snark相關。
那么問題來了,為什么以太坊預編譯只支持了八個預編譯合約,預編譯合約不是降低了gas消耗嗎?而且為什么不直接把ECS植入以太坊預編譯合約中呢?
其實主要是以下三個原因:
1.過度依賴預編譯合約會降低整個平臺的去中心化程度:
首先,預編譯合約的代碼需要集成在客戶端節點代碼中,增加了客戶端的復雜性。第二,驗證節點可能因為安全原因可能會過濾掉預編譯合約的計算,所以大部分預編譯合約的請求是由全節點完成的,目前全球的以太坊全節點的數量只有4000-6000個,而且驗證節點有50萬個,確實比起非預編譯合約要中心化很多。
2.預編譯合約的新增和修改需要硬分叉升級,不易靈活演進。
預編譯合約的支持需要進行EIP流程,舉個例子:EIP-196增加了在alt_bn128曲線上的ECADD和ECMUL兩個預編譯合約。EIP-197增加了在alt_bn128曲線上的配對Pairing函數。基本都是為了讓隱私在以太坊上可用進行支持,而且整個EIP的流程是漫長和考究的,等待EIP通過也不是一個現實的問題。
3.預編譯合約之間難以進行交互和組合,擴展性差。
這點就不多做解釋了,很直觀。
預編譯合約在全鏈游戲扮演什么角色?
預編譯合約跳過EVM直接通過節點執行,可以提升運算效率,但同時降低了全鏈的去中心化程度。將高頻使用的游戲核心邏輯置于預編譯中,可以優化該類游戲的性能。不同的游戲類型,其關鍵邏輯也不盡相同。因此,針對某一類游戲的專用鏈上,其預編譯設計可以高度優化該類型游戲的需求。在游戲迭代過程中,最具效率的預編譯合約組合也會逐步優化出來。
通過采用創新的技術手段和獨特的挖礦機制,PiNetwork在保證交易速度和安全性的同時,實現了低門檻、低成本的特性,為普通用戶提供了難得的機會參與到加密貨幣的挖礦和交易中來.
1900/1/1 0:00:00在越南,PiNetwork受到了電視臺、法律專家和記者的積極評價。動態 | ChainUP影響力伙伴全球行越南站落幕:12月19日晚,由ChainUP舉辦的“Chain-Ging the wor.
1900/1/1 0:00:00來源/LongHash 2020年12月比特幣突破2萬美元后,在近期持續地創造歷史價格新高。相較2017年,區塊鏈行業生態更加專業化,產業上下游也逐漸“機構化”,尤其是北美地區.
1900/1/1 0:00:00Pi網絡先鋒,讓我們一起迎來KYC與遷移的美好時刻!KYC是金融科技領域的重要一環,而在Pi網絡的應用中,KYC同樣具有巨大的潛力.
1900/1/1 0:00:00Pi網絡是一個不斷發展和創新的領域,每一位先鋒都需要保持學習的狀態,以跟上這個領域的最新進展。學習對于Pi網絡的重要性不言而喻,因為它不僅可以幫助先鋒理解更深層次的概念,還可以幫助他們更好地解決.
1900/1/1 0:00:00從8月初StepN官方提出新方案到9月底APP升級后新的方案開始正式運行,一些人仍在糾結要不要參加,我們今天帶來一篇初步的規則探討分析,為大家講解StepN此次新規背后的含義.
1900/1/1 0:00:00