
预言机与链上、链下的边界
链上指区块链记录及合约执行所处的环境,链下包括外部网站、数据库和服务。以太坊智能合约默认不能直接访问外部网络;预言机负责把外部信息引入合约,也可把链上信息传给外部系统。Ethereum.org 的预言机文档介绍了这一基本分工。
预言机这个名称容易让人联想到预测,但这里主要指信息连接机制。例如,天气数据来自链下,合约依据收到的数据判断条件是否满足。数据获取与规则执行是两个不同环节。

确定性与共识为什么重要
确定性是指相同初始状态和相同输入产生相同结果。假如节点执行合约时各自查询不断变化的网站,就可能得到不同输入。预言机将外部数据提交到链上,使合约能够基于共同记录执行。

这里需要区分两种判断:节点可以就链上记录及执行结果达成一致,但这不等于已经证实外部信息符合现实。记录的一致性与内容的真实性,需要分别考虑。
API、事件、任务与回调
API 是程序间交换数据的接口;链上事件是合约执行时产生、可由链下程序监听的日志;任务描述链下节点需要完成的工作;回调则是结果返回后接收数据的合约函数。
Chainlink 的基本请求模型文档展示了一条具体流程:客户端请求包含预言机地址、任务标识和回调函数;Operator 合约发出事件,链下节点获取并处理数据,再通过交易提交结果,交回客户端。这是该请求模型的说明,不能据此认定所有预言机都采用相同流程。
方向、架构与适用条件
输入预言机将外部数据送入链上,输出预言机把链上信息传给外部应用,计算预言机承担链下计算。混合智能合约则结合链上代码与链下基础设施。
偶尔需要查询某项信息时,可以采用请求—响应方式;持续需要更新数据时,可以采用发布—订阅方式。涉及外部设备的场景,还需要链下系统接收信息并执行动作,链上状态变化本身不能保证设备完成操作。
常见问题:多节点就一定可靠吗
数据聚合是把多个报告按规则处理为一个结果。多个节点若依赖同一个错误来源,仍可能共同报错,因此节点数量不能单独证明数据可靠。
理解预言机问题,应关注来源是否正确、传输是否被篡改、数据是否及时可用,以及提供者能否被追责。真实性强调来自预期来源,完整性强调内容未被改动;即使两者成立,来源本身仍可能提供错误信息。