
Solana 通行密钥:加密钱包 UX 的未来
Solana 应用需要提供快速、安全且原生的加密钱包用户引导体验。Phantom 一直走在前列,但仍要求用户管理助记词。
通行密钥改变了这一点。
通行密钥基于 WebAuthn 标准和 FIDO2 协议,支持通过生物识别或硬件登录(例如 Face ID、Touch ID、Windows Hello、YubiKeys 等),无需存储或暴露私钥。
通行密钥使用加密密钥对取代传统密码。私钥保留在用户设备的安全硬件模块中,仅共享公钥。
大多数应用使用通行密钥实现无密码身份验证,而 Para 的用法不同:将其作为钱包会话的加密授权机制。
无需密码,无需助记词。只需使用用户设备内置的加密访问机制,即可提供更简洁的用户体验。
为什么通行密钥对 Solana 钱包 UX 很重要?
加密应用对无摩擦用户引导的需求从未如此强烈。
随着 Solana 移动应用、开发者活动和稳定币交易量快速增长,通行密钥支持让新用户能够更轻松、更安全地进行链上交易。
与 Para 的嵌入式钱包 SDK 结合后,通行密钥可以实现:
- 即时引导:无需安装,也无需助记词
- 持久会话:用户在多次访问和跨设备使用时始终保持连接
- 安全的密钥管理:密钥与设备绑定,并且能够抵御网络钓鱼
Solana 通行密钥支持与 SIMD-0075
大多数 WebAuthn 身份验证默认使用 P-256 曲线(secp256r1),这是一种广泛使用的椭圆曲线,旨在兼容各类浏览器和设备。P-256 曲线非常适合通用 Web 登录,但不适合 Solana。这是因为 Solana 使用另一种椭圆曲线 Ed25519(基于 Curve25519),它针对快速、确定性签名以及通过 SIMD(单指令多数据)指令进行高吞吐量验证进行了优化。
这种不匹配非常关键:P‑256 与 Ed25519 并不直接兼容。
目前,WebAuthn 通行密钥无法生成 Ed25519 签名,浏览器也没有提供通过安全隔区执行 Ed25519 签名的 API。因此,通行密钥无法直接签署 Solana 交易。
这一缺口使 Solana 支持通行密钥面临技术障碍。SIMD-0075(于 2024 年 5 月获批)再次确认 Ed25519 是 Solana 的首选曲线,并列举了确定性签名(无 nonce 风险)、SIMD 向量化和生态系统互操作性等优势。
2025 年 6 月,Solana 通过新的预编译程序支持了在链上原生验证 secp256r1(P-256)签名,让应用能够在链上验证通行密钥签名(例如确认用户登录或身份证明)。
但是,Solana 交易仍需要 Ed25519 签名,而 WebAuthn 通行密钥无法生成这种签名。这意味着仅靠通行密钥仍不足以完成钱包级签名。
Para 的基础设施正是为此而生:
Para 并不使用通行密钥签署交易,而是将其用作授权原语。通行密钥会解锁一个限定范围的会话,进而授予对 Para 的 MPC(多方计算)基础设施所管理的 Ed25519 兼容签名密钥的访问权限。
这一设计绕过了曲线不匹配问题,同时提供:
- 完整的 Solana 兼容性
- 使用通行密钥实现快速、原生的用户引导
- 安全的自托管和基于 MPC 的密钥管理
Para 通行密钥:不只是身份验证,更是授权
Para 于 2023 年推出了基于通行密钥的会话授权,现在它已成为其嵌入式钱包 SDK 的核心功能。
Para 不仅将通行密钥视为一种登录方式,还用它安全控制钱包操作的访问权限。
在 Para 的 SDK 中,用户通过 OAuth、电子邮件/密码等方式登录后,使用通行密钥授权钱包会话。将身份验证与钱包访问分离——身份验证用于确认身份,通行密钥用于访问钱包——为 Para 嵌入式钱包构建了更安全的基础。
向 Para 注册新通行密钥时会发生什么?
客户端(浏览器或操作系统级凭据管理器)会创建一个密钥对:
- 私钥存储在设备的安全隔区中(例如 TPM、Secure Enclave 或 Android Keystore)
- 公钥和凭据元数据会发送至服务器
通行密钥凭据元数据包括:
- 凭据 ID(每个通行密钥都有唯一 ID)
- 质询 nonce
- RP ID(你的应用域名)
- 加密算法(通常为 P-256)
创建新钱包时会发生什么?
当用户通过 Para 创建钱包时,系统会注册通行密钥并将其绑定到用户设备。具体来说,它会:
- 签署授权质询
- 确认用户控制该设备和钱包
- 建立可持久保留、带签名且范围受限的会话
然后,此会话会解锁以下敏感操作:
- 发送交易
- 访问加密且与会话绑定的密钥
- 批准智能合约交互
这正是 Para 方案的关键所在:
通行密钥本身不会直接用于签署 Solana 交易(交易必须使用 Ed25519)。
相反,Para 钱包 SDK 将通行密钥用作授权原语来解锁会话,然后授予限定范围的权限,以访问嵌入式钱包使用的 Solana 兼容 Ed25519 签名密钥。
此签名密钥位于 Para 安全的基于 MPC 的密钥基础设施中,并且符合 Solana 的签名要求。
实际上,通行密钥负责授权,钱包密钥则执行签名。这可以解锁发送交易、访问加密密钥和批准智能合约交互等敏感操作。
通过将身份与签名权限分离,Para 确保即使是高风险操作也由加密授权保护,而不只是依赖用户登录。
Para 通行密钥更进一步,让应用无需浏览器扩展或恢复短语即可直接嵌入钱包。
为什么通行密钥对 Solana 开发者很重要?
对于 Solana 开发者,Para 通行密钥意味着:
- 钱包直接嵌入你的应用,提高用户引导阶段的转化率
- 不再面临私钥或助记词丢失的风险
- 在保持 Solana 原生体验的同时,改善 UX 和安全性
通行密钥已在 Xelio 等应用中上线。这些应用通过短信,以零摩擦方式引导用户使用嵌入式钱包。
SWIG Smart Wallet 等其他项目也开始采用基于通行密钥的流程,实现安全的应用原生用户引导。
随着越来越多应用采用基于通行密钥访问的嵌入式钱包,我们将更接近一个通用钱包 UX 层——用户可以在应用、设备和会话之间无缝携带自己的身份与签名权限。这对于 Solana 这样的生态系统尤其重要,因为可组合性和应用链式交互正逐渐成为常态。
如何为 Solana 应用添加通行密钥
使用 Para 的钱包 SDK 将基于通行密钥的钱包集成到你的 Solana 应用中,不到五分钟即可完成。
具体操作步骤如下:
前提条件
首先,从 Para 开发者门户获取你的 Para API 密钥。
接下来,在项目根目录中创建一个 env.local 文件并添加你的密钥:
NEXT_PUBLIC_PARA_API_KEY=your_para_api_key_here
如果你没有使用 Next.js,请根据所用框架进行调整:
- 对于 Vite,使用
VITE_PARA_API_KEY - 对于 Node.js,引用
process.env.PARA_API_KEY
1. 使用 Para SDK 初始化会话
首先,使用 ParaProvider 封装你的应用,并在前端配置 Para SDK。这会准备好嵌入式钱包环境,并允许你创建或恢复用户会话。
<ParaProvider
paraClientConfig={{
env: Environment.BETA, // or Environment.PROD
apiKey: YOUR_API_KEY,
}}
externalWalletConfig={{
appName: YOUR_APP_NAME,
wallets: ["PHANTOM","GLOW","BACKPACK"],
walletConnect: { projectId: YOUR_WALLET_CONNECT_PROJECT_ID },
solanaConnector: {
config: {
endpoint: ENDPOINT_FOR_SOLANA_CONNECTION,
chain: SOLANA_CHAIN,
},
},
}}
paraModalConfig={{
oAuthMethods: ["GOOGLE","TWITTER","TELEGRAM"]
authLayout: ["AUTH:FULL","EXTERNAL:FULL"]
recoverySecretStepEnabled: true
onRampTestMode: true
}}
>
{REST_OF_APP}
</ParaProvider>2. 使用 Helius 签署并发送交易
会话激活后,你就可以通过 Para 的 SDK 和 Helius 签署并发送 Solana 交易。此签名器提供 @solana/kit JavaScript SDK 中的标准 signTransaction 方法。
const connection = new Connection(HELIUS_RPC_URL);
const solanaSigner = new ParaSolanaWeb3Signer(para, Connection);
const tx = new Transaction().add(...);
const signedTx = await solanaSigner.signTransaction(transaction);
await connection.sendRawTransaction(signedTx.serialize());使用 Para,你无需暴露私钥或安装浏览器扩展,即可同时获得通行密钥的 UX 和 Solana 原生链上签名能力。
结论
Solana 正在走向主流。
为了吸引更多用户,通行密钥、生物识别签名和无密码身份验证将减少使用阻力,推动更多人进入链上世界。
使用 Para 的 SDK,只需五分钟即可为你的 Solana 应用添加通行密钥支持。
其他资源
相关文章
订阅 Helius
及时了解 Solana 开发的最新动态,并在我们发布新内容时收到更新


