目前兩款最有潛力的全鏈游戲引擎Curio和Argus都選擇通過定制化節點的預編譯合約來提高對游戲狀態的查詢性能以及增加對特定全鏈游戲的適配性,那么究竟什么是預編譯合約,以及為什么預編譯合約可以提高性能呢?結下來請看這篇科普短文:全鏈游戲101之預編譯合約。
什么是預編譯合約?
預編譯合約是EVM中用于提供更復雜庫函數(通常用于加密、散列等復雜操作)的一種折衷方法,也可以理解為一種特殊的合約,這些函數不適合編寫操作碼。它們適用于簡單但經常調用的合約,或邏輯上固定但計算量很大的合約。預編譯合約是在使用節點客戶端代碼實現的,因為它們不需要EVM,所以運行速度很快。與使用直接在EVM中運行的函數相比,它對開發人員來說成本也更低。
如下代碼可以看到,evm.go的合約中run函數有兩個分支:第一個分支是通過預編譯索引來實例化索引參數從而指定預編譯合約,第二個分支是如果它不是預編譯合約那evm將會被調用。
全鏈互操作基礎設施 MAP Protocol 與 Conflux 達成戰略合作:金色財經報道,全鏈基礎設施 MAP Protocol 正式和 Conflux 達成戰略合作伙伴關系。MAP Protocol 與 Conflux 將在解決區塊鏈互操作性方面展開合作,用輕節點 (light client) 加ZK 技術的跨鏈方式,促進區塊鏈數據流通和價值交換。[2023/2/21 12:18:40]
//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}
全鏈抗MEV DEX聚合器Cashmere Labs將在Aptos部署合約:10月23日消息,基于LayerZero的全鏈抗MEV DEX聚合器Cashmere Labs發推稱,Cashmere合約將部署至Aptos。目前Cashmere Labs產品暫未推出。
Aptos Bridge用戶可以將USDC、USDT和ETH從Etheruem、Arbitrum、Arbitrum、Optimism、Avalanche、Polygon、BNB Chain跨鏈至Aptos。[2022/10/23 16:36:05]
用圖形來表示的話,具體的邏輯如下圖:
全鏈域名服務商SPACE ID完成種子輪融資,Binance Labs領投:9月2日消息,全鏈域名服務商SPACEID宣布完成種子輪融資,本輪融資由BinanceLabs領投,具體融資金額及其它詳細融資信息暫未透露。
Binance Labs 表示,目前包括 Project Galaxy、DODO、STEPN、Trust Wallet、Chainlink、Ankr、CyberConnect、Mathwallet,以及更多 BNB Chain 生態系統中的項目開發者均與 SPACE ID 在進行密切合作。SPACE ID 正在構建一個通用域名標準和一個軟件開發工具包 (SDK),旨在通過去中心化身份基礎設施和互操作性為 Web3 提供核心解決方案,將 Binance 的 .bnb 域名服務提升至新的水平。[2022/9/2 13:04:54]
那么預編譯合約的瓶頸在哪里?
發改委:虛擬貨幣“挖礦”全鏈條整治工作取得明顯成效:1月18日消息,國家發改委政策研究室主任金賢東表示,2021年防范化解重大風險取得積極進展。壓實地方屬地責任、部門監管責任和企業主體責任,把握風險處置力度和節奏,有序化解重點領域風險。地方政府隱性債務風險防范化解工作扎實推進。對少數高風險金融機構及時“精準拆彈”。妥善處置個別高負債房地產企業風險。虛擬貨幣“挖礦”全鏈條整治工作取得明顯成效。反壟斷、反不正當競爭、防止資本無序擴張取得重要成效。(金十)[2022/1/18 8:56:34]
以太坊目前有八個預編譯的合約:
ECRecover-通過簽名恢復對應地址
SHA256-計算SHA256哈希
RIPEMD160-計算RIPEMD160哈希
Identity-返回輸入數據的原值
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直接通過節點執行,可以提升運算效率,但同時降低了全鏈的去中心化程度。將高頻使用的游戲核心邏輯置于預編譯中,可以優化該類游戲的性能。不同的游戲類型,其關鍵邏輯也不盡相同。因此,針對某一類游戲的專用鏈上,其預編譯設計可以高度優化該類型游戲的需求。在游戲迭代過程中,最具效率的預編譯合約組合也會逐步優化出來。
今天我們要介紹的ADA艾達幣,它是Cardano項目的平臺代幣。同時它還有一個特殊的別稱:日本以太坊。為何把ADA稱為日本以太坊?今日CoinEx科普就帶大家走進卡爾達諾和艾達幣的世界.
1900/1/1 0:00:00在具有極端反身性的市場中,大多數人追求的某種“真理”的準確往往并不重要,但常識卻非常重要。不要只關注“基本分析”的準確性,而忽視常識.
1900/1/1 0:00:00今天一般的加密貨幣市場都處于虧損狀態,這可能是由于今天發布的FOMC會議紀要。這種預期削弱了投資者的興趣,導致即使是最大的加密貨幣BTC在24小時內也下跌了2.38%.
1900/1/1 0:00:00加密貨幣市場的情況一直很不穩定,但像ShibaInu(SHIB)和Pepe(PEPE)這樣的模因幣受到的打擊尤其嚴重.
1900/1/1 0:00:00美國聯邦儲備委員會行長克里斯托弗沃勒警告說,加密貨幣價格可能會在某個時候跌至零。這位美聯儲理事強調說,當這種情況發生時,“請不要感到驚訝,也不要指望納稅人會分擔你的損失”.
1900/1/1 0:00:00不管全球加密貨幣市場目前的看漲趨勢如何,截至周三,大約有450萬個Aptos(APT)代幣將發行流通。此版本或令牌解鎖將于明天05:30UTC發生,可能會損害APT的價格走勢.
1900/1/1 0:00:00