预言机是区块链和自然世界的接口,目前是一个区块链技术发展的方向。对于智能合约来讲,预言机就是智能合约的输入参数。而大家都知道,智能合约是无法离开参数的输入的。而参数直接影响到了智能合约的最终的输出结果。
举一个例子,预测世界杯的比赛结果,依赖于关键节点的数据输入,如果有人恶意的输入错误的结果,那么,智能合约依据这个错误的结果一定会输出错误的结论。
预言机是一种可信任的实体,它通过签名引入关于外部世界状态的信息,从而允许确定的智能合约对不确定的外部世界作出反应。预言机具有不可篡改、服务稳定、可审计等特点,并具有经济激励机制以保证运行的动力。目前,预言机有两种模型:单一模型和多重模型,有时候多重模型又称为“Oracle(不是甲骨文数据库公司)网络”。
单一模型只包含一个预言机,这一预言机是可信任的,它会正确地执行代码,合约的参与者能确信它不会与合约的某一参与方相勾结,单一模型类似于软件即服务提供者。对于大部分应用,单一模型已经就足够安全,并且经济实惠。目前一个单一模型的实例是 Oraclize。
多重模型包含多个预言机,甚至是预言机网络。虽然单一可信任的预言机对大多数用户来说已经足够了,但是高价值的资产处理需要更高的可信任度,这就需要用到多重模型。在这一模型中,代码的执行分布在若干独立的预言机中,例如将 10 个预言机的数据设置一个可信临界,临界值数量的智能预言机必须就结果达成一致。假设用户使用 7/10 模型,只有当等于大于 7 个智能预言机一致时,合同才能够执行。这一模型留出了 3 个缓冲,也许有的智能预言机离线、出现问题或者被黑客攻击,只要不多于 3 个就不影响合同代码的执行。多重模型比单一模型更加复杂,成本更加高,但是它提供了更好的安全保障。
智能合约和预言机相辅相成,一定会在区块链技术的发展中不断地壮大起来,最终实现自然世界和区块链世界的数据自然高效地流转。