
讨论范围与核心边界
这里将“eth项目”理解为基于以太坊智能合约构建的应用,不指某个特定品牌。ETH是以太坊的原生资产,项目的业务能力则取决于合约及其外部系统。判断应用边界,关键是区分代码可以直接执行的操作,以及仍依赖外部提供的信息和服务。
两类技术能力的依据
ethereum.org的智能合约介绍说明:合约是在链上地址中保存代码和状态的程序,可通过交易调用,也能调用其他合约;部署和执行涉及gas,合约本身无法直接获取链外事件。这界定了链上规则执行的基本范围。

Chainlink的数据喂价文档说明:预言机可将外部数据汇总并发布到链上,供应用读取;数据服务存在更新、管理权限及延迟或中断等问题。这意味着外部数据接入扩大了应用范围,也增加了依赖条件。

哪些需求适合交给合约
规则明确、输入可验证、结果能够体现为链上状态变化的需求,更适合智能合约。例如,多方共同批准某项链上操作,可以通过多签门槛表达;多个合约之间也可以按接口协作。适用前提是业务条件能被清楚地写成程序,并明确由谁发起调用。
如果业务需要判断货物质量、解释模糊条款或完成实物交付,合约只能处理收到的信息和预设流程。记录“已交付”与实际完成交付之间,仍需要可信的信息提供和线下执行安排。
数据、成本与权限的限制
接入预言机后,应用能够使用外部数据,但数据已经上链并不等于它永远准确、及时。业务必须定义可接受的数据时效、异常范围以及数据不可用时的行为,否则代码可能依据失效输入继续执行。
链上计算和存储受到资源与费用约束,业务设计需要考虑执行成本。调用其他合约还会引入外部依赖:接口、升级权限或运行状态的变化,都可能影响本项目。开放部署也不代表部署后的所有功能都没有权限限制。
常见问题
自动执行是否意味着无需治理?不是。合约执行预设规则,规则是否合理、管理权限如何分配、出现错误后如何处理,仍属于项目治理。多签能够分散控制权,但不能保证参与者的决定正确。
合约出错能否直接撤销?已确认的链上操作通常不能像普通数据库记录一样直接回滚。项目可能预设暂停、升级或补偿机制,但这些能力必须具体核实,也不能据此保证所有后果都能恢复。评估应用时,应同时查看代码能执行什么、输入依赖谁,以及异常发生后谁有权处理。