{"content":{"title":"Pessimism: Base 构建的开源监控系统","body":"> * 原文链接： https://base.mirror.xyz/qQAChAdkfZDG_8Ik7FgrMIpjE-si3TdF1E5W6c8ruFQ\r\n> * 译文出自：[登链翻译计划](https://github.com/lbc-team/Pioneer)\r\n> * 译者：[翻译小组](https://learnblockchain.cn/people/412) 校对：[Tiny 熊](https://learnblockchain.cn/people/15)\r\n> * 本文永久链接：[learnblockchain.cn/article…](https://learnblockchain.cn/article/6635)\r\n\r\n\r\n**简短总结:** Base 构建了 Pessimism，一个开源的监控系统，旨在通过快速检测和响应各种对协议的威胁，增强 Base（以及更广泛的 OP Stack 和以太坊生态系统）的安全性。\r\n\r\n## **介绍**\r\n\r\n在推出 Base 的过程中，我们选择创建一个开放和无许可的网络，以使各种创意项目得以实现。与此同时，鉴于这种开放性，我们希望确保我们拥有最佳的内部监控能力，以迅速检测和响应实时的协议威胁。\r\n\r\n于是，[Pessimism](https://github.com/base-org/pessimism) 应运而生，这是一个监控系统，旨在支持所有 [OP Stack](https://stack.optimism.io/) 和 EVM 兼容链的安全性。Coinbase 团队自推出以来一直在内部运行 Pessimism，全天候监控 Base 主网。现在，为了贡献于公共利益，我们以 MIT 许可证的形式将 Pessimism 开源，作为自由和无许可的软件。\r\n\r\n### **什么是监控，为什么重要？**\r\n\r\n监控涉及数据的收集、分析和解释，以确保一切正常运行。这对于及时的事件响应以及区块链的整体安全性至关重要，因为只有在意识到威胁后，我们才能采取行动。\r\n\r\n在 Base 上进行监控至关重要，原因如下：\r\n\r\n1. 进行**性能评估**： 通过监控响应时间、吞吐量（交易处理速度）和错误率，我们可以评估网络的性能。因此，我们可以在潜在故障的情况下采取行动。分析的性能数据示例包括区块生产率、向 L1 的状态更新频率以及 L2 和 L1 之间的消息传递。\r\n2. 确保 **安全性**： 我们可以识别和缓解安全威胁和漏洞，检测未经授权的访问尝试、异常行为和潜在的违规行为。\r\n\r\n## **Pessimism 如何检测威胁**\r\n\r\nPessimism 可以检测到 OP Stack（提款执行、故障检测）以及 EVM 区块链事件（余额执行、事件发射）的特定协议威胁。这使我们能够检测到 Base 本地桥接以及 Base 上的 L1/L2 系统合约上的未经授权或恶意事件。此外，我们还可以捕获对提案人等敏感协议角色的活跃性故障。\r\n\r\n目前，Pessimism 支持以下监控用例：\r\n\r\n* **（OP Stack）确保用户提款安全：** 许多关键的漏洞发生在桥上，因此监控提款事件至关重要。Pessimism 的提款执行启发式算法确定 L1 上的已证明的 OP Stack 桥接提款是否有对应的 L2 链上的启动事件。这对于确保所有本地桥接提款都经过适当的两步授权以进行 L2→L1 提款至关重要。如果没有，可能表明存在潜在的漏洞。\r\n\r\n* **（OP Stack）检测潜在故障：** 故障检测启发式算法确保所有提案人提交的 L2→L1 输出根（显示从 L2 到 L1 的活动的哈希交易）都是有效的。为此，Pessimism 实际上会在本地重新创建一个输出根，以与提交给 L2OutputOracle 合约的输出根进行交叉验证。这对于确保 L2 提案人和提交的输出根的完整性至关重要。如果可以生成伪造的输出根，攻击者可以从 L1  portal 合约中取走所有资金。\r\n\r\n* **（EVM）强制执行账户余额边界：** 余额执行启发式算法确保地址的本地 ETH 金额始终在用户定义的阈值之上或之下。这对于监控 OP Stack 链上的特权协议账户（例如提案人、批处理器）的潜在资金不足活跃性故障至关重要。\r\n\r\n* **（EVM）检测智能合约事件：** 合约事件启发式算法用于监控发出的智能合约事件。它需要一个智能合约地址和一组事件签名来运行。这对于捕捉潜在的访问管理更改（例如 gnosis safe 多签名合约的阈值更新）和恶意超级用户操作（例如 OP Stack Guardian 意外暂停本地桥接）至关重要。\r\n\r\n关于Pessimism支持的启发式算法的最新信息可以在项目的[文档](https://base-org.github.io/pessimism/heuristics)中找到。\r\n\r\n![](https://img.learnblockchain.cn/pics/20230928202827.webp)\r\n\r\nPessimism由三个主要子系统组成，用于监控、评估和警报：\r\n\r\n* **ETL：**ETL（提取、转换、加载）子系统负责将实时区块链数据（例如区块、事件、账户余额）解析和转换为应用可消费的格式。\r\n* **风险引擎：**风险引擎是使用来自 ETL 的数据主动评估警报的地方。\r\n* **警报：**警报子系统负责将警报传播到下游依赖系统（如 Slack、Pagerduty）。\r\n\r\nPessimism还有一个[REST API](https://base-org.github.io/pessimism/api)，允许创建、删除和修改监控启发式算法。目前，仅支持创建启发式算法的请求。我们预计将在不久的将来推出删除和修改的支持。\r\n\r\n当检测到异常活动或被视为安全威胁的事件时，Pessimism会向团队发出警报，以便迅速解决潜在风险。\r\n\r\n## **性能**\r\n\r\n目前，我们的[指标](https://github.com/base-org/pessimism/blob/master/docs/telemetry.markdown)显示，Pessimism的 ETL 处理时间不超过 100 毫秒，平均不变执行时间不超过 15 毫秒，整个处理过程不超过 200 毫秒。\r\n\r\nOP Stack 最大的优点之一是其模块化设计；模块化是将系统组织成独立的、自包含的模块，可以独立开发和操作，同时相互交互。由于这种模块化，我们能够无缝地使用[op-e2e](https://github.com/ethereum-optimism/optimism/tree/d74dfb83abbb9536644f68fe180380ec02e02425/op-e2e)测试框架对每个启发式算法的实现进行端到端测试。这使我们能够对每个启发式算法建立信心，因为故障案例是在 OP Stack 链的本地实例中重现和捕获的。此外，我们在对软件进行单元测试时非常谨慎。\r\n\r\n未来，我们计划与第三方数据提供商一起进行覆盖率审计，以确保我们的启发式算法能够适当地捕捉所有事件。\r\n\r\n### **警报路由**\r\n\r\nPessimism 支持警报路由，使团队能够定义全局警报策略，按严重程度指定警报目的地。我们目前支持 Slack 和 PagerDuty 作为警报目的地，并计划根据需要添加其他集成。有关全局警报策略的更多信息，请参阅[此处](https://base-org.github.io/pessimism/alert-routing)。\r\n\r\n## **Pessimism 的下一步计划是什么？**\r\n\r\n### **全面的桥覆盖**\r\n\r\n原生桥是 OP Stack 中的关键技术，允许用户将资金从 L2 转移到以太坊。考虑到这是最高 TVL 的地方，确保我们监控所有可能影响其安全运行的故障和威胁场景至关重要。在接下来的几个月中，我们将致力于实施[供应量监控](https://github.com/base-org/pessimism/issues/148)以及在 Pessimism 中实现大额提款检测。\r\n\r\n### **新兴威胁检测**\r\n\r\nOP Stack 将继续升级（例如欺诈证明、共享排序器），我们将继续向 Pessimism 引入新功能和启发式算法，以确保对不断演变的协议威胁进行充分覆盖。\r\n\r\n### **你来决定下一步计划**\r\n\r\nPessimism 是一个社区驱动的技术，我们欢迎所有用户通过[GitHub issues](https://github.com/base-org/pessimism/issues)在存储库中提出功能请求。此外，如果你想开始参与 Pessimism 的开发，我们有很多[初学者问题](https://github.com/base-org/pessimism/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)需要你的帮助和关注！\r\n\r\n\r\n本翻译由 [DeCert.me](https://decert.me/) 协助支持， 来 DeCert 码一个未来， 支持每一位开发者构建自己的可信履历。"},"author":{"user":"https://learnblockchain.cn/people/412","address":null},"history":null,"timestamp":1695904663,"version":1}