
适用范围:涉及链外成果的众包流程
本文讨论通过智能合约协调提交、验收等环节,且需要引入链外信息的众包系统。理解这类系统,可以分别观察三个问题:成果由谁提交、依据什么判定合格、谁有权改变规则。链上记录只能覆盖其中部分环节。
误区一:成果上链就证明内容真实
以太坊预言机文档说明,预言机将链外信息传递给合约,同时带来正确性、可用性和激励相容性问题。信息来自指定来源、传输中未被修改,也不等于来源本身没有错误。

对应到众包流程,记录某人提交的验收结果,并不能独立证明任务已经完成。系统需要解释证明材料如何产生、由谁核验,以及存在异议时如何处理。

误区二:智能合约能自动理解任何验收要求
以太坊智能合约默认无法直接读取链外信息,需要预言机等机制提供输入。合约按照输入和既定规则执行,无法仅凭自动执行能力判断现实成果是否符合模糊要求。
例如,若任务要求“内容清晰”,就需要把要求转化为明确标准,或由授权评审提交判断。自动执行是否适用,取决于验收条件能否表达清楚,以及输入是否可信。
误区三:多方提交就一定得到正确答案
多个提交者可能依赖同一信息来源,因此数量增加并不必然带来独立验证。设计时仍需明确来源选择、分歧处理和结果汇总规则。
众包验收尤其需要区分“多人意见一致”和“证据足以支持结论”。当报告冲突或数据迟迟不到时,流程也应有对应安排,避免把缺失信息误当作合格结果。
误区四:使用区块链就不需要管理权限
OpenZeppelin访问控制文档区分了单一所有者与按角色授权,并强调最小权限原则。角色的使用权限与授予、撤销该角色的管理权限也有区别。
在众包系统中,提交者、评审者和权限管理员可以承担不同职责。判断控制权是否集中,应查看谁能修改验收权限、谁能增删评审者,不能只看系统是否部署了智能合约。
常见问题:放弃管理员是否更可靠
放弃所有者权限会使受该权限保护的管理功能无法再调用,因此不能将其视为通用改进方案。是否保留管理能力,应结合任务规则是否需要调整、人员是否需要更替来判断。
另一个常见问题是能否省略预言机:若判定条件完全来自链上,可能无需引入外部数据;若涉及现实交付,就仍需明确链外事实进入合约的路径和责任主体。