「我钱包里的 ETH 都没了!」
今日,DeFinance 创始人 Arthur 在社交媒体上表示其遭受鱼叉式网络钓鱼攻击。Arthur 点击了一封酷似 Defiance Capital 合作资管平台官方地址发来的邮件中的 PDF 文档,导致其热钱包被盗,损失大量 NFT 以及其他资产价值超 400ETH。
Web3.0 的世界好像并不安全,我们的链上资产似乎处处受到威胁。确实,从上层来看,链上应用不光要考虑应用逻辑的漏洞,还要考虑所部属链共识层可能潜在的攻击途径(抢跑等)。除此之外,我们还需要擦亮双眼看清交互前端,并预防各类钓鱼链接。最致命的一点是,交易一旦获得清算保证,回滚成本极高。这么说来,Web3.0 整体安全程度还不如 Web2.0 呢。
但从更底层维度来看,理论上来说 Web3.0 其实应该是更安全的。例如,链上的去中心化平行执行为链上应用打造了去信任化的执行环境。Web2.0 应用常遇到的 DoS 攻击也被 Gas 机制所解决。协议的开源同时也让用户在使用前「有权」进行 DYOR,等等...
本文出自加密钱包 ZenGo 联创 Tal Be'ery,文中就 Web3.0 固有的安全优势进行了详细解读,并提出了现存问题的潜在解决方案。律动研究院将全文进行了翻译:
我知道这一点听起来很荒唐,毕竟 Web3 的安全性是目前科技领域的一大笑柄,而 Web3 在去年也因安全漏洞损失了超过 100 亿美元。然而,我认为目前这样的情况应该是阶段性的,而非持续性的,一旦 Web3 应用程序变得更加成熟,它们将在安全性上超越很多「传统应用程序」。
在我们开始讨论 Web3 的安全性之前,我们需要首先对其作出定义。我们可以暂时将 Web3 定义为依赖于「智能合约」的应用程序,其商业逻辑和存储均在区块链上完成。因此,Web3 目前主要包括 DeFi 应用程序和 NFT,但在未来可以扩展到更多领域。
Web3 三角
在对 Web3 作出定义之后,我们便可以开始探讨它的安全性,而这主要包括智能合约的安全性。为了简单起见,我们将只讨论以太坊上的智能合约,但我相信其结论也适用于其他相似的系统和区块链。
想象一下,如果 Web3 软件环境中没有了恶意软件、拒绝服务攻击以及其他类型的攻击,该是一次多么美妙的升级。下面我们一起来认识一下实现了安全乌托邦的 Web3:
-Web3 解决了可信执行的问题:对于传统的应用程序,可信执行是一个尚未解决的主要问题。目前,一个应用程序必须信任其软件(操作系统)和硬件(处理器和固件)的执行环境。如果这种信任被恶意软件或能够植入恶意处理器的硬件供应链攻击所破坏,攻击者便可以获得控制权。Web3 利用执行的去中心化解决了这个基本的安全问题。所有的区块链节点都在平行执行 web3 的代码,并且必须就执行的结果达成一致。除非执行引擎本身存在一些系统性风险(例如以太坊的 EVM 本身存在漏洞),否则攻击者必须发动「51% 算力攻击」,用恶意软件感染大多数区块链节点,以破坏其执行。
-Web3 可以免疫注入式攻击:对于传统的网络应用程序,所有参数都是以字符串的形式发送。这个设计缺陷是大多数传统网络应用程序漏洞背后的核心原因,这些漏洞包括 SQL 注入和命令注入,让攻击者能够将非预期输入偷运到尚未完善的网络应用程序之中。相比之下,由于 Web3 的强类型性质,这种非预期输入(比如,当预期是一个数字时,输入的却是一个字符串)将立即失败,而 Web3 应用程序则不需要做任何特殊的准备。
-Web3 对拒绝服务攻击的抵抗力更强:虽然这些攻击并不聪明,因为它们通常不是靠「脑力」,而是靠僵尸网络大军的「蛮力」,以较低的成本向攻击目标发送垃圾流量,但它们仍然是传统 Web 应用程序面对的一个主要问题。相比之下,Web3 应用程序就不会受此困扰,因为区块链为了防止被过量使用,设置了较高的交易费用,从而让 DoS 攻击者无从下手。
除了上面几点以外,Web3 在其他方面也表现出了很好的安全性(例如,在应对软件供应链攻击方面)。但是,仅仅是做到了上面几点,就已经相当厉害了。
但除了上述的技术优势外,鉴于 Web3 的完全开放性和透明度,Web3 还具有一些理念意义上的安全优势。早在 Web3 出现之前,开放式安全理念在安全领域就有很多拥护者,认为它比「隐蔽式安全」更具优势。Web3 将开放式安全理念发挥到了极致:在 Web3 中,不仅代码按照惯例是开源的,而且根据定义,二进制文件在区块链上也是对外公开的,且可以被验证为是已发布源代码的结果。此外,根据定义,所有代码的执行(交易)都是公开的,任何人都可以对其进行验证和审查。