主页 > imtoken钱包如何下载 > 详细解释以太坊智能合约的安全漏洞如何有效减少DeFi攻击?

详细解释以太坊智能合约的安全漏洞如何有效减少DeFi攻击?

imtoken钱包如何下载 2023-07-05 05:36:47

原标题:《去中心化金融(DeFi)区块链智能合约漏洞探索》

区块链是一种新型的分布式系统体系,它采用P2P点对点网络通信、块存储、分布式算法共识和加密算法来防止篡改。 从本质上讲,区块链可以看作是一个由所有网络节点共同维护的分布式数据库。 与传统的分布式数据库相比,区块链以其完备的数据备份、公开透明不可篡改的网络、完备的信息溯源和弱信任模型等特点,更适用于对去中心化信任有明确需求的应用场景。 特别是典型的区块链应用场景包括数字支付、产品溯源、版权保护、供应链金融等。在区块链系统中,智能合约在实现去中心化应用部署和扩展应用功能方面发挥着极其重要的作用。 与传统应用相比,区块链系统具有公开、透明、可执行、不可篡改、不依赖第三方等特点,能够满足各种去中心化应用。 场景需求比特币协议与安全性比特币协议与安全性,包括近年来发展迅速的去中心化金融(DeFi)项目。

截至 2021 年 1 月 15 日,去中心化金融 (DeFi) 拥有超过 45 亿美元的资本,这是一种成功的金融范式,它利用基于区块链的智能合约来确保其完整性和安全性。 去中心化金融是交换、借贷代币的新发展领域。 通常,这些指令是“收益”或收入流,由智能合约(而不是单个中心化法人实体或个人)监管和/或由多方、去中心化治理机制(例如 DAO)控制。 去中心化金融(DeFi)——出现在现有区块链平台之上。 这个新领域的组成部分包括与借贷、资产交易和衍生品市场相关的领域。 智能合约作为一种去中心化的应用,管理着大量的数字资产,这也使得它们容易受到各种攻击。

本文将从三个维度阐述智能合约的安全问题:一是以太坊架构各层漏洞导致的智能合约安全问题。 其次,将讨论最近针对 DeFi 和智能合约的各种攻击。 最后,我们将讨论现有可用工具和其他有效做法如何最大限度地减少此类攻击。

以太坊架构不同层级的智能合约漏洞 以太坊架构概述

在讨论智能合约漏洞之前,我们先简单概述一下以太坊智能合约架构。

区块链网络可以部署和自动化编程脚本任务。 这些称为智能合约的程序定义了在交易期间调用的自定义函数和规则。 基于智能合约的区块链技术已经应用于金融、供应链管理、医疗能源、政府服务等各个行业。 只有特定的区块链平台支持智能合约:以太坊是第一个支持智能合约的。 EOS、Lisk、比特币和 Hyperledger Fabric 等其他区块链平台兼容部署和执行智能合约。 一种称为 Solidity 的脚本类型语言用于在以太坊平台中开发智能合约。 在这一部分中,我们介绍了与在以太坊平台上实现智能合约相关的安全漏洞。 智能合约可以持有和管理相应的功能 Credit(地址){可能价值数千美元的大量虚拟货币。 结果,对手不断地试图操纵智能合约的执行以支持他们的活动。 从本质上讲,智能合约运行在一个分布式的、无需许可的网络上,该网络继承了许多漏洞。 在传统系统中,可以重新开发或修补这一小组集中式应用程序。

相反,在去中心化的区块链网络中,除非采取极端措施,否则无法在现网中修改或升级已部署的智能合约。 智能合约的一个不变特征是它们的安全优势和劣势。 由于这种不变性,黑客无法为自己的利益更改或修改合约。 但是,开发者也不能在部署后修改智能合约应用。 他们可以取消或终止合约并创建一个新的智能合约,然后再次部署它。 因此,出于安全原因,智能合约在部署之前应进行广泛测试。 我们重点介绍以太坊智能合约架构的基本构建块,如图 1 所示,其中包括以太坊的架构。

详解以太坊智能合约安全性漏洞,如何有效减少 DeFi 攻击?

图 1:用于运行以太坊区块链的环境是通过一个 Web 用户界面与以太坊架构服务的四个层、应用层、用于存储区块链数据的数据库以及用于支持共识协议的层进行交互。 网络层的加密机制和互联网服务[20]

比特币哪里交易安全_比特币协议与安全性_比特币 p2p协议

应用层:以太坊客户端在 EVM 中执行智能合约,智能合约与以太坊账户相关联。 以太坊支持两种类型的账户:外部拥有账户(EOA)和合约账户。 EOA用于将用户资金存入Wei,是Ether的最小子面额,价值10-18个Ether。 EOA 与公钥关联并由公钥解析; 通过揭示相应私钥的所有权来验证对 EOA 的访问。 相反,合约账户与一段可执行字节码(即智能合约)相关联,该字节码定义了一些有趣的业务逻辑。 智能合约是 DApp 的基石。 DApp 通常有一个用户界面作为它的前端,一些智能合约作为它的后端。 一些 DApp 发行自己的加密货币,称为代币,用于首次代币发行 (ICO) 和交易所。 基于以太坊的代币是一种特殊的智能合约(例如 ERC-20)[20]。 智能合约在 EVM 中执行,EVM 是使用基于堆栈的架构的准图灵完备机器。 “准”一词表示执行受交易提供的气体限制。 在以太坊应用层,出现了各种漏洞,导致了很多攻击,如图中应用层图所示。

数据层:包含区块链数据结构。 交易是一个 EOA(称为发送方)与另一个 EOA 或合约账户(称为接收方)之间的交互。 交易由以下各项指定:

nonce,这是一个计数器,用于跟踪发送方发起的交易总数;

Recipient,指定交易的目标EOA或合约账户;

价值,即从发送方转移到接收方的金额(单位:Wei)(如适用);

Input,即交易目的对应的字节码或数据;

gasPrice 和 gasLimit 分别指定发送方愿意支付给包含交易的区块的获胜矿工的单价和最大gas量;

(v, r, s),即发送方的椭圆曲线数字签名算法(ECDSA)签名。 执行交易会更新所涉及账户的状态,从而更新区块链。

比特币哪里交易安全_比特币协议与安全性_比特币 p2p协议

共识层:确保区块链的状态是一致的。 在撰写本文时,以太坊创建一个区块大约需要 12-14 秒,这意味着多个矿工可以同时创建有效区块,并且可能有很多个区块。 以太坊使用 GHOST 共识协议的一个变体来选择“最重”的分支作为主链,其中“最重”的分支是以所讨论的分叉为根的子树,并且具有最高的累积块难度,同时注意过时块不在主链。 但是请注意,以太坊正在用权益证明 (PoS) 取代目前使用的工作量证明 (PoW)。

网络层:管理节点或客户端的以太坊点对点(P2P)网络,以便节点始终可以从一些活动节点获取区块链的更新状态。 以太坊网络是一个结构化的 P2P 网络,其中每个节点(即客户端)存储整个区块链的副本。 对于节点发现和路由,每个节点维护一个包含 160 个桶的动态路由表,每个桶包含最多 16 个其他节点的 ID、IP 地址、UDP/TCP 端口条目。 以太坊使用 RLPx 协议来发现目标客户端,并使用 Ethereum Wire 协议来促进客户端之间交换以太坊区块链信息(例如交易、区块)。

以太坊区块链环境:运行在以下四层环境中: 用户与以太坊区块链交互的Web界面; 以太坊客户端数据库,用于存储区块链数据; 出于安全目的的加密机制; 以及支持以太坊节点之间区块链通信的互联网基础设施。 我们将以太坊区块链架构与环境区分开来,因为针对以太坊区块链的攻击可能源自环境,而这些攻击可能在环境中而不是在以太坊中得到更好的解决。

以太坊智能合约漏洞

重点关注以太坊系统各层的智能合约漏洞,如图2所示。

详解以太坊智能合约安全性漏洞,如何有效减少 DeFi 攻击?

图2:以太坊各层漏洞分类

以太坊应用层

比特币 p2p协议_比特币哪里交易安全_比特币协议与安全性

数据层漏洞

共识层漏洞 网络层漏洞

详解以太坊智能合约安全性漏洞,如何有效减少 DeFi 攻击?

引用:

[1]

[2]

[3]

[4]

比特币协议与安全性_比特币哪里交易安全_比特币 p2p协议

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

比特币 p2p协议_比特币哪里交易安全_比特币协议与安全性

[13]

[14]

[15]

[16]

[17]

[18]

[19]

[20]

作者:Abba Garba,WeBlock CTO

翻译:郝