Stacked Markets
DeFi 衍生品中钱包原生签名是如何运作的
发布于 2026年5月31日 · 作者:Stacked Markets Research Team
什么是钱包原生签名
在中心化交易所,您的账户 只是数据库中的一行数据。您通过电子邮件和密码进行身份验证。交易所将您的资金存放在一个集合的汇总钱包中。当您下单时,您实际上是在向他们的服务器发送 HTTP 请求 ,并信任他们会履行订单、正确结算且不会冻结您的提现。
钱包原生签名在结构上完全不同。您的以太坊钱包持有私钥。该私钥会对授权特定操作的加密消息进行签名 。签名证明了您批准了所签名的确切内容——不多也不少。没有您的私钥,任何人无法伪造它。
在 DeFi 衍生品中,这意味着您的订单在到达任何撮合引擎之前 ,都已由您的私钥授权。协议接收已签名的消息,验证签名,然后处理订单。它不需要信任您的身份,数学逻辑处理了一切。
这就是 CEX 登录和钱包原生工作流 程之间的核心区别。前者依赖于交易所的身份验证层,后者依赖于加密证明。
EIP-712:可读签名提示背后的标准
早期的以太坊钱包要求用户签署原始十六进制数据。您会看到类似 0x3d602d80600a3d3981f3... 的字符串,并被要求批准它。几乎没有人能验证他们实际授权的内容。这就是盲签问题。< /p>
EIP-712 的引入解决了这个问题。该标 准定义了一种类型化结构化数据签名的格式,因此钱包可以显示人类可读的签名授权内容明细。
类型化 结构化数据
EIP-712 要求每条可签名消息都符合定义的架构。架构指定了字段名称、类型和值。订单可能会定义 asset(资产)、isBuy(是否买入)、 limitPx(限价)、sz(数量)、reduceOnly(仅减仓)和 nonce(随机数)等字段。当您签 名时,钱包会读取架构并以标签和值的形式呈现每个字段。
签名提示不再是一串十六进制代码,而是一个反映您实际批准内容的结构化表单。
域分隔
EIP-712 包含一个域分隔符——一个对应用程序名称、版本和链 ID 进行哈希编码的标识。这防止 了为一个协议创建的签名在不同的协议或网络上被重放。您为 Hyperliquid 主网生成的签名无法在其他地方提交或在测试网上重放。
如果没有域分隔, 恶意网站可能会捕获有效的签名并将其提交到您从未打算使用的地方。域分隔符关闭了这一窗口。
人 类可读的提示
由于架构已定义且域是明确的,像 MetaMask 或 Rabby 这样兼容的钱包会将签名请求呈现为可读的明细。您可以看到协议名称、每 个字段及其值。您可以在签名之前验证资产、方向、价格和数量。
这就是为什么钱包原生签名在执行点是可审计的。您不是在信任 UI 来描述您的操作,而是在阅 读您的私钥将要授权的实际负载。
Hyper liquid 如何使用 EIP-712 进行订单签名
Hyperliquid 的订单簿运行在其自己的 L1 上,但授权层使用 EIP-712。当您 下单时,参数被编码为类型化结构化数据负载,并呈现给您的钱包进行签名。您的钱包对负载进行签名。已签名的消息发送到 Hyperliquid 的撮合引擎,该引擎在处理 订单前会验证签名。
Hyperliquid 永远不需要您的私钥。它接收已签名的消息并根据您的公钥地址进行验证。签名有效,随机数正确——订单即被接受。
随机数与重放攻击防护
Hyperliquid 使 用随机数(nonce)来防止重放攻击。随机数是一个每个地址只能使用一次的数字。每个已签名的订单都包含一个随机数。一旦该随机数被成功提交所消耗,同一条已签名的消息 就无法再次提交。
如果没有随机数,捕获了有效签名订单的攻击者可以稍后重新提交——可能会重新执行您已经完成或取消的交易。随机数关闭了这一窗口。Hyperliquid 文档为直接在协议上构 建的开发者详细介绍了随机数机制。
API 钱包与代理地址
Hyperliquid 支持 API 钱包(有时称为代理钱包)——即您授权代表主钱包签署订单的独立以太坊地址。该授权本身就是来自您主钱包的已签名 EIP-712 消息,授予代理地址特定的权限。
这对自动化至关重要。您无需将主钱包的私钥暴露给机器人或策略层,而是生成一个单独的密钥对,将其授权为代理,并让自动化 程序使用该密钥签名。您的主密钥保持离线状态。
代理钱包具有范围受限的权限。它们可以下单和取消订单,但不能将资金提取到任意地址。这种签名权限与提现权限 的分离是一个有意义的风险边界。
交易执行前签名提示实际显示的内容
当您通过构建在 Hyperliquid 上的钱包原生界面提交订单时,您的钱包会在执 行前弹出签名请求。确切的呈现方式取决于您的钱包软件,但兼容 EIP-712 的实现会向您展示如下结构化信息:
- 协议/域 :应用程序名称和链上下文
- 资产:您交易的市场——ETH、BTC 等
- 方向:买入或卖出
- 限价:订单的价格边界
- 数量:基础资产的头寸大小
- 仅减仓:订单是否只能减少现有头寸
随机数:用于重放保护的序列号
您在签名之前会审查这些字段。如果价格或数量与您在 UI 中输入的不符,您可以 拒绝签名。在您批准之前,没有任何操作会执行。
这就是这里的核心安全属性。批准步骤是明确且可读的。没有后台调用会在您不知情的情况下提交订单。签名提示就 是那道门。
委托签名:它是什么以及何时使 用
对于自主交易,要求每次下单都进行手动钱包批准是可行的。但对于自动化策略,这是一个瓶颈。需要以毫秒级响应市场条件的策略无法等待 MetaMask 的弹出窗口。
委托签名解决了这个问题。您生成一个单独的密钥对,通过从主钱包签署委托消息将该地址授权为 Hyperliquid 上的代理,并让您的自 动化层使用代理密钥签署订单。代理密钥可以驻留在内存或安全区域中,供您的自动化程序访问,而无需暴露您的主密钥。
委托本身是来自您主钱包的一次性 EIP -712 签名消息。它指定了您授权的地址及其权限。Hyperliquid 的撮合引擎随后会识别该代理地址为代表您行事的授权方。
关于代理钱包,有几点 需要了解:
- 代理可以下单和取消订单。它不能发起向外部地址的提现。
- 如果代理密钥被泄露,攻击者可以操作您的账户进行交 易,但没有您的主密钥,他们无法将您的抵押品转移到任意钱包。
- 您可以随时通过主钱包的另一条签名消息撤销代理授权。
这种 架构使您可以将热签名密钥与冷托管密钥分开。控制提现的主钱包保持离线。控制订单流的代理钱包运行在您的自动化堆栈中。
Stacked Markets 如何呈现签名机制
Stacked Markets 是一个构建在 Hyperliquid 链上 CLOB 之上的非托 管交易终端。它不持有您的任何抵押品,不进行资金池化,并将您的订单路由通过 Hyperliquid 的撮合引擎。每一笔订单在执行前都需要明确的钱包批准。
< p>该界面围绕签名工作流程构建,而非事后添加。当您提交订单时,执行前会弹出通俗易懂的签名提示。该提示反映了您的钱包将要签署的实际 EIP-712 负载——资产、 方向、价格、数量。您批准或拒绝。没有您的签名,任何操作都不会执行。订单以 IOC(立即成交或取消)风格的限价订单路由,而非虚假市价单。签名提示中的 价格边界是您执行的实际限价。您签署的不是可以在任何价格成交的市价单,而是带有明确价格下限或上限的限价单,由 Hyperliquid 的 CLOB 处理撮合。
该终端还支持为运行自动化工作流程的交易者提供委托签名。您可以将签名者地址链接到您的主钱包,终端将代表您签署订单,无需为每笔交易手动批准。委托遵循上述相 同的 EIP-712 模式。您的主钱包授权签名者,签名者处理订单流,提现仍由您的主密钥把关。
Stacked Markets 在任何时候都不持有任何 资产。Hyperliquid 处理撮合、保证金和结算。您的盈亏和资金在链上均可验证。
自动化和跟单功能正在规划中,尚未上线。测试网地址为 testnet.stackedmarkets.com,供希望在主网上线前 熟悉签名工作流程的交易者使用。
您应该了解的真实风险
钱包原生签名比将托管权交给交易所更安全,但并非没有风险。
盲签风险。并非每个界面都能正确实现 EIP-712。有 些界面会呈现原始哈希并要求您签名。如果您无法阅读所签名的内容,则完全信任该界面。在批准任何内容之前,请确认您的钱包正在渲染结构化字段,而不是原始十六进制字符串。 如果您只看到哈希,请拒绝。
密钥丢失。您的私钥是唯一重要的凭证。如果丢失且没有备份,您的资金将永远丢失。没有任何支 持团队可以恢复它们。助记词存储和密钥管理完全由您负责。
网络钓鱼和域名欺骗。恶意网站可以模仿合法界面,并呈现看起来 正确但编码了不同参数的签名提示。在连接钱包之前,请务必验证浏览器中的域名。检查签名提示中的域分隔符是否与您打算使用的协议匹配。
代理 密钥泄露。如果您使用委托签名且代理密钥泄露,攻击者可以操作您的账户。他们无法提现到任意地址,但可以开仓和平仓并产生实际亏损。请将代理密钥保存在 安全环境中,如果怀疑泄露,请及时更换。
智能合约和协议风险。Hyperliquid 的 L1 和撮合引擎有其自身的 风险状况。协议漏洞、预言机故障和清算机制都可能以与您的签名设置无关的方式影响您的头寸。链上结算意味着您的盈亏可验证,但也意味着亏损是最终的。
UI 数据新鲜度。签署反映陈旧数据的提示是一个真实的执行风险。如果 UI 中显示的价格是陈旧的,您签名订单中的限价可能无法反映当前的 市场状况。Stacked Markets 会显示新鲜度和连接状态指标来标记这一点,但在签名之前,您应始终验证所操作的数据是否为最新。
常见问题解答
什么是 DeFi 衍生品中的钱包原生签名?您的私钥签署一条加密消息,授权每笔交易。协议在处 理任何订单之前会验证签名。您永远不会将资金的托管权交给交易所,没有您的密钥明确批准,任何操作都不会执行。
什么是 EIP-712,它 对交易者为什么重要?EIP-712 是以太坊的类型化结构化数据签名标准。它允许钱包显示人类可读的签名授权内容明细——资产、方向、价格、数量—— 而不是原始十六进制字符串。批准步骤变成了您在确认之前可以实际验证的内容。
Hyperliquid 如何防止已签名订单的重放攻击?通过随机数。每个已签名的订单都包含一个每个地址只能使用一次的随机数。一旦已签名消息被处理,同一条消息就无法再次提交。捕获了有效签名订单的攻击者无法 重放它。
什么是委托签名者或 API 钱包,我什么时候应该使用它?委托签名者是您授权代表主钱包签署订单的独立以太坊 地址。当运行需要无需手动批准即可签署订单的自动化策略时,它非常有用。代理可以下单和取消订单,但不能发起向外部地址的提现。控制提现的主密钥保持离线。
如果我签署了钓鱼提示,恶意网站能窃取我的资金吗?钓鱼网站可以呈现一个编码了与显示内容不同参数的签名提示。如果您签署了它,您就授 权了负载实际所说的内容。在连接钱包前验证域名,确认您的钱包正在渲染结构化的 EIP-712 字段而不是原始哈希,并拒绝任何您无法完全阅读的提示。
< strong>当我通过 Stacked Markets 交易时,它持有我的资产吗?不持有。Stacked Markets 是一个非托管终端。您 的抵押品保留在您的钱包中。订单通过 Hyperliquid 的链上 CLOB 路由,Hyperliquid 处理撮合、保证金和结算。Stacked Market s 在任何时候都无法访问您的资金。
钱包原生签名比 CEX 订单输入慢吗?对于手动交易,签名步骤每笔订单会增加几秒 钟。通过委托签名,您的代理密钥可以以编程方式签署订单,无需手动批准弹出窗口,从而消除了自动化工作流程的延迟。对于自主交易,增加的步骤是您为可验证授权所支付的明确 代价。
结论
钱包原生签名不是一个 UX 功能,它是将授权权交还给您的机制。EIP-712 使该授权 可读,随机数使其不可重放,代理钱包使其在不暴露主密钥的情况下与自动化兼容。
了解签名层的工作原理意味着您可以审计您批准的内容,识别异常情况,并构建符 合您实际风险承受能力的密钥设置。
如果您想在投入真实资金之前在实时环境中体验此机制,测试网地址为 testnet.stackedmarkets.com。
