已成功做出小型 danksharding 的原型;针对 OpenSea 用户钓鱼攻击的分析
EthDenver 成功做出一个完整的数据 blob 交易原型
以太坊研究员@protolambda 在 EthDenver 活动中与其他以太坊共识层和执行层开发者一起做出了一个完整的数据 blob 交易 (即小型 danksharding) 原型,并表示数据 blob 是走向完整以太坊分片的第一个里程碑,可以使像 Optimism 这样的 rollup 扩大超过 100 倍的容量。
以下是他分享此次过程的概要:
我们在这次黑客松完成了很多!
这是 Denver 黑客松的规范和相关链接:
在未来几周,我们将按照这个规范开始构建开发测试网和准备 EIP。
Go-ethereum 的更新:
这也是 go-ethereum 为完整的 danksharding 做准备:向前兼容,接通未来的 eth2 扩展工作,例如分片和数据可用性采样。
Prysmatic Labs 的开发者在 Kiln 测试网的他们的信标节点开发分支的一个分叉上执行了 data-blobs 交易。
这些 data-blobs 会存储在共识层,并在一段具有可用性的时间后 (待定,大概 1 个月) 被修剪。
会被修剪的数据可用性确保了所有行动者都可以同步 rollup/L2 变更,同时给所需要的 L1 资源加上限制。
为了在资源有限的情况下进一步扩展 L1,我们正在考虑下一步部署完整版本的 danksharding:不是将所有的 blob 分布到所有的节点上,而是使用数据可用性采样 (DAS) 来确保可用性,同时保持每个节点的工作量最小。
虽然说是小型 danksharding,但其实并不“小”——每个区块有 16 个 blob,4096 个点,每个点 32 个字节,以每个区块容量的一半为目标 (类似于 EIP-1559),我们每 12 秒有 1 MB 的数据!
现在 Rollup 在每个区块使用 2-10 KB,所以这是 100 倍容量的区别。
一旦一笔 blob 交易从执行层交易池中被一个提议者选中,没有封装的版本会放进执行负载 (execution payload),而 blob 则与信标区块一起传播。
为什么不放在信标区块里?
当数据可用性采用开发成熟时,在共识层上的这种侧车 (side-car) 设计使我们能接上完整的分片设计:blob 对于采样验证者来说是可选的。这释放了空间,使得我们能够增加 blob 数量,以再扩展 10 倍。
理想情况下,这个提案两周后会提交到以太坊核心开发者会议,欢迎大家的反馈和建议。
监测以太坊质押池客户端多样性的网站上线
开发者@0xinvis 于 2 月 14 日上线网站 pools.invis.cloud,网站标题为“受欢迎的以太坊质押池以及它们使用 Prysm 的情况”
网站的左边列出了目前验证者使用 Prysm 的情况,并论证客户端多样性的重要性。右边则以验证者占比列出质押池使用 Prysm 的情况。这样,哪些受欢迎的质押池没有为客户端多样性做出努力便非常清楚。
信标链的罚没机制有效性受质疑?
2 月 16 日,推特账户Jiasun Li@mysteryfigure 发推质疑以太坊 2.0 的罚没机制的有效性。他表示超过 75% 的违规行为没有被吹哨者 (whisleblowers) 发现,因此也没有被罚没。他论文使用的数据是从前 175 万的信标区块(截至2021 年 8 月 1 日)。
这条推文引起协议层开发者的高度关注,最终发现其论文的发现是 Beaconcha.in 的漏洞造成的 (其论文只引用了 Beaconcha.in 的 API 数据)。Beaconcha.in 的官方推特也发文表示幸亏是 beaconcha.in 的漏洞而不是客户端的,他们会尽快修复这个漏洞。
另外以太坊基金会研究员 Danny Ryan 也评论到“建议以后做负责任的披露。不正确的结果可能会导致验证者的资金损失,或会给承载大量资金的协议带来安全方面的影响。”
merge-devnet-4 开发测试网上线
根据以太坊基金会的开发者@parithosh_j 2 月 17 日的推特,merge-devnet-4 上线,但工具和浏览器目前还没有,配置文档可以在这里找到。
测试网的资源汇总页:https://devnet4.themerge.dev/
@parithosh_j 表示这是 Kiln 测试网的预演,merge-devnet-4 并不旨在取代 Kintsugi 测试网。请等待 Kiln 测试网的公告,以从 Kintsugi 迁移过去。
在底层的 PoW 测试网上,Geth 的开发者@vdWijden Marius 的矿工创建了竞争的终结 PoW 区块,导致出现了多个分叉,所以不同的信标节点检测到不同的终结区块哈希。但该链还是在一个区块哈希上达成共识,并如预期般进行,链在做最终敲定且没有离线没有干扰情况。这是测试网上第一次出现这种情况,开发测试网成功实现最终敲定显示出它的韧性。
研究员 @mklinin2 Mikhail 对这个情况进行了解释:
终结区块就是总难度 >= TTD (终结总难度) 的区块,且其父块的总难度是 < TTD 的。当出现多个 PoW 区块
符合这个条件时,第一个 PoS 区块的提议者根据自己的主观意见选择的那个终结区块就会称为链头。
如果本地节点接收的第一个 PoS 区块是基于满足终结区块条件的,那么节点必须接受该区块,即使从bending节点角度来看,该区块不属于权威链。这种方法可以实现无缝过渡。
Kiln 测试网
根据 Tim Beiko 2 月 19 日对第 132 次以太坊核心开发者会议的记录,关于 Kiln 测试网的 v2 规范,大多数客户端团队目前还在 WIP (进行中) 状态。考虑到 v2 的变更是附加的而没有改变共识,将在这周发布一个新开发测试网。
JSON RPC 方法更新
在之前《合并将如何影响以太坊应用层》的文章里,Tim Beiko 有写到关于最终敲定的区块会有一个新的 finalized
的 flag。
在 132 次以太坊核心开发者会议上,开发者也对这个问题进行了讨论:
合并改变了人们对某些类别的区块重组可能性的假设。尽管现在 JSON RPC 接受 flag latest
以返回链头区块。但可以预期这个区块还是可能被重组的。
在 PoW 机制下,我们可以很快得到一个“safe (安全的)”区块,我们预期在正常情况下不会被重组,因此我们希望将 latest
返回的区块更新为 “safe head” 区块,因为这是这个 API 的默认用法。
应用还是可以使用“unsafe" 这个 flag 来获得链的最新区块。同样,在 PoW 机制下,我们可以获得一个明确的确认:最终确定性的阈值。因此,我们将添加 flag "finalized" 到 JSON RPC 端点,它将返回最后被敲定的区块。
所有这些都仍然是待完成内容 (不涉及共识相关变更),但我们已经开始研究这部分了。这里的第一步包括对 “safe head” 的算法进行形式化,供客户端使用。期待未来几周/几个月有更多这方面的更新。
Urbit 网络推出针对其去中心化身份层的扩容解决方案 Naive rollup
Urbit 于 2002 年成立,致力于创建一个完全去中心化的 p2p 网络。Urbit 由两个部分组成:Urbit 操作系统 (Arvo) 和去中心化身份层 (Azimuth),两者密不可分。Urbit 网络的身份 (Urbit ID) 通过 Azimuth 这个身份系统实现去中心化,Arvo 使用 Azimuth 来验证你拥有某个地址,而这个地址映射你在网络中的名字。Azimuth 是一套以太坊合约,而对 Urbit ID 所有权以及属性的任何修改都会通过 Azimuth 合约记录在以太坊上。Azimuth 的任务就是为网络的身份数据所有权提供一个权威的、去信任的登记表。
Urbit ID 以 NFT 的形式呈现,分为三个等级:galaxy (星系)、star (恒星) 和 planet (行星)。Planet 供个人日常使用;而 star 和 galaxy 作为网络基础设施存在:在 Urbit OS 网络上,它们提供路由和分布式的软件更新。
然而,Azimuth 继承了以太坊的去中心化特性的同时,也需要支付高昂的费用来直接在以太坊 L1 上执行交易。因此,Urbit 推出了针对自己网络的 L2 扩容解决方案 Naive rollup 以降低其用户的 gas 成本 (可降低将近 200 倍)。简单来说:针对身份的任何修改的计算不再在以太坊网络上执行,而是在 Urbit 自身的网络里进行,最终由其 L2 节点 rollers 将计算结果发布至以太坊区块链上。
2022 年 2 月 14 日,Urbit 正式推出其 L2 解决方案 Naive rollup,star 运营者和 planet 持有者可以迁移至 Urbit 的 L2 平台中,享受便宜的交易费。需要注意的是,向 L2 的迁移不可逆转,并且 L2 上的 star 和 planet 目前无法与任何 L1 工具或合约交互 (如 MetaMask 或 OpenSea)。
针对 OpenSea 用户钓鱼攻击的分析
为应对越来越多的黑客攻击,2 月 19 日,OpenSea 宣布了上线新合约,要求用户在 2 月 25 日前将上架的 NFT 迁移到新合约上。
2月20日,推特用户 @AlabasterJefferson 声称其 NFT 被洗劫了。他与其他几个被黑的受害者联系上后,发现都有一个共同点:被偷的 NFT 都是他们自己手动迁移的那几个,要求 OpenSea 给个说法。他说收到过一封来自 OpenSea 的邮件,上面确实有一个链接 email.opensea.io (OpenSea 官网是 opensea.io) ,但是他没有在邮件里点击进去。邮件里提示让他去检查 OpenSea,所以他转而去 OpenSea 官网的页眉处查看迁移列表。
cr : @AJFromDiscord
20 日晚上 10 点,OpenSea CEO Devin Finzer 发推解释:“就目前信息来说,我们能确定这是一次钓鱼攻击。我们不认为这次攻击与 OpenSea 的网站有关。目前有 32 位用户对来自攻击者的恶意负载进行了签名,而他们的部分 NFT 被窃取。”
Devin Finzer 最新一条置顶更新表明其团队在和 NFT 领域的多个用户、团队和项目沟通过之后,可以确定的是:
这确实是一次钓鱼攻击,然而并不知道钓鱼操作发生的位置,但是可以排除这些选项:1) opensea.io 网站;2) 与 OpenSea 邮件的交互行为;3) 使用 OpenSea 铸造、购买、出售或者上架 nft;4) 对新合约 (Wyvern 2.3) 进行签名;5) 使用 OpenSea 上的迁移工具以迁移用户上架的 nft; 6) 点击网站的 banner。
Devin 表示他们正与受害用户积极沟通中,以缩小他们交互过的一些常用网站的范围以定位钓鱼发生的位置。
推特用户 @Neso 分析,攻击者令受害者签名授权了半有效的 wyvern 订单,这笔订单除了攻击者和 calldata 之外基本上是空的,然后攻击者签名了另一半。
攻击者使用 calldata 调用自己的合约,这个 calldata 包含了受害者在 Wyvern 合约上授权的有效订单与所有 NFT 地址与 transfer calldata。
地址与 transfer calldata 随后被保存下来,然后已签名的订单会被发送到 Wyvern 合约的 atomicmatch 中。atomicmatch 会检查订单是否有效 (确实有效) 以及交易双方的签名是否正确 (的确正确) 。通过验证后,Wyvern 调用受害者在 OpenSea 上授权的代理合约,然后使用订单中的 calldata 委托调用攻击者合约 (大部分订单中的目标为用户正在售出或购买的 NFT,calldata 为 transferFrom) 。紧接着又返回到攻击者合约中的另一个函数,此函数会在获得受害者授权的代理合约下循环运行之前保存的 NFT 地址与 transfer calldata。所有 NFT 就这样全部被转移了。
21 日,OpenSea 的首席技术官 @Nadav Hollander 在推特发布了一条技术分析,他表示复盘所有恶意交易后,可以得出几点结论:
结合以上信息与分析调查后,可以得出这些钓鱼操作要赶在 Wyvern 2.2 弃用前执行,因为一旦新合约部署,这些恶意交易就会失效。而新合约会采用 EIP-712,其类型化的数据功能 (typed data feature) 使得作恶者难以在受害者不知情的情况下诱骗他们对交易进行签名。比如,如果你正对某个信息进行签名以加入白名单、进行抽奖或者访问代币准入型的 discord 小组,你会看到与 Wyvern (OpenSea 使用的协议) 有关的类型化数据负载,它很有可能会警告你这笔签名存在异常。
目前攻击者的地址已经被标记为”Fake_Phishing5169“,该地址通过转卖盗窃而来的 NFT ,获得了价值 170万美元的 ETH,而这笔钱早已被攻击者在 20 日晚上通过 Tornado Cash 提现了。
根据区块链安全公司 PeckShield 的数据,共有254个 NFT 被窃。而 Dune Analytics 用户 Jelilat 统计得出被窃数量最多的 NFT 为 Azuki,37个;高地板价的 NFT 还有 3个 Bored Ape Yacht Club,25个 NFT Worlds,11个 Doodles等。
截至 22 日,根据 OpenSea 的最新几条更新,他们更正受害用户人数为 17 位,之前统计的 32 位只是与攻击者账户 “交互” 过的人数。Opensea 团队仍继续监控中,攻击似乎不再活跃,攻击者的钱包已经超过 36 个小时没有活跃了。
摩根大通入驻 Decentraland
根据2月16日 CoinDesk 的报道,美国最大的银行摩根大通 ( J.P Morgan ) 宣布成为首个入驻元宇宙的银行。
icr : CoinDeskmg摩根大通在 Decentraland 中开设了 Onyx ( 提供区块链服务 ) 的休息室。J.P Morgan 对元宇宙的兴趣早已有迹可循。1月18日,摩根大通发布了白皮书《元宇宙中蕴含的机会》,里面谈到了普通人、企业可以在元宇宙中找到怎么样的新发展机会。
而在摩根大通之前,三星、巴巴多斯大使馆已经成为前两个“吃螃蟹”的实体,在 Decentraland 上购买土地、建立虚拟房产。
CrypotoPunk #5822以 8000 ETH 价格售出
Imcr : @Deepak.ethage2月12日,Chain 的 CEO Deepak Thapliyal 以 8000 ETH ( 约2300万美元 ) 的价格买下 CryptoPunk #5822,创下 CryptoPunks 交易新纪录。
Devcon 6 定于 2022 年 10 月 11-14 于波哥大举行
根据以太坊基金会博客 2 月 18 日的博文,Devcon 6 将于2022年10月11日至14日在哥伦比亚的波哥大举行。后续更新的博文会提供更多关于票务和城市推荐的信息。
Twitter 打赏功能支持添加以太坊地址
早在2021年9月24日,推特上线打赏功能之初就已支持比特币支付。而在11月29日,一名黑客发现在推特代码中其实已经包含以太坊地址支付的方式,详情可以点击 ECN 过去的文章了解。
StealthDrop:利用 ZK 证明来匿名领取空投
密码学应用研究计划 @0xPARC 上线使用 zk 证明来匿名领取空投的工具——StealthDrop
用户使用流程:
stealthdrop: https://github.com/nalinbhardwaj/stealthdrop
以太坊爱好者历史文章整理
https://github.com/editor-Ajian/EthFans.org-annual-collected-works
本文首发于:https://news.ethereum.cn/Ecosystem/eth-weekly-2022-2-22/
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!