木星链 木星链
Ctrl+D收藏木星链
首页 > 聚币 > 正文

以太坊:全链游戏101:预编译合约

作者:

时间:1900/1/1 0:00:00

目前两款最有潜力的全链游戏引擎Curio和Argus都选择通过定制化节点的预编译合约来提高对游戏状态的查询性能以及增加对特定全链游戏的适配性,那么究竟什么是预编译合约,以及为什么预编译合约可以提高性能呢?结下来请看这篇科普短文:全链游戏101之预编译合约。

什么是预编译合约?

预编译合约是EVM中用于提供更复杂库函数(通常用于加密、散列等复杂操作)的一种折衷方法,也可以理解为一种特殊的合约,这些函数不适合编写操作码。它们适用于简单但经常调用的合约,或逻辑上固定但计算量很大的合约。预编译合约是在使用节点客户端代码实现的,因为它们不需要EVM,所以运行速度很快。与使用直接在EVM中运行的函数相比,它对开发人员来说成本也更低。

如下代码可以看到,evm.go的合约中run函数有两个分支:第一个分支是通过预编译索引来实例化索引参数从而指定预编译合约,第二个分支是如果它不是预编译合约那evm将会被调用。

全链借贷协议Radiant Capital将于下周上线Radiant v2版本:2月10日消息,全链借贷协议Radiant Capital近日发文表示,Radiantv2版本讨论的所有新功能已在测试版中构建并完全实现,安全团队派盾和Zokyo正在进行审计。官方表示希望在2月16日左右上线v2版本。

此前报道,新版本通过将协议Token RDNT从ERC-20格式转换成LayerZero OFT格式,实现跨链费用无缝共享,同时便捷协议多链启动。此外,Radiant v2还将改变协议费用分配方案,通过增加流动性提供者在协议费用流中的份额,减少解锁RDNT的稀释影响,为流动性提供者提供更强大的效用。[2023/2/10 11:59:43]

//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}

西南财经大学陈文:区块链有助于数字资产的流通全链条监控:西南财经大学金融学院数字经济研究中心主任陈文表示,数字资产的自身特性,决定了其定价交易方式与实物资产以及证券资产交易之间的巨大差异。区块链有助于数字资产的归属确权、价值评价和流通全链条监控,可令数字资产交易的摩擦成本大幅降低,也将使数字资产的交易从“不可能”变为“可能”。(证券日报)[2020/12/30 16:02:21]

用图形来表示的话,具体的逻辑如下图:

那么预编译合约的瓶颈在哪里?

以太坊目前有八个预编译的合约:

专家:希望利用区块链实现食药产品全链条溯源:8月31日消息,在2020中国食品药品区块链创新应用论坛上,中国食品药品企业质量安全促进会专家委员会主任王玉民表示,希望通过区块链技术的广泛应用,探讨区块链技术在食药领域的长久落地,建立基于区块链技术和物联网相结合的产品安全信息平台,开创食药产品从生产到营销的全链条溯源的新时代,实现智慧监管,为人民群众提供更加优质的服务。(新京报)[2020/8/31]

ECRecover-通过签名恢复对应地址

SHA256-计算SHA256哈希

RIPEMD160-计算RIPEMD160哈希

Identity-返回输入数据的原值

ModExp-进行模数指数运算

声音 | 北京市商务委主任闫立刚:将应用区块链等技术实现全链条追溯管理:北京市商务委主任闫立刚近日透露,北京市商务委最近几年通过建立食品安全追溯体系以保证食品安全。今年北京市商务委还与京东集团展开合作,通过应用大数据、区块链、无线射频技术、云计算和人工智能等新技术,双方将共同探索,实现从原材料采购、生产加工到成品销售的全链条追溯管理,进一步推进商品从产地到流通的闭环追溯体系。[2018/7/17]

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直接通过节点执行,可以提升运算效率,但同时降低了全链的去中心化程度。将高频使用的游戏核心逻辑置于预编译中,可以优化该类游戏的性能。不同的游戏类型,其关键逻辑也不尽相同。因此,针对某一类游戏的专用链上,其预编译设计可以高度优化该类型游戏的需求。在游戏迭代过程中,最具效率的预编译合约组合也会逐步优化出来。

标签:以太坊ECAECM以太坊币是什么币ECA币ECA价格ECM币ECM价格

聚币热门资讯
比特币:分析师:随着减半来临,比特币有望涨至9000美元区间

加密技术分析师NicholasMerten表示,他相信比特币有望再次出现重大上行走势。 在DataDash的新一集中,Merten使用BTC/USD对的周线图来标记主要趋势线,并得到短期内价格可.

1900/1/1 0:00:00
比特币:2017年12月比特币见顶~2025年5月比特币减半前诞生的百倍币

Billions项目组LINK 1、2019年1月上线 2、按照开盘价0.35美金,上线时流通量3.5亿.

1900/1/1 0:00:00
稳定币:币安美元(BUSD)市值暴跌,原因是什么?

在美国证券交易委员会最近对其发行人Paxos采取执法行动后,BUSD稳定币出现了一些挫折。除了交易量暴跌外,BUSD的市值也出现大幅下滑.

1900/1/1 0:00:00
加密货币:加密崩溃:清算违约 2.5 亿美元;比特币跌破 22,000 美元?

根据CoinGlass提供的数据,在过去24小时内,超过84,000名交易员清算了超过2.51亿美元.

1900/1/1 0:00:00
AAVE:CoinEx币种科普:DeFi借贷赛道的传奇马拉松选手——AAVE

最近随着DeFi的一路走红,AAVE也变得炙手可热,在2020年实现了大幅增长,可以一翻翻个接近40倍的高度,不得不说此乃神币一个,出道3年终于在这不寻常的一年迎来了属于它的高光时刻.

1900/1/1 0:00:00
加密货币:印度财政部长在加密禁令恐慌中表示:印度将设有比特币“窗口”

印度财政部长NirmalaSitharaman给印度加密货币社区带来了一线希望,因为越来越多的担忧、不确定性和怀疑因一项据称即将出台的数字资产禁令而传播.

1900/1/1 0:00:00