读书笔记N238:Defi之预言机二
读书笔记N238:DeFi之预言机二
区块链无法主动获取现实世界的数据,既不能直接引入互联网数据,也不能自发调用外部网络API,而任何商业应用都不可避免地要与现实世界交互,特别是与互联网数据交互。这就是预言机(oracle)诞生的理由。
智能合约更大的意义在于⾃动化执⾏,将合约置于一个可信的执行环境中,在这个安全的环境中对数据做出处理。我们正在web2.0 这个旧世界里搭建起来基于区块链、智能合约的去中心应用,这些去中心应用包括 分布式云存储、保险、游戏、市场预测等。
目前市场上的预言机:
•Oraclize 是一个为以太坊提供中心化数据传输预言机服务的项目,其依托亚马逊 AWS 服务和 TLSNotary 证明技术,提供预言机的服务。它是中心化的,而且TLSNotary要花费很多的Gas,这笔消耗最终还有要由用户买单。
•Chainlink 是以太坊区块链上第一个被提出的去中心化预言机解决方案。比起 Oraclize 的中心化,Chainlink 更符合区块链去中心化的准则。Chainlink 主要提供用于帮助智能合约访问关键链外资源、网站 API 和传统银行账户支付的预言机服务。 Chainlink 也拥有一个对节点的信誉评价体系,信息需求方可以选择特定信誉级别的节点,每次信息反馈之后也会更新每个节点的信誉评分。但它有几个缺点,其中最大的缺点是过多的Gas费用消耗——区块链中的交易数量正比于参与每轮共识的预言机客户端数量。在Chainlink的长期规划中,它将来会探索支持链下聚合的法。同时,它的协议和签名方案是交互式的,涉及多轮消息交流,在最糟糕的情况下,它需要大多数链下客户端的参与,因此Chainlink的性能和可扩展性一般。
•DOS Network 是一个提供去中心化的预言机服务的网络。它不但提供预言机功能,同时也为区块链提供无限的且可验证的计算力。
Dos Network 在链上监测用户数据请求,链下监控和接收数据请求,再通过链下随机选一组节点来提供数据,一旦收集来的数据通过组内 51% 节点共识被视为「正确答案」,最后链下再将获取的答案反馈给链上信息请求方。 但是不能避免第三方故障点。比如说 CoinMarketCap 或 CryptoCompare 出现故障, 就不能提供服务了。
Band Protocol 是一个安全且可扩展的去中心化预言机(oracle),以 Layer 2 的形式为公链扩容。它允许去中心化应用将互联网上的现有数据进行利用,而无需可信任的中介。与现有的其他协议相比,Band Protocol 提供了更便宜,更快速的解决方案,并且不会影响安全性。使用 Band 协议的开发者将能够构建更广泛的去中心化应用,并集成到链下财务数据。
由于每种数据集都有自己的Token,Token的供应量如何确定呢?Band Protocol 会发行 BAND Token作为基础 Token, 然后 每个数据集的 Token的 通过一种联合曲线(bonding curve)的函数映射方式,与BAND Token确定 供应量与价格。这种函数映射方式是在智能合约里执行。
目前 Band Protocol 已经支持某些金融 、体育 、彩票的数据,还可以通过 Web Oracle API 获取数据, 大家可以去 https://app.kovan.bandprotocol.com 体验下, 数据的获取方式很直观自然, 而且快速,消耗的 gas 更少。
Tellor是一个去中心化的Oracle,用于将高价值的链下数据带入以太坊。该系统利用有争议的矿工网络竞争解决PoW挑战,以提交所请求数据的官方价值。Tellor是建立在以太坊上的分散式预言机。 Chainlink目标是允许任何智能合约查询几乎所有链下数据。Tellor缩小了目标范围,允许使用智能合约每十分钟查询一次价格数据。
代币Tributes有3项主要工作:1.通过激励矿工作为基本奖励,作为抵押押金所需的奖励以及我们的争议费用和投票权来提供安全性。2.通过分散分配我们的代币所有权(由于PoW),创建一个健壮且活跃的Tellor生态系统和社区。3.可持续性-我们的需求在短期内可能会比几年内增长更快。可以想象这样一种情况:Tellor系统到了需求不再增长的地步。希望有一个在每个阶段都没有令牌短缺或多余的系统。
哪些团队正在开发预言机项目?Amoveo,Augur,Gnosis,Aeternity,Zen Protocol,Bitshares,STOX,Bodhi和Bitcoin Hivemind等等。
智能合约代码需要在EVM虚拟机环境中执行,EVM相当于区块链“沙盒”,EVM和智能合约没有内在的随机性来源,因为智能合约要求执行结果具有确定性,不确定性给整个区块链网络带来的是灾难,不仅是网络资源长时间占用,更有可能引发资产损失连锁效应风险。随机是EVM和智能合约抗拒的东西,因为将导致网络上众多节点运行状态不一致而达不成共识。
所有预言机至少需要具有链外收集数据源数据、签名数据上链、数据写入智能合约等核心功能,一旦数据在智能合约的存储中可用,其他智能合约就可以通过调用预言机智能合约的“检索”功能来访问它。
预言机获取数据的方式有请求响应、订阅和读取三种主要方式,立即读取预言机例子包括权威组织发布数据(例如学术证明、机构会员资格、ID等),这种类型的预言机一旦将数据存储在其合约存储中,其他智能合约就可以使用对预言机合约的请求调用来查找。注意预言机存储的数据可能不是预言机正在服务的原始数据,出于效率或隐私原因,存储的可能数据的哈希值就足够。同样,敏感隐私信息的细节也需要保密,通过Merkle树结构将根哈希值存储在智能合约的存储中将是组织预言机数据服务的有效方式。
预言机发布与订阅,在这种预言机中,数据可能会动态变化,预言机需要对预期改变的数据提供广播服务,预言机要么由链上的智能合约轮询,要么由链下程序监视和更新,类似RSS订阅模式,预言机更新数据,并标记新数据可供“订阅”。这样的预言机例子包括价格反馈与发送、天气信息、经济或社会统计、交通数据等。这种模式在某些方面甚至可以被视为“推送”服务
请求/响应预言机最复杂,涉及数据空间太大而无法存储在智能合约中的情况,并且用户每次只需要整个数据集的一小部分。来自dApp的数据请求通常是涉及许多步骤的异步过程:1.接收来自DApp的查询。2.解析查询。3.检查是否提供了付款和数据访问权限。4.从链外数据源检索相关数据(并在必要时加密)。5.使用包含的数据对事务进行签名。6.将事务广播到网络。7.安排任何进一步必要的交易。
预言机收集到链外数据源后,如何保证数据在传输过程中不被篡改?在链外证明数据的完整性是非常关键的。两种常见的数据认证方法是真实性证明(authenticity proof)以及可信执行环境(Trusted Execution Environment,TEE)。
真实性证明是用密码学手段证明数据没有被篡改过,一般基于许多证明技术(例如,数字签名证明),智能合约可以在使用数据前验证数据的完整性。Oraclize就是一个利用多种真实性证明的预言机服务的例子。
基于可信执行环境TEE的验证数据馈送预言机系统,是采用基于硬件的安全区(security enclave)来验证数据完整性,比如使用Intel的SGX(Software Guard eXtensions)和ARM的Trustzone, 来保证对HTTPS查询的响应可以被验证为可信的。
DOS Network是一个提供去中心化的预言机服务的网络。Dos Network在链上监测用户数据请求,链下监控和接收数据请求,再通过链下随机选一组节点来提供数据,一旦收集来的数据通过组内51%节点共识被视为“正确答案”,最后链下再将获取的答案反馈给链上信息请求方。DOS 设立一个对于诚实节点的奖励机制:除了给节点的数据处理费,30%总供应量的虚拟采矿奖励,持续十年。DOS Network在性能上可支持多条链,且数据结果接近实时,同时DOS Network分片的网络结构设计,可以并行处理请求,达到高性能和可扩展性。帮助扩展智能合约的处理能力和应用场景的二层(layer 2)网络解决方案。
Oraclize 是一个为以太坊提供中心化数据传输预言机服务的项目,其依托亚马逊 AWS 服务和 TLSNotary 证明技术,提供预言机的服务。它是中心化的,而且TLSNotary要花费很多的Gas,这笔消耗最终还有要由用户买单。
预言机有多种应用场景,将会极大拓展区块链在现实世界的应用范围。所有需要与链外数据交互的非中心化应用都需要借助预言机,例如非中心化的衍生品交易平台、借贷平台、稳定通证、保险应用、赌场应用、预测市场等。
预言机的主要作用是为智能合约提供可靠的外部数据,其核心价值是在可信的基础上,使区块链与外部世界连接起来。理想状态下预言机的工作流程是接受请求、获取数据、返回数据。可供预言机查询的数据源一般有互联网的URL链接、搜索引擎、其他区块链的数据、星际文件系统IPFS的数据等。
总体来看,目前市场上的预言机类项目主要为非中心化预言机 ,且多数都致力于支持多条主流公链。为了保障预言机信息的保密性、完整性和可获得性,不同项目采取了不同的方案,如ChainLink的方案是结合声誉合约、订单匹配合约和聚合合约,Oraclize是利用真实性证明,DOS Network采用了可验证随机方程和阈值密码学,而OracleChain采用了声誉和抵押证明。
OracleChain是一个多区块链的去中心化Oracle技术平台,采用自主的PoRD机制,将现实世界数据引入区块链,并将此作为基础设施为其他区块链应用提供服务。OracleChain将在区块链内提供现实世界数据的Oracle服务,同时还可以提供跨链数据的Oracle服务。基于OracleChain除了能实现Augur、Gnosis等预测市场(Prediction Market)应用的功能之外,还能支撑对链外数据有更高频率访问需求的智能合约业务,比如智能投顾等场景。
非中心化的预测市场目前有Augur、Gnosis等项目,在体育赛事、总统竞选、通证价格变化等事件上可以做出预测,押注不同的结果预测。押注之后可以选择等待最终结果,也可以选择在二级市场提前交易“开奖券”。预言机将获取最终真实的结果,并根据此结果来计算盈亏。
可供预言机查询的数据源一般有:
1) 互联网的URL链接;
2) 搜索引擎;
3) 其他区块链的数据;
4) 星际文件系统IPFS的数据;
5) 传感器的数据等。
Oraclize是一个具有真实性证明的中心化预言机,目前支持以太坊(Ethereum)、Rootstock、R3 Corda、Hyperledger Fabric和EOS等多个平台。智能合约通过对Oraclize发布一个调用请求来获取数据,指定数据源和参数,Oraclize根据请求获取数据后,利用callback函数返回结果。
https://baijiahao.baidu.com/s?id=1655244340614848114&wfr=spider&for=pc
预言机:区块链与外界沟通的桥梁
https://learnblockchain.cn/article/589 《精通以太坊》预言机