声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。
边肖:记得要集中注意力。
来源:Chainlink
作者:头
先从技术角度简单描述一下Chainlink的基本原理。如果用最短的一句话解释Chainlink是什么,可以说Chainlink是一个去中心化的预言机项目,所以为了理解Chainlink是如何工作的,我们首先要明白chain link是什么。
甲骨文,甲骨文的英文名,与著名的数据库服务商甲骨文(甲骨文)同名,但除了同名之外,两者并无任何关系。
甲骨文这个词是什么意思?下面是我在vocabulary.com上找到的甲骨文的意思:
在古代,神谕是指提供建议或预言的人,被认为直接来自松树。在现代用法中,任何好的信息来源都可以被称为神谕。
在古代,神谕是一个提出建议或预言的人,他的建议或预言被认为直接来自上帝。在现代用法中,任何好的信息源都可以称为oracle。
这样就不难理解甲骨文传达的是全能全知的神的旨意,而甲骨文最初是作为占卜吉凶的记录,在当时也被视为神谕,传达神的意思。据说“预言机”和“甲骨文”都表达了“信息来源”的意思。
计算机领域的“预言机”一词最早是由图灵提出的。在图灵机的基础上,图灵增加了一个叫甲骨文的黑盒,形成甲骨文机。先知是能够回答一系列特定问题的实体。即可以向图灵机系统输入信息,帮助图灵机完成运算。以太坊的智能契约是“图灵完备”,某种意义上可以看作是图灵机。所以以太坊的设计者借鉴了这个概念,将图灵完全智能契约称为甲骨文。因此,“预言机”这个名字在区块链技术领域并不是一个原创概念。它来源于非常早期的计算机抽象设计,在密码学等领域也有类似的概念。
在区块链领域,Oracle被认为是一个可以为智能合约提供外部数据源的系统。从传统技术架构来看,Oracle是连接智能合约与区块链外部世界的中间件,是区块链的重要基础设施。其功能是为区块链的智能合约提供数据信息。
根据以太坊的定义,区块链是一个基于事务的状态机。它能做的很简单,就是通过向区块链提交事务,将区块链从一种状态改变为另一种状态。为了保持共识,EVM的实现过程必须完全确定,并且只能基于以太坊的状态和签名交易的共享上下文。这就产生了两个特别重要的后果:一是EVM和智能合约没有内在的随机来源;另一个是外部数据只能作为事务的数据负载引入。通俗地说,区块链不具备主动获取数据的能力。它只能使用区块链自己的数据。由于缺乏数据,智能合约的应用范围很小。目前大部分应用都是围绕token展开的。
区块链的确定性是指在任何一个节点上,只要接入区块链的分布式网络,就可以同步所有的历史街区,回放一套一模一样的书。换句话说:在没有互联网连接的情况下,给定完整的块,节点必须能够从头开始重建区块链的最终状态。如果账簿在形成过程中依赖于外部的API调用结果,那么在不同的时间、不同的环境下,回放结果会有所不同。这种情况是区块链所不允许的,所以区块链在设计之初就没有网络呼叫。
那么,我们应该做些什么来向区块链提供数据呢?区块链能留下的只有账本,而区块链能输入的只有交易。先从这两个方面说起吧。
几乎每个合约系统都有事件记录的功能,比如以太坊的EventLog功能。
下面通过一个例子来介绍一下预言机的基本原理。我们在以太坊链上建立了一个用户契约,需要获取某个城市的气温数据。当然,智能合约本身无法获取链下真实世界发生的数据信息,需要借助神谕来实现。智能合同将需要获取天气温度的城市写入事件日志。在该链下,我们将启动一个进程,监视并订阅该事件日志。得到智能合约的请求后,我们会指定城市的温度,通过提交transaction调用合约中的回填方法,提交给智能合约。
(未完待续)