name: software-crypto-web3 description: 在构建区块链应用程序或智能合约时使用,涵盖EVM(Solidity)、Solana(Anchor/Rust)、Cosmos(CosmWasm)和TON,包括安全/审计工作流、模糊/不变测试、升级、托管/签名和后端集成(RPC、索引器、webhooks)。
软件加密/Web3 工程
使用此技能来设计、实现和审查安全的区块链系统:智能合约、链上/链下集成、托管和签名、测试、审计和生产操作。
默认:安全优先开发、显式威胁模型、全面测试(单元 + 集成 + 分叉 + 模糊/不变)、高价值时的形式方法、升级安全性(时间锁、治理、回滚计划)以及密钥托管和签名的深度防御。
快速参考
| 任务 | 工具/框架 | 命令 | 使用时机 |
|---|---|---|---|
| Solidity 开发 | Hardhat/Foundry | npx hardhat init 或 forge init |
以太坊/EVM 智能合约 |
| Solana 程序 | Anchor | anchor init |
Solana 区块链开发 |
| Cosmos 合约 | CosmWasm | cargo generate --git cosmwasm-template |
Cosmos 生态系统合约 |
| TON 合约 | Tact/FunC + Blueprint | npm create ton@latest |
TON 区块链开发 |
| 测试(Solidity) | Foundry/Hardhat | forge test 或 npx hardhat test |
单元、分叉、不变测试 |
| 安全审计 | Slither/Aderyn/Echidna | slither . 或 aderyn . |
静态分析、模糊测试 |
| AI辅助审查 | AI 扫描器(可选) | N/A | 审计前准备(手动验证发现) |
| 模糊测试 | Echidna/Medusa | echidna . 或 medusa fuzz |
基于属性的模糊测试 |
| Gas 优化 | Foundry Gas 快照 | forge snapshot |
基准测试和优化 Gas |
| 部署 | Hardhat Deploy/Forge 脚本 | npx hardhat deploy |
主网/测试网部署 |
| 验证 | Etherscan API | npx hardhat verify |
源代码验证 |
| 可升级合约 | OpenZeppelin Upgrades | @openzeppelin/hardhat-upgrades |
基于代理的升级 |
| 智能钱包 | ERC-4337, EIP-7702 | 账户抽象 SDK | 智能账户和赞助 Gas(验证网络支持) |
范围
在以下情况下使用此技能:
- 智能合约开发(Solidity、Rust、CosmWasm)
- DeFi 协议实现(AMM、借贷、质押、收益耕种)
- NFT 和代币标准(ERC20、ERC721、ERC1155、SPL 代币)
- DAO 治理系统
- 跨链桥和互操作性
- Gas 优化和存储模式
- 智能合约安全审计
- 测试策略(Foundry、Hardhat、Anchor)
- 预言机集成(Chainlink、Pyth)
- 可升级合约模式(代理、钻石)
- Web3 前端集成(ethers.js、web3.js、@solana/web3.js)
- 区块链索引(The Graph、子图)
- MEV 保护和 Flashbots
- 第 2 层扩展解决方案(Base、Arbitrum、Optimism、zkSync)
- 账户抽象(ERC-4337、EIP-7702、智能钱包)
- 后端加密集成(.NET/C#、多提供者架构、CQRS)
- Webhook 处理和签名验证(Fireblocks、托管提供者)
- 使用 Kafka 的事件驱动架构用于加密支付
- 交易生命周期管理和监控
- 钱包管理(托管 vs 非托管)
决策树:区块链平台选择
项目需求:[用例]
- EVM 兼容的智能合约?
- 复杂测试需求 -> Foundry(模糊测试、不变、Gas 快照)
- TypeScript 生态系统 -> Hardhat(插件、TS、Ethers.js/Viem)
- 企业功能 -> NestJS + Hardhat
- 高吞吐量 / 低费用?
- Rust 基础 -> Solana(Anchor)
- EVM L2 -> Arbitrum/Optimism/Base(以太坊安全性、更低 Gas)
- Telegram 分发 -> TON(Tact/FunC)
- 跨链互操作性?
- Cosmos 生态系统 -> CosmWasm(IBC)
- 多链应用 -> LayerZero 或 Wormhole(验证信任假设)
- 桥开发 -> 自定义(高风险;需要威胁模型)
- 代币标准实现?
- 可互换代币 -> ERC20(OpenZeppelin)、SPL Token(Solana)
- NFT -> ERC721/ERC1155(OpenZeppelin)、Metaplex(Solana)
- 半可互换 -> ERC1155(游戏、碎片化 NFT)
- DeFi 协议开发?
- AMM/DEX -> Uniswap V3 分叉或自定义(集中流动性)
- 借贷 -> Compound/Aave 分叉(抵押借贷)
- 质押/收益 -> 自定义奖励分发合约
- 需要可升级合约?
- 透明代理 -> OpenZeppelin(管理员/用户分离)
- UUPS -> 实现中的升级逻辑
- 钻石 -> 模块化功能(EIP-2535)
- 后端集成?
- .NET/C# -> 多提供者架构(见后端集成参考)
- Node.js -> Ethers.js/Viem + 持久队列
- Python -> Web3.py + FastAPI
特定链注意事项:
- 以太坊/EVM:安全优先、更高 Gas 成本、最大生态系统
- Solana:性能优先、需要 Rust、更低费用
- Cosmos:互操作性优先、原生 IBC、成长中生态系统
- TON:Telegram 优先、异步合约、独特架构
见 references/ 获取链特定最佳实践。
安全优先模式(2026年1月)
安全基线:假设敌对环境。将合约和签名基础设施视为公开、可攻击的 API。
托管、密钥和签名(核心)
密钥管理是生产加密系统的主要风险驱动因素。使用真实密钥管理标准作为基线(例如,NIST SP 800-57)。
| 模型 | 谁持有密钥 | 典型用途 | 主要风险 | 默认控制 |
|---|---|---|---|---|
| 非托管 | 最终用户钱包 | 消费者应用、自托管 | 网络钓鱼、批准、用户体验错误 | 硬件钱包支持、清晰签名 UX、白名单 |
| 托管 | 您的服务(HSM/MPC) | 交易所、支付、B2B | 密钥盗窃、内部威胁、操作失误 | HSM/MPC、职责分离、限制/批准、审计日志 |
| 混合 | 责任分割 | 企业 | 复杂故障模式 | 明确恢复/覆盖路径、运行手册 |
最佳:
- 分离热/温/冷签名路径,带有限制和批准 [推断]
- 要求双控用于高价值转账(策略引擎 + 人工批准) [推断]
- 保持签名请求的不可变审计跟踪(谁/什么/何时/为何) [推断]
避免:
- 在数据库或应用配置中存储私钥
- 跨环境重用签名密钥(开发/测试/生产)
- 热钱包自动化不带速率限制和断路器 [推断]
检查-效果-交互(CEI)模式
强制用于所有状态变更函数。
// 正确:CEI 模式
function withdraw(uint256 amount) external {
// 1. 检查:验证条件
require(balances[msg.sender] >= amount, "余额不足");
// 2. 效果:在外部调用之前更新状态
balances[msg.sender] -= amount;
// 3. 交互:外部调用最后
(bool success, ) = msg.sender.call{value: amount}("");
require(success, "转账失败");
}
// 错误:外部调用在状态更新之前(重入风险)
function withdrawUnsafe(uint256 amount) external {
require(balances[msg.sender] >= amount);
(bool success, ) = msg.sender.call{value: amount}("");
require(success);
balances[msg.sender] -= amount; // 太迟!
}
安全工具(2026年1月)
| 类别 | 工具 | 目的 | 使用时机 |
|---|---|---|---|
| 静态分析 | Slither | 漏洞检测,92+ 检测器 | 每个合约 |
| 静态分析 | Aderyn | Rust 基础,对大代码库更快 | 大型项目 |
| 模糊测试 | Echidna | 基于属性的模糊测试 | 复杂状态 |
| 模糊测试 | Medusa | 并行化 Go 模糊测试器 | CI/CD 管道 |
| 形式验证 | SMTChecker | 内置 Solidity 检查器 | 每个合约 |
| 形式验证 | Certora | 基于属性的证明(CVL) | DeFi、高价值 |
| 形式验证 | Halmos | 符号测试 | 复杂不变 |
| AI辅助 | Sherlock AI | ML 漏洞检测 | 审计前准备 |
| AI辅助 | Olympix | DevSecOps 集成 | CI/CD 安全 |
| AI辅助 | AuditBase | 423+ 检测器,LLM 驱动 | 业务逻辑 |
| 突变测试 | SuMo | 测试套件质量评估 | 测试验证 |
// Certora CVL 规则示例
rule balanceNeverNegative(address user) {
env e;
require balances[user] >= 0;
deposit(e);
assert balances[user] >= 0;
}
AI辅助审查:使用 AI 工具进行审计前准备和覆盖,而非最终安全决策。将输出视为不可信,并使用确定性工具、测试和手动审查重现发现。
MEV 保护
| 策略 | 实现 |
|---|---|
| 私有内存池 | Flashbots Protect, MEV Blocker |
| 提交-揭示 | 哈希承诺,截止后揭示 |
| 批量拍卖 | CoW Protocol, Gnosis Protocol |
| 加密内存池 | Shutter Network |
// 提交-揭示模式
mapping(address => bytes32) public commitments;
function commit(bytes32 hash) external {
commitments[msg.sender] = hash;
}
function reveal(uint256 value, bytes32 salt) external {
require(
keccak256(abi.encodePacked(value, salt)) == commitments[msg.sender],
"无效揭示"
);
// 处理揭示值
}
账户抽象(2026年1月)
注意:采用数字和升级时间线变化快。在提出建议前,使用 WebSearch 验证当前 ERC-4337 生态系统状态和任何 EIP-7702 激活细节。
ERC-4337 vs EIP-7702
| 标准 | 类型 | 关键特性 | 用例 |
|---|---|---|---|
| ERC-4337 | 智能合约钱包 | 完整 AA 无需协议更改 | 新钱包、DeFi、游戏 |
| EIP-7702 | EOA 增强 | EOA 执行智能合约代码 | 现有钱包、批量交易 |
| ERC-6900 | 模块化账户 | AA 钱包的插件管理 | 可扩展钱包功能 |
ERC-4337 架构:
用户 -> 用户操作 -> 捆绑器 -> 入口点 -> 智能账户 -> 目标合约
|
v
支付主(Gas 赞助)
EIP-7702(Pectra 升级):
- EOA 可以临时委托给智能合约
- 使批量交易、现有地址的赞助 Gas 成为可能
- 与 ERC-4337 互补(使用相同捆绑器/支付主基础设施)
- 由 Ambire、Trust Wallet 等支持
关键能力:
- 无 Gas 交易:支付主在 ERC-20 或法币中赞助 Gas
- 批量操作:单笔交易中的多个动作
- 社交恢复:基于多签或监护人的密钥恢复
- 会话密钥:有限权限用于 dApp,无需完整钱包访问
智能钱包开发
// 最小 ERC-4337 账户(简化)
import "@account-abstraction/contracts/core/BaseAccount.sol";
contract SimpleAccount is BaseAccount {
address public owner;
function validateUserOp(
UserOperation calldata userOp,
bytes32 userOpHash,
uint256 missingAccountFunds
) external override returns (uint256 validationData) {
// 验证签名
require(_validateSignature(userOp, userOpHash), "无效签名");
// 如果需要,支付预资金
if (missingAccountFunds > 0) {
(bool success,) = payable(msg.sender).call{value: missingAccountFunds}("");
require(success);
}
return 0; // 有效
}
}
第 2 层开发(2026年1月)
注意:L2 市场份额和风险阶段变化快。在说明排名、TVL 或阶段分类前,使用当前数据(例如,L2Beat 和生态系统仪表板)。
L2 选择指南
| L2 | 类型 | 最适合 | 关键特性 |
|---|---|---|---|
| Base | 乐观 | 消费者应用、主流采用 | Coinbase 集成、低费用 |
| Arbitrum | 乐观 | DeFi、成熟生态系统 | 最大 TVL、DAO 补助 |
| Optimism | 乐观 | 公共产品、Superchain | OP 堆栈、补助计划 |
| zkSync Era | ZK-Rollup | 快速最终性、原生 AA | zkEVM、无提款延迟 |
| StarkNet | ZK-Rollup | Cairo 开发、ZK 原生 | STARK 证明、自定义 VM |
企业 Rollups(2025-2026 趋势)
主要机构在 OP 堆栈上推出 L2:
- Kraken INK - 交易所原生 L2
- Uniswap UniChain - DeFi 优化
- Sony Soneium - 游戏和媒体
- Robinhood - Arbitrum 集成
EIP-4844 Blob 优化
自 2024 年 3 月起,rollups 使用基于 blob 的数据发布:
之前:calldata 发布 -> 昂贵
之后:blob 发布 -> 更低数据可用性成本
Optimism、zkSync 在 2025 年优化了 blob 批处理。
常见错误(2025-2026)
现实检查:攻击经常导致大损失。访问控制、签名/托管和集成漏洞仍然是主要事件驱动因素。
| 错误 | 影响 | 预防 |
|---|---|---|
| 缺少访问控制 | 未经授权的管理员操作 | 使用 OpenZeppelin Ownable2Step、AccessControl |
| 重入 | 通过回调抽干资金 | CEI 模式、ReentrancyGuard、Slither 检查 |
| 未检查的外部调用 | 静默失败 | 始终检查返回值,使用 SafeERC20 |
| 整数溢出(0.8 之前) | 任意值操作 | 使用 Solidity 0.8.x+(内置检查) |
| 抢先交易 | MEV 提取、三明治攻击 | 提交-揭示、Flashbots Protect、私有内存池 |
| 预言机操纵 | 价格馈送攻击 | TWAP、多个预言机、合理边界 |
| 不当初始化 | 代理接管 | 使用 initializer 修饰符、_disableInitializers() |
| 存储冲突(代理) | 数据损坏 | 遵循 EIP-1967 槽,使用 OpenZeppelin 升级 |
要避免的反模式
避免:
- 使用
tx.origin进行授权(网络钓鱼风险) - 在链上存储秘密(所有数据是公开的)
- 使用
block.timestamp进行随机性(矿工/验证者影响) - 忽略
transfer/send的返回值 - 使用已弃用工具(Truffle/Ganache/Brownie)
最佳:
- 在每次变更上运行静态分析(例如,Slither 和 Aderyn)
- 在任何审计前添加模糊/不变测试
- 为高价值 DeFi 使用形式方法(例如,Certora 和符号测试)
LLM 在智能合约中的局限性
不要依赖 LLM 用于:
- 安全关键逻辑验证
- Gas 优化计算
- 复杂数学证明
使用 LLM 用于:
- 模板生成(测试、文档)
- 代码解释和审查准备
- 初始漏洞假设(手动验证)
何时不使用此技能
- 无区块链的传统后端 -> 使用 software-backend
- 无 Web3 的纯 API 设计 -> 使用 dev-api-design
- 无智能合约的通用安全 -> 使用 software-security-appsec
- 仅前端 dApp UI -> 使用 software-frontend + Web3 库
导航
资源
- references/blockchain-best-practices.md - 通用区块链模式和安全性
- references/backend-integration-best-practices.md - .NET/C# 加密集成模式(CQRS、Kafka、多提供者)
- references/solidity-best-practices.md - Solidity/EVM 特定指南
- references/rust-solana-best-practices.md - Solana + Anchor 模式
- references/cosmwasm-best-practices.md - Cosmos/CosmWasm 指南
- references/ton-best-practices.md - TON 合约(Tact/Fift/FunC)和部署
- …/software-security-appsec/references/smart-contract-security-auditing.md - 智能合约审计工作流和工具(见 software-security-appsec 技能)
- data/sources.json - 每个链的精选外部参考
- 共享安全审查清单: …/software-clean-code-standard/assets/checklists/secure-code-review-checklist.md
模板
- 以太坊/EVM: assets/ethereum/template-solidity-hardhat.md, assets/ethereum/template-solidity-foundry.md
- Solana: assets/solana/template-rust-anchor.md
- Cosmos: assets/cosmos/template-cosmwasm.md
- TON: assets/ton/template-tact-blueprint.md, assets/ton/template-func-blueprint.md
- 比特币: assets/bitcoin/template-bitcoin-core.md
相关技能
- …/software-security-appsec/SKILL.md - 安全加固、威胁建模、OWASP 漏洞
- …/software-architecture-design/SKILL.md - 系统分解、模块化、依赖设计
- …/ops-devops-platform/SKILL.md - 区块链节点的基础设施、CI/CD、可观测性
- …/software-backend/SKILL.md - 智能合约、RPC 节点、索引器的 API 集成
- …/qa-resilience/SKILL.md - 链的弹性、断路器、重试逻辑
- …/software-code-review/SKILL.md - 代码审查模式和质量门
- …/dev-api-design/SKILL.md - Web3 API 和 dApp 后端的 RESTful 设计
趋势意识协议
重要:当用户询问有关 Web3/加密开发的建议问题时,您必须使用 WebSearch 在回答前检查当前趋势。
触发条件
- “对于 [用例] 最好的区块链是什么?”
- “我应该用什么来 [智能合约/DeFi/NFT]?”
- “Web3 开发的最新进展是什么?”
- “当前最佳实践为 [Solidity/审计/Gas 优化]?”
- “[链/协议] 在 2026 年仍然相关吗?”
- “[以太坊] vs [Solana] vs [其他 L1/L2]?”
- “用于 [智能合约开发] 的最佳框架是什么?”
必搜内容
- 搜索:
"Web3 开发最佳实践 2026" - 搜索:
"[以太坊/Solana/Base] 开发更新 2026" - 搜索:
"智能合约安全 2026" - 搜索:
"[Hardhat/Foundry] 比较 2026"
报告内容
搜索后,提供:
- 当前格局:现在流行的链/工具是什么
- 新兴趋势:获得关注的新协议或模式
- 已弃用/衰退:失去相关性的链或方法
- 建议:基于新数据和生态系统活动
示例主题(用新搜索验证)
- L2 生态系统增长(Base、Arbitrum、Optimism)
- 用于智能合约的 Solidity vs Rust
- Foundry vs Hardhat 工具
- 账户抽象(ERC-4337)采用
- 跨链桥和互操作性
- DeFi 安全模式和审计实践
操作手册
- references/operational-playbook.md - 智能合约架构、安全优先工作流和平台特定模式