Oracle预言机——链上API
1. 什么是Oracle?
用于双向连接链上合约及链下real world data的桥梁,可以理解为链上API
为什么需要Oracle?
智能合约应用都需要获取来自关键数据源的链下数据,特别是实时数据和 API 数据(如Defi币种间的实时汇率,GameFi所需的比赛、天气信息),这些数据都不保存在区块链上(成本问题、时效问题)。
Oracle与传统API有什么不同?
智能合约调用传统API会产生的问题:
①由于传统API接口返回的实时数值并非恒定,API接口返回的差异数据无法直接通过智能合约进行验证(举例:如以太坊对美元的价格实时变动,传统API方式无法在10天后对10天前的价格进行链上校验)
②传统API服务器可能存在宕机问题/网络问题,API请求失败导致合约失效
Oracle——链上API解决方案:
加入一个中间层的智能合约(oracle smart contract),用户通过调用合约而非API的方式进行验证。API数据只在链上oracles合约进行更新,通过向用户返回其他恒定的验证信息保证其链上可验证性
以太坊Oracle架构:
主要分为三个部分:①链上合约交互 ②链上oracles合约与链下节点交互 ③传统API部分
具体架构流程:
①用户合约对Oracle合约发送API请求后,Oracle合约会释放一段解析后该请求的日志
②off-chained节点通过监听on-chain Oracle合约日志,解析其中事件生成线下API请求
(注:日志(Logs)和事件(Events)——以太坊会将所产生的代码解析成日志和事件,外部通过日志和事件可以实时监听以太坊上发生了什么。日志信息不在以太坊链上闭环内,故不需要消耗gas fee。EVM于2018年3月在solidity v0.4版本中释放该功能,以此为时间节点演变出整个oracle生态的繁荣。
该技术为on-chain和off-chain联动的核心要素)
③off-chained节点对传统node.js服务器发起API请求,返回JSON格式数据
④off-chained节点对线上oracle合约数据参数进行Update
⑤返还用户合约数据
Oracle痛点(Oracle Problem):①去中心化②安全
①中心化问题:如果链上合约的real world data来源一个中心化的节点,那么即可通过操纵该中心化节点从而操纵整个链上合约
②安全问题:API server和off-chained oracles必须保证跟链上合约达到同级别安全,否则人为降低链上合约安全性
谁能将oracle problem解决到极致,谁就是最牛逼的oracle数据提供商
2. ChainLink
什么是Chainlink?
chianlink并非单一的oracle节点提供商,其更像一个oracle节点服务商平台,背后有无数第三方Oracle节点服务商。Chainlink主要围绕Oracles核心痛点提供解决方案;
Chainlink单流程架构
链上合约对比传统Oracle新增3个模块合约:
①声誉合约:声誉合约记录预言机服务提供商的历史服务水平
②订单匹配合约:基于用户所需请求参数,从声誉合约中筛选出优质的节点服务商们进行匹配
③聚合合约:基于门限签名对从多个线下节点获取的数据进行加权聚合
链下节点包含Core(核心组件)及适配器(Adapter):
①Core:用于外部流程任务调度,包含https请求、JSON解析、链上数据UpdateRequest
②Adapter:最小化REST API的外部服务
ChainLink如何解决去中心化问题?
ChainLink分布式架构
网络中并非只有一个预言机节点 O,而是有 n 个不同的预言机节点。其中每个预言机都会有自己的数据源集合,不同预言机的数据源可能会重叠也可能不会。Oi 从各个数据源获取并聚合数据,并将自己的聚合数据发送至链上Oracle合约
线下预言机节点使用椭圆曲线数字签名的算法Schnorr签名机制进行聚合,线上使用多数投票机制或加权平均进行再聚合;
为什么不直接在线上聚合?算力限制,成本太高
为什么用这个签名算法?避免吃空饷问题,指oracles节点通过直接抄袭其他节点直接获得数据赚取User fees。该签名算法通过拆分并分发秘匙,当收集到固定数量的秘匙后进行解析并公开最终数据
Chainlink如何解决安全问题?
四大核心安全系统:验证系统、声誉系统、认证服务、合约升级
①验证系统:对所有oracles节点进行监听,评估其可用性及准确性
②声誉系统:基于用户评分及其他链下服务器数据指标(平均响应时间、完成请求总数等)进行打分
③认证服务系统:对于女巫攻击及镜像攻击(操纵大多数oracles节点以篡改数据)进行防御——对知名oracles节点进行认证,提高其权限,一但发生多数结果与认证Oracles节点结果发生冲突,则组成审查机制人为审查
④合约升级服务:整体代码采用模块化开发,如果发生安全漏洞,能够快速生成并启用新的合约
其中①+②部分结合分布式的网络结构已经基本能够保证所有节点的安全性,③+④主要用于应对大规模黑客攻击及黑天鹅事件
Chainlink技术痛点
off-chained数据保密问题。由于分布式数据需要多个节点进行验证,个人隐私数据将会被泄露。目前Chainlink解决方案为第三方硬件托管(Intel SGX技术)——在硬件端进行加密,使其在加密的情况下保证数据流的完整和稳定
3. ChainLink商业研究
目前主要应用场景:
①实时币价汇率(Price Data Feeds):链上金融市场数据,主要为各大Defi提供服务
②随机数生成(VRF):ChainLink提供链下计算,链上可验证、可溯源的随机数生成,多用于GameFi/NFT稀缺性场景(如抽奖)。
③外部API适配器:开发者可以通过Chainlink组件快速生成自己的Oracle节点服务,基于企业自身业务需求生成自用API。
④自动化接口(keepers):作为自动化程序启动器。适用场景包括储备金证明、跨链通证、为矿工提供公平排序等
收费模式:
①用户端:近似API端口调用的收费模式计算User Fees,调用Chainlink接口需消耗LINK。根据服务的不同,单次请求收取user fee在零点几刀至几十刀不等。
②节点端:节点提供商需使用先提供一部分LINK做抵押作为信用担保,以换取未来提供接口服务user fees收入。优质的头部节点供应商可以达到每日进账200-500 LINK(3000$),单个feed单次收入约在50$—150$。目前入驻的节点提供商341个(以太坊295个)。单日活跃网络592个,单日交易总量约6W+,单日第三方节点收益25000+LINK(2022/04/06)。
以此方法计算,CHAINLINK第三方节点服务商每年约获得总收益:
25000*365=9M LINK = 135M$
团队背景:
创始人Sergey Nazarov俄罗斯人,32岁,NYU Stern毕业,早期从事比特币挖矿。
目前团队内成员数量300+,其中包括: 前Linkedin VP Mike Derezin、前谷歌CEO Eric Schmidt.、Diem(Facebook发币项目) co-founder Christian Catalini及CTO Dahlia Malkhi
护城河在哪:
①平台&飞轮效应:越多的使用用户→越多的user fees→越多的oracle节点提供商入驻chainlink→API数据越安全,越准确→品牌力提升→越多的用户
核心争论:
• 认证服务系统饱受争议:天然将节点区分为tier1(普通节点)和tier2(认证节点)。因此会出现潜在风险:
①解决女巫攻击的方法来源于tier2节点, 如果tier2 node被劫持,则可以劫持整个网络
②tier2与tie1存在利益冲突。如果tier2节点反叛,则可以直接通过对tier1节点的报错,赚取tier1节点信用质押金Links
其设计架构假设了一个裁决层(tier2)来解决第一层的争端。裁决层本身基于利益存在欺诈的可能性。本质实际上仍以中心化的方式去解决去中心化的安全问题(API3 提出DAO的解决方案)
• 分布式去中心化节点真的那么去中心化吗?
基于chainlink market对chainlink oralce现存网络中341个节点服务商过往24小时(2022/4/12)节点服务状态进行采集,我们可以发现:
过去24小时内存在LINK收益的节点服务商仅占所有服务商的2%。即2%的节点服务商在过去24小时内负责运行了100%的chainlink节点服务。这些第三方节点服务商均为大型staking pool类公司(LINK POOL, P2P Validator, Staking Facilities等)
市场规模:
以太坊Dapp数量/oracle合约调用量的增速逐步放缓,且目前chainlink生态系统中DAPP数量已超所有活跃DAPP的50%
以太坊Dapp数量趋势变化
以太坊Price Feed Top4 转换节点 调用量
当前以太坊活跃Dapp数量
当前Chainlink ecosystem Dapp总量
1240
当前困境:
①以太坊Dapp数量增速已经大幅放缓,主流Dapp已基本被Chainlink适配
②可用/公开的WEB3数据需求已基本被满足,定制化API服务仍在起步阶段
③第一方oracle的起量
未来愿景:
Chainlink服务的是现存及潜在所有区块链的智能合约,不仅为他们提供链下数据,还提供链下计算,即将链上需要高额gas fee的计算迁移到线下进行
怎么做的?
对现有的分布式节点网络功能进行升级,提出概念Decentrilized Oracles Network(DON);DON 的最大优势是可以快速启动新的区块链服务,无需为每个区块链或者每种服务开发新的专用网络。这样一来,无论新的应用场景如何变化,DON都能迅速响应,及时接入
如何做?
在适配器端做拓展,让其不仅支持API类数据,同时还可与Web服务器/存储服务器/其他节点网络进行交互;核心组件引入更多模块,对不同业务场景分模块进行调用
理论上讲,随着适配器的不断升级和DON网络内接入的内容增加,可以在某种程度上以链上→链下节点→链上的方式形成跨链桥(跨链消息传输解决方案)。
4. 主要Oracle服务商对比
除API3外,其他主要预言机解决方案提供商与chainlink模式并未存在本质上的不同,仅在基于不同链上环境做更多的适配和升级;由于chainlink模式本身存在明显的平台/品牌效应,这些第三方预言机服务商无法构成强有力的竞争(Chainlink活跃地址数占oracle的80+%)。以API3为代表第一方oracle服务商是当前环境下最有可能对Chianlink模式发起挑战,以API3为例,其提出DAO的组织模式管理第一方预言机用以解决Chainlink存在的认证节点(tier2)争议问题。
ERC-20活跃地址数量
API3
API3在当前存在的oracle服务商中最有可能对未来chainlink地位发起挑战。由于chainlink分布式架构本质仍存在中心化的问题,其提出以DAO的形式对第一方预言机进行直接管理和运营,其组织结构更符合去中心化的理念。
第一方预言机vs.第三方预言机,谁才是最好的预言机?
在Chainlink(左图)分布式架构中,链下节点(第三方)与API数据提供商并无直接关系,任何人均可通过搭建docker服务器的方式部署第三方链下预言机节点。在API3架构中,所有链下节点所属权直接归属于知名API数据提供商(第一方),通过其适配器airnode(类似web api的轻量级封装)直接与链上aggregator进行连接。
第一方预言机优势:①不存在女巫攻击的可能性 ②没有中间商赚差价 ③数据隐私得到直接保障
第一方预言机劣势:①去除分布式架构后,每多加一个节点,链上request gas fee呈线性上升,aggregator成本呈指数级上升
如何保证第一方数据源稳定安全?
①DAO组织已预先设定条款:对产生错误或失效的数据提供商直接进行惩罚,同时基于dAPI保险条款从DAO组织内资金池抽取资金进行索赔
②知名数据提供商本身也在乎其信誉?(作者本人对此存疑,此条不符合crypto零信任的理念)
其他第一方Oracle提供商
Pyth: 支持solana的第一方oralce服务商, 主要开源代码由高频交易公司Jump Trading贡献。专注于金融领域Defi数据(高频交易),核心壁垒在于可以提供大量由高流动性和经过验证的做市商独家拥有和分发的市场数据
Uniswap/Compound: 如Uniswap v3版本中已经提供Oracle相关接口用以回溯和提取喂价数据
5. Take away:
①Oracle搭建本身技术难度较低,市面上主流预言机均围绕去中心化/安全两大痛点提供解决方案
②Chainlink通过提供第三方预言机平台的分布式架构解决Oracle痛点
③在以太坊算力不出现颠覆性提升的情况下,Chainlink具备平台飞轮及其先发优势使其在以太坊中的商业护城河极其坚固
④Chainlink主要争议在于认证节点中心化,市面上已经出现如API3通过DAO的方式进行组织架构升级,但仍存在如算力问题,成本过高,数据需求不足等其他问题
⑥随着ETH2.0到来后整体算力的提升,未来在以太坊中可能出现以DAO形式组织的链上分布式第三方节点Oracle服务商,究竟是Chainlink使其自身组织结构升级为DAO以更符合web3理念,还是新的入场玩家以Chainlink+API3的模式成为新的头部玩家,让我们拭目以待