当前位置: 首页 > news >正文

专访 Hyper Oracle:可编程的 zkOracle 打造未来世界的超算

图片

许多 Web3 应用在实现的过程中,常常会遇到基础设施方面的限制,包括去中心化自动化、预言机、链上信息搜索等问题。绝大部分区块链的中间件网络都是依赖于节点质押来保证节点执行的诚实性,这样的模式会产生诸多衍生问题,例如安全性依赖于冗余计算、单位操作有价值上限等。因此,在处理安全可靠的链下数据的索引和自动化方面,需要一种新型的去中心化预言机网络

应运而生的 Hyper Oracle 就是一个可编程的 zkOracle 网络,它提供了一个链下计算网络,用于处理区块链智能合约的任意计算,用以保证区块链安全和去中心化,同时使开发者能够以新的方式与区块链数据进行交互。

Hyper Oracle 项目在 2022 年 8 月正式启动,在 9 月发布了第一版 Demo。之后,Hyper Oracle 与 PolyHedra 等多个合作伙伴达成了合作;今年 1 月,宣布了由红杉中国与 dao5 领投的 Pre-Seed 轮融资;最近成功完成了以太坊官方的 KZG Ceremony Grant,同时也收到了 Compound 的 Grant。

在一年的时间内完成了许多重要的迭代与突破,让我们走近 Hyper Oracle,一同了解它是如何作为基于零知识证明的预言机/中间件网络,来保证去中心化节点的数据和计算正确性。

图片

本篇文章是「2023 TinTinLand 项目支持计划」系列项目专访的第二篇,我们邀请到了 Hyper Oracle 与大家分享其在开发与探索「零知识证明+预言机」的经验与心得。

如果您对「2023 TinTinLand 项目支持计划」感兴趣,可点击推文《「2023 TinTinLand 项目支持计划」 开启,打造下一个 Web3 新星》了解更多信息,我们欢迎所有的优质 Web3 项目团队申请加入。

🔗报名链接:https://forms.gle/p3seKq748Th3czZn6

Hyper Oracle:可编程、去中心化的预言机

Hyper Oracle 的愿景是构建一个「World Supercomputer」。其核心概念就是将所有的网络组合到一起, 实现一个世界级别的超级计算机,这样的概念比以太坊起初的世界计算机的理想或许更加宏大。在 World Supercomputer 中, Hyper Oracle 会作为计算网络, 提供高性能且去中心化的计算能力,来让整个网络具备自动化计算,甚至链上机器学习计算的能力。

要实现这样的愿景,Hyper Oracle 选择了无需信任的和安全的预言机

预言机在 Web3 世界中是相当重要的组成部分,不仅包括喂价预言机 (输入预言机),同时也有索引预言机和自动化预言机 (输出预言机与 I/O 预言机)。对于一个去中心化应用来说,预言机是不可或缺的基础设施——如果这个预言机不是去中心化的,那么整个应用都会存在安全性隐患。

相比其他的预言机和中间件,Hyper Oracle 的独特优势在于: 可编程性与去中心化

图片

可编程性

在 Hyper Oracle 中,开发者可以通过 JavaScript 等高级语言和 Subgraph 的编程模式对预言机的数据进行处理。相比 Chainlink 等预言机,灵活度高非常多,还可以自定义接口。

图片

Hyper Oracle 网络中的 「智能合约」——zkGraph,作为可自定义的链下计算,同样是可定制和可编程的

zkGraph 是类似 Subgraph 语法以及使用了 JavaScript (AssemblyScript) 的程序,熟悉去中心化应用开发的开发者可以快速地上手 zkGraph 的开发。实际上,可以编译为 wasm 的任何程序都可以成为 zkGraph,这就意味着 zkGraph 实际上可以用任何语言来编写,能让开发者获得最大的灵活度和自由度。

为了让任意的 zkGraph 语法可以执行并且生成零知识证明,Hyper Oracle 使用了 zkWASM (可以理解成类似 zkEVM)。除此之外,还编写了很多底层库来帮助开发者进行 zkGraph 的开发,在指令集层面进行了一些优化以及适配。开发者在使用 zkOracle 和开发 zkGraph 的时候只需要编写几行非常简短的程序,即可让零知识证明来保证整个计算以及基础设施的安全性。

去中心化

Hyper Oracle 所有的计算都由零知识证明来保证安全性。零知识证明的存在通过密码学的假设,取代了传统预言机的以经济学所保证的类似 Optimistic 机制的安全性。

图片

目前,zkOracle 网络使用 zkPoS 从区块链的每个区块中检索数据作为数据源,并使用运行在 zkWASM 上的可编程 zkGraph 来处理数据,以 ZK 技术为基础,所有操作都可以实现无需信任和安全性

在数据来源方面,zkPoS 的意义就在于能够完全可信地获取以太坊等区块链网络上的数据,让这些链上数据作为 zkOracle 的数据源。

选取链上数据作为 zkOracle 的数据源的原因在于,链上数据是经过共识之后产生的,已经成为了受过安全性认证的可信数据。同时,这些数据正是 Oracle 中所需要的原始数据,开发者可以通过自定义的方式来进行二次处理。zkPoS 是市面上为数不多的完全去中心化获取区块链数据的方案,以零知识证明为安全假设,可以保证数据的完全可验证性

更简单的开发环境

开发者来说,通常要构建一个零知识证明驱动的应用时,开发者需要学习非常多的密码学以及 ZK 相关的知识,包括特定的 ZK 语言和框架 (Circom, Halo2, Cairo)。这些知识的学习和认知模型的转变都有一定难度,让普通开发者难以入门。

主流的方式是使用 zkEVM 来进行构建,让一个 Solidity 合约得到 ZK 的「超能力」。但是这个方案仍然受到了智能合约这个设计模型的限制,无法完成索引、自动化、机器学习等高要求的计算

Hyper Oracle 推出的 zkGraph,则让 ZK 应用的开发进一步地降低了门槛。zkGraph Studio 是编写 zkGraph 的 Web Code Editor 以及 Studio,任何有过智能合约或者去中心化应用开发经验的开发者,都可以无门槛地直接进行 zkGraph 的开发,实现任意的计算,为开发者带来了全新的体验。

图片

纯网页端的开发环境

zkGraph Studio 可以让开发者完全在网页中进行 zkGraph 的全套流程的开发、测试和部署。从体验上来说,zkGraph Studio 像是一个单独的 Web3 App,非常易于使用。为了构建这个 Studio,Hyper Oracle 实现了网页端的多文件编译流程,以及 AssemblyScript 的编辑器的开发。

Link-compiler:混合两种编程语言

在 zkGraph 的编译流程中,不单单是类似 JavaScript 的 AssemblyScript 语言,还需要 C 语言的编译。Hyper Oracle 的工程师构建了首个 AssemblyScript-C 语言的 link compiler,能让两种语言被同时混合编译,这个突破能让 zkGraph 的性能得到巨大的提升。

整体来说,zkGraph Studio 实现了很多的底层工作以及优化,用户只需要编写基本的代码,无需担心编译、环境以及部署等「脏活累活」。

zkGraph Standard:DApp 开发的基础设施

Hyper Oracle 的产品 zkGraph Standard 提供一系列基础设施服务,供任何 DApp 开发人员使用。zkGraph Standard 由 zkIndexing 和 zkAutomation 组成,可以理解为 ERC 一样的标准。

zkIndexing 类似于 The Graph 这样的索引网络,而 zkAutomation 类似于 Gelato 这样的自动化网络。目前 Hyper Oracle 开放了测试网,开发者可以在 Web Code Editor 或者 zkGraph Template 中自行编写 zkGraph,从而使用 zkIndexing 和 zkAutomation 的服务。

使用方面,任何 DApp 都可以使用 zkIndexing 来进行据的收集以及前端展示,以及使用 zkAutomation 来建立 Keeper、Bot 等的自动化服务

应用场景方面,Hyper Oracle 目前正在构建一些小的用例 Demo,包括 Rollup TPS 的计算以及 DeFi 应用 TVL 的计算等。在 Compound 的 Grant 合作下,Hyper Oracle 近期也为 Compound 构建了一个完全去中心化的 Liquidation Keeper Bot

孵化新一代去中心化应用

Hyper Oracle 的生态建设计划主要包括两个方面:与现有协议直接合作 + 孵化新一代的去中心化应用,未来还将会开放节点的自行部署与运行,让整个网络更加去中心化。

图片

与现有协议合作

与行业内的领军人物进行交流与探索,与行业内的核心项目进行合作,以及与开发者的直接合作,可以让 Hyper Oracle 的基础设施获得直接的采用以及关注。Hyper Oracle 和许多 ZK 相关的核心研发人员进行了技术上的交流以及方案的研讨。

Hyper Oracle 团队认为,与大项目进行 Grant 形式的合作也是非常重要的,可以在早期相互绑定,因此团队也积极申请这些机会,拿到了以太坊基金会以及 Compound 的 Grant。

孵化新项目

孵化新项目则可以进一步拓展 Hyper Oracle 的应用场景,并吸引新的开发者进入其生态。目前已有 15 个以上的团队正在与 Hyper Oracle 进行密切合作,通过使用 Hyper Oracle 作为基础设施,进行项目开发。与项目的首批用户进行直接交流是一种有益的形式,因为他们的反馈对项目本身的发展也有非常大的帮助。

打造去中心化网络

Hyper Oracle 将会在今年开始推出测试网的不同阶段。在后期的计划中,项目会开放节点的自行部署与运行,让整个网络更加去中心化。

除此之外,Hyper Oracle 会更加着重于 zkDapps 叙事的构建,希望帮助更多的开发者和 Builder,在无需学习任何 ZK 知识或者特定编程语言的前提下,就可以享受 ZK 所带来的高性能以及安全性。

活跃的社区活动同样是 Hyper Oracle 联结更多优质项目的发力点。近期,Hyper Oracle 会在 SBC 期间的多个活动中进行演讲分享,包括柏林 Dappcon、EthSingapore、Token2049、DevConnect 等。

Hyper Oracle 寄语

我们有幸参加了 TinTinLand 举办的 Twitter Space 活动,社区的热情给我们留下了深刻印象。TinTinLand 专注于通过活动、研讨会、黑客马拉松等方式开展开发者教育与分享,我们期待着之后探索各种合作方式。我们认为 Web3 中最重要的资源就是开发者社区,我们推荐任何项目或者开发者关注各种机会,多多尝试。

目前「2023 TinTinLand 项目支持计划」仍在进行中,如果您也希望加入该计划,和我们一起共建 Web3,就可以将下方链接复制至浏览器中打开,立即报名联系我们哦!

👉🏻报名链接:

https://forms.gle/p3seKq748Th3czZn6

相关文章:

专访 Hyper Oracle:可编程的 zkOracle 打造未来世界的超算

许多 Web3 应用在实现的过程中,常常会遇到基础设施方面的限制,包括去中心化自动化、预言机、链上信息搜索等问题。绝大部分区块链的中间件网络都是依赖于节点质押来保证节点执行的诚实性,这样的模式会产生诸多衍生问题,例如安全性…...

ThreadLocal存放当前用户

用户信息必须由后端获取,不能通过前端传入的id是不可信的,,可能会出现越权的问题,,,怎么通过后端获取当前登录用户,,, 就需要将User 和 当前线程绑定在一起,&…...

es入门实战

创建索引 PUT /hotel/ { “mappings”:{ “properties”:{ “title”:{ “type”:“text” }, “city”:{ “type”:“keyword” }, “price”:{ “type”:“double” } } } } 给索引写入数据 POST /hotel/_doc/001 { “title”:“好再来大酒店”, “city”:“东京”, “pri…...

c++系列之指针

今天不是做题系列,是知识系列啦。 说到指针,我们初学这一定会气的牙痒痒把,笔者也是,这么我好久而不得呀,今天来让我们聊聊指针。 其一 首先,我们明确的知道,假如我们开一个变量,…...

网络安全:挑战与防护策略

一、引言 随着科技的快速发展,互联网已经成为我们生活和工作的重要组成部分。然而,随着网络技术的不断升级,网络安全问题也日益凸显。网络攻击、数据泄露、身份盗用等问题,不仅威胁到个人隐私,也对企业和国家的安全构…...

AI 插件:未来的浏览器、前端与交互

想象一下,你在浏览器中粘贴一个 URL,这个 URL 不仅仅是一个网址,而是一个功能强大、能执行多种任务的 AI 插件。这听起来像是未来的事情,但实际上,这种变革已经悄悄进行中。 1. 插件的魅力与局限性 当我第一次接触到…...

R包开发-2.1:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)

目录 0-前言 1-在RStudio中创建R包项目 2-创建R包 2.1通过R函数创建新包 2.2在RStudio通过菜单来创建一个新包 2.3关于R包创建的说明 3-添加R自定义函数 4-添加C函数 0-前言 目标:在RStudio中创建一个R包,这个R包中包含C函数,接口是Rc…...

土豆叶病害识别(图像连续识别和视频识别)

效果视频:土豆叶病害识别(Python代码,pyTorch框架,视频识别)_哔哩哔哩_bilibili 代码运行要求:Torch库>1.13.1,其它库无版本要求 1..土豆叶数据集主要包好三种类别(Early_Blight…...

三、JVM监控及诊断工具-GUI篇

目录 一、工具概述二、jconsole(了解即可)1、基本概述2、启动3、三种连接方式4、作用 三、Visual VM 一、工具概述 二、jconsole(了解即可) 1、基本概述 从Java5开始,在JDK中自带的Java监控和管理控制台用于对JVM中内…...

3211064 - 错误消息 AA634 出现在 T-cd AW01N 或 T-cd AFAR 中

症状 通过 T-cd AW01N 打开资产或在 T-cd AFAR 中重新计算资产值时,出现以下错误消息: AA634 在范围 01 中普通折旧的更正大于累计折旧 环境 SAP R/3SAP R/3 EnterpriseSAP ERP SAP ERP 中心组件SAP ERP 的 SAP 增强包SAP ERP(SAP HANA 版…...

k3s or RKE2 helm安装报错dial tcp 127.0.0.1:8080: connect: connection refused

1.报错: Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get "http://127.0.0.1:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused 2.问题原因: 1.因为helm默认使用k8s的配置文件,默…...

网络安全应急响应预案演练

制定好的应急响应预案,只做培训还不够,还需要通过实战演 练来提高应对网络突发事件的行动力,针对网络突发事件的假想情 景,按照应急响应预案中规定的职责和程序来执行应急响应任务。 根据出现的新的网络攻击手段或其他特殊情况…...

Redis 的混合持久化

RDB 相比于 AOF,数据恢复的速度更快,因为是二进制数据,直接加载进内存即可,但是 RDB 的频率不好把握。 如果频率太低,在两次快照期间服务器发生宕机,可能会丢失较多的数据如果频率太高,频繁写入…...

ElasticSearch总结

ES是什么 ES是一个天生支持分布式的搜索、聚合分析的存储引擎 基于Java开发 基于Lucene的开源分布式搜索引擎 ELK : elasticSearch Logstah Kibana 加入 Beats 后 ELK 改为 :Elastic stack ES解决了什么问题 ES解决的核心问题 : 1.海量数…...

手写数字识别之损失函数

目录 交叉熵 手写数字识别之损失函数 分类任务的损失函数 Softmax函数 交叉熵的简单理解:真实分布与非真实分布的交叉,完全对应,熵为0 交叉熵的代码实现 交叉熵 给定一个策略, 交叉熵就是在该策略下猜中颜色所需要的问题的期望值。更普…...

sleep () 和 wait () 有什么区别?

在Java中,sleep() 和 wait() 是两个用于处理多线程的方法,它们具有不同的作用和用途。 sleep(): sleep() 是 Thread 类的一个静态方法,用于暂停当前线程的执行一段指定的时间。它会阻塞当前线程,不会让其他线程获得执…...

第一百二十七回 空安全

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了级联操作符相关的内容,本章回中将介绍 空安全.闲话休提,让我们一起Talk Flutter吧。 概念介绍 在编译语言中都有空指针或者空对象(null),它们会引起程序的异常。在移动开发中如果…...

js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢&#xff1…...

uview ui 1.x ActonSheet项太多,设置滚动

问题:ActionSheet滚动不了。 使用uview ui :u-action-sheet, 但是item太多,超出屏幕了, 查了一下文档,并没有设置滚动的地方。 官方文档:ActionSheet 操作菜单 | uView - 多平台快速开发的UI框架 - uni-a…...

信息化发展2

信息系统生命周期 1 、软件的生命周期通常包括:可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等阶段。 2 、信息系统的生命周期可以简化为:系统规划(可行性分析与项目开发计划),系统分析…...

ubuntu18 + ros2 eloquent +python3.6

卸载 sudo systemctl stop ros2-eloquent-* #输入以下命令以停止所有ROS 2 Eloquent相关的进程 sudo apt remove ros-eloquent-* #输入以下命令以卸载ROS 2 Eloquent软件包 ls /etc/ros/ ls /opt/ros/ sudo rm -rf /opt/ros/eloquent#输入以下命令以删除ROS 2 Eloquent的配置文…...

围棋与育种

最近因为娃子报名了围棋课,我本着交一次课学两个人的态度,入门围棋,买了些书,听了些课,有所得。学了两个多月,现在6级水平,了解了基本的攻杀技巧,会判断输赢。 下面截图是今天的一盘…...

Python第三方库纵览

Python第三方库纵览 知识点 更广泛的Python计算生态,只要求了解第三方库的名称,不限于以下领域: 网络爬虫、数据分析、文本处理、数据可视化、用户图形界面、机器学习、Web开发、游戏开发等 知识导图 1、网络爬虫方向 网络爬虫是自动进行HTTP访问并捕…...

测试.net开源音频库NAudio

微信公众号“dotNET跨平台”看到一篇文章《【.NET】使用NAudio实现录音功能》介绍基于NAudio实现录音功能(参考文献1)。NAudio是开源.net音频库,其支持播放多种格式的音频(WAV、AIFF、MP3、WMA等)、音频格式转换、录音…...

三方接口调用设计方案

在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题 在设计三方接口调用的方案时,需要考虑到安全性和可用性。以下是一种设计方案的概述&a…...

OLED透明屏全贴合技术:未来显示技术的突破性创新

在现代科技发展的浪潮中,OLED透明屏全贴合技术以其独特的优势和无限的应用前景引起了广泛的关注。 在这篇文章中,尼伽将深入探索OLED透明屏全贴合技术,介绍其优势和特点,并展望其在不同领域的应用前景。 一、OLED透明屏全贴合技术…...

map、sync.map、concurrent-map适用场景与源码解析

最近一直加班,无论工作日还是周末,虽然每天很忙但总感觉空空的,很少有时间停下来思考与总结。项目中各种甩锅,最后最苦逼的还是落到了研发的头上,文档编写、环境部署、问题排查虐得一遍又一遍。事情杂乱,研…...

分布式事物实现方案及优缺点

实现分布式事务是一个复杂的任务,涉及到许多技术和概念。在Java开发中,你可以借助一些框架和工具来实现分布式事务,以下是一些常见的方法: 1.两阶段提交(2PC) 这是一种经典的分布式事务处理方法。它涉及到…...

java使用@interface和反射来动态生成excel

1、对象类上搞注解 public class ReportExecuteDetailDto { // 项目信息 private String regionCode; // 大区编号 ExcelColumn(order 0, title "大区") private String regionName; // 大区名称 ExcelColumn(order 14, tit…...

【微服务】04-Polly实现失败重试和限流熔断

文章目录 1. Polly实现失败重试1.1 Polly组件包1.2 Polly的能力1.3 Polly使用步骤1.4 适合失败重试的场景1.5 最佳实践 2.Polly实现熔断限流避免雪崩效应2.1 策略类型2.2 组合策略 1. Polly实现失败重试 1.1 Polly组件包 PollyPolly.Extensions.HttpMicrosoft.Extensions.Htt…...