区块链
在金融衍生品、保险和贸易行业,智能合约需要外部链下数据才能触发合约执行。可是,绝大多数的数据都没有上链,区块链与真实世界无法连通。
区块链是一个闭环的生态,如果智能合约无法获取链下数据或无法与传统系统交互,那么它在智能性和功能性上都不足以在现实世界中被广泛应用。
区块链如何拿到互联网的数据,存入到区块链,这是一个难点,也是未来的一个方向。
预言机(oracle machine),又称谕示机,是一种抽象电脑,用来研究决定型问题。可以被视为一个多了个黑盒子(预言者)的图灵机,这个黑盒子的功能是可以在单一运算之内解答特定问题。这样看来,区块链领域的预言机也是像一个黑盒子,用来解决区块链与现实世界中间的特定数据问题。
7月5日,锌链接在深圳举办了“锌火燎原•产业区块链生态沙龙”第五期,主题为“区块链技术的未来走向”。
锌链接创始人龚海瀚邀请德方智链技术总监袁运亮、PlatON首席投资官唐虹刚、优权天成创始人兼CEO车克达、微众区块链高级架构师莫楠、皓风区块链创始人、中国注册会计师马洪,一起探讨区块链技术的发展趋势。
德方智链技术总监袁运亮现场进行了主题为“扩展智能合约边界-预言机连接链内链外”的分享。
以下是袁运亮的分享原文,有删减:
1. 预言机:智能合约与外部数据交互的有效途径
互联网现在是主战场,不管是哪一行都在互联网化。区块链要迈入这个主战场,必须要融合到互联网里去。
区块链首先要融入互联网,让更多人使用,才有可能成为互联网的颠覆者,而预言机刚好打通了区块链跟互联网之间的隔阂。
11月6日,在中国人民银行发布的《区块链能做什么?不能做什么?》的报告中,对预言机的定义是,区块链外信息写入区块链内的机制,一般被称为预言机 (oracle mechanism) 。
预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通。
它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数据交互的接口。预言机具有不可篡改、服务稳定、可审计等特点。
智能合约运行出来的结果是确定性的,因为区块链是要达成共识才可以将数据写入区块链。如果智能合约的结果是不确定的,各个节点或者各个主体是无法达成共识的,也就没有办法写入到区块链里。
2. 区块链为什么需要预言机?
区块链为什么需要预言机?
第一,像以太坊、EOS这样的区块链网络没有直接的途径来获取链外的信息,所以没办法获取和验证触发智能合约的条件。那么我们设想的智能合约自动执行法律文件、履行商务合同、进行防伪溯源和征信验证等所有应用领域的功能可能都无法实现。
第二,区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。如果区块链要迈入主战场,要将区块链跟现实世界关联起来。
第三,区块链是基于共识的系统,所运行的智能合约要求一定要是确定性的程序。预言机对数据验证契合共识机制,使最后反馈给智能合约的数据也是“确定性”的。
预言机能保证所有智能合约的节点获取的数据是一样的,最后反馈给智能合约的数据也是确定的,只有这样,多方才能达成共识。如果达不成共识,数据是没有办法写到区块链的。所以区块链是基于共识机制,获取的外部数据一定要是确定性的数据。
第四,通过预言机访问互联网,保护区块链应用的安全性和健壮性。
3. 预言机的四种解决方案
预言机的解决方案大致分两种类型,一个是单一模型的,就是中心化的;一个是多重模型,就是一个预言机的网络,是去中心化或者多中心化的。
预言机有四种主流的解决方案:
第一个是Oraclize。它是一个单一模型,是中心化的预言机,相当于一个中立的第三方代理机构,大家都相信它。
如果人们股票、天气、等数据,都通过同一个预言机去获取。德方智链是基于Fabric加Oraclize的一个联盟链。因为我们是做供应链金融的,包括应收帐款、ABS、票据还有资产交易的平台。
第二个是欧链 OracleChain,是一个多区块链的去中心化Oracle技术平台,采用自主的PoRD机制,将现实世界数据引入区块链,并将此作为基础设施为其他区块链应用提供服务。
OracleChain将在区块链内提供现实世界数据的Oracle服务,同时还可以提供跨链数据的Oracle服务。
基于OracleChain除了能实现Augur、Gnosis等预测市场(Prediction Market)应用的功能之外,还能支撑对链外数据有更高频率访问需求的智能合约业务,比如智能投顾等场景。
第三个是Chainlink 。通过在链上的智能合约和链下的数据节点,通过奖惩机制和聚合模型的方式,进行数据的请求和馈送。
第四是DOS Network,是一个支持多链的功能完全的(支持数据预言机和计算预言机)去中心化预言机服务网络。
旨在去中心化应用能够以安全有效的方式通过去中心化的链下网络获取外部数据并执行复杂的计算,这将大大促进区块链上的应用发展。可以适配所有主流公链,比如以太坊、EOS、Tron、ThunderCore、Ultrain 等。
4. 智能合约跟预言机的结合
用户的智能合约是不能直接去请求外部的API接口的,公链很多是封闭的,没有办法访问外部的API。
很多联盟链是可以直接访问外部的API的,但如果直接访问外部API,比如联盟链有十个节点,每个节点的智能合约都去单独访问外部的API,外部的数据一旦变了,取回来的结果是不一致的。一旦不一致,在验证的时候就会通不过,达不成共识,交易就会失败。
德方智链整个事务处理流程就是从应用端发起一个请求,到SDK API服务,API服务再去调用用户的智能合约,再通过用户的智能合约去调预言机的智能合约,预言机的智能合约通过预言机的API,去调用预言机的执行引擎,执行引擎再去做代理的工作,通过我们的网关再去调第三方的权威数据。
返回来的数据回到整个区块链,然后通过一些共识和排序将数据结果写到节点上形成一个账本。
直接去访问跟预言机访问有什么区别呢?这就涉及到可信证明技术,证明他获取来的结果不管是哪个节点访问,返回的结果都是一致的,而且是可以审计的。你写入到区块链的,跟预言机获取到的是一致的,中间没有被篡改。
通过预言机的引擎去调用API接口,返回的数据通过可信证明技术验证,到达各自用户的智能合约里,所以它能确保调用外部的API获取到的数据是一样的,这样就可以在整个区块链里达成一个共识。
全部0条评论
快来发表一下你的评论吧 !