
适用范围:涉及链外成果的众包协作
本文讨论通过智能合约管理任务提交、验收或结算,并涉及链外数据的众包系统。例如,任务成果需要外部人员审核时,系统必须把审核结果传给合约。分析这类系统,需要分别关注成果如何验证、结果如何传入,以及谁有权操作。
误区一:成果上链就证明内容真实
Ethereum 的预言机文档说明,预言机负责把外部信息引入合约,同时仍面临正确性、可用性和激励相容性问题。数据进入链上,并不会自动消除这些问题。

对应到众包场景,记录一次提交,只能为核对提交行为提供依据。若任务要求核实实地情况,还需要审查证据来源与验收过程;错误的审核结论也可能被完整记录。

误区二:智能合约能自行判断任务质量
合约可以执行已编码的条件,但链外成果是否合格,需要有可供合约使用的判断结果。对于带有主观标准的任务,应先明确验收标准、审核主体和异议处理方式。否则,自动执行只会把含糊的判断继续传递到后续流程。
误区三:多个报告一致就一定可靠
在设计众包审核时,应区分报告数量与信息独立性。如果多份报告都依赖同一个错误来源,一致结果仍可能出错。系统需要说明来源如何选择、意见冲突如何处理,以及结果过期或无人回应时任务如何继续,不能只展示参与人数。
误区四:使用区块链就没有管理权
OpenZeppelin 的访问控制文档区分了单一所有者与按角色授权,并说明角色管理员可以授予或撤销相应权限。因此,判断系统的控制关系,需要检查实际权限配置。
众包系统即使分别设置发布者、审核者和争议处理者,也要追问谁能更换这些角色。如果同一账户掌握全部角色的任免权,表面的职责分工仍可能受同一管理主体控制。
误区五:取消管理员即可解决治理问题
取消管理权限之前,需要确认哪些功能依赖该权限。对于仅允许所有者调用的功能,放弃所有权可能使其无法再被调用。众包任务若仍需要调整审核人员或处理异常,就应提前设计明确的权限交接和处理路径。
常见问题:所有众包系统都需要预言机吗
不一定。如果判定条件完全来自链上已有数据,合约可以直接使用这些数据;涉及外部交付或审核意见时,则需要把相关结果传入链上。具体采用何种机制,应由任务证据的性质决定,并明确提交者、验证者及其责任。