Neutrino追问AMA第13期| 王琦 :预言机只是一个数据的搬运工

1 年前 · 原创文章

在2月20日 Neutrino 追问 AMA 第13期交流中,我们邀请到了来自DOS Network 的合伙人兼运营负责人 王琦 进行了一场关于《预言机如何链接现实世界》的线上社群分享。在交流中,他表示,预言机,只是一个数据的搬运工,而非产生者,预言机只能保证自身不篡改数据,而并不能保证数据源的正确性。从哪里拿数据,需要智能合约开发者自己来指定。

以下为2月20日第13期Neutrino追问®AMA交流整理


话题主持@Neutrino 问题1:先请王总为大家简单介绍下什么是预言机?另外,它在区块链中扮演什么角色?如果没有预言机会出现什么问题?

王琦:预言机就是我们经常会见到的英文——Oracle。在区块链的世界里,他既跟甲骨文公司和数据库没什么关系,也不代表他有什么神力能预测未来。

简单来说,预言机就是一个提供你所需要的任何数据和结果的中介。在去年,央行发布的报告《区块链能做什么?不能做什么?》中,也提到了预言机,并把它定义为:区块链外信息写入区块链内的机制。

在区块链中,只能获取到链内的数据,而不能访问到链外真实世界的数据,这意味着区块链与现实世界是割裂的。而导致这个问题的原因是,区块链是一个封闭的确定性的自恰的系统。

区块链是一个基于共识的系统,要保证各个节点在验证同一个程序的时候要达到确定的相同的结果。因此它必须依照系统内部的信息来自恰的运行才能保证这一点,不能基于外部世界不确定的信息。

举个简单的例子, 在一个节点上计算程序 (1 + 1), 这里的输入1是系统内的确定的信息,当他计算完这个程序等于2之后,并把这个结果发布出去,在任何一个节点上都能轻易地验证他是对的,因为这是一个确定的结果。但是如果我们这里要计算的是这样一个程序 (1 + 北京今天的温度), 假设他在这个时刻得到的是温度数据是3,但是当他把这个计算出来以后的结果4发布出去以后,其他节点并不能验证他是否是对的,因为在不同节点,甚至相同节点不同时间,获取的数据都有可能是不一样的。整个区块链的共识机制就会崩溃。

所以,区块链智能合约,要想基于外部世界的数据做些事情,就必须化主动为被动,不能主动去拿链外数据,必须要依靠预言机这个中介把数据输入进来。一个链外的数据或者事件,经由预言机以交易的形式发送到链上以后,就变成了一个确定性的输入。就可以被智能合约引用了。

如果没有预言机,就会导致区块链与外部世界的隔离。所有需要与外部世界交互的应用场景,都无法实现。这会大大限制区块链生态的发展。

话题主持@Neutrino 问题2:我们在查阅相关资料是,看到预言机有中心化和去中心化之分,那这两者有什么差异和优缺点呢? 现在行业里有哪些比较代表性的项目,市场上占有率较高的是那种类型的预言机?

王琦:其实不管是针对预言机还是针对其他系统,中心化和去中心化都有类似的优缺点。

中心化的预言机,有单点失效的问题,当中心化的预言机出现了宕机等等问题的时候,那么预言机的功能也不可用了。另外一个就是信任的问题。对于预言机来说,比较重要的一个点就是怎么能保证预言机本身是可信的,没有篡改数据。中心化的预言机,需要面临的问题是,你必须信任这个第三方的中心化机构。而预言机提供的数据,往往是作为触发条件的,比较重要的数据。这个时候这个信任问题就显得尤为严重。

去中心化的预言机有更好的可靠性,但是性能要比中心化的稍低的。另外一个最大的好处就是,我们无需信任一个第三方的机构,整个系统可以在一个 “Code is Law” 的原则下在运行。这与中心化的服务器和去中心化的区块链之间的差别很像。想象一下,我们在区块链上构建Dapp,如果关键的触发信息和数据都需要中心化的预言机来搬运,那么颇有些与我们使用区块链的初衷相违背的意味。

目前市场上唯一可用的预言机产品是运行在以太坊主网上的Oraclize,这是一个中心化的预言机项目,由Oraclize公司在运营,数据是由Oraclize公司架设的服务器在提供。因为唯一可用,所以Oraclize几乎占据了目前以太坊上大部分的预言机请求。

从图中可以看出目前Oraclize处理的请求数量平均在5000一天。

另外,在很多人眼里,Augur, Gnosis, Bodhi 等预测市场类项目也被划归为预言机这一类,原因在于预测市场得出的结果,也可以作为其他Dapp的输入数据。同时也有一些预言机项目是依赖用户的输入和投票来产出数据结果的,这类项目我们统一划归为基于用户输入参与的共识类预言机。

但是这种做法在很多场景不适用:

1. 会造成比较大的延迟。需要等待大量用户的投票输入,无法产生实时的结果。

2. 无法自动化,需要用户手动输入,由此会导致单个请求的成本大大增加。想象一下即使是比特币挖矿,也必然是由软件自动化运行。如果需要依赖手动操作,则需要给与用户大量激励,导致成本急剧上升。

然后就是不需要用户人工参与的去中心化预言机,典型代表是Chainlink。Chainlink 17年9月就完成了ICO,目前还在以太的测试网中,且功能并不完备。Chainlink实现的方式代价高,性能和可扩展性都比较低,并且由于基于声望的系统,容易受到攻击和相对中心化的问题。

话题主持@Neutrino 问题3:你们团队是基于什么考虑去做去中心化预言机的?DOS网络的架构和技术有什么特点?与Aeternity(其技术亮点为图灵完备状态通道State Channels和去中心化预言机Oracles)相比有什么不同吗?

王琦:我们是早期的智能合约开发者,在开发过程中发现,很多应用场景的落地,都离不开与链外数据的交互,离不开预言机。同时意识到预言机问题是区块链中一个原生的也急需要解决的问题。数据怎么来?从现实世界来,互联网来。区块链和外界信息有交互需求,但真正注意到这个问题,做预言机的项目不多,很多需要预言机的场景却用到中心化的预言机或者其他不好的替代方案。所以我们决定专注在这个领域。

DOS Network 是一个Layer 2 二层网络, 可以支持多条链。

我们的系统架构分为两个部分,链上和链下。链上部分,是一套部署在主流区块链上的管理合约,可以理解为是一个接口,用户通过这个接口来获取服务。链下部分是一个去中心化P2P网络,由真正给用户提供服务的节点组成的。

工作流程大概是这样的:

1. 当链上的智能合约需要链外数据的时候,他需要调用我们部署在链上的DOS合约接口。

2. 链上DOS合约会在链下网络的节点中随机选择工作组,并将请求分配过去。

3. 工作组内的节点会去相应的数据源抓取数据,并且就得到的结果在组内达成共识。

4. 这个共识之后的结果会返回给链上DOS合约,在合约里进行验证,通过验证后,再通过调用回调函数的方式返回给智能合约。

通过这套系统,我们可以不用信任任何第三方机构,得到实时的链外数据,并且有比较好的性能和可扩展性。

据我所知AE的预言机与我们还是有较大不同的:

1. 他们的预言机智能服务他们自己的链,不能扩展到其他链上;

2. 他们只能回到yes or no的二元问题,场景还是有限;

3. 他们也是需要用户投票来提供结果,延迟较大,且无法自动化。

简单来说他们就是在链上集成了一个原生的预测市场来作为预言机提供数据,而我们想要做的是一个可以支持多条链,可以返回实时数据的预言机系统,开发者在不同的链上都可以使用我们的预言机服务,甚至接口都是一样的,这大大增强了开发者在不同链上的开发体验。

话题主持@Neutrino 问题4:官网显示DOS网络是想成为支持多条主流公链的预言机,那这势必会涉及到跨链数据交互,你们是如何实现的?还有如何保障返回的数据不被篡改?

王琦:首先,关于返回数据不被篡改的问题,是由我们网络中的共识机制保证的。我们采用了分布式秘密分享(Secret Share),可验证随机方程(VRF),阈值密码学等技术产生的随机数在网络中随机选取工作组,组内的节点分别去获取数据,并对数据结果进行签名,得到签名碎片,当有超过一定阈值的节点获取到相同的数据就可以将签名碎片组装成一个有效的签名,从而形成对数据结果的有效共识,并将共识之后的结果和证明返回给链上合约。

在这个过程中:

1. 工作组的选取是完全随机的, 不可被单一方控制和预测的,这大大增加了攻击的难度;

2. 要想影响组内共识的结果,必须控制组内大部分节点,这个难度也是很高的;

3. 如果检测出节点作恶,会有惩罚机制,没收抵押的代币。所以篡改数据也是有很高成本的。

这些机制都保证了系统的安全性,保证数据不被篡改。

关于跨链数据交互的问题,在现阶段我们的主要任务是以太坊上实现预言机的功能,再扩展到多条链上去,使主流公链都能使用我们预言机的服务。

当我们能稳定支持多条链以后,我们会实现跨链的交互。链外二层P2P网络构成了连通多条链的网关(gateway), 在一条链上的请求被支持该链的工作组监听处理后打包寻路到支持另一条链的工作组并且经由它发送到另一条链,这样可以实现不同链间的互操作性。涉及到其中更多的细节,比如如何保证整个流程的原子性等等,到时候我们再根据实现的情况,来具体处理这些问题。

话题主持@Neutrino 问题5:DOS 网络支持哪些链外数据源?这个数据源本身就集成了?还是需要智能合约开发者单独去引用?还有费用成本是怎样的?

王琦:我们构建了一个安全可信的数据通道。而数据源,需要用户自己来指定。理论上,用户要访问哪些数据源对我们来说都是透明的。因此只要是互联网上能访问到的数据源,我们都可以支持。

你可以这么理解,在中心化服务器上,可以通过网络调用很方便的访问任何互联网API资源,但是去中心化区块链切断了这条通路。而我们就是帮助区块链架起了这条数据访问的通道。至于说你要访问什么API,我们是不管的。

如果用户不信任单一数据源的话,可以发起多个请求,获取多个数据源的数据,然后对这些数据进行聚合得到最终的结果。这是在应用层需要做的,而不是预言机在协议层必须做的。

关于数据源的可信性方面,我还有多几句话要说。

我的一个基本观点是,数据源是没办法完全去中心化的,信任不会凭空产生,一定会有某个载体。

这跟普通的比特币或者以太挖矿还不一样。因为普通的去中心化网络,他的系统是自恰的,任何一个节点只要按照协议的规定来运行,就能进行挖矿,只不过根据你占有的计算资源或者持有代币的数量多少,会影响你的效率和收益率而已。但是产生数据这个事情却没那么简单。

数据这个东西本身就是有一定门槛来获得的,而并不是普通人就可以凭空产生的。比如,你如果问我今天北京的温度是多少,我最保险的做法还是去查气象局的网站,或者百度的API,而不可能是我拿一个温度计去室外测量。每个人的温度计的刻度还有可能不准呢。你如果问我一场NBA比赛的结果是多少,最保险的做法是去查询官网,或者espn的网站,甚至google API,而并不一定非得要求我去现场看了才能说。

所以数据这个东西,多多少少都要依托于权威机构来产生,只不过如果不信任单一机构的话,可以获取多个机构的数据来加以比较。

而预言机,只是一个数据的搬运工,而非产生者,预言机只能保证自身不篡改数据,而并不能保证数据源的正确性。从哪里拿数据,需要智能合约开发者自己来指定。

关于费用成本,需要分几个方面来看。

1. 对于参与网络的节点运行者来说,成本是比较低的。因为整个服务的过程并不需要大量的计算和存储空间,只是需要消耗一些带宽资源来访问互联网API,以及和其他节点的通信。因此成本并不高。

2. 对于智能合约开发者,也就是数据的请求方来说,是需要给服务方,也就是节点的运行者付费的。这个费率要根据市场和需求的情况来定,但是有一些现有的数据可以参考。 Oraclize 目前每个请求的费率大概是0.002~0.01 ETH, 我们的费率肯定会比他们要低,而且在网络启动的初期,我们也会给开发者一定的优惠,激励他们来使用我们的服务。

一开始开发者可以使用我们的 DOS 通证来付费,后面我们也计划支持使用稳定币来付费,因为这样可以保证费率相对稳定。

话题主持@Neutrino 问题6:DOS 网络采用什么共识机制?它的通证有什么功能?如何才能成为节点?以及系统是如何选择节点的?

王琦:我们采用基于可验证随机方程(VRF)的共识机制,由可验证随机方程产生的随机数在网络中随机选取工作组,组内的节点分别去获取数据,并对数据结果进行签名,得到签名碎片,当有超过一定阈值的节点获取到相同的数据就可以将签名碎片组装成一个有效的签名,从而形成对数据结果的有效共识,并将共识之后的结果和可以被验证的证明返回给链上合约。

DOS的通证在系统中起到的作用是:

1. 节点维护者需要抵押一定量的通证才能加入网络为智能合约和开发者提供预言机服务并赚取手续费和挖矿奖励。恶意节点会被检测出来,并且作为惩罚,恶意节点的抵押会被没收。

2. 预言机服务使用者需要向网络维护者付费。收费方式会同时支持按次付费模式和订阅使用模式。同时DOS通证会作为首先支持的原生的费用通证。同时考虑到稳定币在简化费用模型以及减轻节点运营者受价格波动负面影响等方面的作用,未来可能也会支持稳定币作为费用通证。

3. DOS通证也授予了节点运营者和通证持有者对预言机网络和生态的治理权。举例来说,节点运营者和通证持有者可以投票来表决是否要支持、支持哪些稳定币来作为费用通证。

4. 在未来支持链外付费数据源和上线数据交易市场之后,请求链外付费数据的智能合约和开发者还需要给付费数据源支付相应的费用。

看这个图会比较直观。

要成为节点只需要做两个事情:1. 在系统中抵押一定量的通证;2. 运行我们的客户端软件。

加入网络之后为用户提供服务,可以赚取服务费。另外为了激励网络冷启动,我们还引入了挖矿机制,我们从总通证中预留了35%作为网络冷启动挖矿奖励,节点运营者通过抵押通证加入网络之后即可获取挖矿奖励。

系统选择节点,就像我刚才所说的,是由可验证随机方程生成的随机数来确定下一个工作节点组的。

话题主持@Neutrino 问题7:DOS 预言机目前项目进展如何?有哪些应用场景?还有你们团队在这过程中有遇到什么挑战吗?

王琦:我们在去年第四季度在以太坊测试网上发布了alpha版本测试网络,开发者已经可以通过调用我们的链上合约来获取链外数据和安全的随机数,这是我们的开发文档 https://dosnetwork.github.io/docs/#/contents/blockchains/ethereum 和 demo视频https://v.qq.com/x/page/p08402gqao8.html

目前我们正加紧开发beta版本测试网,预计3月份就可以跟大家见面。beta版本会涵盖我们数据预言机的功能。 我们预计在第二季度就可以上以太主网了,同时开始支持其他主流区块链如EOS,Tron等。

所有需要访问到链外数据的应用都可以用到DOS Network。现在已有的比如:稳定货币,加密资产抵押类或者算法银行类的稳定货币都需要实时的去获取真实世界中加密货币相对法币的价格信息。预测市场,需要真实世界信息作为预测结果的最终裁定。飞机延误或者农作物保险应用,需要航班信息或者天气信息作为自动赔付的触发条件。博彩类游戏,往往需要安全的随机数,然而在区块链的封闭环境下无法产生安全的随机数,所以可以通过DOS Network从链外获取安全的随机数。金融衍生品平台和借贷平台,也需要链外的价格信息作为参考和触发条件。

我们相信,有个安全,可用,高效的去中心化预言机,可以鼓励越来越多的应用场景在区块链上实现。

挑战的话,在技术方面,对于链外的二层P2P网络,我们需要确保系统实现的安全性和高效性。对于链上智能合约,要优化智能合约的实现,同时避免出现漏洞。同时在非技术层面上。因为理解预言机这个问题,对其有深刻理解的人比较少,在宣传我们项目的时候,我们花了更多的时间和精力向大众普及预言机这个问题的重要性,和正确的实现方法。

话题主持@Neutrino 问题8:最后想请王总点评下,预言机这个细分领域的现状及其未来的发展方向?

王琦:预言机在区块链生态中的发展一定会起到越来越重要的作用,会促进越来越多的应用场景的落地。

关于预言机的现状,一些项目方在没有完美的预言机产品的情况下选择了一些替代方案,比如自架预言机,这样会带来的问题是,单点故障,不公开不透明,数据的中立性会受到用户的质疑。

而目前市场上唯一可用的预言机产品就是中心化的Oraclize,短期来看拥有比较强的可用性。但是也有信任和单点故障的问题。以用户投票为基础的预言机实现从设计原则上有比较大问题,系统的易用性和用户的参与度很成问题。

长期来看我还是看好去中心化预言机的广阔市场。同时我相信DOS Network会是最好的去中心化预言机的实现。通过安全的数据通路和多信息源对比的思路会更加安全可靠。


————现场答疑————

Neutrino 社群成员 : 王总,问下白皮书英文版有下载链接吗?什么时候有中文版呢。

王琦: 中文版的白皮书,社区小伙伴们正在加紧翻译,预计下周跟大家见面。如果有兴趣参与我们白皮书的翻译工作,可以加入我们的社群。白皮书下载版在近期会更新 。

Neutrino 社群成员 : 现在 dos network 有具体的应用案例吗?如果有应用,那目前反馈是怎样的?

王琦: 现在我们还在测试网当中,社区的开发者在试用我们的测试网API。 同时我们在Tron上开发了一个金融衍生品平台 https://www.tronoption.xyz/ 使用了我们目前的测试网产品, 感兴趣的话可以去看一下。性能和反应速度都很不错 。

Neutrino 社群成员 : 身处熊市寒冬 dos 对未来发展方向有什么规划呢 ?

王琦: 首先会在以太坊测试网上发布beta版本以及上线主网,之后会支援其他主流智能合约平台以及集成付费数据源上链,同时对于跨链交互性和计算预言机的研发会同步进行。

Neutrino 社群成员 : 请问你们是如何提供随机数的呢?

王琦: 有两个方式。

用户可以通过API 调用的方式,获取互联网上随机数,如 random.org 等网站。

我们采用了分布式秘密分享(Secret Share),可验证随机方程(VRF),阈值密码学等技术在链下产生一个安全不可被预测的随机数,我们把这个随机数直接返回给用户。

具体的原理和使用方式可以参考白皮书和开发者文档 。

End

——————————————

关于DOS Network

DOS Network 是一个实现了去中心化预言机的可扩展的二层网络,为主流区块链提供数据上链服务和计算力。它将区块链智能合约与真实世界的数据和事件连接起来,还为区块链提供可验证的计算能力,从而使更多应用场景能够在区块链上实现。可支持各种主流区块链,如 Ethereum、EOS、TRON、ThunderCore 等。


Neutrino追问®AMA

这是一档以Ask Me Anything(简称AMA)形式进行的在线互动问答交流活动,每期Neutrino会结合当下技术趋势、政策风向、项目应用等行业热点话题,邀请相关领域嘉宾大咖就该话题进行深度探讨拆解,旨在帮助社区伙伴答疑解惑,扫除知识盲点,扩大认知边界。目前追问 AMA 分享嘉宾已开放注册(网址:https://wj.qq.com/s2/3065313/2bda/),欢迎优秀的去中心化项目方来 Neutrino 进行线上社群交流分享。

关于Neutrino

一个原生于区块链的分布式创新协作社区。目前,我们已在东京、新加坡、北京、上海等地建立实体协作空间,并计划拓展至首尔、泰国、纽约、伦敦等重要区块链创新城市。借由全球社区资源与合作伙伴关系,Neutrino会在世界各地组织形式丰富的线上或线下活动、研讨会等,帮助不同区域的开发者们更好的沟通与分享彼此的经验和知识。即日起至2019年06月30日止,Neutrino 针对中国市场特别推出会员“越冬计划”,优秀区块链初创团队更可获得会费 50% 的孵化赞助。



DOS

一个支持多链的去中心化预言机服务网络