链资讯 链资讯
Ctrl+D收藏链资讯
首页 > Ethereum > 正文

DOD:全链游戏101:预编译合约_ERP

作者:

时间:

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

什么是预编译合约?

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

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

赵长鹏:币安一比特币地址向新地址转账超 12 万枚比特币系验证钱包控制权所需:11月28日消息,此前币安一存储了超 12 万枚比特币钱包的地址将钱包内绝大多数比特币(127,351 枚比特币,价值超 20 亿美元)转至新地址。赵长鹏回应称,此举是应审计员要求证明币安对该地址具有控制权,而将该地址内比特币转移至新地址中。[2022/11/28 21:07:30]

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

动态 | 1490枚BTC从币安交易所转出:据Whale Alert监测,北京时间2月21日08:01, 1490枚BTC(价值约1426.6万美元)从币安交易所转入未知钱包(16xPtu开头地址)。[2020/2/21]

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

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

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

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

SHA256-计算SHA256哈希

RIPEMD160-计算RIPEMD160哈希

公告 | 币安将上线第八期Launchpad项目PERL:据币安公告,币安将上线第八期Launchpad项目-Perlin(PERL),并开启BNB专场。此次将基于摇号抽签和空投模式,BNB持仓快照将从2019年08月09日上午08:00开始计算。[2019/8/7]

Identity-返回输入数据的原值

ModExp-进行模数指数运算

ECAdd-椭圆曲线点加法

ECMul-椭圆曲线点乘法

ECPairing-配对运算,验证椭圆曲线点

可以看到第一到第四个预编译合约提供的基础的签名,哈希等加密功能,第五个到第八个提供了椭圆曲线运算,这些和zk-snark相关。

金色财经现场报道 现代密码学之父:近几年是密码学的又一次复兴:金色财经现场报道,今日在Coindesk 2018共识会议上,现代密码学之父,图灵奖得主,Cryptic Labs首席科学家Whitfield Diffie表示,最近几年是密码学的又一次复兴,区块链是密码学方面的重新对焦。他表示喜欢“引入市场力量”的说法, 从市场力量的角度看待密码学的发展可能是最好的。Diffie还称赞了比特币创始人Satoshi,他说:“多年来密码学领域的许多人都想到如何发展金钱技术,在Satoshi之前没有人取得成功。”[2018/5/15]

那么问题来了,为什么以太坊预编译只支持了八个预编译合约,预编译合约不是降低了gas消耗吗?而且为什么不直接把ECS植入以太坊预编译合约中呢?

其实主要是以下三个原因:

1.过度依赖预编译合约会降低整个平台的去中心化程度:

首先,预编译合约的代码需要集成在客户端节点代码中,增加了客户端的复杂性。第二,验证节点可能因为安全原因可能会过滤掉预编译合约的计算,所以大部分预编译合约的请求是由全节点完成的,目前全球的以太坊全节点的数量只有4000-6000个,而且验证节点有50万个,确实比起非预编译合约要中心化很多。

2.预编译合约的新增和修改需要硬分叉升级,不易灵活演进。

预编译合约的支持需要进行EIP流程,举个例子:EIP-196增加了在alt_bn128曲线上的ECADD和ECMUL两个预编译合约。EIP-197增加了在alt_bn128曲线上的配对Pairing函数。基本都是为了让隐私在以太坊上可用进行支持,而且整个EIP的流程是漫长和考究的,等待EIP通过也不是一个现实的问题。

3.预编译合约之间难以进行交互和组合,扩展性差。

这点就不多做解释了,很直观。

预编译合约在全链游戏扮演什么角色?

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

标签:DODDODOERPETEDODO价格FingerprintsDAOEternal Spire V2

Ethereum热门资讯
稳定币:币安首席执行官否认有关美国加密货币可能退市的报道_BIN

在回应彭博社近期报道的报道时,币安首席执行官赵长鹏否认了美国加密货币的退市可能性。最初的报告称,由于监管压力越来越大,该交易所正在考虑终止与美国企业的关系.

ADO:Polkadot (DOT) 在周线图上上涨 15%,因为什么因素?_全球加密货币市值

今天一般的加密货币市场都处于亏损状态,这可能是由于今天发布的FOMC会议纪要。这种预期削弱了投资者的兴趣,导致即使是最大的加密货币BTC在24小时内也下跌了2.38%.

DODO:CoinEx研究院:基于主动做市商PMM算法的DODO_TAL

一、项目背景 DEX自2020年夏天以来迎来了指数级的增长,以Uniswap为代表的自动做市商平台一跃成为市场的主流选择,但用户在提供流动性的同时却逐渐发现了无常损失带来的波动的风险.

XRP:XRP 价格显示看跌因素汇合,可能再次下跌_ripple币怎么买卖

Ripple的代币价格兑美元汇率显示出低于0.580美元的看跌迹象。如果XRP价格低于0.480美元,则可能会再次下跌.

XRP:你可能不会再以这个价格看到最喜欢的山寨币 倒计时只有几天了_加密货币

虽然本周末加密货币生态系统略有上涨,但莱特币(LTC)尤其参与了这一趋势。工作量证明(PoW)区块链协议突破了90美元的关键阻力位,在过去24小时内上涨2.04%后,目前的交易价格为91.85美.

SHIBA:Shiba Inu 的 Shibarium 跨链桥开放公开测试_Papa Shiba

柴犬生态系统一直在为引入Shibarium做准备。为了迎接正式主网的发布,网络和社区一直在测试各种附加功能.