Articulo
Tiempo estimado de lectura : 4 min

Entendiendo Solana PDA: Cómo Funciona la Dirección Derivada por Programa

Aprende qué es Solana PDA (Dirección Derivada por Programa), cómo funciona, cómo se genera y por qué es esencial para la gestión del estado en contratos inteligentes de Solana.

Entendiendo Solana PDA: Cómo Funciona la Dirección Derivada por Programa
Tabla de contenido

¿Qué es un PDA en Solana?

En el desarrollo de Solana, PDA significa Dirección Derivada del Programa.

Un PDA es un tipo especial de dirección de cuenta generada por un Programa de Solana utilizando reglas deterministas. A diferencia de las direcciones de billetera normales, un PDA no tiene una clave privada y no puede ser controlada directamente por los usuarios.

El PDA es uno de los mecanismos más importantes en Solana porque permite que los Programas gestionen de manera segura el estado y los activos en la cadena.

¿Por qué necesita Solana un PDA?

En Solana, los Programas son sin estado y de solo lectura.

Esto significa:

  • Los Programas ejecutan lógica
  • Las Cuentas almacenan datos

Un Programa no puede almacenar directamente los datos del usuario internamente como lo haría un tradicional.

servicio de backend.

Aplicaciones como:

  • Protocolos DeFi
  • Mercados de NFT
  • Sistemas de staking
  • Juegos en blockchain

todas necesitan cuentas para almacenar:

  • Balances de usuarios
  • Posiciones
  • Metadatos
  • Activos de vault

Las cuentas de billetera regulares son controladas por claves privadas, lo que crea problemas de seguridad y propiedad para los protocolos.

Por lo tanto, Solana introdujo cuentas PDA:

  • Sin clave privada
  • Controladas solo por Programas
  • Generadas de manera determinista

Cómo Funciona la PDA

Una PDA se deriva de:

  • Semillas
  • ID del Programa
  • Semilla Bump

Ejemplo:

const [pda, bump] = PublicKey.findProgramAddressSync(
  [
    Buffer.from("user"),
    wallet.publicKey.toBuffer(),
  ],
  programId
);

Aquí:

  • "user" es una semilla
  • wallet.publicKey es la dirección del usuario
  • programId identifica el Programa

El resultado es una dirección PDA determinista.

Siempre y cuando:

  • Las semillas se mantengan iguales
  • El ID del programa se mantenga igual

la PDA siempre será idéntica.

¿Qué es una Semilla de Bump?

Las direcciones de Solana son claves públicas de curva elíptica.

Sin embargo, los PDAs no deben tener claves privadas válidas.

Por lo tanto, Solana intenta continuamente valores de bump:

255 → 254 → 253 ...

hasta que encuentra una dirección que:

  • No puede generar una clave privada
  • Solo puede ser controlada por el Programa

Este valor se llama la semilla de bump.

Por qué los PDA no tienen claves privadas

Las direcciones de billetera normales se generan así:

Clave Privada → Clave Pública → Dirección

Pero la generación de PDA funciona de manera diferente:

Semillas + ProgramID → Hash → PDA

Como resultado:

  • Los PDA no tienen claves privadas
  • Los usuarios no pueden controlarlas
  • Los hackers no pueden recuperar una clave secreta

Solo el Programa asociado puede gestionarlas.

Cómo los Programas Controlan los PDA

Aunque los PDA no pueden firmar transacciones directamente, el tiempo de ejecución de Solana permite a los Programas probar la propiedad utilizando:

  • Semillas
  • Aumento
  • ID del Programa

Esto permite que los Programas "firmen" en nombre del PDA.

Como resultado, los PDA pueden:

  • Transferir tokens
  • Modificar el estado en la cadena
  • Realizar llamadas CPI
  • Emitir tokens

Casos de Uso Comunes de PDA

Vaults de DeFi

Muchos protocolos de DeFi utilizan cuentas PDA como vaults para:

  • Piscinas de liquidez
  • Activos de staking
  • Gestión de tesorerías

Metadatos de NFT

Los protocolos de NFT a menudo derivan cuentas de metadatos utilizando:

metadata + mint address

Esto crea PDAs de metadatos predecibles.

Proyectos como Metaplex dependen en gran medida de este diseño.

Administración del Estado del Usuario

Los protocolos suelen crear PDAs dedicadas para los usuarios:

User PDA
Position PDA
Stake PDA

Estas cuentas almacenan:

  • Posiciones del usuario
  • Datos de staking
  • Progreso en el juego
  • Puntos de recompensa

PDA vs Direcciones de Wallet Normal

TipoDirección de WalletPDA¿Tiene Clave Privada?SíNo¿Puede Firmar?SíNo¿Controlado Por?UsuarioPrograma¿Predecible?NoSíUso PrincipalPagosAdministración del Estado

PDA en Anchor

En el marco de Anchor, las PDAs se utilizan ampliamente.

Ejemplo:

#[account(
    seeds = [b"user", user.key().as_ref()],
    bump
)]
pub user_account: Account<'info, UserAccount>,

Ancla automáticamente:

  • Deriva PDA
  • Verifica bump
  • Valida cuentas

Este se ha convertido en el patrón de desarrollo estándar en Solana.

0 me gusta
Articulos mas visitados

Ordenados por sesiones unicas en los ultimos 30 dias.

Dirección de Cuenta de Solana Explicada: Entendiendo las Direcciones de Cartera SOL y Sus Usos 6 de mayo de 2026
Campos de Cuenta de Solana Campos de Cuenta de Solana 7 de mayo de 2026
Tipos de Cuentas de Solana: Comprendiendo el Núcleo de la Arquitectura de Solana 19 de mayo de 2026