为什么「合并」是我们删掉一些东西的最后机会?
原文标题:《引介|值得考虑删除的EVM功能》撰文:VitalikButerin翻译&校对:戡乱&阿剑来源:以太坊爱好者
到2020年,我们对如何设计智能合约和区块链协议的理解已经远超2013-15年。因此,如果我们在2021年从头开始搭建以太坊,我们就不会引入很多早期添加的功能了。然而从一条正在运行的、拥有活跃生态的区块链中移除功能,远比在一个新系统中不添加它们要难得多。
有些「缺陷功能」是无害的。有些可以安全而缓慢地移除或改进。还有些已经深深地嵌入到了太多的应用中,以至于根本改不动。另一方面,也有一些功能要么已经被移除,要么已经被改进,要么即将被移除。
但是还有一些中间情况:有些功能过于复杂,对生态的发展造成了中等程度的伤害,我们可以移除它们,但是需要冒一点风险。如果我们移除这些功能,可能会有少量的应用被破坏。但是不移除的话,它们会继续拖累生态。
就跟别的「长痛短痛」抉择情形一样,人们很容易低估短痛带来的长期收益。特别是在我们的情况中,由于解决复杂情况的代码已经写好了,所以感觉保留它们不需要付出任何成本。但实际上有两个重要的成本要考虑:
为协议开发新实现的成本若要改变功能B,但B会跟没必要存在的复杂功能A交互,可能会产生「交互bug」以重新设计状态树为例:若以太坊的状态越是遵循一些简单的恒常性质,那么替换更高效的双层十六进制Patricia树就会越容易。然而在现实情况中,因为SELFDESTRUCT操作码可以在单笔事务中不受限制地删除大量存储插槽,这给改良状态树带来了很大的困难。另一个例子是2300gas津贴机制使gas重新定价变得更复杂。
加密初创公司在第二季度中筹集了23.4亿美元的资金:金色财经报道,据PitchBook数据,加密初创公司在第二季度的382笔交易中筹集了23.4亿美元的资金,这与2022年第一季度的121.4亿美元的峰值相比出现了明显下降。2023年第二季度最大的融资是LayerZero的1.2亿美元B轮融资以及 Worldcoin的1.15亿美元C轮融资。
Ava Labs 业务开发副总裁 Lydia Chiu表示,资本配置的下降可能归因于美国的监管阻力,这使得第二季度许多与加密货币相关的交易结构倾向于传统的风险投资结构,例如筹集股权,而不是代币投资或未来代币的简单协议(SAFT)。[2023/7/11 10:47:43]
「合并」可能是我们扯掉一些痛苦绷带的最后机会,这篇文章就是解释这样做的理由。
合并是进行最后一轮不兼容更新的一个非常自然的时间节点,有以下几个理由:
合并后构建的客户端很可能不处理PoW链,而是专门验证PoS信标链。因此,如果在合并时或合并前去除不必要的复杂功能,客户端最容易从中受益,因为它们根本不需要实现这些功能。(从技术上讲,即使是在合并前建立的客户端也可以设计成只处理最近1-2个硬分叉之后的数据,但是「PoS信标链作为一条独立的链而不需要处理PoW链上过于久远的数据」的说法更容易让人接受)以太坊已经发生了很大的改变,社区对这将是「以太坊的一次重大升级」达成了共识。特别是「在分片和合并完成之前会出现快速的进化,但合并之后就会趋于稳定」的观点也得到了社区的一致认可。必要的向后不兼容的改变已经发生了。这篇文章将介绍一些可以考虑删除的功能的例子。
Ledger推出机构级加密交易网络Ledger Enterprise Tradelink:6月28日消息,加密托管公司 Ledger 宣布推出机构级加密交易网络 Ledger Enterprise Tradelink,旨在满足其风险管理和监管要求。
据悉,Ledger Enterprise Tradelink 网络已与多家加密货币交易平台和经纪商合作伙伴签约,包括 Crypto.com、Bitstamp、Huobi、Uphold、CEX.IO、Wintermute、Coinsquare、NDAX、Damex、Bitazza、Flowdesk 和 YouHodler。
Ledger 的企业网络向多个托管合作伙伴开放,例如 Komainu(野村证券支持的集团,Ledger 是其成员)、TetraTrust、Etana、Crypto Garage、Damex 和 Kryptodian。[2023/6/28 22:06:02]
功能列表
2300gas津贴
这是什么?当一个合约调用另一个合约时,被调用的合约会得到2300gas用于执行非常有限的操作*为何引入?最初是为了让智能合约钱包在收钱时能自动生成一条日志。后来还被用于实现「守卫」功能以防止合约收到ETH。*有何问题?*
*由于它设置的是固定的gas数量,因此只要gas价格可以调整,人们就没有办法确定这些gas到底能支持什么类型的计算。*它并没有很好地满足设计意图,有两个原因。首先,很多用户仍然在使用外部账户,而外部账户并不会生成日志。其次,`SELFDESTRUCT`操作码绕过了津贴机制。从长远来看,通过账户抽象化,外部账户的作用将被弱化,并且`SELFDESTRUCT`操作码可能将被移除,但是在这两件事完成之前,它都只是一个不充分的解决方式。
以太坊域名服务ENS:15位获胜者赢得bug bash奖励:金色财经报道,以太坊域名服务ENS在社交媒体宣布,在完成bug bash审议之后,最终共有15位获胜者,他们对V3 ENS Manager应用程序提出的改进和Bug建议将被采纳并会带入到主网。据悉,7位获胜者因发现Bug赢得1 ETH奖励,其他8位获胜者将获得0.375 ETH奖励。[2023/3/25 13:26:12]
*如何移除?**有两种可能——要么将2300改成0)要么不限制数量
*移除有何副作用?**
*如果我们移除子执行,那么这将需要在合约调用中添加一个笨拙的二分处置,即0gas解释为0,任何其他数字解释为「发送所有的gas」。它还会破坏反接收守卫功能和日志记录。*如果我们在执行中允许子执行获得全部的gas,那么通过调用发送ETH会变成一个需要信任的操作,恶意合约可能会借此扰乱一些应用。不过,Solidity文档已经建议大家用withdrawal模式代替`transfer`,这样就不会有任何风险了。
*如何消除顾虑?**
*让所有的ETH转账,无论是来自调用还是`SELFDESTRUCT`,都生成一条日志,这样钱包就不需要生成日志了*增加一条规则,对于提供0gas的调用,可看做是一个「可以生成日志的`STATICCALL`」。这样就复制了在gas津贴的执行环境里实际做到的功能。
美CFTC主席:SEC和CFTC正共同努力监管加密市场,这并非是“领地之争”:10月3日消息,美国商品期货交易委员会(CFTC)主席Rostin Behnam在近日接受CNBC采访时表示,目前和美国证券交易委员会(SEC)“相处得很好”,SEC和CFTC正在共同努力监管加密市场,这并非两个监管机构之间的领地之争(a turf war)。Rostin Behnam补充称,在加密监管上,主要问题在于CFTC是一个衍生品监管机构,因此无法监管现货市场,但他们正在要求国会赋权进入比特币、以太坊现货市场和其他数字商品代币市场进行监管。
对于SEC主席Gary Gensler认为大多数加密代币都是证券,Rostin Behnam认为必须通过立法来解决这个问题,因为这是一个新型资产类别,具有不同组成部分和特征。CFTC正在用一部70年历史的判例法来确定什么是证券,什么是商品。(CNBC)[2022/10/3 18:38:34]
剩余Gas额度可见性
*这是什么?**GAS操作码允许合约查看当前的执行环境中还剩多少gas可用。CALL允许调用者为子上下文提供固定数量的gas。
*为何引入?**反对让CALL将父环境中剩余的全部gas都交给子环境的最主要原因是避免「不可信任的调用」:即发送者不信任接受者的调用。一个简单的例子是发送ETH给参与方的金融机制。另一个例子是M-of-N外部价格信息的输入机制,通过调用一些合约,在获得所有合约回复后取中位数作为输出。
安全团队:Crema Finance攻击事件损失超600万美元:7月3日消息,区块链安全团队OtterSec发推称,Crema Finance遭黑客攻击,损失600多万美元。与之前的攻击不同,这次黑客使用Solend闪电贷来抽干资金池。我们正在与Crema团队密切合作,以帮助解决这个问题。
此前报道,Solana生态流动性服务协议Crema Finance在推特上表示,其协议疑似遭遇黑客攻击。团队暂时中止了该项目,目前正在进行调查,并将尽快公布事件进展。[2022/7/3 1:47:29]
*有何问题?**
*其实绝大多数不可信任调用的用例都可以通过其他方式绕过去。对于转账,Solidity文档已经建议大家用withdrawal模式代替`transfer`。M-of-N外部价格信息的输入机制可以很容易地通过为每一个外部输入单独创建一笔交易实现。*这会让gas重定价变得很难做,当操作码的gas消耗量发生变化,固定gas数量的调用可能会不够用。
*如何移除?**
*让`CALL`可以自动将父环境的所有可用gas额度都交给子环境。`GAS`操作码只需简单地返回交易的初始gas数量。
*移除有何副作用?**
*我们知道的「不可信任调用的合法用例」主要是第三方赞助调用。第三方发布一笔事务,事务中包含你希望的调用,当调用发生后,可以自动地向你扣费。这对用户没有任何ETH的智能合约钱包、混币者的隐私保护以及其他一些用例都很有用。我们需要一个有限gas数量的调用以确保最终的支付语句真正被调用,而不会因为gas不足而被回退。
*如何消除顾虑?**
*矿工可以直接充当中介,如果交易最终没有付钱给他们,他们就可以直接丢弃事务。参见PhilDaian的工作,他创建了一个由第三方机器人构成的生态,矿工可以自动产生「安全」的批量交易。*在协议内增加一个明确的「第三方付款人」的交易类型。参见EIP2711的例子。
还请注意,如果我们想要走得更远,我们还需要调整63/64规则使得如果子调用失败,父调用也彻底失败。这可能会破坏更多的用例,但它将确保当gas消耗量发生变化时只会引起一种类型的行为变化。
SELFDESTRUCT
请看这篇文章。
Gas退款
*这是什么?**调用SELFDESTRUCT销毁一个合约,或者将一个存储槽设置为零,会退回15000-25000gas。退款会在事务执行的最后触发,并抵扣发送者需要支付的费用。
*为何引入?**激励应用开发者践行「良好的状态卫生」,清除不再需要的存储插槽和合约。
*有何问题?**
*在实践中,几乎没有人真正践行良好的状态卫生。这是因为激励不够高,不值得为此增加代码的复杂度甚至带来安全风险。*退费机制使得GasToken兴起。GasToken有利于将低费率时期的gas调配到高费率时期使用,但是它不利于网络,特别是加重了状态规模的膨胀,并使低效的gas使用方法阻塞了区块链。*它加剧了区块大小的波动,使一个区块实际上的理论最大gas消耗量几乎是字面意义上区块Gas上限的两倍。这并不致命,但仍然不可取,特别是考虑到,在EIP-1559实施后,退款机制可以使网络的实际Gas使用量长期维持高水平,阻碍1559机制的运行。
*如何移除?**只要把退款功能从协议中完全删除。
*移除有何副作用?**
*我们可以相当确信,没有任何应用会因此无法使用,因为退款只在执行结束后触发,所以取消退款并不会改变任何执行的可用gas数量。*GasToken将变得毫无用处*在gas价格反常时,应用失去了降低费用的能力。好在这个功能目前最主要的用户是defi的套利机器人,而套利机器人之间的gas价格竞争是一种零和活动,不过还不清楚移除这个它们用于竞争的武器会造成什么全局性的不利影响。
*如何消除顾虑?**
*Gastoken在他们的网站上已经警告过,未来的协议变更可能会使GasToken无效,所以用户不会觉得惊讶*我们可以提前公布变更时间
其他候选功能
相比上面列举的,我对移除以下功能会带来多少价值缺乏信心,不过还是值得列出一个清单。
*RIPEMD160预编译**:这是一个非标准的哈希函数,很少有项目使用。我们可以用链上部署的合约进行替换,对于真正需要高效验证的项目,可以直接使用ZK-SNARK。
*动态跳转**:使用变量作为跳转目标会使代码的分析和操作变得更加困难。去掉动态跳转,只允许相对偏移的静态跳转,并且为子程序提供一些专用的指针方案可以解决这个问题。然而,这将是一个底层的改变,可能会破坏许多自定义的合约,所以其收益/成本比似乎不如这个列表中的其他项目。
*MODEXP预编译**:对于大整数计算来说,这显然是一个错误的「基本元件」,并且其gas消耗的计算方案也相当复杂。更好的选择是:(i)用预编译的ADD、MUL和MOD作为替代的基本原语,并用这些预编译的指令编写用于替代MODEXP的实现,或者(ii)将EVM384扩展到更多的长度
特别感谢MicahZoltu提出的一些建议
来源链接:hackmd.io
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
以太坊
以太坊
开放的分布式区块链应用平台,通过其专属加密货币Ether以太币提供去中心化的虚拟机,处理点对点合约。允许任何人建立和使用通过区块链技术运行的去中心化应用,没有任何欺诈、审查、第三方监管。以太坊的概念首次在2013至2014年由维塔利克·布特林VitalikButerin受比特币启发后提出,旨在共同构建一个更全球化、更自由、更可靠的互联网。以太坊EthereumETHERC20ERC-20ERC20ERC721ERC-721以太坊2.0查看更多
亲爱的AEX安银小伙伴:由于此前XEM快照,暂停充提,现已快照完成,自公告发布之时起,已恢复XEM充提币温馨提示:数字资产交易存在较大的风险,请您根据自身的实际情况决定是否参与交易,切勿盲目.
亲爱的用户: 为满足广大用户交易需求,在新杠杆ETF产品基础上,HomiEx将于2021年3月12日14:00在杠杆ETF交易区上线新的杠杆ETF产品:MATIC3L/USDTMATIC3S/U.
尊敬的WBF用户: 感谢广大用户对WBF长期以来的关注和支持,WBF社区联合项目方VRZ举行核心群空投福利活动,欢迎大家扫码申请加入核心群,数量有限,先到先得.
Gate.io“理财宝”上线至今推出许多款热门币种高年化率锁仓/活期理财产品,始终紧跟市场步伐推出当下热门的理财产品,深受用户的喜爱与支持.
译文出自:登链翻译计划 译者:翻译小组 校对:Tiny熊 使用OpenZeppelin、Truffle和Pinata。ERC-721标准催生了以太坊上的非可替代代币(NFT)市场.
一、观点 10天的风险声明,比特币终于在今日凌晨冲高后发生如约回落,目前连续两根4小时线跌破前期阻力位56620,正在试图跌破第二阻力位54990.