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

能否从地址或签名反向解析公钥?Aptos是否有类似Solana的方案?

从地址/签名反向解析公钥:Solana vs Aptos方案对比

核心问题解答

1. Solana的实现逻辑

Solana的账户地址本质就是公钥的Base58编码形式,因此可直接通过SDK将地址解码为对应公钥实例,示例代码如下:

const Web3 = require('@solana/web3.js')
const pk = new Web3.PublicKey('HBL3WxvMBivZwwMFvMXXcX3haa13FJdscB8CTsZsuzXX')
console.log('pk=====', pk.toString())

这段代码的作用是把Base58格式的地址解码为PublicKey对象,该对象直接对应公钥本身,toString()会返回原始的Base58地址(即公钥的编码形式)。

2. Aptos的对应方案

Aptos的逻辑与Solana存在差异,分两种场景处理:

场景一:从地址获取公钥

Aptos的账户地址并非公钥的直接编码,而是认证密钥(Auth Key)的前16字节(认证密钥由公钥哈希生成,属于单向过程),因此无法直接从地址反向推导公钥。但可通过Aptos SDK或节点API查询链上账户数据,获取该地址对应的当前公钥:

使用Aptos TypeScript SDK的示例代码:

import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

// 初始化SDK
const config = new AptosConfig({ network: Network.TESTNET });
const aptos = new Aptos(config);

// 替换为目标地址
const accountAddress = "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef";

// 查询账户信息并获取公钥
async function getPublicKeyFromAddress() {
  const account = await aptos.getAccountInfo({ accountAddress });
  // account.public_key字段为当前公钥(Hex格式)
  console.log("公钥:", account.public_key);
}

getPublicKeyFromAddress();

场景二:从签名获取公钥

Aptos的交易签名可用于查询完整交易详情,交易中包含发送者地址,再通过上述地址查公钥的方式获取;另外,也可利用Ed25519签名特性,结合签名与对应交易原始数据直接恢复公钥:

使用SDK从交易签名获取公钥的示例:

import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

const config = new AptosConfig({ network: Network.TESTNET });
const aptos = new Aptos(config);

// 替换为目标交易签名
const transactionSignature = "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef";

async function getPublicKeyFromSignature() {
  const transaction = await aptos.getTransactionByHash({ transactionHash: transactionSignature });
  // 获取发送者地址
  const senderAddress = transaction.sender;
  // 通过地址查询公钥
  const account = await aptos.getAccountInfo({ accountAddress: senderAddress });
  console.log("发送者公钥:", account.public_key);
}

getPublicKeyFromSignature();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:52:17