其他
没有区块链预言机?通过 HTTP 集成 Web3 和 Web2
构建 Web3 并使用区块链技术去中心化对网络、平台和数据的控制是一个强大的想法,可以帮助重振开放的互联网。
但区块链倡导者认为,在去中心化应用程序能够直接与 Web2 交互之前,智能合约不会吞噬世界,就像当今传统的消费者网络服务所做的那样。只有这样,区块链才能让数十亿 Web2 用户使用 Web3 服务。
区块链通常不能直接与托管在各自网络之外的系统和数据进行交互,传统网络技术主要通过云基础设施和服务器使用标准网络协议 HTTP 进行通信,迫使 dapps 依赖外部“预言机”与基于 HTTP 的源进行通信,预言机基本上充当连接链上软件与链下数据和服务的桥梁。
由于以太坊(ETH)和 Solana(SOL)等区块链无法提供原生预言机解决方案,因此 dapp 开发人员需要应对使用可信中间件查询外部数据所带来的额外编程复杂性、成本、延迟和安全风险。
他们通常集成中心化的预言机和预言机网络,例如 Chainlink(LINK),以允许他们的智能合约访问链下基础设施,但他们需要定期确保这些预言机服务可靠地返回不受损害的有效响应。
智能合约受益于从现实世界中提取链下数据的能力,例如,去中心化交易所通常从 Coinbase 等中心化交易所获取汇率。这就是为什么金融智能合约、自动化做市商和交易平台通常依赖于预言机,同时导航相关的漏洞和利用,例如价格预言机操纵。
如果 dapp 有一个直接的 API 可以访问外部数据呢?如果开发人员不再需要合并第三方中介并支付费用来发送链上请求和中继链下响应会怎样?
作为区块链技术如何继续向前发展的标志,互联网计算机(ICP)最近实施了一个 API,使智能合约和 dapps 能够直接发送 HTTP 呼出,包括安全的 HTTPS 流量。
“如果你在互联网计算机区块链上开发一个容器智能合约,它将能够直接向 Web2 服务器发出 HTTPS 呼出,并在不信任的情况下接收直接响应。” DFINITY 基金会技术项目经理 Dieter Sommer 解释说,该基金会致力于研发互联网计算机,“从开发人员的角度来看,这种体验更接近于熟悉的没有预言机的 Web2 编程范式。”
HTTP API
像 Chainlink、UMA(UMA)和 API3(API3)这样的预言机项目的运行方式通常涉及链下授权,该授权从特定外部源读取数据并将其写入独特的智能合约以中继该数据以响应链上查询。然后可以对在区块链上运行的智能合约进行编程,以使用预言机作为链下数据的替代品或翻译器。
缺点包括中间人的参与,这会加重开发人员的工作并增加服务失败的风险。第三方可以串通或合谋操纵数据,预言机也可能被黑客入侵或破坏。
接收和发送数据可能需要时间,从而损害用户体验,尤其是在去中心化预言机需要聚合来自冗余来源的数据并协调共识的情况下。Chainlink 在预言机领域尤其占主导地位,与区块链无关,但使用预言机网络对开发人员来说也很昂贵。
为智能合约引入直接 HTTP API 为 Web3 与已建立的基于 HTTP 的服务和数据源无缝互操作开辟了道路,创造了一系列可以有效利用大量 Web2 数据的应用程序可能性。
HTTPS 呼出功能新加入到互联网计算机协议堆栈中,重点是其共识层,互联网计算机智能合约部署在子网区块链上,每个容器的代码和状态在给定子网的所有节点上复制。
大多数区块链依靠预言机来中间 HTTP 请求,因为复制和共识使得直接与 HTTP 互操作变得不切实际。副本将对外部服务进行相同的调用,而时间戳或 ID 的潜在变化会产生不同的响应,从而使它们无法达成一致。
“IC 协议栈在概念上可以简单地看作是容器和传统 HTTP 服务器之间的通信管道,它确保 HTTP 响应通过共识实现,并且所有诚实的副本在执行过程中收到完全相同的响应。”文档解释说。
在互联网计算机上运行给定智能合约的每个子网节点都请求 URL,如果有足够多的节点收到相同的响应,则将其返回到请求容器。
如果副本响应不同 —— 例如,因为包含的时间戳、响应值的不同顺序或不同的重叠响应值集 —— 开发人员可以简单地编写一个转换函数,这通过消除不必要的部分(例如时间戳或标识符)、排序值或修剪响应值来标准化响应 —— 基本上完成任何相关转换,使所有副本的响应相等,以便最终达成共识。
“容器智能合约本身就是 HTTP 客户端,因此我们为它提供了最大的灵活性和能力,以提供将 Web3 与 Web2 集成的能力。” Sommer 说:“以更低的成本和更少的信任假设,dapp 开发人员可以优先考虑他们的产品和业务逻辑,并且用户可以获得更强的安全性和更少的延迟。”
预言机之后
减少外部依赖和中介是区块链背后的核心原则,也是提高去中心化系统弹性和安全性的关键,消除智能合约对预言机的依赖可以帮助开发人员更轻松地构建和部署与金融、保险、通信、体育和物流相关的各种去中心化应用程序。可以想象查询服务器以获取物联网(IoT)传感器数据,以及连接到传统电子邮件服务并通过消息网关发送聊天消息。
虽然实现这样的真实世界用例对于 Web3 的开发至关重要,但今天的努力要求开发人员和用户都信任预言机,依靠受信任的中介来访问链下数据以允许 Web3 dapp 或基于区块链的服务操作。
泄露的数据或黑客对预言机的利用 —— 或者仅仅是普通的传统技术中断 —— 可能会破坏整个智能合约和相关智能合约的稳定性,从而出现单点故障。随着 Web3 的不断成熟,开发人员和用户将期待更好的体验,这强调了对更好的集成方法的需求。
消除当前用于链下数据访问的预言机解决方案的复杂性可能会加速 Web3 开发和用户入门,互联网计算机上的 HTTPS 呼叫展示了开发人员现在如何创建与传统服务器和企业基础设施直接交互的产品和 dapp,有效地模糊了 Web2 和 Web3 之间的界限,同时将智能合约定位为真正吞噬世界。
来源:Aaron Watts(CoinCodex)翻译:Catherine
- 往 期 推 荐 -
长按关注 IC 微信公众号
随时答疑解惑
*添加小助手微信 comiocn 进交流社群