智能合约入门414 次阅读
什么是智能合约?
部署在区块链上的自动执行程序:如果条件满足就执行,无人可以干预。理解 DApp 的发动机。
#智能合约#Solidity#EVM#DApp
定义
智能合约是部署在区块链上的程序:代码即法律,满足条件自动执行,结果全网共识、不可篡改。它由 Nick Szabo 在 1990 年代提出,以太坊让它真正落地。
一个直观例子
// 简化版众筹合约
contract Crowdfund {
mapping(address => uint256) public contributions;
uint256 public goal = 10 ether;
function contribute() external payable {
contributions[msg.sender] += msg.value;
}
function withdraw() external {
require(address(this).balance >= goal, "目标未达成");
payable(msg.sender).transfer(contributions[msg.sender]);
}
}
资金托管在合约而非某个公司账户,规则公开透明,达成目标前发起人无法挪用资金——这就是"消除中介"的力量。
智能合约的特性
- 确定性:相同输入永远产生相同输出,全网节点各自执行验证
- 不可变(Immutable):部署后代码不能直接修改,升级需通过代理模式(Proxy)
- 组合性(Money Legos):合约可以像积木一样互相调用——Aave 的抵押品可以存入 Yearn 金库再接入 Curve 池
EVM 与执行环境
以太坊虚拟机(EVM)是智能合约的运行时,Gas 限制每步计算的资源消耗,防止死循环。Solidity 是最流行的开发语言,Vyper 是安全性导向的替代品。Solana 等非 EVM 链使用 Rust/Move。
安全性:代码即风险
The DAO 被盗 360 万 ETH、Parity 钱包冻结尾款、无数 Reentrancy(重入)与预言机操纵事故表明:合约漏洞=资金损失。审计(Certik、Trail of Bits)、形式化验证、漏洞赏金(Immunefi)是必要防线。作为用户:
- 与合约交互前查看是否经过审计、TVL 历史与团队背景
- 使用官方域名,警惕钓鱼合约授权(见钱包安全篇)