龙空技术网

区块链:解析区块链预言机Oracle知识(一)

加密老猎人 219

前言:

眼前兄弟们对“oracle112监听文件”大概比较讲究,看官们都想要学习一些“oracle112监听文件”的相关资讯。那么小编也在网摘上收集了一些关于“oracle112监听文件””的相关资讯,希望各位老铁们能喜欢,兄弟们快快来学习一下吧!

1.1预言机定义,

1.11预言机的英文为Oracle和数据库甲骨文同名,但是两者除了名字相同以外并没有任何关系。

在古代,oracle是一个提出建议或预言的人,他的建议或预言被认为是直接来自于神。在现代用法中,任何好的讯息来源都可以称为oracle。「预言机」还是「甲骨文」都表达了「讯息源的意思。

计算机领域内预言机最早由图灵提出,在图灵机加入一个称为预言者(oracle)的黑盒,组成了预言机(OracleMachine)。所谓预言者,是一个可以回答特定问题集合的实体。即它可以向图灵机系统内部输入讯息,帮助图灵机完成运算。

以太坊的智能合约是「图灵完备(Turing Complete)」的,某种意义上可以看做一个图灵机,所以以太坊的设计者借鉴这个概念,把向「图灵完备的智能合约,这个图灵机输入讯息的也被称为预言机oracle。

所以说「预言机,这个名字并不是区块链技术领域内的独创概念,它来源于非常早期的计算机抽象设计,在密码学等领域内也都有类似的概念。

112在区块链领域,预言机被认为是可以为智能合约提供外部数据源的系统。从传统技术架构方面来看,预言机是连接智能合约与区块链外部世界的中间件(middleware)是区块链重要的基础设施,它的作用是为区块链上的智能合约(SmartContract)提供数据信息。

正如以太坊的定义,区块链是一个交易驱动的状态机(atransaction-based statemachine),它能做的事情非常简单,就是通过向区块链提交事务/交易变成另一个状态。

为了保持共识,EVM(以太坊虚拟机,用来执行以太坊上的交易)的执行过程必须完全确定,并且仅基于以太坊状态和签名交易的共享上下文。

这产生了两个特别重要的后果:一个是EVM和智能合约没有内在的随机性来源:另一个是外部数据只能作为交易的数据载荷引入。

用通俗的话讲,区块链没有主动获取数据的能力,它能用的只有区块链自己本身的数据。数据的缺失导致智能合约的应用范围非常少,目前大部分的应用都是围绕着token来展开。

113区块链中的预言机,越来越多的线上交易合约均采用智能合约的模式,虽然智能合约允许在没有第三方的情况下进行可信交易,实现交易的可追踪且不可逆转,但是无法与区块链外的数据发生直接联系(如外部数据的获取与调用等),因此需要一个外部的图灵机将数据写入区块链或分布式账本中。

它在其中扮演着数据来源API接口之间桥梁的角色,从而实现区块链接口与外部数据AP接口形成对接,而这个图灵机就是预言机(Oracle)。

预言机(Oracle)和智能合约天然的契合点在于,智能合约本质上是控制类的脚本代码,而预言机本质上回答决策性问题和功能性问题,二者只是实现数据的调用而非计算。

安全性方面,智能合约不具备大型数据处理的能力,而且容易造成计算溢出,因此需要添加预言机对外部数据的调用而非计算,从而规避了智能合约在调用智能合约时陷入图灵停机的困境:可扩展性方面,预言机用于解决「智能合约在指定数据来源的情况下,上传数据有可能会被篡改,的问题,从而弥补智能合约平台缺乏网络效应和可扩展性的不足。

因此,预言机应用在智能合约的调用有利于实现数据资产化与价值化,并扩大智能合约的可移植性。

预言机本质上是一种数据调用和访问的中间件,它分别解决了「是或否,和「数据是多少,两类问题,从而实现了智能合约对外部数据的调用。它既可以从原生的链上获取数据,也可以通过爬虫或者可信第三方机构从链下获取数据。

1.2以Chainlink为例初步阐述预言机基本原理

区块链的确定性的意思是,在任何节点上,只要连入到区块链的分布式网络中,它就可以同步所有的历史区块,回放出一套完全相同的帐本。

换句话说:在没有互联网连接的情况下,给定完整的块,节点必须能够从头开始重新创建区块链的最终状态。

如果帐本在形成过程中,依赖于某个外部的 API调用结果,那在不同时间不同环境下回放的结果就会不一样。这种情况是区块链所不允许的,所以区块链在设计之初就没有网络调用。

那么要实现向区块链提供数据,应该怎么做呢?区块链能留下的只有帐本,而区块链所能输入的只有交易。

几乎每一个合约系统,都会有事件记录的功能,比如以太坊中的EventLog功能,下图为展示获取到某个城市的气温数据这个过程,智能合约将需要获取天气温度的的城市写入到EventLoq中,链下我们会启动一个进程监听并订阅这个事件日志,获取到智能合约的请求之后,将指定城市的温度,通过提交 transaction的方式,调用合约中的回填方法,提交到智能合约中。

Drack

记量日房基于LINKERC677token完成的预言机功能,属于请求/响应模式。下图一个简单的获取ETH价格的例子,是请求/响应模式的 Chainlink预言机的基本过程。

注:两个案例来对预言机的用途进一步解释说明:

案例1:甲计划于12月31日上午10点买入10个以太币,报价为140美元,通过 Oraclize从CoinMarketCap调用以太币在约定时刻的价格,并判断在成交时该智能合约能否执行。如果约定交割时刻ETH价格高于140美元,则交易失败;如果ETH价格不高于140美元,则交易成功。

案例2:乙计划构建多因子量化策略模型预测ETH价格未来的走势,通过Oraclize从 coinmetricsio实时调用难度系数、全网总算力、成交量等指标的原始数据,并且利用公司的3台服务器执行多线程分布式计算。从而实现程序化自动交易。

案例1中包括1个决策性问题和1个功能性问题,预言机完成了对ETH价格的实时调用,计算过程简单。

案例2不仅仅是数据调用的决策性问题和功能性问题,而且还包括量化投资策略的具体实施和计算,计算过程复杂,一旦在智能合约上执行会导致计算溢出,从而导致智能合约失灵,所以一般在链下实施分布式计算后,再通过预言机实施数据的调用。

1.3预言机代币

预言机网络中设置的代币绝大多数是基于 ETH网络的,使用需要消耗Gas,预言机本质上是一种中间件,它并不具备单独的区块链,其代币只在预言机网络中扮演着价值传递媒介的角色。

读到此文章的同学,谢谢你的支持,如果看了此文章,有什么看法和意见,欢迎留言。“关于解析区块链预言机共5章,后续会整理出更好的的文章分享给大家!祝你开心快乐每一天[比心][比心][比心]

标签: #oracle112监听文件