PDA (dirección derivada de programa)

Una dirección de cuenta de Solana derivada de forma determinista de un program ID y unas seeds, sin clave privada asociada.

Una Program-Derived Address (PDA) es una dirección de Solana que cae fuera de la curva Ed25519, lo que significa que no existe una clave privada para ella. Las PDAs se calculan hasheando un program ID junto con una lista de seeds y un bump de un byte hasta que el resultado queda fuera de la curva. Como solo el programa propietario puede autorizar transacciones para una PDA mediante invoke_signed, las PDAs son la forma estándar de que un programa mantenga estado y custodie activos sin delegar en una clave externa.

SolMask usa cinco PDAs por pool: pool (la cuenta de estado del programa con la configuración), vault (la cuenta SPL Token que custodia los depósitos), fee_vault (el acumulador de comisiones de protocolo), merkle_frontier (el lado de inserción del árbol de Merkle junto con el contador de hojas) y root_history (el buffer circular de raíces válidas recientes).

Las PDAs son deterministas: con el program ID y las seeds, cualquier cliente calcula la misma dirección. Eso permite que relayer, indexer y wallet coincidan sin coordinación previa sobre qué cuenta guarda el estado del pool.

Términos relacionados

PDA (dirección derivada de programa) · Glossary · SolMask