You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否创建同时支持Ed25519与ECDSA密钥的Hedera账户?

实现单一Hedera账户支持ED25519和ECDSA双密钥签名

可行。Hedera支持通过**阈值密钥(Threshold Key)**配置,让单一账户接受多种密钥类型的签名,只需将阈值设为1,即可实现任一密钥单独完成签名操作。

操作步骤

  • 选定目标账户:从你已生成的两个账户中选一个作为最终的单一账户(也可新建账户,流程一致)。
  • 构建阈值密钥集合:将ED25519和ECDSA的公钥加入阈值密钥组,设置签名阈值为1(即任意一个密钥签名都有效)。
  • 更新账户密钥:通过Hedera SDK提交账户更新交易,将目标账户的密钥替换为上述阈值密钥。

代码示例(JavaScript SDK)

const { Client, AccountUpdateTransaction, PrivateKey, ThresholdKey } = require("@hashgraph/sdk");

// 初始化客户端(测试网示例,主网替换为对应节点)
const client = Client.forTestnet();
client.setOperator("你的目标账户ID", "目标账户当前的私钥");

// 加载两种类型的密钥
const ed25519PrivateKey = PrivateKey.fromString("你的ED25519私钥");
const ecdsaPrivateKey = PrivateKey.fromStringECDSA("你的ECDSA私钥");

// 创建阈值密钥组,阈值设为1
const thresholdKey = new ThresholdKey(1);
thresholdKey.add(ed25519PrivateKey.publicKey);
thresholdKey.add(ecdsaPrivateKey.publicKey);

// 发起账户更新交易
const updateTx = new AccountUpdateTransaction()
    .setAccountId("你的目标账户ID")
    .setKey(thresholdKey);

// 签名并执行交易
const txResponse = await updateTx.execute(client);
const receipt = await txResponse.getReceipt(client);
console.log("账户密钥更新状态:", receipt.status.toString());

注意事项

  • 确保目标账户有足够的HBAR支付交易手续费,否则交易会失败。
  • 妥善保管两个私钥,任意一个丢失不影响另一个的签名权限,但全部丢失会导致账户永久无法操作。
  • 测试网与主网的操作逻辑完全一致,仅需调整客户端的网络配置即可。

内容的提问来源于stack exchange,提问作者Ryan Arndt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:02:42