solana之程序派生地址 (PDA)
什么是Program Derived Addresses(PDA)
PDA只能被用来派生出这个地址的程序所签名,程序派生账户(PDA)是为了让特定程序可以控制一些账户而设计出来的。使用PDA,程序可以通过编程方法为一些地址进行签名,而不一定用到私钥。
- PDA是长度为32的字节串,看起来和公钥很像,但是并没有与之对应的私钥
- findProgramAddress可以针对一个programId(程序id)和seeds(种子)唯一确定的生成一个PDA。这里的seeds(种子)是一组指定的字节串
- PDA只能被用来派生出这个地址的程序所签名
程序派生地址 (PDA) 为Solana上的开发人员提供了两个主要用例:
-
确定性帐户地址: PDA 提供了一种机制,使用可选的“种子”(预定义输入)和特定程序 ID 的组合来确定派生地址。
-
启用程序签名: Solana 运行时使程序能够“签名”从其程序ID派生的PDA。
你可以将PDA视为一种从预定义的输入集&#x