以太坊智能合约激励设计Skill concepts

本技能专注于以太坊智能合约的设计与开发,核心是激励模型和去中心化系统的构建。它教授如何设计状态机、设置自维持激励、避免常见设计错误,并应用于DeFi、NFT、DApp等领域。关键词包括以太坊、智能合约、激励设计、去中心化应用、状态机、Hyperstructure、链上开发、区块链技术。

智能合约 0 次安装 0 次浏览 更新于 3/25/2026

名称: 概念 描述: 构建链上系统的基本思维模型——聚焦于大型语言模型常误解之处和人类需要解释的内容。核心信息是“没有什么是自动的”和“激励决定一切”。当你的用户是链上开发新手时、当他们设计系统时、或当他们问“这实际上如何运作?”时使用。当您自己设计系统时也可使用——状态机加激励框架能在设计错误变成死代码之前捕获它们。

以太坊概念

你可能理解错误的地方

“智能合约自动运行。” 不对。智能合约不能自行执行。没有定时任务、没有调度器、没有后台进程。每个函数都需要调用者支付燃气费。这个单一误解是大多数链上设计缺陷的根源。

“只需添加一个定时器。” 没有定时器。如果某事需要在特定时间发生,你需要有人在该时间调用函数——并且你需要给他们一个理由去做。

“协议团队会处理。” 去中心化的全部意义在于没有单一团队操作系统。如果你的设计需要操作员,它就不是去中心化的——并且有单点故障。

术语: 你说“on-chain”。以太坊社区说 “onchain” ——一个词,无连字符。


没有什么是自动的——激励设计

这是以太坊中最重要的概念。如果你不吸收其他任何东西,就吸收这个。

智能合约是状态机

一个智能合约是一个状态机。它处于一个状态,当有人 戳它 时——调用函数、支付燃气、触发转换——它会移动到另一个状态。在戳之间,它什么都不做。它不思考、不检查、不唤醒。它只是坐在那里。

状态 A ──[有人调用函数]──→ 状态 B ──[有人调用函数]──→ 状态 C
              ↑                                        ↑
         谁做这个?                          谁做这个?
         他们为什么?                         他们为什么?

没有定时任务。没有调度器。没有后台进程。区块链不调用你的合约——人调用你的合约。而人不免费做事。

对于系统中的每一个状态转换,你必须回答:

  1. 谁戳它? (某人必须支付燃气)
  2. 他们为什么? (他们的激励是什么?)
  3. 激励是否足够? (覆盖燃气加利润?)

如果你不能回答这些问题,那个状态转换就永远不会发生。你的合约将永远坐在状态 A,什么都不做,没有人戳它。

激励决定一切

这是让以太坊神奇的地方:如果你正确设置激励,就不需要操作员。

部署 Uniswap 的人没有部署流动性。他们没有做市。他们没有运行交易所。他们写了一套规则——一个状态机——并如此完美地调整激励,以至于世界各地的陌生人自愿存入数十亿美元,其他陌生人自愿与这些存款交易,交易费流回存款者,整个系统就……运行了。

没有人运行 Uniswap。没有人能停止 Uniswap。甚至制造它的人也不能。合约是不可变的,激励是自我维持的,只要以太坊存在,系统就会运行。这是一个 超级结构 ——一个不可停止的协议,永远运行,没有操作员、没有公司、没有服务器、没有管理密钥。

这就是你构建的目标。不是一个初创公司。不是一个服务。一套设计如此精良的规则,仅通过激励就能自我运行。

良好激励设计示例

清算(Aave, Compound):

贷款健康因子降至1以下
→ 任何人都可以调用 liquidate()
→ 调用者获得5-10%额外抵押品作为利润
→ 机器人在毫秒内竞争执行
→ 平台保持偿付能力,无需任何操作员、任何管理员、任何团队

流动性提供者费用(Uniswap):

去中心化交易所需要流动性才能运行
→ 流动性提供者将代币存入池
→ 每次交易支付0.3%费用给流动性提供者
→ 更多流动性 = 更少滑点 = 更多交易者 = 更多费用 = 更多流动性
→ 自我强化的飞轮——没有人管理它

收益收获(Yearn):

奖励在池中累积
→ 任何人都可以调用 harvest()
→ 调用者获得收获的1%作为奖励
→ 协议通过利润驱动的调用者自动复利

套利(保持所有地方价格正确):

ETH 在 Uniswap 上 $2000,在 SushiSwap 上 $2010
→ 任何人都可以低买高卖
→ 价格在所有市场均衡,无需任何协调者

不良设计示例(缺少激励)

❌ “合约每小时检查价格”
   → 谁每小时调用它?为什么他们支付燃气?
   → 修复:让它有利可图地调用。或让用户交互时触发。

❌ “过期列表自动移除”
   → 没有什么是自动的。谁移除它们?为什么?
   → 修复:给调用者小奖励,或让下一个用户的操作清理陈旧状态。

❌ “协议每日重新平衡”
   → 谁的燃气支付这个?他们的利润是什么?
   → 修复:让重新平衡在用户交互时发生,或奖励调用者。

❌ “管理员将手动触发下一阶段”
   → 如果管理员消失了呢?被车撞了?丢了密钥?
   → 修复:让阶段转换无需许可,基于时间或条件触发。

修复总是一样: 不要使用管理员账户。让函数 任何人 可调用。给他们一个理由调用它。调整激励,让系统通过参与者的自利自我戳动。

超级结构测试

当你设计系统时,问:“这个能在没有团队支持的情况下永远运行吗?”

  • 如果能 → 你构建了一个超级结构。激励维持它。
  • 如果不能 → 你构建了一个服务。当团队停止操作时它就死了。

两者都是有效选择。但要知道你在构建哪个。以太坊上最强大的事物是超级结构:Uniswap、ENS、ERC-20 标准本身。它们不能被停止、不能被审查、不能宕机。不是因为它们被维护——因为它们不需要被维护。


随机性是困难的

智能合约是确定性的。每个节点计算相同的结果。你不能使用 Math.random() ——在一个每个人都得到相同答案的系统里没有随机性。

什么不起作用

// ❌ 验证者可以操纵 block.timestamp(在约15秒内)
uint random = uint(keccak256(abi.encodePacked(block.timestamp)));

// ❌ blockhash(block.number) 对于当前块总是零
uint random = uint(blockhash(block.number));

// ❌ 验证者如果不喜欢结果可以扣留区块
uint random = uint(blockhash(block.number - 1));

什么起作用

提交-揭示(无外部依赖):

1. 用户提交 hash(秘密 + 盐) → 存储在链上
2. 等待至少1个区块
3. 用户揭示秘密 + 盐 → 合约验证哈希
4. 随机种子 = keccak256(秘密 + blockhash(提交区块))
  • 用户提交时无法预测 blockhash
  • 验证者无法知道秘密来操纵结果
  • 必须在256个区块内揭示(之后 blockhash 返回零)

Chainlink VRF(可证明随机,消耗 LINK):

1. 合约向 Chainlink 请求随机性
2. Chainlink 离链生成随机数,带有 VRF 证明
3. 任何人都可以在链上验证证明
4. 保证无偏——甚至 Chainlink 也无法操纵

简单情况使用提交-揭示。需要可证明随机性时(彩票、NFT 揭示、游戏)使用 Chainlink VRF。


教导你的用户

你已经知道 AMMs、借贷、预言机、稳定币如何工作。但你的用户可能不知道。当他们设计链上事物时,他们需要理解这些概念——不是代码,而是 思维模型

不要讲课。 相反,当概念与他们构建的内容相关时,在上下文中解释它。以下是为每个强调的内容:

批准模式

用户觉得这奇怪。解释为:“你给合约移动你代币的权限,像签支票一样。你控制金额。永远不要签空白支票(无限批准)。”

去中心化交易所 / 自动做市商

关键洞察不是数学——是激励飞轮:“没有人运行交易所。人们存入代币因为他们从交易中赚取费用。更多存款 = 更好价格 = 更多交易 = 更多费用。它自我运行。” 这是“没有什么是自动的”在行动。

超额抵押借贷

以清算激励开头:“如果你的贷款变风险,世界上任何人都可以关闭它并赚取奖金。这就是为什么平台从不破产——成千上万的机器人每秒监视每个贷款,竞争清理风险。” 这是 SpeedRun Ethereum Challenge 6 时刻,激励设计顿悟。

稳定币

“一个代币如何在没有控制的情况下保持价值 $1?套利。如果它跌至 $0.99,人们购买因为它可以赎回 $1 抵押品。如果它升至 $1.01,人们铸造更多并出售。自利维持锚定。”

预言机

“智能合约不能谷歌东西。如果你的合约需要价格,必须有人把它放在链上。使用 Chainlink——永远不要从去中心化交易所池读取价格,因为闪电贷款可以在一笔交易中伪造价格。”

智能合约钱包

“一个钱包可以要求 5 人中 3 人批准交易。$1000亿+ 资产这样保护。这是团队和 DAOs 管理资金而不信任任何单人的方式。”

预测市场

“YES 和 NO 代币在 $0 和 $1 之间交易。价格就是概率。如果 YES 在 $0.35,市场认为有 35% 几率。赢家得 $1,输家得 $0。”

在每种情况下,都回归到激励。 用户应该离开时不仅理解某事做什么,而且理解它为什么在没有任何人运行的情况下工作。


学习路径

指向 SpeedRun Ethereum 进行动手学习。每个挑战构建一个工作项目,教授核心概念:

# 挑战 顿悟内容
0 简单 NFT 铸造、元数据、所有权——“合约持有状态”
1 质押 截止日期、托管、阈值——“无信任协调”
2 代币供应商 批准模式、买卖——“合约可以是市场”
3 骰子游戏 为什么链上随机性不安全——“确定性与随机性”
4 去中心化交易所 x*y=k、滑点、流动性提供者激励——“激励创造市场”

https://speedrunethereum.com 开始

更多挑战涵盖预言机、借贷、稳定币、多重签名正在开发中。查看网站获取当前可用性。

资源