Hi,以太坊,借你链上的预言机在 CKB 用用?

众所皆知,随着 DeFi 的兴起,预言机也变得越来越重要
几乎每个 DeFi 项目,只要需要价格等等链下数据,就会需要预言机

等等,预言机是什么? 为啥重要啦?

呃…我们在区块链说预言机 ( Oracle )不是那种可以告诉你未来几点几分会有什么大事的预测机器,而是一个可以让区块链上的各种应用接受各种链外的数据的系统,预言机会是各种区块链应用的刚需,原因是因为区块链中的智能合约是在链上的封闭系统进行,只能取得链上的数据,也因此会需要一个智能合约作为桥梁,连接区块链与外部世界,这个提供真实世界数据的系统就称作是预言机。
image
预言机解决的就是链上合约无法直接读取真实数据的问题。source :Chainlink

这对 DeFi 这种时时刻刻需要获取资产价格的应用而言,预言机基本上就是如同空气和水一般的必需品,因为有了可以真实的价格,才能够让所有的玩家在各种 DeFi 应用上正常的做各种交易。当然,预言机能够使用的场景远远不只在 DeFi ,任何你想的到需要真实世界数据的应用,他都会需要预言机,像是保险,预测市场等等。

从这里就可以看出来,预言机要提供链下数据给各种区块链应用,那么最重要的就是提供的数据,必须准确而且有时效性,例如 1 个 BTC 等于多少 USDT, 这是动态变化的。虽然现在预言机普遍都还面临着一些问题,例如有人担心有些预言机提供的数据过于中心化,有些人则担心去中化预言机池子太浅等等问题,日前也看到 DeFi 上屡屡出现对预言机的攻击。当然,哪一种预言机会是最成熟的方案,都还需要时间去验证,但我们能够确定的是,目前主流的预言机,绝大部分都是在以太坊生态系上,与其要这些预言机厂商额外的为其他公链进行开发,倒不如去想一个问题:

「有办法和以太坊借一些不错的预言机来用用吗?」

其他的公链或许没有答案。

但 Nervos CKB 的回答,我想很大概率会是 YES。

以太坊,和你借一些预言机来 CKB 上用用吧

预言机要提供足够有效的链下数据,那么有两种主流的方式,一种是提供的数据足够的可信,例如来自一个可信的数据提供者,另一种是拥有合适的机制让人们愿意去提供真实的链下数据,这里我们看到了两种可能可以借用的项目,一种是 Coinbase 的提供给以太坊的 Open Oracle 的 API,而另外一种,则是 Chainlink 预言机。

Coinbase 预言机:最有公信力的交易所来给你喂价啦

Coinbase 是目前最主流的加密货币交易所,拥有足够的交易量去确保他提供的价格具有即时性以及准确性,他们在今年四月也宣布了要将 Coinbase 上面的价格数据,以带有的 Coinbase 签名的 API 提供给预言机作为使用。

What ?签过名的 API 谁可以验证阿?
这些 Coinbase 提供的链下 API 的价格对,因为都带有可以被以太坊虚拟机验证的 ECDSA 签名,所以以太坊的虚拟机可以去验证,这个签名来自于 Coinbase,就和你用你的账户签署交易可以被验证一样。
image
如此一来,Coinbase 这个最有公信力之一的交易所,就可以把他的价格对提供给以太坊上面的 DeFi 来使用,在 Coinbase 的保证下,用户可以不用担心预言机的价格被攻击的问题,因为要撼动 Coinbase 上头的价格,基本上也必须付出很大的成本。

如果市面上有这样可信的价格提供者,能直接把他的数据拿过来在 CKB 上用,对于 CKB 上的 DeFi 来说可能再好不过了。庆幸的是,要把 Coinbase 提供的链下数据拿来 CKB 上用,完全是有可能的。

Chainlink:迄今为止最多人选择的分布式预言机

提到预言机,当然不能不提到颇负盛名的预言机 Chainlink 了,Chainlink 是一款让节点可以分布式报价的预言机,并且透过信誉系统和聚合数据,以及利用 Link 通证去设计机制。以确保节点能够向预言机提供正确的报价。

同时,因为布局预言机的时间和发展的速度较为领先,Chainlink 应该是目前取得了最多合作厂商的预言机,因此在预言机界的采用度也非常的高,他的报价的方式基本上是透过 Chainlink 建构的智能合约,去和链下提供数据的 API 获取数据,在提供数据给和其发送请求的智能合约。
image
Chainlink 的预言机是怎么运作的,Source:Chainlink

那么,重点又来了, CKB 能和在以太坊借一下在他链上跑的 Chainlink 预言机合约吗?从原理上来说以太坊上的 Chainlink 的合约数据一样是我们可以透过签名验证来调用的。

CKB 到底有什么能耐能借来这些预言机? 灵活的签名验证

你一定在说了,其他可能名气更大的公链可能都没有能力用上这些数据源相对较稳定的预言机了,

Nervos CKB 凭什么可能?

其实答案很简单,如果你见识过 Portal Wallet 可以让用户用以太坊的地址收到 CKB 的神奇事迹,我相信就不难理解我说的。因为 CKB 可以灵活的接受各种密码学原语,所以要验证以太坊上的签名,其是并不是一件特别困难的事情。只要链上有该签名的签名算法和所需的验证逻辑,那么理论上来说,什么链的签名,不论是签过名的链下 API ,又或者是在链上提供交易的合约签名,在 CKB 上基本上都可以被 CKB-VM 验证。

因此,只要获得签名和公钥,要验证这个签名是由谁所签署的完全是可能的,因为目前所有的预言机合约只要在链上,或者是带有签名的 API ,我们都可以获取签名来进行验证。这也是为什么你用你的以太坊地址和签名可以透过 Portal Wallet 让他在 CKB 链上被验证的原因。

既然可以验证签名,那么就代表可以知道哪一家预言机发出这些数据,因为只有他们可以对这些 API 或者链上的交易进行签名。

那么这些预言机的数据还不能够拿来使用吗? :wink:

而且据我所知,目前有一支神秘的小团队正在搬运我提到的某个以太坊上的主流预言机,可能不久后就有机会在 CKB 上玩玩看。

伟大的艺术家善于偷取,灵活的公链善于兼容

知名画家毕加索曾经说过,伟大的艺术家善于偷取,意思是厉害的艺术家可以将原本属于别人的点子任由自己活用,灵活的公链又何尝尝不是如此。

预言机是区块链应用和真实世界接轨的关键临门一脚,我们也认为目前预言机的市场还没有几个绝对领先的产品出现,但是我们知道,可以经过愈多人实验的产品,代表他在数据的有效性和安全上就经过越多的考验。所以说,如果有更成熟的方案,而且还能在对方不为自己做任何工作的时候,就能够将这些大家都认证的成果,变成 CKB 生态上可以灵活运用的一块乐高,那么为什么不直接拿来呢?

况且 CKB 的底层设计对于密码学原语的兼容,就已经优雅的赋予了我们这项能力了。

能有成熟的预言机在 CKB 上使用,也就为 CKB 上的 DeFi 打开了一扇重要的大门。

可能机灵的你,也能够一起来想想,还有哪些些其他链上的成熟应用,还可能被 CKB 直接兼容使用呢?

*谢谢最早的时候 Kyle Xu 提出了这个很棒的构想

5 Likes