以太坊爱好者

以太坊爱好者

Bitpush 专栏 · 共8篇文章

通告 | 每周以太坊,2021-11-06

(编者注:Week in Ethereum 是 Evan 的个人作品。他既传达事实,也会加入自己的引申。翻译这些信息不代表我们认可他的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。) 主网 PoW 关停社区会议:平均出块时间从约 13 秒调整到 12 秒,但可能有些合约硬编码了 13 秒出块的预设Dankard 的幻灯片:找出安全的链首Erigon v2021.11.01:首个 beta 版本,无法回退版本的 EIP EIP4399:以 RANDOM 操作码替代 DIFFICULTY 操作码 权益证明 Danny Ryan 的 Finalized PoS 系列更新:现在提出的分叉选择规则修复可以缓解 3 种 活性/重组 攻击,而且不会拖慢关闭 PoW 的进度长推特:PoS 以太坊中的重组攻击和缓解措施最新的 What’s New in Eth2PoS 实现者会议 [1] 。来自 Ben Edgington [2] 的笔记:[1]: [2]: Kintsugi:跟踪一个持续到 12 月初的长期测试网的里程碑跟踪器Pyrmont 测试网将被关停Altair 升级后的质押奖励波动将更大:Attestation:0.0040 ~ 0.0042 ETH 每天区块:0.018 ~ 0.03 ETH 每区块同步的委员会成员:每次获选委员会 0.08 ETH给验证者使用的 MEV-Boost:开发中的 Flashbots 架构,位于共识层和执行层之间 Layer-2 zk rollups 的未来:侧链应采取务实的方法成为 zk-rollupConnext 加入主网支持:可在主网、Arbitrum 和一些侧链之间转移稳定币 开发者材料 Solidity 文档代码示例可以用 Remix 打开solidity-trigonometry:基本的三角函数,sin 和 cos 运算耗费约 2K~2.5K gasnft-swap-sdk:TypeScript SDK,使用 ox v3 协议来封装 NFTNFT Floor Market:链上的 NFT 市场合约,除了版税没有手续费,尚未得到审计StarkNet playground:编译和部署 Cairo 合约Warp(Solidity 到 Cairo 的转译器)示例:转译两个可以组合的合约并部署它们starknet-react-example:徜徉的逻辑和案例,使用 Circom 语言实现为 SNARKplonkit:与 Circom 搭配使用的 zkSNARK 工具箱 安全性 Solidity 不受 Trojan Source 的影响。Solidity Underhanded 竞赛 2020 的获奖者已经披露了 Unicode direction marker 中的这个问题;v0.7.6 已经修复了 应用 ENS DAO [1] :用户可以按账户申领及委托治理代币;正在排除 token 农场账户 [2][1]: [2]: Aave v3 概览Maker DAI 直接存款模块:Aave 铸造 DAI 的特权渠道原文链接: https://weekinethereumnews.com作者: Evan Van Ness ...

1745天前以太坊爱好者​以太坊以太坊
通告 | 每周以太坊,2021-11-06

通告 | 每周以太坊,2021-10-30

(编者注:Week in Ethereum 是 Evan 的个人作品。他既传达事实,也会加入自己的引申。翻译这些信息不代表我们认可他的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。)主网 最新的核心开发者会议视频 [1] 。来自 Tim Beiko [2] 的备忘录:[1]: <https://youtu.be/5cOWjMAuReI>[2]: <https://twitter.com/TimBeiko/status/1454188180609986564>客户端团队重新在他们的核心代码库中开发 Amphora 原型讨论要对 PoS 时期的 EIP1559 做一些小调整(EIP4396)以太坊无状态性路线图讨论<https://notes.ethereum.org/Yn_mwNa2SeeQHnKsRgekKg>无状态以太坊的 Bayesian 网络模拟<https://consensys.net/blog/research-development/measuring-the-health-of-the-ecosystem-in-a-stateless-ethereum>请立即升级 Geth 客户端:v1.10.9 以前的版本披露了安全漏洞,可通过构造 p2p 消息发起 DoS 攻击<https://github.com/ethereum/go-ethereum/security/advisories/GHSA-59hh-656j-3p7v>Erigon v2021.10.05:如果你在使用 v2021.10.04,请立即升级;交易池默认 v2;更好的开发者模式<https://github.com/ledgerwatch/erigon/releases/tag/v2021.10.05>Erigon 将在下次发布时从 alpha 变成 beta 版<https://github.com/ledgerwatch/erigon/wiki/Erigon-Beta-1-announcement>Nethermind v1.11.6,更好的跟踪功能,正在实现修复 eth/66 问题的组网协议<https://github.com/NethermindEth/nethermind/releases/tag/1.11.6>Tim Beiko 的Core Devs 文章更新。解释了推迟难度炸弹的理由,以及关闭 PoW 的架构<https://tim.mirror.xyz/sR23jU02we6zXRgsF_oTUkttL83S3vyn05vJWnnp-Lc> EIP EIP4396:感知时间的 Base Fee 计算机制<https://github.com/ethereum/EIPs/blob/186f930697148e0eb2b526d9f16b06bf2e4ae605/EIPS/eip-4396.md> 权益证明 信标链升级到 Altair:没有发现问题,参与度很高<https://twitter.com/dapplion/status/1453322075951845385>更改分叉选择规则以缓解平衡式攻击(balancing)和重组攻击的提议<https://ethresear.ch/t/change-fork-choice-rule-to-...

1750天前以太坊爱好者以太坊爱好者
通告 | 每周以太坊,2021-10-30

通告 | 每周以太坊,2021-10-23

(编者注:Week in Ethereum 是 Evan 的个人作品。他既传达事实,也会加入自己的引申。翻译这些信息不代表我们认可他的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。) 主网 PoW 关闭社区会议计划于 11 月 5 日举行,邀请基础设施提供者和应用开发者参与<https://github.com/ethereum/pm/issues/402>Geth v1.10.11:修复 pending 交易检索 RPC 和快照损坏错误<https://github.com/ethereum/go-ethereum/releases/tag/v1.10.11>无状态以太坊资源表:沃克尔树开发进度、地址空间扩展以及状态网络<https://notes.ethereum.org/@gballet/Sy-a6T5St>Piper Merriam 的 Aperture 门户网络更新:状态网络测试网即将到来,已对连线协议达成共识,正在考虑使用 libp2p 以及浏览器内的极轻客户端<https://snakecharmers.ethereum.org/the-aperture-vol-2/> EIP 多个关于登录和身份的 EIP 总结(包括 EIP 4361)<https://blog.spruceid.com/ethereum-identity-review-of-eips-over-time/> 权益证明 请在 10 月 27 日前更新你的节点。Danny Ryan 的 Finalized 提醒:如果不升级,你会被惩罚<https://blog.ethereum.org/2021/10/19/finalized-no-30/>Teku v21.10.1:支持为 TCP 和 UDP 使用不同的接口,修复 v21.10.0 引入的 windows 不兼容性<https://github.com/ConsenSys/teku/releases/tag/21.10.1>Lighthouse v2.0.1:修复节点发现活动中可能导致意外崩溃的活动<https://github.com/sigp/lighthouse/releases/tag/v2.0.1>Prysm v2.0.2:修复 bug<https://github.com/prysmaticlabs/prysm/releases/tag/v2.0.2>Nimbus v1.5.2:修复 + 优化<https://github.com/status-im/nimbus-eth2/releases/tag/v1.5.2>46% 的节点已经准备好 Altair 升级(nodewatch.io)<https://www.nodewatch.io/>可视化客户端多样性的变化。去年恶化了,但现在在缓慢提升<https://twitter.com/sproulM_/status/1451065804183662592>最新的 What’s New in Eth2<https://hackmd.io/@benjaminion/eth2_news/https%3A%2F%2Fhackmd.io%2F%40benjaminion%2Fwnie2_211022>PoS 实现者会议 [1]...

1761天前以太坊爱好者以太坊爱好者
通告 | 每周以太坊,2021-10-23

[Thomas Jay Rush]引介 | 难度炸弹推迟:该如何决策?

本文是为预测 EIP 4345 的影响而作的练习。这个 EIP 提议在 2021 年 12 月推迟难度炸弹。我们的目标是看看我们是否能帮助确定应该何时推迟、应该推迟多少,好让难度炸弹预计在 2022 年 5 月份再次爆炸。预备知识有关这个主题,我之前已经写过很多篇文章了:有关难度计算的方法:It’s Not the Difficult(中文译本)有关如何推迟难度炸弹:A Method to Diffuse the Difficulty Bomb一些更老的文章见 此处 和 此处难度炸弹的计算两部分组成:A 部分,用于调整难度、平抑出块时间的波动;B 部分,即难度炸弹本体(详细解释见上述第一篇文章)。A 部分的调整时逐块发生的,保证出块时间围绕 13.5 秒波动。这部分的调整效果非常好,如果没有难度炸弹的话,将使出块时间几乎保持恒定。我们感兴趣的是 B 部分。B 部分的炸弹是一个阶跃函数,每隔 10 万个区块,数值就变作两倍。在 “爆炸” 之前,大家都不会注意到它,然而一旦它开始爆炸,数值上升的速度会非常快(跟 2^n 一样。炸弹的数值依赖于 fake_period(伪周期号,在等式中表示为 n_sub_p)。fake_period 的值则完全依赖于 fake_block (伪区块号)的数值;这个数值又是由当前区块的区块号(real_block 数值)以及 offset(推迟量)决定的。注意我只有自己一个人。我带着日渐疲惫的心、使用公开可得的数据写下这篇文章。我在这里所说的一切都是可以讨论的,但我已不准备为此负任何责任。本文中的一切,请自己带着怀疑和谨慎加以看待和使用。实际数据 vs. 理论数据我是一个工程师,不是一个数学家,所以我对实际数据的兴趣,要比对数学预测的大。在下文中,我会预测数据将如何改变。我的预测基于上面的公式,但都只用到了简单、直接的 Excel 表格。我的讨论基于三个简单的观察:A 部分工作得非常好,使得出块时间稳定在平均 13.3 的水平。B 部分也工作得非常好,它是独立于 A 部分的,并且只会提高区块时间。如果我们忽略炸弹部分,我们的预测会是保守的。换句话来说,如果我们的预测忽略了炸弹的效果,我们预测的时间将会比实际时间 “提早” 一些。这样的话,即使我们预测错了,也会有额外的缓冲时间。第一个表格使用当前的区块号(在撰文之时是 1339 1127),并按每块 13.3 秒的时间推算出 1400 0000 区块高度的时间:看仔细一些,我们发现,自区块号 1200 0000 以来,平均出块时间一直在提高(尽管 8 月和 9 月有所下降)。当然,随着炸弹的爆炸,平均出块时间会增加得越来越快。再次强调,为了保守一些,我们选择 13.3 秒的出块时间来预测未来区块挖出的具体时间,并且,我们暂时忽略难度炸弹的效果。当难度炸弹爆炸时,平均出块时间增加;所以,忽略难度炸弹的结果是我们预测的时间将早于实际挖出的时间。(按我们这个例子来看,就是区块 1400 0000 将 “不早于” 2022 年 1 月 10 日挖出。)何时分叉我们考虑的第一个问题是,“何时应该分叉?”在我看来,答案完全取决于 fake_period 的数值。可以这么问:“我们应该在哪个区块号分叉?1370 0050,1380 0050 还是 13900 0050?”(加上一个 50,确保没有差一错误(off-by-one error) ——...

1762天前以太坊爱好者以太坊爱好者
[Thomas Jay Rush]引介 | 难度炸弹推迟:该如何决策?

[Gigi]观点 | 工作量证明之必要

根据定义,去中心化系统没有单一事实来源。中本聪取得的突破在于,他开创了一个系统,让所有参与者都独立聚焦于相同的事实。正是工作量证明让这一切得以实现。工作量证明的意义在于可以创建出无法被推翻的历史。如果出现两个历史相争的情况,包含更多工作量的历史胜出。根据定义,工作量最多的那条链就是事实,也就是我们所说的中本聪共识(Nakamoto consensus)。为什么要以工作量为指标?简而言之,因为做功需要消耗能源。你无法在这上面造假、扯皮或撒谎。工作量证明就体现在工作结果上。在比特币网络中,工作(work)指的是计算。不是所有计算,而是特指没有任何捷径的计算:猜测。之所以没有捷径,是因为这种计算无所谓 进步/积累(no progress)。每次猜测都是一次全新的猜测。最妙的是工作量本身就包含在计算结果中。数据不证自明:计算结果就是既定事实,不需要外部某个主体来告诉你事实。由于猜测的概率性,数据就暗示了为之付出的工作量。其它机制,例如权益证明,并不具备这一特性。你永远无法确定你看到的就是真相,因为创建另一个真相没有系统之外的成本。计算是连接信息世界和物理世界的唯一桥梁。在处理信息时,我们拥有的只是信息和信息的转换:也就是计算。计算需要消耗能源。能源就是桥梁。能源是实实在在的。如果把通往物理世界的一端砍断,你将永远留在幻境中:你无法分辨真正发生了什么。你必须信任其他人告诉你发生了什么。你无法亲自验证。你必须依赖于信任。权益证明还有很多其它问题,例如,验证者选举的公平性(由谁决定怎么选举?)、天然的中心化趋势( 更多权益 = 更多奖励 = 更多权益)以及缺乏对时间戳操控攻击的天然抵抗力。工作量证明可以解决上述这些问题。它可以将选举流程去中心化,为已经发生的事情创建物理证明;它具有真正的系统外成本,可以将报时工作去中心化。链接:比特币即是时钟(中文译本)至于工作量证明是否浪费资源,在回答这个问题之前先要弄明白工作量证明解决了什么问题。如果正确理解了这个问题,你就会知道,没有其它无需信任的解决方案。因此,这个问题变成了:免信任的数字健全货币有什么用处?它值得这么多能源消耗吗?如果造的是冰箱、汽车、智能手机等东西,社会大众会认为值得。如果造的是比特币,那些理解具有抗审查性的健全货币所带来的社会效益的人也会给予肯定的回答。总而言之,工作量证明不仅有用,而且至关重要。没有它,免信任的数字货币根本无法运作。我们离不开一个连接物理世界的锚。没有这个锚,我们就无法创建一个不证自明的可信历史。能源是我们手上唯一可以充当锚的东西。工作量证明 = 信任物理来决定发生了什么权益证明 = 信任人来决定发生了什么对于所有认为比特币是一种浪费的人,我都深表同情。我以前也是这么想的,但是我转变了观点。就像大多数人那样,我那时对(健全)货币一无所知。链接:比特币的能源消耗 —— 我的观点变迁在一个可能敌意环生的去中心化系统中,如何就时间达成共识的问题无法得到完美解决,即使是从理论上来说也不行。工作量证明这一基于概率的实用型方案恰好可以解决这个棘手的问题。账本需要时间,时间是个热力学概念。(完)(文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取)原文链接:https://twitter.com/dergigi/status/1392826448017346561作者: Gigi...

1767天前以太坊爱好者以太坊以太坊爱好者
[Gigi]观点 | 工作量证明之必要

通告 | 每周以太坊,2021-10-16

(编者注:Week in Ethereum 是 Evan 的个人作品。他既传达事实,也会加入自己的引申。翻译这些信息不代表我们认可他的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。) 主网 最新的核心开发者视频会议 [1] 。来自 Tim Beiko [2] 的笔记:[1]: <https://www.youtube.com/watch?v=BTtwbvZZpfs&t=293s>[2]: <https://twitter.com/timbeiko/status/1449047538103767044>目标是在 2022 年 2 月之前准备好 PoW 关停的代码Arrow Glacier 硬分叉将于 12 月 8 日(区块高度 1377 3000)左右激活,推迟难度炸弹到 2022 年 6 月(推迟 1070 万个区块),如果需要 以及/或者 算力波动更大,PoW 的关停有更长的缓冲期OpenEthereum 已经弃用,也不再支持关闭 PoW计算 Arrow Glacier 升级带来的难度炸弹推迟效果<https://tjayrush.medium.com/adventures-in-difficulty-bombing-837890476630>Geth v1.10.10 修复了 bug<https://github.com/ethereum/go-ethereum/releases/tag/v1.10.10>Erigon v2021.10.03:远程 RPC daemons 的状态缓存<https://github.com/ledgerwatch/erigon/releases/tag/v2021.10.03> EIP EIP4361 [1] :使用以太坊账户来登录。项目网站:login.xyz [2][1]: <https://github.com/ethereum/EIPs/blob/27b5497268bab4449cbe815ae9812388005d763b/EIPS/eip-4361.md>[2]: <https://login.xyz/>EIP4363:交易索引操作码<https://github.com/ethereum/EIPs/blob/556533cbe1257d570da179a20ccf1f2dcd4ff224/eip-4363.md> 权益证明 Pithos 公开测试网(测试关闭 PoW):加入指令<https://github.com/parithosh/consensus-deployment-ansible/blob/master/README.md>在新的 Ubuntu 系统上安装的视频讲解<https://www.youtube.com/watch?v=mn8ZNrhTzLI>浏览器<https://pithos-explorer.ethdevops.io/>回顾希腊的 Amphora 周:主网客户端和信标链客户端团队在关闭 PoW 道路上的一大里程碑<https://blog.ethereum.org/2021/10/15/amphora-merge-milestone/>注释版信标链 spec<https://github.com/ethereum/annotat...

1768天前以太坊爱好者以太坊以太坊爱好者
通告 | 每周以太坊,2021-10-16

通告 | StarkNet Alpha 即将在主网上线

太长不看StarkNet Alpha 即将于 11 月登陆以太坊主网。现在正是在 StarkNet 上进行构建的绝佳时机。简要回顾我们已经在今年年初宣布了我们对 StarkNet 的愿景:为以太坊带来强大的可扩展性,同时实现 L1 安全性、免许可型交互和去中心化。我们 6 月在公共测试网上线了 StarkNet Alpha。该版本支持完全免许可的通用计算智能合约。我们已经对其进行了两次升级:先是升级至 Alpha 1 —— 提供 L1  L2 消息传递和链上数据;再是 Alpha 2 —— 支持可组合性。StarkNet Alpha 2 目前支持类似以太坊状态的可组合型通用计算智能合约,允许 L1 和 L2 合约进行交互。点击此处,查看更多内容。什么是 StarkNet Alpha on Mainnet?StarkNet Alpha on Mainnet 将支持与在 Goerli 公共测试网上类似的功能。未来预期由于 StarkNet 仍处于开发阶段,我们想要逐步引入新的功能,并确保每一步都符合开发者的预期。这里,我们想要强调两个特别重要的方面:许可型智能合约部署:我们将遵照我们的 Optimistic Rollup 同僚给出的明智策略:先从 许可型 合约部署开始。详述如何将你的智能合约加入初始白名单的协议将在未来几周内发布。不保证向后兼容性:我们预期未来 StarkNet Alpha 过渡到 StarkNet Beta 后需要从头开始构建状态。网络将从区块 0 开始,各个应用需要在新的网络上部署合约。此外,开发者和用户需要注意的是,StarkNet Beta 可能无法向后兼容 StarkNet Alpha,例如,开发者可能需要修改合约。当然了,我们会努力确保应用能轻松完成迁移,尽量避免必要改动。近期新增功能在将 StarkNet Alpha 从测试网迁移至主网的过程中,我们会:将构造函数添加到合约内。改善测试架构。从使用 ID 创建区块和交易变为使用哈希。我们计划继续定期部署新的功能,就像我们在公共测试网上那样。我们打算在近期完成以下升级:账户合约和代币合约 —— 让 DeFi 应用能够通过它们熟悉的方式与 StarkNet 进行交互。改善的合约功能 —— 支持合约可升级性和事件。Warp:由 Nethermind 开发的编译器,可以将 Solidity 语言编译成 Cairo 语言,实现从 Solidity 智能合约到 StarkNet 智能合约的平滑过渡。以太坊签名:原生支持使用 secp256k1 的椭圆曲线签名,使得与现有钱包的整合变得更加容易。StarkNet 全节点:可以让具备与运行以太坊全节点同等硬件条件的用户加入网络。费用机制等到账户合约和代币合约被引入 StarkNet Alpha,我们就会启用费用机制。所有提交至 StarkNet 的交易都会产生费用,用来支付链上和链下成本。该费用最初会以 ETH 的形式收取。随着 StarkNet 的规模不断扩大,单笔交易的成本会降低(就像所有基于 STARK 的系统那样)。在设计最初的费用机制时,我们将以简单性为重,兼顾交易定价(资源消耗量)的准确性。随着时间的推移,该机制预期将得到逐步改善。为使 StarkNet 持续运营下去并激励运营者和开发者,费用收入的一部分将会分配给应用开发者和 StarkNet 的核心开发者。安全性StarkNet Alpha 在主网上的安全模型将与在测试网上的相同:每个状态转换均...

1770天前以太坊爱好者StarkWare以太坊爱好者
通告 | StarkNet Alpha 即将在主网上线

干货 | zkEVM:设计挑战与解决思路

感谢 Vitalik Buterin、Barry Whitehat、Chih-Cheng Liang、Kobi Gurkan 和 Georgios Konstantopoulos 的审阅和真知灼见。太长不看我们相信 zk-Rollup 会成为 “香饽饽” —— 其成本优势和极高的安全性使得一众 Layer 2 可扩展性方案相形见绌。然而,现有的 zk-Rollup 实现都是针对特定应用的,因此我们很难在某个 zk-Rollup 内构建具有可组合性的通用 dApp,把现有的应用迁移过来也无从谈起。我们引入了 zkEVM 用来为通用的 EVM 验证生成零知识证明。这样一来,我们就可以构建出完全兼容 EVM 的 zk-Rollup,以便现有以太坊应用轻松迁移到这个 zk-Rollup 上。在本文中,我们明确指出了 zkEVM 在设计上面临哪些挑战以及为何 zkEVM 在当下有可能实现。我们还给出了更加具体、直观的认知,并概述了如何从头开始构建 zkEVM。背景zk-Rollup 是公认的最佳以太坊可扩展性方案。它不仅在安全性上媲美以太坊 Layer 1,而且在交易敲定速度上是 Layer 2 解决方案的翘楚(点击此处,查看详细的对比分析(原文、译本))。从中长期来看,随着 ZK-SNARK 技术不断发展,zk-rollup 将在所有应用场景中力拔头筹。—— Vitalik Buterinzk-Rollup 的基础原理是将大量交易打包到一个 Rollup 区块内,并在链下为该区块生成一个简洁证明。随后,Layer 1 上的智能合约只需验证该证明即可直接应用新的状态,无需重新执行这些交易。这样就可以节约一个数量级的 gas 费,因为证明的验证成本远低于重新执行的计算成本。另一个好处是可以通过数据压缩来节省存储空间(即,仅在链上存储最少量的数据用于验证)。虽然 zk-Rollup 安全且高效,但是其应用依然局限于付款和互换(swap)。通用 dApp 构建起来很难,主要有以下两个原因:第一,如果你想在某个 zk-Rollup 内开发 dApp,你需要使用一种特殊的语言(即,R1CS)来编写你的所有智能合约的逻辑。这种语言有着复杂的语法,而且要求使用者精通零知识证明。第二,现有的 zk-Rollup 实现不支持可组合性1。因此,在 Layer 2 上,不同的 zk-Rollup 应用之间无法交互,严重破坏了 DeFi 应用的可组合性。简而言之,zk-Rollup 目前对开发者并不友好,而且功能有限。这是我们想要解决的最大问题。我们想要通过直接支持原生 EVM 验证来提供最好的开发者体验,并在 Layer 2 上支持可组合性,让现有以太坊应用可以原封不动地迁移到 zk-Rollup 上。在 zk-Rollup 中构建通用 dApp我们可以通过以下两种方法在 zk-Rollup 内构建通用 dApp:一种是为不同 dApp 构建专用电路(“ASIC”)。另一种是构建通用 “EVM” 电路用于执行智能合约。“电路(circuit)” 指的是零知识证明中使用的程序表示。例如,如果你想要证明 hash(x) = y,你需要使用电路形式重新编写哈希函数。电路形式只支持非常有限的表示(即,R1CS 只支持加法和乘法)。因此,使用 circuit 语言编写程序难度很高 —— 你只能使用加法和乘法来构建所有程序逻辑(包括 if else、循环等等)。第一种方法要求开发者为不同 dApp 设计专用 “ASIC” 电路。这是最传统的使用零知识证明的方式。自定义的电路设计有...

1771天前以太坊爱好者以太坊以太坊爱好者
干货 | zkEVM:设计挑战与解决思路
没有更多了