区块链是确定性的环境,智能合约的运行结果必须是一致的,虚拟机不能让智能合约有网络调用(Network Call),否则结果会不一致。
也就是说智能合约不能进行 IO 输入输出,所以它无法主动获取外部数据,只能通过预言机喂饭。智能合约写好了条件和结果,给它条件,触发结果。
一切需要与链下进行数据交互的 DApp 都需要预言机,金融衍生品交易平台、借贷平台、快递追踪/IoT、稳定币、博彩游戏、保险、预测市场。
很多 DApp 应用使用自己搭建的预言机服务,容易遭受单点故障、易受攻击。Synthetix 其实一直采用的就是自架的中心化预言机,所以之前被攻击也不出人意料。
目前预言机解决方案:
Oraclize:为以太坊提供中心化预言机服务,只能在以太坊网络使用,gas 费高,目前没有比它更好的选择
Chainlink:以太坊上第一个去中心化预言机解决方案
DOS Network:支持多条主流公链的去中心化预言机服务网络,Layer2的方式,链上部署一个轻量级智能合约,链下是一个 p2p 网络
感想:
如果没有了预言机服务,绝大多数 Dapp 都会瘫痪
区块链的很多应用在技术上离实现真正的去中心化还非常遥远
去中心化预言机是一个非常值得关注的基础设施赛道,中心化预言机的弊病太多,容易被单点攻击
