以太七日谈 ? 二十二
Eth1
柏林升级故障回顾
在柏林升级中,客户端 OpenEthereum 引起以太坊网络一些重要服务故障,以下为以太坊研究员 Alex Stokes @ralexstokes 对此次事件详析的编译:
首先想对@OpenEthereumOrg 的快速反应和漏洞修复表示感谢。
事件起源于这一笔交易:
https://etherscan.io/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247
这笔交易是一次合约调用,从 KuCoin 交易所给一系列地址支付 ETH。问题的根源在于交易调用数据的 ABI (二进制接口) 编码存在漏洞,这导致出现共识问题。大家可以看看 Etherscan 上的“输入数据”:
1. 我们在合约上调用 sendEths 有两个参数,一个是大小动态变化的目标地址数组,另一个是大小动态变化的数值数组 (以 wei 为单位),以此来指定把多少 ETH 发送给谁。
Cardano创始人:以太坊、Cardano及波卡等协议可以共存创建万亿美元产业:2月25日消息,Cardano创始人Charles Hoskinson表示,以太坊、Cardano、Polkadot和其他协议可以共存,这些协议可共同为大型应用程序生态系统提供服务,并最终将成为一个数万亿美元的产业。(AMBCrypto)[2021/2/25 17:53:06]
2. 我们可以对调用数据进行解析,看看是哪里出问题:第一行 (Etherscan 上的第一行,标记为) 显示地址列表以 64 byte 开始 (那一行)。第二行表明列表的数值从 416 byte 开始(那一行)。
3. 也就是说,我们可以推测这个列表的数据是成对循环的,依次向每个地址发送 ETH。到这里似乎道理挺简单的。
4. 如果我们开始迭代这个列表,我们首先进行的是调用数据的正确位组,Solidity 的 ABI 规定大小动态变化数组的长度构成数据的第一部分。
5. 这就是故障的根源,因为调用数据的值是0x10——十六进制。但是调用数据只给了 10 个地址/数值对。调用数据的正确 ABI 编码应该是 和 的数值为0xA,而不是 0x10!
6. 你可能已经猜到在这里出现了什么问题,我们可以回到这笔交易的执行记录看看发生了什么:https://etherscan.io/vmtrace?txhash=0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247&type=parity
7. 合约成功迭代前10对数据,它应该在这里就停下来,但根据调用数据,有多于10个地址,也就是说前10对数据后它继续迭代。但根据调用数据的结构,第11个地址是列表长度编码0x10。也就是说合约尝试给地址 0x10 发送 0 个 ETH。
数据:以太坊链上锚定BTC的代币总量超14.24万枚:Btconethereum.com数据显示,以太坊链上锚定BTC的代币总量已升至142496枚,约合16.16亿美元。其中,WBTC总量为105132枚,renBTC总量为26537枚,HBTC总量为6010枚。[2020/10/18]
8. 另外:如果合约尝试读取不存在的调用数据,它似乎会返回 0 个 ETH——你可以想象该合约在这里出错,但它却继续再给 6 个从调用数据“读取”的地址发送 0 个 ETH。
此时,你可能会注意到,0x10 是一个有点“特殊的地址”,因为它正好在 EVM 预编译的范围内 (像大多数在 EVM 汇编之外有优化实现的特殊合约一样)。我们不必预期预编译 0x10 能够返回 ETH,尽管它发送的 ETH 可能会石沉大海,但这不一定会造成比漏洞合约更严重的问题。那为什么它会导致整个客户端出问题呢?
原因在于 0x10 实际上是 EIP-2537 对 BLS 成对加密例程的预编译,但这个 EIP 还未在主网部署。因此尽管你可以与该地址交互,在主网上也没有合约代码进一步执行。
我们还需要另一件事来解释这个问题,你可能猜到与柏林因分叉有关:柏林部署了 EIP-2929,这份 EIP 会改变 EVM 里 gas 的计算。
在 EIP-2929 下,在你第一次执行一些存储操作码时需要支付更多,但当你往后在同一笔交易里访问相同的实体时,则支付更少的 gas。这个重新定价机制现在应该能更准确地反映改变客户端存储的成本,并承认在任何客户端执行过程中,这些数据通常被缓存在更便宜的硬件层中。
BiKi创始人Winter:以太坊的网络效应会像微信一样:金色财经报道,9月24日,链上ChainUP三周年峰会于深圳举办,会上圆桌讨论环节,BiKi创始人兼CEO Winter表示,以太坊是整个币圈唯一一个进入良性循环的公链,进入了良性循环之后以太坊带来的网络效应远超其他平台,可以形成足够强的壁垒。它的网络效应有可能像微信一样,不仅仅是一个简单的、几百亿美金的公链,以太坊的开发者、流量、生态价值等暂时没有人可以突破的。[2020/9/24]
要解释预编译的特殊性,EIP-2929 详细说明 EVM 会对被访问过合约的调用进行分辨,以反映预编译一般不需要动用昂贵的存储资源。
现在我们终于可以回到 OpenEthereum 在 #12244294 区块的漏洞——客户端把所有执行了的预编译加入到 EIP-2929 的访问列表里。因为 EIP-2537 已经在大多数客户端里实现了 (曾经说要纳入柏林硬分叉!) ,所以 OpenEthereum 对任何像上面这样访问 ?0x10 的交易给了 gas 费折扣。
看来,客户端对 EIP-2929 的实现各不相同,并只给活跃的预编译 gas 费折扣,而 EIP-2537 的预编译实际上还未启动!因此 OpenEthereum 得出的 gas 数与其他客户端不一样。
来源:
https://twitter.com/ralexstokes/status/1382750001026146304?s=20
事件发生后,核心开发者在 4.17 的 AllCoreDev 作出事后检讨,会上讨论内容包括 hive test suite 可以使用更多接近主网的配置文档、需要更好的 debug 工具、对把不良区块导入客户端并进行分析的支持对这种事情很有帮助等。还有一个原因是 OpenEthereum 现在由一个比较新的团队在运维,需要处理非常复杂的代码库和遗留问题。
声音 | 以太坊2.0研究人员:以太坊2.0将使用SHA256:以太坊2.0研究人员Justin Drake今日在推特上表示,以太坊2.0将使用哈希算法SHA256,告别Keccak256,实现标准化以及与大多数现有和未来区块链的互操作性。开发团队将耐心等待在以太坊3.0上可行的STARK / SNARK / MPC友好型哈希函数。[2019/3/27]
https://twitter.com/TimBeiko/status/1383054611506864133?s=20
另外,Ethereum Cat Herder 创始人 Pooja Ranjan 在Github 发表了整个柏林升级的回顾,包括准备、启动、纠错的过程。
文章详情:
https://github.com/ethereum/eth1.0-specs/blob/master/network-upgrades/retrospectives/berlin.md
伦敦升级进度
4.17 的AllCoreDev 对 Aleut (只涵盖 EIP-1559 和 3198)以后的测试网还需要添加哪些内容进行讨论,这部分内容又涉及是否伦敦升级后就进行“合并”,讨论的重点包括:
1. 如果伦敦后就集中在“合并”上,那么很大机会伦敦一年后才会有一个“功能分叉 (feature fork)";
2. 1559 本身的内容就很多,在社区呼声很高,且由于难度炸弹的原因必须在这个夏天实现;
3. 各个客户端团队无法做到同步推进工作,因此在添加内容到升级时需要注意这一点,基于此,大家同意伦敦至少需要包括1559、3198、以及难度炸弹推迟;
声音 | Joseph Lubin:以太坊是Dapp平台,比特币是货币实验:以太坊和ConsenSys的联合创始人Joseph Lubin说:Lubin在近期发表的一段视频中指出:Lubin承认,被他视为货币理论实验的比特币实现了普及,并且其发展相当成功。在将比特币与以太坊作比较时,Lubin表示:Lubin还提到,基于智能合约的加密货币平台能够带来可信交易、自动化协议以及智能软件。另外,以太坊协议在去中心化身份以及去中心化位置证明方面已经存在应用。[2019/3/2]
4. 关于其他 EIP (EIP-3403、EIP-3074、EIP-2537、EIP-2677),我们应该看它们会给客户端带来多少工作,以及它们能提供多少价值。感觉 EIP-3403 和 EIP-3074 是大家最想要的。
由于伦敦升级近在眼前,还有很多事情需要做决定,会议决定 4 月 23 日安排一次额外会议,议程如下:
Eth2
北京时间 2021 年 4 月19 日 17:20:23 迎来了信标链第 1,000,000 个 slot!
Layer2
Matter Labs 团队介绍新解决方案 zkPorter
以太坊二层解决方案团队 Matter Labs 表示,在 zkSync 2.0 中, L2 状态将会分成两个部分:数据可用性在链上的 zkRollup 和数据可用性在链下的 zkPorter,用户可以自行选择将自己的资金存储于链上还是链下。关于 zkPorter 的详细介绍,请阅读《zkPorter: L2 扩容的突破》。
随后,Vitalik 在 reddit 中提出对于本篇文章的质疑,认为 “zkPorter 有着比 Optimistic rollups 更强的安全保障” 这一说法并不恰当,zkSync 方回复了 Vitalik 的质疑。详细请看文章。
https://medium.com/matter-labs/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf
生态
Chainlink 2.0 白皮书发布
4 月 15 日,chainlink 发布 2.0 版本白皮书:去中心化预言机网络发展的下一步。除了 Chainlink 目前所提供的外部数据之外,该版新白皮书概述了 Chainlink 将如何发展去中心化预言机网络,如何继续创建一个去中心化元层,通过提供高度的可扩展性、机密性以及安全的链下计算方式,来提高智能合约。
Chainlink 2.0 白皮书介绍了一种用于构建混合智能合约的新架构,其中去中心化预言机网络提供了区块链无法提供的关键功能。它作为一个安全的链下计算层,部分依赖于区块链以实现安全性,但在运作时同时利用链下系统的可连接性、功能丰富性和可扩展性。这个新的抽象层将使得 Chainlink 为大量安全的、功能丰富的智能合约应用程序提供支持,并且为更广泛的用户和应用案例提供支持。
图:去中心化预言机网络允许智能合约应用程序访问任何链下数据源或计算
https://research.chain.link/whitepaper-v2.pdf?_ga=2.76399382.2026745185.1618821757-725326390.1609159043
https://blog.chain.link/chainlink-2-0-lays-foundation-for-adoption-of-hybrid-smart-contracts/
斯诺登肖像 NFT 以 2224 ETH 价格成功拍卖
基于前美国中央情报局职员、“棱镜计划”披露者爱德华 · 斯诺登的肖像的 NFT 作品 ”Stay Free“,以 2224 ETH 的价格在 NFT 制作和交易平台 Foundation 成功拍卖,拍卖者为新闻自由基金会 ”Freedom of the Press Foundation“,竞得者为去中心化组织 PleasrDAO。
该 NFT 使用开源软件制作,背景画面为当年对美国国家安全局的大规模监控计划的标志性法庭裁决书,中间的肖像为斯诺登,摄影师为 Platon。其拍卖收益将全部捐献给新闻自由基金会,旨在资助和支持言论自由和新闻自由,主席为斯诺登。
cr: foundation.app,“Stay Free”
来源:
https://foundation.app/Snowden/stay-free-edward-snowden-2021-24437
以太坊生态活动预告
4 月 23 日 至 5 月 30 日
imToken 将联合 ETHPlanet、EthFans、ECN、上海前沿技术研讨会和 HiBlock 等以太坊社区和项目,举办六场以扩容为主题的活动,形式有:Meetup + Workshop + AMA + Hackathon。
本次系列活动网站:https://rollup.world
第一场活动 (4月23日) 即将开始:Rollup - 以太坊 L2 扩容新范式杭州线下 Meetup。
报名方式:点进文章《线下 Meetup 活动|Rollup - 以太坊 L2 扩容新范式》,点击文末「阅读原文」扫码报名 Meetup 活动。
4 月 22 日,以太坊企业会议2021展望
以太坊各个领域的企业将聚首 ”Ethereum in the Enterprise 2021“ 共同探讨以太坊主网、Layer2、Eth2.0、隐私、安全等主题。
会议链接:
https://www.conference2021.entethalliance.org/
标签:ETHEETHERTPSHTTtogetherbnb仓库薇拉ethereumuniswaphttps://etherscan.io
Coinbase 投资的 Compound 在六月份引爆了加密市场行情,自此多个知名 DeFi (去中心化金融)项目都呈现爆发式增长.
有关Casper网络和Metis协议的初步研究Cardano创始人:以太坊、Cardano及波卡等协议可以共存创建万亿美元产业:2月25日消息.
11月30日,万向区块链“区块链+”技术部高级总监屠文慧受邀在由湖南省工业和信息化厅主办,长沙经济技术开发区管理委员会、工业互联网产业联盟承办的“2021国际工业区块链大会-新基建技术融合应用分.
MoonEdge 是第一个完全致力于 Polygon(以前的 Matic)上 IDO 的分散式启动平台。MoonEdge 的目标是为 Polygon 上的项目提供一条无缝的路径,使其进入市场.
NFT市场分析师PlungeFather今发推特称在过去24小时里,一个名为“Cool Cats”的销售额正在快速上升,超越NBA Top Shot.
Linear Finance是非托管、跨链兼容的Delta-One(价格变动与标的资产相一致)合成资产协议,其对于去中心化金融的愿景是让更多人可以轻松便捷地交易包括传统和数字资产在内的投资品.