专访 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几个nlp的小任务(多选问答)

@TOC 安装库 多选问答介绍 定义参数、导入加载函数 缓存数据集 随机选择一些数据展示 进行数据预处理部分(tokenizer) 调用t

探究代理技术在网络安全、爬虫与HTTP通信中的多重应用

在当今高度互联的世界中,代理技术在网络安全、爬虫开发以及HTTP通信中扮演着举足轻重的角色。本文将深入探讨Socks5代理、IP代理以及HTTP代理在这些领域中的多重应用,探索其如何为我们创造更安全、高效的网络环境。 1. Socks5代理:构建安全通…

启动程序结束程序打开指定网页

import subprocess subprocess.Popen(r"C:\\Program Files\\5EClient\\5EClient.exe") # 打开指定程序 import os os.system(TASKKILL /F /IM notepad.exe) # 结束指定程序 import webbrowser webbrowser.open_new_tab(https://www.baidu.com) # 打开指定网页

MySQL对小数进行四舍五入等操作

数学函数是MySQL中常用的一类函数。其主要用于处理数字,包括整型和浮点数等等。 MySQL常用的四舍五入函数: 函数说明 FLOOR(X) 返回不大于X的最大整数。CEIL(X)、CEILING(X) 返回不小于X的最小整数。 ROUND(X) 返回离X最近的整数,截断时要进行…

8月28日,每日信息差

1、欧拉汽车第40万台整车下线。据介绍品牌与用户共创的最新成果2023款好猫&好猫GT木兰版尊荣型也在同一时间上市,限时12.98万起 2、马克古尔曼:M3款苹果MacBook最早今年10月发布 3、大麦成立“艺展鸿图”展览厂牌。专注于高品质艺术展览、授权等业…

事务特性 - 达梦数据库

达梦数据库事务特性 1 事务特性1.1 原子性1.2 一致性1.3 隔离性1.4 持久性 1 事务特性 事务必须具备什么属性才是一个有效的事务呢?一个逻辑工作单元必须表现出四种属性,即原子性、一致性、隔离性和持久性,这样才能成为一个有效的事务。DM 数…

基于SSM+vue框架的个人博客网站源码和论文

基于SSMvue框架的个人博客网站源码和论文061 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm (设计)研究背景与意义 关于博客的未来:在创办了博客中国(blogchina)、被誉为“…

2023最新任务悬赏平台源码uniapp+Thinkphp新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机

新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机制 后端是:thinkphpFastAdmin 前端是:uniapp 1.优化首页推荐店铺模块如有则会显示此模块没有则隐藏。 2修复首页公告,更改首页公告逻辑。(后台添加有公…

C# 学习笔记--个人学习使用 <1>

C# 学习笔记 Chapter 1 C# 比较软的基础部分Section 1 类与命名空间Part 1 命名空间 NameSpacePart 2 类 Class Section 2 基本元素Section 3 数据类型Part 1 什么是类型?Part 2 类型在 C Sharp 中的作用Part 3 C Sharp 中的数据类型 Section 4 变量、对象与内存Par…

软件工程(十) 需求工程之需求开发与管理

前面我们学习到了需求工程的概念与分类,我们知道了需求工程主要分为需求开发和需求管理,但是没有说明到底该如何开发需求,有哪些方法去开发需求。到底该如何进行需求管理,又有哪些进行需求管理的方式。具体是如何去做的。下面我们将会详细进行描述。 1、需求开发 1.1、需…

URI和URL和URN区别

URI、URL 和 URN 是一系列从不同角度来看待资源标识和定位的概念。虽然它们有一些重叠,但每个概念都强调了不同的方面。 URI(Uniform Resource Identifier):URI 是一个通用的术语,用于标识和定位资源。它是一个抽象的概…

多线程(二)

一.关于线程的常用操作 1.启动线程 run(): 对于run方法的覆写只是指定线程要做的任务清单,而不是真正的启动线程 start(): start()方法才是真正的在底层创建出一个线程,并且启动 2.中断线程 1.通过共享的标记来中断 package demo; impor…

UML四大关系

文章目录 引言UML的定义和作用UML四大关系的重要性和应用场景关联关系继承关系聚合关系组合关系 UML四大关系的进一步讨论UML四大关系的实际应用软件开发中的应用其他领域的应用 总结 引言 在软件开发中,统一建模语言(Unified Modeling Language&#x…

Go 自学:文件的写入和读取

首先,使用os.Create()函数建立一个文件。 接着,使用io.WriteString()函数将内容写入文件。 最后,使用os.ReadFile()函数读取文件内容。 注意,这里读取的文件内容是data byte,我们需要使用string()函数将其转换为字符串…

谈谈对 GMP 的简单认识

犹记得最开始学习 golang 的时候,大佬们分享 GMP 模型的时候,总感觉云里雾里,听了半天,并没有一个很清晰的概念,不知 xmd 是否会有这样的体会 虽然 golang 入门很简单,但是对于理解 golang 的设计思想和原…

Python遥感图像处理应用篇038 GDAL 遥感图像特征提取(统计特征图)

1.图像统计特征 遥感图像的统计特征是对图像中像素值的统计分布进行定量化描述的过程。这些统计特征可以提供关于图像内容和特性的有用信息。下面是一些常用的遥感图像统计特征描述方法: 平均值(Mean):计算图像中所有像素值的平均值,可以反映整个图像的亮度水平。 方差(…

R语言05-R语言中的数据框

概念 在R语言中,数据框(Data Frame)是一种类似于表格的数据结构,用于存储二维数据,其中每列可以包含不同类型的数据,例如数值、字符、因子、逻辑等。数据框是R中常用的数据结构,用于处理和分析…

threejs特殊几何体(一:文字几何体对象)

threejs中文字几何体通过newTextGeometry&#xff08;&#xff09;生成&#xff0c;它被单独作为一个类存在于threejs中const txtGeo new TextGeometry("threejs", { ...opts, font: font }); 我们先看效果&#xff1a; <template><div></div> &…

Jumpserver堡垒机管理(安装和相关操作)-------从小白到大神之路之学习运维第89天

第四阶段 时 间&#xff1a;2023年8月28日 参加人&#xff1a;全班人员 内 容&#xff1a; Jumpserver堡垒机管理 目录 一、堡垒机简介 &#xff08;一&#xff09;运维常见背黑锅场景 &#xff08;二&#xff09;背黑锅的主要原因 &#xff08;三&#xff09;解决背黑…

五种 CSS 位置类型以实现更好的布局

在 Web 开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;用于设置网站样式的设置。为了控制网页上元素的布局&#xff0c;使用CSS的position属性。因此&#xff0c;在今天这篇文章中&#xff0c;我们将了解 CSS 位置及其类型。 CSS 位置属性用于控制网页上元素的位置…