本内容由德语机器翻译而成,尚未经母语人士审校。技术和监管术语以德语或英语版本为准。
智能合约是什么——又不是什么
一个带有状态和权限的程序。它既不是法律意义上的合同,也不是一个知道链外发生了什么的主体。
本课未经专业审阅。它是为本平台撰写的,并依据所列证据写成;未进行过独立的专业审阅。
学习目标
- 您能够解释为什么智能合约对链外世界一无所知。
- 您能够说出智能合约依赖于其他事物的三个环节。
检查预备知识
请在继续阅读之前,先自行回答这些问题。您犹豫的地方,正是本课的价值所在。
- 一个程序拥有状态意味着什么?
- 程序如何知道一个价格是多少?
- 谁可以更改一个正在运行的程序?
核心概念
一个持有价值的程序
智能合约是位于链上某个地址的代码。它有一个状态——余额、参数、权限——以及按照固定规则更改该状态的函数。每一次执行都是一笔交易,需要付费,并可在账本中追溯。
合约只看得见链
智能合约无法查询任何不在链上的内容。它不知道汇率、天气或交货情况。一切外部信息都必须由某人作为交易写入其中——这正是预言机所做的事。因此,合约关于外部世界的每一项表述,其可靠程度都取决于写入它的那个来源。
代码中看不到的三项依赖
合约依赖于预言机提供给它的数据;依赖于它自身调用的合约;依赖于某人对它保留的权利。仅凭代码只能看到这三项中的第二项。其余两项需要从文档和链上状态中查明——它们在概览中缺失,并不说明它们实际上不存在。
术语
- 智能合约 见术语表
- 位于链地址上、按固定规则管理资产的程序代码。
- 预言机(Oracle)
- 一种把链外数据写入合约的机制。
- 状态(State)
- 合约在某一时点存储的值。
模型
自身代码——可检查、有版本、可审计
被调用的合约——在代码中可见,自带风险
预言机数据——不在代码中,决定结果
保留的权利——不在代码中,决定规则
计算示例
一次无人触发的清算
- 预言机给出的价格
- 1,800 USD
- 流动性交易场所的价格
- 1,950 USD
- 清算阈值
- 1,850 USD
合约按 1,800 USD 计算,因为这是写在它里面的值。别处以 1,950 USD 成交这一事实,对它而言并不存在。
该头寸被清算。
解读: 执行清算的不是市场,而是数据来源。持有该头寸的人所暴露的风险来自预言机,而不是价格。
提取练习
基于真实数据的练习
请在 Explorer 中打开一个市场,查看所列出的依赖链。针对每个环节问自己:这里发生故障时,我能否在其生效之前看到?
查看一个市场的依赖链 →应用
某提供者宣传其协议“已全面审计”。这一表述未涵盖哪些风险?
相关案例研究
机构视角解读
- 银行
- 按照内部标准,这些依赖中哪些需要记录在案?
- 保险
- 四个层级中,哪一个能够以可保险的方式加以表述?
要点
- 智能合约只知道链上的内容——其他一切都是某人写入其中的。
- 审计检查的是代码,而不是数据来源、权利或经济机制。
证据
- EVD-2026-0004
Annual Review of Financial Economics — Smart Contracts and Decentralized Finance
- EVD-2026-0005
Review of Accounting Studies (Springer) — Decentralized Finance (DeFi) assurance: early evidence