HyperCore
HyperCore 是 Hyperliquid L1 区块链 的原生非EVM执行和状态层,作为协议主要交易功能的核心引擎。它负责管理去中心化永续合约交易所的链上订单撮合引擎、保证金系统、现货资产余额、金库策略和质押机制。HyperCore 在双环境架构中与 HyperEVM(一个通用的、与 EVM 兼容的智能合约层)协同运行,从而实现去中心化金融 (DeFi) 应用与交易所核心基础设施之间的高度可组合性。 [1] [2]
概述
HyperCore 是 Hyperliquid 协议的基础状态机和逻辑层。HyperCore 的一个核心设计原则是完全去中心化;它不使用链下订单簿,而是依靠其共识机制来建立所有交易和平台活动的单一规范排序,包括订单匹配。这种链上方法旨在提供高性能,以支持零售和自动化交易策略。 [2]
Hyperliquid 链的状态分为两个截然不同但深度集成的组件。HyperCore 是执行核心交易逻辑的专用环境,专注于金融交易的速度和效率。它的对应物 HyperEVM 是一个完全 EVM 兼容的环境,运行 Solidity 智能合约,允许开发者直接在 Hyperliquid 网络上部署各种 DeFi 应用。这种双环境架构创建了一个混合系统,结合了传统订单簿的性能和去中心化应用的灵活可组合性。HyperCore 管理的关键功能包括永续合约订单簿、现货余额、金库管理和质押委托。两层之间的深度集成允许 HyperEVM 上的智能合约读取数据并向 HyperCore 发送指令,从而能够开发可以直接与交易所核心状态交互的高级链上产品。 [1] [2]
架构与技术
Hyperliquid 的架构围绕其共识机制和双重执行环境的相互作用而设计,HyperCore 是其交易运营的中心。
共识机制:HyperBFT
HyperCore 由一种名为 HyperBFT 的专有共识算法保护,它是 HotStuff 共识模型的一种变体。它基于权益证明 (PoS) 运行,验证者根据抵押给他们的原生代币数量按比例选择来生成区块。HyperBFT 算法经过专门优化,可最大限度地减少端到端延迟,端到端延迟定义为用户提交请求到收到已提交响应的总时间。这种对减少延迟的关注对于支持高频交易和提供响应迅速的用户体验至关重要。 [2]
双环境执行
Hyperliquid L1 具有双环境架构,将专用交易功能与通用计算分离:
- HyperCore: 这是高性能状态机,针对交易所的核心运营进行了优化。它处理所有关键金融活动,例如订单匹配、保证金计算以及永续合约和现货市场的账户状态管理。
- HyperEVM: 这是一个完全兼容 EVM 的环境,支持 Solidity 智能合约的部署和执行。它允许开发者在 Hyperliquid 生态系统中构建 DeFi 应用程序、结构化产品、收益聚合器和其他链上服务。
这两个环境之间的集成允许 HyperEVM 上的应用程序以编程方式访问和交互 HyperCore 管理的交易和账户数据,从而创建一个统一的交易和更广泛的 DeFi 活动平台。 [1] [2]
性能
HyperCore的设计目标是在低延迟和高吞吐量方面达到与中心化和去中心化交易所相当的性能指标。
延迟
当从地理位置相同的客户端访问时,该平台的端到端延迟表现出以下性能特征:
- 中位延迟: 0.2 秒
- 第 99 百分位延迟: 0.9 秒
这种低延迟水平足以部署许多自动化和高频交易策略,且只需对其他加密货币交易场所进行最小的修改。对于零售用户而言,这转化为与交易用户界面交互时的“即时反馈”体验。 [2]
吞吐量
HyperCore旨在处理高交易量。主网已展示了大约每秒200,000个订单的处理能力。根据项目文档,吞吐量的主要限制是执行逻辑本身,而不是底层的共识和网络堆栈。据报告,HyperBFT共识层能够扩展以支持每秒数百万个订单,并且随着需求的增长,计划不断优化执行逻辑。 [2]
HyperCore和HyperEVM之间的交互
HyperCore和HyperEVM之间的交互是Hyperliquid架构的一个决定性特征,它使智能合约能够通过安全和标准化的接口与核心交换逻辑进行通信。
集成概述
2025年3月25日,Hyperliquid 宣布了一项重大技术更新,该更新实现了 HyperCore 和 HyperEVM 之间的直接链接和无缝代币转移。此集成旨在提高资本效率,增强 DeFi 可组合性,并通过消除第三方桥梁的需求来降低安全风险,因为第三方桥梁经常成为攻击目标。该过程类似于在同一金融机构内的支票账户 (HyperEVM) 和经纪账户 (HyperCore) 之间进行即时免费转账。交互完全通过一组预编译合约促进,这些合约是固定地址的硬编码合约,可为 HyperCore 状态机提供安全高效的应用程序二进制接口 (ABI)。 [2] [3]
从HyperCore读取状态
HyperEVM上的智能合约可以使用一组专用的读取预编译合约从HyperCore查询实时数据。这使得去中心化应用程序可以直接在其链上逻辑中访问关键的协议信息。
- 预编译地址范围: 读取预编译合约的起始地址为
0x0000000000000000000000000000000000000800。 - 功能: 这些预编译合约使合约能够查询诸如永续合约头寸、现货余额、金库权益、质押委托、预言机价格和L1区块号等数据。
- 数据一致性: 返回的值保证与构建HyperEVM区块时的最新HyperCore状态相匹配。
- Gas成本: 调用读取预编译合约的成本为
2000 + 65 * (input_len + output_len)gas。 - 错误处理: 具有无效输入的调用,例如查询不存在的资产,将返回错误并消耗分配给调用帧的所有gas。
- 开发者资源: 这些读取预编译合约的完整功能在
L1Read.sol接口文件中详细说明。 [1]
写入操作到 HyperCore
为了在 HyperCore 上执行状态更改,例如下单或转移资金,HyperEVM 合约必须与 CoreWriter 系统合约交互。
- 合约地址:
CoreWriter合约位于固定地址0x3333333333333333333333333333333333333333。 - 机制: 智能合约调用
CoreWriter上的sendRawAction(bytes memory data)函数。然后,CoreWriter合约发出包含编码操作数据的日志。此日志随后由 HyperCore 层处理,然后执行请求的操作。 - Gas 成本: 对此合约的基本调用大约消耗 25,000 gas,典型的基本调用总共花费大约 47,000 gas。
- 延迟预防: 为了防止用户通过绕过标准 L1 内存池来获得延迟优势,通过
CoreWriter提交的order和vault transfer操作会有意地在链上延迟几秒钟。这些延迟的操作将在 L1 浏览器上显示两次:首先是作为“排队”交易,然后是作为最终的“HyperCore 执行”交易。 - 开发者资源: 合约的接口在
CoreWriter.sol文件中描述。 [1]
Token转移和链接
HyperCore和HyperEVM之间的原生资产转移集成旨在提供一种安全且用户友好的外部桥梁替代方案。
Core Spot and EVM Spot Tokens
该系统区分了生态系统内代币的两种表示形式:
- Core spot tokens: 这些是HyperCore的原生代币,直接用于交易所交易。
- EVM spot tokens: 这些是核心现货代币在HyperEVM层上的链接对应物,表示为标准的ERC-20合约。 [3]
链接过程
为了使代币在两个环境之间可转移,必须由其创建者(称为“现货部署者”)正式链接。该过程包括几个步骤,以确保一致性和安全性:
- 启动: 现货部署者启动该过程。
- 供应量核对: 部署者必须确保代币的总供应量在 HyperCore 和 HyperEVM 上提议的 ERC-20 合约上完全相同。
- 提案交易: 部署者将
spot deploy action发送到 HyperCore,提议将 HyperEVM 上的特定 ERC-20 合约与其 Core 现货代币配对。 - 所有权验证: 部署者必须证明 EVM 合约的所有权。该方法取决于部署者的帐户类型:
- 外部拥有帐户 (EOA): 个人必须通过发送具有特定指定 nonce 的交易来确认链接。
- 基于合约的部署者(例如,多重签名钱包): HyperEVM 上部署合约的第一个存储槽 (
slot 0) 必须包含 HyperCore 部署者的地址。
- 最终确定: 执行最终的
finalize操作,该操作锁定链接,并在 Core 现货资产和 EVM 现货代币之间正式建立连接。之后,可以通过 HyperCore 上的spotSend或 HyperEVM 上的标准 ERC-20 转移进行转移。
在 2025 年 3 月的公告发布时,技术文档承认了与此过程相关的风险,包括用户与未经验证的合约交互的潜在风险,以及如果部署者管理不当,可能出现的供应量不匹配的风险。 [3]
特例:HYPE 代币
HYPE 代币是 HyperEVM 层的原生 gas 代币,它遵循一种独特的、简化的转移过程,不需要正式的链接程序。
- HyperCore 到 HyperEVM: 当使用
spotSend操作从 HyperCore 发送 HYPE 时,它会自动成为 HyperEVM 上目标地址的原生 gas。 - HyperEVM 到 HyperCore: 要将 HYPE 移回交易层,用户将其发送到 HyperEVM 上的指定系统地址
0x222。此交易生成的事件日志会立即将用户的余额记入 HyperCore。 [3]
技术规格
HyperEVM 与 HyperCore 之间的交互受特定数据编码标准和一组定义的操作以及预编译合约的约束。
动作编码
发送到 CoreWriter 合约的动作必须遵循特定的字节编码格式,以便 HyperCore 正确解释和执行。
- 字节 1: 编码版本。这是一个 8 位整数,允许将来对动作格式进行向后兼容的升级。版本
1是当前标准。 - 字节 2-4: 动作 ID。这是一个三字节、大端无符号整数,用于标识要执行的特定动作(例如,下单、存入金库)。
- 剩余字节: 动作数据。此字段包含指定动作的原始 ABI 编码参数。 [1]
HyperEVM 的 HyperCore 操作
以下是从 HyperEVM 智能合约通过将相应的编码数据发送到 CoreWriter 合约,可以在 HyperCore 上触发的操作列表。
- 操作 ID 1:限价单
- 参数:
(uint32 asset, bool isBuy, uint64 limitPx, uint64 sz, bool reduceOnly, uint8 encodedTif, uint128 cloid) - 说明:
encodedTif指定了 Time-in-Force:1 代表Alo(全部成交或不成交),2 代表Gtc(取消前有效),3 代表Ioc(立即成交或取消)。cloid(客户端订单 ID)为 0 表示未提供。
- 参数:
- 操作 ID 2:金库转移
- 参数:
(address vault, bool isDeposit, uint64 usd) - 说明: 将 USD 抵押品转移到指定的金库策略或从其中转移。
- 参数:
- 操作 ID 3:代币委托
- 参数:
(address validator, uint64 wei, bool isUndelegate) - 说明: 将原生代币委托或取消委托给验证者进行质押。
- 参数:
- 操作 ID 4:质押存款
- 参数:
(uint64 wei) - 说明: 将抵押品存入质押合约。
- 参数:
- 操作 ID 5:质押取款
- 参数:
(uint64 wei) - 说明: 从质押合约中提取抵押品。
- 参数:
- 操作 ID 6:现货发送
- 参数:
(address destination, uint64 token, uint64 wei) - 说明: 将现货代币发送到另一个 Hyperliquid 地址。
- 参数:
- 操作 ID 7:USD 类转移
- 参数:
(uint64 ntl, bool toPerp) - 说明: 在用户的永续合约保证金账户和现货余额之间转移 USD 值。
- 参数:
- 操作 ID 8:完成 EVM 合约
- 参数:
(uint64 token, uint8 encodedFinalizeEvmContractVariant, uint64 createNonce) - 说明: 在某些合约的创建过程中内部使用。
- 参数:
- 操作 ID 9:添加 API 钱包
- 参数:
(address apiWalletAddress, string apiWalletName) - 说明: 管理 API 钱包。空名称将钱包指定为主代理。
- 参数:
- 操作 ID 10:按 oid 取消订单
- 参数:
(uint32 asset, uint64 oid) - 说明: 使用其唯一的订单 ID (oid) 取消特定订单。
- 参数:
- 操作 ID 11:按 cloid 取消订单
- 参数:
(uint32 asset, uint128 cloid) - 说明: 使用其客户端订单 ID (cloid) 取消特定订单。
- 参数:
- 操作 ID 12:批准构建者费用
- 参数:
(uint64 maxFeeRate, address builderAddress) - 说明: 批准交易构建者的最大费用率(以十分之一基点为单位)。
- 参数:
- 操作 ID 13:发送资产
- 参数:
(address destination, address subAccount, uint32 source_dex, uint32 destination_dex, uint64 token, uint64 wei) - 说明: 一种高级资产转移,可以选择指定子账户和 dex 路由。
- 参数:
- 操作 ID 14:反映 EVM 供应变化
- 参数:
(uint64 token, uint64 wei, bool is_mint) - 说明: 对于对齐的报价代币,此操作反映了从 EVM 层到 HyperCore 状态的供应变化(铸造/销毁)。
- 参数:
- 操作 ID 15:借贷操作(仅限测试网)
- 参数:
(uint8 encodedOperation, uint64 token, uint64 wei) - 说明:
encodedOperation为 0 表示Supply,为 1 表示Withdraw。用于与仅限测试网的借贷协议交互。
- 参数:
开发人员可以在 Hyperliquid 文档中找到这些操作及其技术规范的完整列表。 [1]
系统预编译合约
除了 CoreWriter 之外,还有几个位于固定地址的预编译合约,可以直接从 HyperEVM 访问 HyperCore 模块。
- 清算所 (
0x0...0001): 用于用户级别交易互动的主要合约,例如存入和提取资金,以及下达或取消订单。 - 预言机 (
0x0...0002): 用于从 HyperCore 的原生预言机模块查询资产价格信息。 - 金库 (
0x0...0003): 提供了一个与 Hyperliquid 的原生金库策略互动的接口。
这些预编译合约为 HyperEVM 上的开发者提供了一种标准化且 gas 高效的方法,以构建与核心交易功能深度集成的应用程序。 [2]