文章
视频
课程
百科图谱
集训营
更多
问答
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
视频
课程
集训营
专栏
活动
工作
文档
集市
搜索
登录/注册
精选
推荐
最新
周榜
关注
RSS
全部
通识
以太坊
比特币
Solana
公链
Solidity
Web3应用
编程语言
安全
密码学
AI
存储
其他
以太坊智能合约中的 Merkle 树
Merkle 树(也称哈希树)是一种高效的数据验证结构,常用于区块链和智能合约中,在不存储完整数据集的情况下,验证某个数据是否属于该数据集。在智能合约中使用 Merkle 树可以提高 Gas 效率、保护隐私、并支持动态更新。常见的应用场景包括白名单验证、空投分发以及数据验证等。
Merkle 树
哈希树
智能合约
gas 效率
白名单
空投
Solidity
DeCert.me
发布于 2025-12-16
阅读 ( 545 )
( 28 )
以太坊智能合约访问控制
本文介绍了智能合约中访问控制的重要性,以及常见的访问控制模式,包括Owner模式、白名单/黑名单模式和时间锁。同时,文章还强调了最小权限原则、使用modifier、事件记录等最佳实践,并指出了常见的安全问题和如何使用OpenZeppelin进行访问控制。
访问控制
智能合约
Owner模式
白名单
黑名单
时间锁
Solidity
DeCert.me
发布于 2025-12-16
阅读 ( 571 )
( 29 )
合约安全概述
智能合约的安全性至关重要,因为合约管理大量资金且部署后难以修改。常见的攻击模式包括重入攻击、访问控制漏洞、时间戳依赖、抢跑攻击、拒绝服务和随机数可预测等。开发者应遵循最小权限原则、防御性编程、CEI模式等最佳实践,并进行充分测试和审计,以应对潜在风险并构建安全的智能合约。
智能合约
安全性
重入攻击
访问控制
拒绝服务
最佳实践
Solidity
DeCert.me
发布于 2025-12-16
阅读 ( 685 )
( 35 )
Multicall:批量调用合约
Multicall是一种在单个交易中批量调用多个合约函数的技术,主要应用于批量读取数据和批量执行操作。批量读取通过`call`调用外部合约,提升前端查询效率;批量执行则根据情况使用`call`或`delegatecall`,实现原子性和节省Gas。理解`call`和`delegatecall`的区别是使用Multicall的关键,同时需要关注安全风险,例如重入攻击和 Gas 限制,并采取最佳实践。
multicall
批量调用
call
delegatecall
智能合约
以太坊
Solidity
DeCert.me
发布于 2025-12-16
阅读 ( 577 )
( 30 )
以太坊抢跑攻击与防御
本文深入探讨了区块链中的抢跑攻击,详细解释了经典抢跑、三明治攻击和抑制攻击等类型,并介绍了MEV(矿工可提取价值)的概念及其在Uniswap等场景中的应用。针对这些攻击,文章提出了Commit-Reveal模式、滑点保护、Flashbots/私有内存池、批量处理和时间锁等多种防御策略,并从合约层面和用户层面给出了最佳实践建议,旨在帮助开发者和用户降低抢跑风险。
抢跑攻击
三明治攻击
MEV
滑点保护
Commit-Reveal
Flashbots
Solidity
DeCert.me
发布于 2025-12-16
阅读 ( 826 )
( 32 )
以太坊智能合约重入攻击与防御
重入攻击是智能合约最常见的漏洞之一,攻击者可以在合约的外部调用完成前再次调用该函数或相关函数,破坏合约流程。防御重入攻击的关键在于遵循 Checks-Effects-Interactions 模式,先进行检查,然后更新状态,最后进行外部交互;可以使用 OpenZeppelin 提供的 ReentrancyGuard 或自定义重入锁。
重入攻击
智能合约
以太坊
Solidity
Checks-Effects-Interactions
ReentrancyGuard
DeCert.me
发布于 2025-12-16
阅读 ( 704 )
( 33 )
ERC20代币标准与合约实现
本文详细介绍了ERC20代币标准,它是以太坊上应用最广泛的代币标准之一。文章阐述了ERC20的核心方法和事件,并展示了如何从零开始编写一个简单的ERC20代币合约。此外,还介绍了如何使用OpenZeppelin库来简化ERC20代币的创建,并探讨了常见的扩展合约及其实现方式,如燃烧代币。
ERC20
代币标准
智能合约
OpenZeppelin
Solidity
以太坊
DeCert.me
发布于 2025-12-15
阅读 ( 743 )
( 30 )
以太坊智能合约状态机模式
状态机模式是一种用于管理智能合约中复杂状态转换的设计模式,通过枚举定义状态,确保状态转换的合法性、操作的顺序性和业务逻辑的清晰性。本文介绍了状态机的基本实现和在投票系统、游戏角色状态、托管交易等复杂场景中的应用,并提供了使用Modifier简化状态检查、绘制状态转换图等最佳实践。
状态机模式
智能合约
以太坊
枚举
modifier
状态转换
Solidity
DeCert.me
发布于 2025-12-15
阅读 ( 633 )
( 24 )
以太坊智能合约支付模式
本文深入探讨了以太坊智能合约中处理ETH支付的安全模式与实践。重点介绍了提取模式(Withdrawal Pattern),它通过让用户主动提取资金而非合约主动推送,有效避免了重入攻击等安全问题。此外,还讨论了批量支付、分红合约、支付分割等实用场景,并强调了CEI模式、防重入、检查call返回值等关键安全原则。
以太坊
智能合约
支付模式
提取模式
重入攻击
CEI模式
Solidity
DeCert.me
发布于 2025-12-15
阅读 ( 627 )
( 26 )
ERC1155多代币标准
ERC1155是一种以太坊代币标准,它允许在一个智能合约中同时管理多种类型的代币,包括同质化代币(FTs)和非同质化代币(NFTs)。ERC1155通过一个中心合约管理多种类型的代币,每种代币都有一个唯一的ID,并且可以通过URI链接访问代币的详细元数据信息。该标准提高了交易效率,降低了交易成本,并为开发者提供了更大的灵活性。
ERC1155
代币标准
智能合约
同质化代币
非同质化代币
元数据
Solidity
DeCert.me
发布于 2025-12-15
阅读 ( 541 )
( 26 )
EIP712 结构化数据签名
EIP-712定义了结构化数据签名的标准方法,提升了签名数据的可读性和安全性,并实现了链上验证的标准化。它通过引入域分隔符来防止跨链和跨合约的重放攻击,并允许钱包更清晰地展示签名内容,从而改善了用户体验和合约的安全性。与基础签名相比,EIP-712适用于需要签名复杂数据结构并保障用户知情权的场景。
EIP-712
结构化签名
数字签名
域分隔符
智能合约
以太坊
Solidity
DeCert.me
发布于 2025-12-15
阅读 ( 541 )
( 29 )
ERC721 NFT标准
ERC721标准为NFT的发展奠定基础,每个代币都独一无二。本文详细探讨了ERC721标准的机制,包括与ERC20的区别、关键特征(如非同质化、所有权追踪、元数据可选性),以及核心方法(如balanceOf、ownerOf、transferFrom等)和事件(如Transfer、Approval等)。此外,还展示了如何使用OpenZeppelin库实现ERC721代币合约的示例。
ERC721
NFT
非同质化代币
智能合约
OpenZeppelin
元数据
Solidity
DeCert.me
发布于 2025-12-15
阅读 ( 665 )
( 28 )
Hardhat以太坊开发框架
本文介绍了Hardhat以太坊开发框架,包括创建和配置项目、编写智能合约、使用Solidity编写/typescript测试、使用console.log调试Solidity代码,以及部署合约和代码开源验证等步骤。Hardhat提供了更快的编译和测试,支持Solidity测试,内置调试器,并提供Hardhat Network用于本地开发,方便开发者进行以太坊智能合约的开发。
Hardhat
以太坊
智能合约
Solidity
测试
部署
DeCert.me
发布于 2025-12-14
阅读 ( 619 )
( 38 )
Foundry以太坊开发框架
Foundry是一个以Solidity为中心的以太坊开发框架,用于构建、测试、调试和部署智能合约。它提供了一整套工具链,包括forge、cast、anvil和chisel,支持快速构建和测试,并拥有强大的测试功能,如作弊码、模糊测试和主网Fork。Foundry是目前Solidity开发中使用广泛的框架。
Foundry
Solidity
智能合约
Forge
cast
anvil
DeCert.me
发布于 2025-12-14
阅读 ( 665 )
( 39 )
UUPS 升级模式
本文详细介绍了通用可升级代理标准(UUPS)模式,该模式将升级逻辑置于实现合约中,以优化 Gas 消耗。文章对比了UUPS与透明代理的优缺点,并通过示例代码展示了UUPS的实现原理和升级流程。同时,强调了 UUPS 的风险,并介绍了如何使用 OpenZeppelin 的 UUPSUpgradeable 及 Foundry 插件进行安全部署和升级。
UUPS
代理合约
智能合约升级
EIP-1822
OpenZeppelin
Foundry
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 645 )
( 29 )
以太坊智能合约存储与 Gas 优化
本文深入探讨了EVM存储机制,对比了storage、memory、calldata和transient storage等不同存储位置的Gas成本,并提供了变量打包、利用immutable和constant、删除存储变量退Gas、缓存存储变量到内存等实用优化技巧。同时讨论了mapping与array、bytes与string的选择,以及memory和calldata的优化策略,最后强调了优化的...
以太坊
智能合约
gas优化
EVM存储
Solidity
变量打包
DeCert.me
发布于 2025-12-13
阅读 ( 667 )
( 40 )
delegatecall委托调用
delegatecall 是一种特殊的底层调用函数,它与 call 的核心区别在于不切换执行上下文,`msg.sender` 保持为原始调用者,修改的是调用者合约的状态(使用被调用合约的代码)。delegatecall 最典型的应用场景是代理合约,通过代理模式,可以实现合约的升级而不改变合约地址。使用 delegatecall 时,调用者和被调用合约必须有相同的存储布局,否则会导致数据混乱。
delegatecall
委托调用
代理合约
上下文切换
存储布局
EVM
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 579 )
( 32 )
Solidity瞬时存储
本文深入介绍了Solidity 0.8.24版本引入的瞬时存储(transient)特性,这是一种新的数据存储位置,数据仅在单个交易执行期间存在,并可在同一交易的多个合约调用之间共享。瞬时存储相较于storage更节省Gas,且具有自动清理的特性,非常适合用于防重入锁等场景。文章还对比了瞬时存储与其他存储位置的差异,并提供了使用注意事项和实战示例。
瞬时存储
transient
Solidity
以太坊
智能合约
防重入锁
DeCert.me
发布于 2025-12-13
阅读 ( 641 )
( 32 )
以太坊代理合约与升级
代理合约作为用户与实际业务逻辑之间的中介,用于解决智能合约部署后无法更改的问题。代理合约存储数据,实现合约包含逻辑,通过`delegatecall`在代理上下文中执行实现合约的代码,升级时替换实现合约。为避免存储冲突,可使用EIP-1967标准,为避免函数选择器冲突,可使用透明代理或UUPS模式。
代理合约
合约升级
delegatecall
EIP-1967
透明代理
UUPS
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 510 )
( 30 )
Solidity call 底层调用
本文深入讲解了Solidity中`call`底层调用函数。`call` 主要用于调用合约函数和转移以太币,允许在运行时动态决定调用目标合约和函数,无需预先知道合约接口。文章还介绍了如何使用 `call` 进行 ETH 转账,控制 Gas 数量,以及防范重入攻击的安全模式,并对比了 `call`,`delegatecall`,`staticcall` 三种调用方式。
call
ABI编码
底层调用
合约钱包
重入攻击
Solidity
DeCert.me
发布于 2025-12-13
阅读 ( 474 )
( 29 )
‹
1
2
3
4
5
6
7
8
...
58
59
›
发表文章
我要提问
扫一扫 - 使用登链小程序
热门文档
»
Solidity 中文文档 - 合约开发
Foundry 中文文档 - 开发框架
Hardhat 中文文档 - 开发框架
ethers.js 中文文档 - 与链交互
Viem 中文文档 - 与链交互
web3.js 中文文档 - 与链交互
Anchor 中文文档 - 开发框架
以太坊改进提案EIP翻译
以太坊域名服务(ENS)文档
Etherscan API 手册 - 查询链上数据
热门百科
»
Sui
漏洞
Chainlink
OpenZeppelin
安全性
互操作性
账户抽象
Uniswap
跨链
安全
安全审计
Foundry
DAO
智能合约安全
流动性
钱包
隐私
交易
ERC20
DEX
Gas
数据可用性
质押
跨链桥
QuickNode
30天文章收益榜
»
DeCert.me
101 篇文章,2222 学分
ethbook
19 篇文章,839 学分
zealynx
31 篇文章,386 学分
天涯学馆
71 篇文章,350 学分
King
167 篇文章,276 学分
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容: