LiquidOracles Chainlink,如何一起为 dApp 提供更好的预言机
LiquidOracles 是 DAPP 网络所提供的预言机服务,为使用 Chainlink 和其他数据源的 dApp 带来了更高的安全性和灵活性
预言机,是区块链应用和外部世界通讯的接口。
过去数月,为 DeFi 等应用程序提供服务的预言机网络(oracle network),逐渐进入了公众视野,为人们所熟悉。
区块链行业持续发展,从早期的基础设施构建阶段,我们正在渐渐转向大规模商业应用的新阶段。
伴随这一进展,如何让运行在以太坊、EOS等平台的智能合约与外部世界相互通讯,是区块链想要实现落地、获得更多人群的采用所必须面对的一大关键难题。
LiquidOracles 是 LiquidApps所创造的诸多产品之一,致力于提供具备灵活性强、性价比高、去中心化等特性的预言机解决方案。
得益于社区的参与,LiquidOracles 有潜力帮助第一代预言机方案如Chainlink等实现服务升级,为使用这些解决方案的 dApp 提供更强的功能、更高的灵活性。
LiquidOracles 由 DAPP 网络社区提供,可以帮助 dApp开发者在自己的智能合约中以自定义的方式获取无需信任(trustless)的数据源。
dApp 需要优质数据“预言机问题(The Oracle Problem)”是指难以从智能合约中获取可信的外部数据。尤其是在事实真相中包含解释性因素,或者涉及到大额资金安全的情况下,依赖于单一的中心化信息来源,可能会不良后果。
在诸多区块链使用场景之中,数据可靠性至关重要
借助于去信任化的数据源和 API,可以帮助 dApp 从区块链之外的世界获得数据,有助于大幅扩展由智能合约所驱动的应用程序的使用场景。
这里有一些很好的例子:
统计数据、信用数据、体育赛事、选举、自然赛事和其他的链外信息来源
股票、货币、大宗商品、消费品和服务的定价数据
与传统信用卡公司、银行和各种支付网络的互动
供保险、原产地证明、物流运输和证据使用的物联网(IoT)数据
在这篇文章中,我们列出了更多的 Oracle 的使用情景: “从神谕到数据: 为什么我们在 DAPP 网络中提供更好的 Oracle 服务?”,欢迎阅读。
从 dApps 之中访问外部数据源时,想获得正确数据往往面临巨大风险
物联网数据、统计数据或者财务数据,如果出现错误,有可能会对依赖这些数据的应用造成毁灭性的影响。
传统公司采用中心化的解决方案获取信息。但是,黑客攻击的事件,每个月都会发生;而造成剧烈影响的所谓传奇性黑客攻击,每年我们也都有所耳闻。黑客有着强烈的动机去攻击数据以操纵应用程序,以便从中牟利或达成其他目的。
基于区块链而构建的业务和应用程序,需要确保自己的解决方案所具备的无需信任(trustless)的本质,不会因为使用了不恰当的数据来源而遭到破坏。
Chainlink 提供了一种解决方案,用于解决预言机难题(Oracle problem) :借助于已建立的链接,使得智能合约可以访问因特网的数据源,并且,Chainlink 的设计机制会激励不同的链接相互监督,密切监视彼此,从而在一定程度上使得用户免受欺骗和篡改的威胁。
LiquidOracles 服务,由 DAPP 网络中的服务供应商(简称之为 DSP)所提供,具有多种独特优势,可以帮助开发者们创建出扩展性强的 dApp,从而将预言机(Oracle)技术提升到新的水平。
DSP 也可以在自己的服务包中,整合 Chainlink 的服务作为数据源的一部分,通过这种方式,也可以让 Chainlink 借助于 DAPP 网络获得诸多额外的优势。
LiquidOracles 由 LiquidApps 所创建,具备如下功能
可以直接在链上选用预言机服务
帮助dApp以自定义方式实现数据的链上验证
dApps可以自定义信任级别
定价结构灵活
抵拒“吃白食”的预言机
以公开、直观的方式创建和使用预言机
可以与 LiquidApps 套件中的其他服务集成
1. 直接在链上选用预言机服务
对 Chainlink 技术的观察可以发现,Chainlink 的节点保持着良好的链上声誉;不过,Chainlink 列表中的服务和 SLA(服务级别协议,用于描述服务的性能标准)则是在链外运行的。
据 Chainlink 的白皮书所述,“通过使用链上维护的信誉,和从过去合约所产生的日志中所收集到的更健壮的数据集,买方可以通过链外的列表服务去手动的进行预言机的排序、过滤和选择。”
DSP 所提供的 LiquidOracles 预言机服务,与区块链的结合更为紧密:在 DAPP 网络上,预言机列表和服务级别协议(service-level agreement, SLA),都保存在链上。实际上,订单匹配的全过程也是链上进行的。
在 DAPP 网络中, DSP 作为服务提供者能够创建自己的服务包,并且为服务包设计各自的 SLA标准,描述所提供的服务包所满足的标准;然后,DSP 就可以通过自由市场,将这些服务包提供给 dApp 开发者们,供其选用。
dApp 开发者会抵押 DAPP 代币,所抵押的份额也会记录在区块链之上,以便最终确定 SLA,并使得 dApp 开发者能够使用这些服务。
使用 DAPP 网络作为 Chainlink 的补充,有潜力帮助 Chainlink 充分利用 DAPP 网络,获得额外的一重无需信任和去中心化的特征。
2. 帮助 dApp 以自定义方式实现数据的链上验证
信任,是区块链行业的常见主题。不过,正如任何一个比特币全节点倡导者都会告诉你的那样,验证网络会更好。
使用LiquidOracles的dApp,能够对预言机服务的所提供的数据在链上进行验证。dApp 还可以自定义所需要的验证流程,毕竟,不同 dApp 的可接受程度会有所差异,例如,交易类应用和游戏类应用,对于数据验证的流程会有所不同。
dApp 甚至还可以设立内部的 LiquidOracles DAPP 服务提供商(DSP),并在数据验证流程中包含这一 DSP,从而提升信任度,更好地确保数据的准确性。
DAPP 服务提供商(DSP): 在 DAPP 网络中运行的节点,可以借助于 DAPP 网络的自由市场,提供任意的服务组合供开发者使用,例如 LiquidOracles、LiquidAccounts、LiquidScheduler、vRAM、LiquidLink、LiquidDNS 等服务。
如同 Chainlink 的预言机提供者一样,在 DAPP 网络中,如果 LiquidOracles DSP 存在不可靠或者欺骗行为,会面临资产损失的风险。
在 DAPP 网络之中,DSP 的收入会与用户的 DAPP 抵押量直接相关,如果 DSP 存在不良行为,用户可以收回所抵押的 DAPP 代币,从而使得 DSP 的收入降低。甚至可以存在这样的机制:如果 dApp 的表现水平不满足 dApp 的公差参数的需要,就可以执行自动操作,赎回所抵押的 DAPP 代币。
3. dApps 可以自定义信任级别
使用LiquidOracles,dApp 团队可以自行决定使用多少个信息源,以及使用哪些渠道作为信息源。在做出选择信息源的决策时,dApp 不需要依赖预言机。除此之外,让开发者能够对其选择对数据源进行微调,这一做法更具备可扩展性。
相比之下, 在 Chainlink 项目中,虽然不同的链接节点(在Chainlink之中,提供服务的称之为链接:link) 的具体做法可能有所不同,有些链接节点比其他链接提供更具体的信息,不过,对于数据源的选择通常是由预言机提供者来确定的。
将上述两种机制相结合,dApp 可以定制自身的信任度。dApp 开发者可以选择自己更信任的数据源确保数据更确切,也可以选择数量最少、更便宜的数据源。dApp 还能够运行自己的 DSP,在链上验证预言机提供的结果是否准确。
一直以来,LiquidApps 都专注于让解决方案尽可能方便,尽可能“唾手可得”。
无论使用 LiquidOracles ,还是运行 DSP (无论是独立运行,还是结合 Chainlink 服务),都能够成为一种快速、顺畅的集成体验, 这是 LiquidApps 的目标之一。
4. 定价结构灵活
在 DAPP 网络中,无论是使用 LiquidOracles,还是 DSP 所提供的其他服务,dApp 项目方都需要向 DSP 抵押 DAPP 代币,从而获得相应的服务使用“额度”(quota)。此处所说的额度,是指每个特定时间段内允许调用服务的次数(例如,在24小时内,可以调用1000次服务)。
未来,不同的参与者(如 dApps 或 DSP)可能创造出其它的定价模式,不过默认情况下仍然是根据抵押的 DAPP 代币数量获得配额的方式。
DAPP 网络中存在自由市场,开发者也可以对他们所需要用到的预言机数量有控制权,因此,dapp 如果使用 LiquidOracles 和 ChainLink, 能够根据自身对数据可信性的不同需要,调整要付出的成本。
例如,与区块链版本的贪吃蛇游戏相比,银行应用需要更强的防御能力防范黑客攻击。如果贪吃蛇游戏的开发者需要使用预言机服务,有可能一个 DAPP 服务提供商(DSP) 就够用了,相比银行级别所需要的高冗余性,这要便宜的多。
5. 抵拒“吃白食”的预言机
在 Chainlink 这类预言机解决方案之中,存在的一个问题是:预言机提供者“搭便车,吃白食”的问题。预言机服务提供者可能会偷懒,只是观察其他竞争者所提供的响应数据,然后照抄,他们通过这种方式减少昂贵的 API 调用成本。
为了应对这一威胁,Chainlink目前使用了提交/显示系统(commit/reveal system),这一系统类似于纸牌游戏中的设计,每个玩家都在牌面朝下时操作,只有所有玩家选择完毕之后才亮出牌面。
考虑到目前以太坊网络的局限性,这一提交/显示系统意味着 1) 延迟明显增加,而且 2) Chainlink 正在追求一个“链外集成”系统,以便实现更高的复杂度,并在中期阶段降低延迟。
Chainlink 的解决方案经过了深思熟虑,尽管仍然面临这些挑战。而使用 LiquidOracles 的 dApp 可以自行设计流程,对搭便车的问题进行观察,而不会显著增加延迟,也无需求助于链外的系统。这一做法,有助于缓解 Chianlink 方案的一大痛点。
6. 以公开、直观的方式创建和使用预言机
Chainlink 节点若想提供预言机服务,可以自行操作即可,不过,为了在 Chainlink 浏览器中得到展现,需要先通过审查(https://docs.chain.link/docs/ing-a-Chainlink-reviewed-node)。
想要使用预言机的 dApp 只能有两种方式:要么,使用已做好的 Chainlink,或者,自行构建外部适配器; 当前所制作好的Chainlink包含四个提供加密货币价格信息的预言机,和一个连接到 Random.org 提供随机数的链接。
合约代码相对复杂, 并且,Chainlink 还曾发布声明称需要集成特殊的硬件,以建立一个“可信执行环境”, 以确保预言机(oracle)所提供的信息来自“现有的、可信任的来源”。
而在 LiquidApps 团队所创建的 DAPP 网络中,DSP(DAPP 服务提供商)通过自由市场为开发者提供服务,可以通过许多第三方 DSP 门户网站查看相应的服务包。不需要额外的硬件,如上文所说过的那样,也能实现数据的链上验证。
此外,使用 LiquidOracles 的开发人员并不局限于现有的链接,他们有可能去选择任意的数据源。有些 DSP 可能会专门提供一份包含需付费或需授权的特定数据源列表供用户使用,不过,默认情况下,dApp 开发者可以自己直接定义数据源。
LiquidOracles 可以借助于 Chainlink 或者其他的数据源访问方式为 dApp 方提供服务,而无需特定硬件、无需审查,就能设立 DSP,提供通用和专用的解决方案。
而且,对开发者而言,将 LiquidApps 所提供的第二代预言机服务 LiquidOracles 加入到项目之中操作非常直观,只需要花费最少的精力、时间和费用即可集成至项目之中,正如参考代码所示。
对开发者而言,将 LiquidApps 所提供的第二代预言机服务 LiquidOracles 加入到项目之中,操作非常简单,只需要花费最少的精力、时间和费用即可完成。
查看文档,了解如何开始使用 LiquidOracles 服务:http://docs.liquidapps.io/en/stable/developers/boxes/oracle-dapp-service.html
拟象,仿真,同步
这部分内容读起来可能有点偏技术性,不过,这部分主要是对不同方案的运营成本和开发人员的易用性加以比较。
目前在 Chainink 预言机中,会分成两个部分:
首先,会发起函数调用操作,向预言机发送请求,要求预言机发送数据;
其次,在预言机获得返回的数据之后,会执行回调操作。
这两个操作是异步进行的。
因此,如果从预言机返回响应结果时出现了错误,导致返回的数据无效或者不可用,那么,这时候再去回滚第一步中发起调用的操作,就可能太晚了。这一结果,就造成了宝贵的资源被消耗,并且,让开发过程变得复杂。
有没有什么其他办法?
LiquidOracles 所提供的集成方式,可以让开发者以更方便的方式从合约中访问外部数据,这一做法已获得专利。开发者能够模拟同步的原子函数调用, 将请求操作和回调操作顺畅的组合到一个进程之中。
LiquidOracle 的这一特性为开发者提供了额外的灵活性,使得开发者既可以单独使用,也能够结合 Chainlink 的模型使用。
不同区块链,不同链接
Chainlink 目前主要用于以太坊网络, 不过也有几个小型平台宣布了集成 Chainlink 的计划。
LiquidOracles 上线之时,聚焦于 EOS 网络。
不过,借助 LiquidLink 服务,可以将 LiquidOracles 扩展至包括以太坊在内的其他区块链之上。
最近,LiquidApps 发布了一条概念性验证视频 ,演示了如何使用 LiquidLinks 进行跨链互操作。
借助于 LiquidLink 服务,dApps 可以实现跨链通信、部署合约和交易签名等跨链操作。
除了 LiquidLink 所提供的 EOS 与以太坊的双向连接之外,LiquidOracles 服务还允许与更多的区块链进行单向的区块链间通信,这可能使 EOS 和 以太坊能够读取其他区块链的信息,比如比特币、以太坊、瑞波币、Cardano 等等,就像读取传统的 API 一样。
实现完全连接的未来愿景,关键一环是实现将数据推送至外部 API 的能力这是与预言机问题不同的一个技术问题, 而 LiquidAuthenticator 服务则进行了概念演示, 描述如何使用 EOSIO 权限或其它可能的权限对链外 API 进行身份验证。
如果在未来互操作性这一梦想得以实现,那么,将DAPP 网络作为补充层,可能会帮助使用 Chainlink 的 dApp 用一种标准化的方式,将其预言机服务扩展至其他的区块链。
关于互操作性,可以阅读 LquidApps 的 CEO Beni Hakak 所写的这篇文章: 区块链最大化主义: 通过互操作性与代币崇拜者为战 。
7. 可以集成 LiquidApps 所创建的其他服务
LiquidOracles 为预言机领域带来了新的灵活性和去中心化特征。除此之外,使用 DAPP Network 的dApp,还有着更为丰富的服务选择:
LiquidAccounts,提供免费账号服务,实现流畅的用户引导
LiquidDNS 提供域名托管服务
LiquidLink 将运行在 EOS 和以太坊的应用相连接
LiquidScheduler 使得开发者可以轻松设置定时器以及重复性任务排程。
DAPP 网络的诸多服务,可以与 LiquidOracles 服务结合使用,进一步扩展 dApp 的潜力。
DAPP 网络提供了完整丰富的服务可供 dApp 选择,旨在为未来不可破解、无法作弊、不能篡改、无法抹杀的应用程序的创建提供驱动力,其实用性也在持续增长。
现在,DAPP 网络之中的 DAPP 服务提供商(DSP)可以尝试将 Chainlink 集成到他们所提供的服务之中,为 dApp 团队提供综合性的解决方案,最大限度地提升 LiquidOracles 和 Chainlinks 服务的可用性和可靠性。
与此同时,Chainlink 节点也可以尝试使用 DAPP 网络轻松升级他们所提供的服务,在信任级别、定价方式、dApp 方数据源选择和验证等诸多方面,获得更高的灵活性。
LiquidOracles Chainlink,一起为 dApp 提供更好的 oracle 预言机服务。
加入DAPP 网络开发者交流群,了解 LiquidOracles 的发展,或者访问 LiquidApps网站 ,了解 LiquidOracles、DAPP 代币、DAPP 网络,以及 LiquidApps 所提供的其它服务。
欢迎加入LiquidApps社区
LiquidApps的使命是通过引⼊⼀系列技术解决⽅案,降低区块链开发的难度和成本, 以此推动去中⼼化应⽤ (dApps) 的⼤规模发展和落地。
去中心化应用要实现其最大的潜力有赖于社区的共识和参与,LiquidApps是一个开放的社区,期待大家能够参与到社区关系的建立和沟通上来,从而推动dApp的成熟和大规模落地,共同塑造未来并享受创造价值的过程。
官网:https://www.liquidapps.io/
币乎:https://bihu.com/people/1528429636
Twitter:https://twitter.com/liquid_dapps
电报群(英文):https://t.me/LiquidAppsOfficial
微博:https://www.weibo.com/7126862764/profile?topnav=1&wvr=6&is_all=