
万亿美元安全项目
安全挑战概述
以太坊是最安全、最具韧性且最受信任的区块链生态系统。在过去的 10 年里,以太坊生态系统发展了技术、标准和知识,如今支撑着一个被数百万人使用、容纳超过 6000 亿美元资金的生态系统。
但为了让以太坊在下一阶段的全球采用中取得成功,仍有许多必须进行的改进。为了实现我们社区的雄心壮志,以太坊必须成长为一个具备以下条件的生态系统:
- 数十亿人都能放心地在链上持有超过 1000 美元,总计在以太坊上保障数万亿美元的安全。
- 公司、机构和政府都能放心地在单个合约或应用程序中存储超过 1 万亿美元的价值,并能放心地进行同等金额的交易。
万亿美元安全 (1TS) (opens in a new tab) 项目是一项旨在提升以太坊安全性的全生态系统工作。本报告是 1TS 项目的首个交付成果。在过去的一个月里,我们收集了用户、开发者、安全专家和机构的反馈,了解他们认为最大的挑战和需要改进的领域在哪里。感谢数百名个人和数十家组织抽出时间与我们分享您的见解。
本报告总结了我们的发现,涵盖 6 个不同的领域:
- 用户体验 (UX)
影响用户安全管理私钥、与链上应用程序交互以及签署交易能力的问题。
- 智能合约安全
以太坊应用程序中智能合约组件的安全性,以及塑造它们的软件生产生命周期。
- 基础设施与云安全
以太坊应用程序所依赖的基础设施(包括加密货币专用和传统基础设施)问题,如二层网络 (l2) 链、RPC、云托管服务等。
- 共识协议
核心协议的安全属性,保护以太坊区块链本身免受攻击或操纵。
- 监控、事件响应与缓解
用户和组织在应对安全漏洞时面临的挑战,特别是在追回资金或管理善后事宜方面。
- 社交层与治理
以太坊的开源治理、社区和组织生态系统。
这份首份报告的重点是识别和梳理仍然存在的问题与挑战。下一步将是选择优先级最高的问题,找出解决方案,并与生态系统合作解决这些问题。
由于以太坊生态系统是去中心化的,保障以太坊的安全并非单一实体所能完成。以太坊的技术栈由世界各地独立的组织构建和维护,涵盖从钱包到基础设施再到开发者工具的各个方面。虽然 1TS 项目由以太坊基金会协调,但我们需要您的帮助来保障以太坊的安全。
您可以通过分享您的反馈和想法来为 1TS 安全项目做出贡献:
- 您是否发现本报告中未包含的以太坊安全问题?
- 您认为以下调查的问题中哪些是最高优先级的?
- 对于如何解决这些问题,您有什么想法或解决方案?
我们非常期待收到您的来信,请联系 trilliondollarsecurity@ethereum.org。
1. 用户体验 (UX)
安全始于人们用来与以太坊交互的界面。用户与区块链本身之间的这一边界一直是安全挑战的来源。
区块链的一个决定性特征是交易的原子性:一旦更新被记录到区块链中,就没有干预或撤销的机会。这提供了强有力的一致性和协议层面的安全保障,但也使用户面临更高的操作风险:一个简单的错误、受损的密钥或仓促的授权都可能导致不可逆转的损失。
因此,很大一部分安全责任落在了用户身上。为了安全地使用以太坊,个人和组织必须安全地持有和管理密钥,与链上应用程序交互,并使用他们的密钥签署交易以转账资产或以其他方式更新以太坊的状态。
这些要求中的每一项都会带来风险,例如密钥泄露或丢失、仓促或不知情的授权,或者用户在与以太坊交互时依赖的用于提供信息和指导的钱包软件遭到破坏。
1.1 密钥管理
许多用户不具备安全管理密码学密钥的能力。
大多数广泛使用的软件钱包依赖用户安全地存储代表其底层密码学私钥的助记词,这往往导致他们使用不安全的变通方法,例如将助记词以明文形式存储在云服务上,或写在纸上。
硬件钱包是一种替代方案,它使用户能够管理存储在专用物理设备中的密码学密钥。然而,硬件钱包也有其自身的缺陷和攻击面。硬件钱包可能会丢失、损坏或被盗。许多硬件钱包不是开源的,并且可能具有不透明的供应链,这增加了供应链攻击的风险,即受损的设备被出售到市场上。
无论密钥是在软件钱包还是硬件钱包中管理,许多用户对自我托管感到紧张是可以理解的,因为它可能会因物理盗窃或攻击而受到损害。
企业和机构用户在密钥管理方面面临额外的挑战。如果个别员工持有密钥(例如,作为多重签名钱包的一部分),随着时间的推移,由于人员变动,组织必须能够替换它们并创建新的密钥。不同行业和司法管辖区的合规要求可能需要现有钱包软件不支持的自定义工作流或审计跟踪。在某些情况下,企业用户会求助于第三方数字资产托管机构,这可能会引入另一层需要考虑的安全风险。
1.2 盲签与交易不确定性
用户经常在不了解自己在做什么的情况下“盲目”授权交易。钱包通常会显示原始的十六进制数据、截断的合约地址或其他不足以让用户了解给定交易后果的信息。这使得各类用户容易受到恶意智能合约、网络钓鱼、诈骗、欺骗性界面、前端受损以及基本用户错误的影响。
1.3 授权与权限管理
在许多以太坊应用程序中,用户在正常使用过程中向底层应用程序授予某些权限是很常见的。例如,用户可能会授予像尤尼斯瓦普这样的去中心化交易所移动其代币的权限,以便将它们兑换为 ETH。
这些授权可以有金额限制,但许多钱包默认授予没有到期日的无限制授权。在大多数钱包中,用户无法管理或查看其未完成的授权。
这可能会使用户暴露于恶意应用程序或受损的前端,因为许多用户的默认模式是授予无限制的授权,这可能被用来耗尽他们的资金。即使使用户向合法的智能合约授予了授权,如果该合约后来在授权仍然有效的情况下遭到破坏,那么受损的合约也可能会耗尽用户的资金。
这对组织用户来说同样是一种风险。例如,为了操作方便,组织可能会选择授予 DEX 路由器无限制的 USDC 授权额度,如果路由器合约升级,这就会使他们面临风险。
1.4 受损的 Web 界面
大多数用户并不直接与智能合约交互,而是通过移动设备或 Web 浏览器上的 Web 界面进行交互。
这些前端很容易受到通过常见手段发起的攻击,如 DNS 劫持、恶意 JavaScript 注入、不安全的托管或各种第三方依赖项。受损的应用程序用户体验可能会将各类用户重定向到恶意智能合约,或引导他们签署具有误导性的交易。
1.5 隐私
隐私可以减轻或放大各类用户的安全风险。
较弱的隐私保护会使个人用户面临各种针对性威胁,如网络钓鱼、漏洞利用、诈骗或物理攻击。许多常见的用户体验模式会暴露用户,例如地址重用、KYC 数据和其他元数据泄漏。
对于机构和企业而言,出于合规原因或某些用例,隐私通常是一项基本的业务要求。除了这些问题之外,它还可能造成特定安全风险的暴露。例如,建立在以太坊上的供应链系统的用户可能需要强有力的隐私保障,以保护如果系统透明就可能受损的知识产权资产。
1.6 碎片化
不同的钱包在处理显示交易、处理授权或标记合约等核心行为方面缺乏一致性。这种用户体验的碎片化增加了用户学习如何安全使用钱包的阻力,并增加了风险。
例如,用户不能依赖一致的用户体验提示来保护自己免受网络钓鱼和欺骗,因为它们在不同的钱包中有所不同。如果每个工具的功能都不同,用户就无法对以太坊的工作方式形成可靠的预期。
2. 智能合约安全
智能合约是以太坊应用程序的链上组件:持有资金、定义访问控制并执行应用程序业务逻辑的代码。由于智能合约通常是透明的并且任何人都可以访问,因此在考虑以太坊生态系统的安全性时,它们是一个关键的攻击面。
在以太坊的历史中,智能合约的安全性得到了根本性的改善。像 DAO 黑客攻击这样的早期安全事件促使生态系统在导致代码部署到链上的整个软件生命周期中实现专业化并改进安全保障。关键的进步包括:
- 安全审计成为一种标准做法,几家安全公司进入生态系统并发展了专业知识。
- 工具、测试和静态分析系统日趋成熟并成为标准做法。
- 经过预先审计的通用组件库为开发者提供了默认安全的构建块。
- 采用了形式化验证技术,特别是对于跨链桥、质押系统和高价值合约。
- 生态系统的安全文化和最佳实践得到了改善。
- 创建了重要的漏洞赏金计划,从而加固了应用层。
然而,在这一领域仍然存在弱点和需要改进的地方。
2.1 合约漏洞
尽管智能合约安全性取得了进步,但仍然存在可能导致重大安全问题的漏洞,包括:
- 合约升级风险. 某些合约被设计为在部署后可修改,以使开发团队能够继续更新和改进应用程序。然而,这带来了风险。升级可能会导致新的漏洞,或者在恶意升级的情况下导致用户资金的完全损失。
- 重入, 即合约 A 在更新其自身内部状态之前调用外部合约 B,而合约 B 在第一次调用完成之前回调原始合约 A。
- 不安全地使用外部库, 即合约调用可能未经审计、恶意或可升级的外部库。
- 未经审计的组件. 虽然审计和标准库的使用有所改善,但开发者有时会在其应用程序中依赖未经审计的组件。
- 访问控制失效, 即权限配置错误或定义过于宽泛,允许攻击者采取恶意行动。
- 未经授权的访问, 即能够控制合约的私钥被恶意行为者获取。
- 跨链桥与跨链交互. 跨链桥和跨链协议引入了额外的复杂性,攻击者可以利用跨链消息传递或验证方式中的弱点。
- 外部拥有账户 (EOA) 委托或签名滥用. 恶意应用程序可能会欺骗用户签署将其账户的完全委托权移交给另一方的协议,从而实现盗窃。恶意应用程序还可以以意想不到的方式使用来自用户的签名消息,例如在重放攻击中。
- 由 AI 代码生成或自动重构工具引入错误的新兴风险.
2.2 开发者体验、工具与编程语言
漏洞最终出现在已部署的代码中是由于开发者的错误。改进的开发者工具使得部署安全的智能合约变得更加容易。然而,问题依然存在。
- 流行框架中缺乏安全默认设置. 一些工具将灵活性或速度置于安全性之上,设置了不安全的默认值,例如在 approve() 函数中进行无限制的代币授权,或者默认情况下未能包含访问控制模式。
- 用于高级操作控制的自定义代码. 具有复杂操作要求的机构用户通常必须从头开始构建所需的功能,这增加了出现漏洞的风险。对于高级安全工作流,缺乏标准化的安全组件或框架。
- 测试覆盖率不一致 跨工具栈的测试覆盖率不一致,并且缺乏围绕使用模糊测试或不变量检查等成熟技术的规范。
- 形式化验证方法的采用率低. 形式化验证技术非常强大,但它们复杂、昂贵、需要专门的领域专业知识,并且没有很好地集成到标准的开发者工作流中,而它们本可以在软件生产的早期阶段使用,以在规范阶段验证安全性。
- 与合约验证相关的问题. 用户和开发者无法轻易评估已部署合约的可信度、其安全验证的程度(例如代码审计)或潜在风险的存在。虽然存在用于此目的的解决方案,但仍有许多问题。解决这些问题的工具尚未被广泛采用,统一这些方法的标准仍然是碎片化的,而且一些现有服务本身就是中心化的依赖项。
- 编译器风险. 编译器(将人类可读的代码(如 Solidity)转换为 EVM 本身使用的字节码的软件)可能存在缺陷,从而在智能合约部署之前引入错误。如今的以太坊生态系统主要依赖于 solc 编译器,这意味着一个漏洞可能会产生广泛的影响。
- 编程语言的多样性与深度. 虽然 Solidity 拥有建立在其之上的深度工具生态系统,但一些开发者希望获得其他编程语言中更现代的安全特性,例如内存安全。
2.3 链上代码的风险评估
机构和企业在评估其所依赖的技术和系统的安全性方面,拥有现成的流程、标准和要求。然而,现有的框架通常无法完全适用于智能合约,因为它们通常假设代码是可变的、变更控制是中心化的,并且具有明确的问责制或法律责任界限。基于智能合约构建的系统有时会打破这些假设,使得组织难以采用以太坊并妥善管理风险。
3. 基础设施与云安全
以太坊的许多应用依赖于各种基础设施提供商,包括特定于加密货币的基础设施(例如,二层网络 (l2) 链、RPC 提供商)以及传统的云和互联网基础设施(例如,AWS、CDN、DNS)。
这些系统既是钱包和应用层(例如,钱包的 RPC 端点)的攻击面,也是以太坊协议本身(例如,许多验证者托管在云基础设施上)的攻击面。即使底层区块链协议保持安全,私钥泄露、网络钓鱼和缺乏细粒度的访问控制也可能导致大规模中断、盗窃或未经授权的更改。
3.1 二层网络 (l2) 链
二层网络 (l2) 链作为以太坊的扩展,能够提供更快、费用更低的环境,同时保留以太坊主网的一些特征性安全保障(取决于其具体设计)。然而,它们也有自己独特的攻击面,包括:
- 多跳桥接资产的复杂性. 当资产在一层网络 (l1) 和多个二层网络 (l2) 之间转移时,它们会暴露在多套合约中,所有这些合约都必须是安全的。二层网络 (l2) 链中的记账不匹配或中断可能会引入可被攻击者利用的漏洞。
- Rollup 二层网络 (l2) 依赖证明系统来强制执行状态更新的正确性. 这些系统中的错误或错误配置可能会拖延或阻止最终确定,或者允许最终确定错误的状态更新,从而导致用户资金损失。
- 安全委员会是由密钥持有者组成的团体,作为升级二层网络 (l2) 软件或应对某些紧急情况的“后备”机制. 安全委员会本身也构成风险,因为成员之间的妥协或串通可能会使用户资金面临风险或冻结资产。
请参阅 L2BEAT (opens in a new tab) 获取详细的框架和监控仪表板,以评估和比较二层网络 (l2) 的性能和安全性。
3.2 RPC 与节点基础设施
以太坊应用依赖少数基础设施提供商来获取 RPC 访问、API 和节点服务。这包括特定于加密货币的基础设施提供商,以及通常用于托管节点的传统云服务(例如,AWS、Cloudflare、Hetzner)。
如果这些基础设施提供商离线,或者试图审查或限制访问,许多用户可能会被阻止通过其钱包或应用访问以太坊,直到他们能够迁移到新的 RPC 或其他基础设施提供商。其中一些提供商此前曾暂停或关闭与区块链活动相关的账户,引发了人们对其在去中心化应用中长期可靠性的担忧。
3.3 DNS 层面的漏洞
域名系统 (DNS) 是互联网的基础层,但它也是中心化的,并且可能会遭到破坏。许多用户通过 Web 域名访问应用,这些域名容易受到以下威胁:
- DNS 劫持,攻击者在其中插入恶意的虚假前端。
- 域名扣押,政府或注册商可以扣押域名。
- 通过相似域名进行网络钓鱼,攻击者注册几乎相同的名称来迷惑用户。
3.4 软件供应链与库
以太坊开发者依赖开源库,这些库通常直接从 npm、crates.io 或 GitHub 等服务中提取。如果这些库遭到破坏,它们可能成为以下攻击的媒介:
- 恶意包注入, 攻击者破坏广泛使用的包或以相似名称发布恶意包
- 依赖项被劫持, 维护者失去对项目的控制,恶意行为者引入有害代码
- 开发者设备被入侵, 安装的包包含使攻击者能够控制开发者计算机的代码。
3.5 前端交付服务及相关风险
许多以太坊应用通过内容分发网络 (CDN) 或基于云的托管平台(例如 Vercel、Netlify、Cloudflare)提供其前端。如果这些服务遭到破坏,它们可能成为恶意 JavaScript 注入等攻击的媒介,攻击者借此向用户提供被篡改的前端。
3.6 互联网服务提供商层面的审查
互联网服务提供商 (ISP) 或民族国家可以利用对底层互联网基础设施的控制来审查对以太坊的访问。例如,这些攻击可能包括:
- 阻止或限制流向常见以太坊端口的流量
- 过滤解析为以太坊相关服务的 DNS 请求
- 针对已知以太坊节点的地理围栏或 IP 封禁
- 深度包检测以识别和审查与以太坊协议相关的流量
如今,世界各地的独裁政府已经在使用许多此类基本技术来压制人们获取信息、抗议工具或加密货币。
4. 共识协议
以太坊的共识协议定义了网络如何更新以太坊区块链的状态并达成一致。该协议是以太坊成为货币、金融、身份、治理、真实世界资产 (RWA) 等值得信赖的平台的基础。
以太坊的共识协议在实践中已被证明是稳健的,自 2015 年首次推出并经历多次升级以来,实现了零停机。然而,为了使系统更具弹性和安全性,仍有一些需要长期改进的领域。
4.1 共识脆弱性与恢复风险
以太坊的分叉选择和最终性规则具有弹性,但并非无懈可击。在某些边缘情况(如验证者长期存在分歧、客户端错误或网络分区)下,共识可能会停滞或暂时出现分歧。在极端情况下,这可能会通过怠工惩罚或罚没导致级联的验证者惩罚,从而进一步导致验证者的资本外逃。
4.2 客户端多样性
以太坊行业领先的客户端多样性保护网络免受任何单一客户端中错误的影响。然而,通过更多地采用少数派客户端,客户端多样性仍有改进空间,从而进一步降低这些风险。
4.3 质押中心化与质押池主导地位
大量的验证者权重集中在流动性质押协议、托管服务和大型节点运营商手中。这种集中可能会导致以下风险:
- 治理捕获或影响。如果控制大量质押的实体(或具有影响这些实体的合法权力的实体)协同合作,它们可能会对提议和证明哪些区块产生过大的影响,从而可能审查用户,或影响协议升级。
- 客户端选择和基础设施设置的同质化,这会增加相关性故障的风险。
4.4 未定义的社区罚没与协调缺口
在某些极端的故障模式下,以太坊将依赖“社区罚没”来惩罚恶意攻击网络的验证者(见第 6.1 节)。然而,这种罚没的基础设施、规范和预期流程尚不完善。目前还没有社区可以用来参与这一过程的既定机制。
4.5 经济与博弈论攻击向量
许多潜在的经济攻击向量仍未得到充分研究,包括:
- 恶意破坏攻击或罚没破坏。验证者可能会产生费用或受到罚没惩罚,这并非由于他们自身的过错,而是因为攻击者纯粹为了伤害他人而采取的对抗性行为,即使这会让攻击者付出净成本。
- 策略性退出或定时怠工。验证者可能会在关键时刻故意离线或退出,以最大化利润或以最小的惩罚破坏共识。
- 验证者或中继之间的串通。验证者之间或中继与验证者之间的协同行为可能会降低去中心化程度,或提取 MEV。
- 利用 MEV、提议者-构建者分离 (PBS) 或流动性质押设计中的边缘情况激励。参与者可能会操纵罕见的协议条件以获得超额奖励。
4.6 量子风险
以太坊的核心密码学(例如 secp256k1 等椭圆曲线签名)有朝一日可能会被量子计算机破解。虽然这不是迫在眉睫的风险,但切实的威胁可能会瞬间使现有的钱包、合约和质押密钥变得脆弱。这一未来的挑战削弱了以太坊对用户的长期保障。
向抗量子密码学的迁移路径(例如,通过后量子签名方案)需要在需要它们的多年前进行设计、测试,并可能嵌入到协议中。整个以太坊生态系统中的组织(包括以太坊基金会)正在积极探索这些选项并监控风险。
5. 监控、事件响应与缓解
即使是理想化的区块链生态系统也会存在风险、攻击和漏洞。当出现问题时,必须有有效的系统来缓解、检测和响应。这里的挑战包括:
- 联系受影响的团队. 可能很难与应用遭到破坏的团队取得联系。这可能会导致数小时的延误,从而限制响应者追回资金的能力。
- 在相关组织中升级问题. 当问题涉及某个平台(如社交网络或中心化交易所)时,如果响应者没有预先存在的联系人,他们可能很难升级该问题。
- 响应协调. 通常不清楚有多少事件响应团队正在协助受影响的应用,这会导致沟通不畅或精力浪费,而团队合作本可能更有效。
- 缺乏监控能力. 监控链上和链下问题可能很困难,而这些监控本可以提供预警并确保对威胁做出迅速响应。
- 获取保险. 在大多数处理金钱、金融系统、身份和其他有价值信息的传统系统中,保险是减轻损失的重要工具。然而,如今传统金融服务很少为加密货币生态系统提供保险选项。

6. 社交层与治理
以太坊的“社会层”是指影响以太坊生态系统行为的人员、组织、公司、治理流程和文化规范的集合。这个社会层本身也容易受到某些攻击或风险的影响,进而影响以太坊的安全性和可靠性。
这些风险往往更具长期性,并且关系到整个以太坊,而不是单个用户或应用的安全性。
6.1 质押中心化
如果控制大量质押的实体决定串通,质押的中心化可能会对整个以太坊构成风险。
这种经济中心化创造了社会治理被捕获的可能性。如果一小群验证者控制了绝对多数的质押,他们可能会:
如果发生这种极端情况,以太坊社区建议“社区罚没”可能是解决方案。社区罚没是指利用链下社会共识来决定罚没行为不端的验证者,以此作为对其权力的制衡。但是,目前尚无明确的规范、程序或工具来实施此类措施(见第 4.4 节)。
6.2 链下资产中心化
以太坊托管着大量的真实世界资产 (RWA),这些资产在链下保存在银行账户或其他存款中,然后通过代表对链下资产申领权的代币在链上进行交易。例如,许多大型稳定币就是以这种方式运作的。
持有链下存款的机构可能会对以太坊生态系统产生影响。例如,在发生有争议的分叉或网络升级的极端情况下,大型存款人可以通过仅选择承认其中一条链上的代币,来影响哪条链被广泛接受。
6.3 监管攻击或压力
政府和监管机构可能会向控制以太坊技术栈重要组件的各个实体施压,要求其审查或以其他方式干预以太坊协议。以太坊的机构用户也可能受到这些压力的影响,这将对其用户产生进一步的后果(例如,由于监管禁令,银行无法再提供某些加密货币产品)。
6.4 治理的组织捕获
以太坊的开源治理和开发流程由维护核心客户端软件、基础设施和工具的多元化全球团队和公司推动。
各种形式的影响(企业收购、资金依赖、关键贡献者的雇佣、现有组织内部的利益冲突)可能会逐渐改变以太坊治理的文化和优先级。这可能导致与偏离社区驱动精神和既定路线图的特定商业或外部利益保持一致,随着时间的推移,可能会削弱以太坊的中立性和弹性。