Wallets y Gestión de Claves
Las wallets (billeteras) son herramientas que permiten interactuar con la blockchain: almacenan claves privadas, firman transacciones y muestran balances. Comprender cómo funcionan es crucial tanto para usuarios como para desarrolladores.
¿Qué es una Wallet?
Una wallet NO almacena criptomonedas. Las criptomonedas siempre están en la blockchain. Lo que la wallet almacena es la clave privada que da acceso a esos fondos:
Concepto erróneo: Wallet = Caja fuerte con monedas dentro
Realidad: Wallet = Llavero con la llave de tu caja en la blockchain
Tu "balance" es simplemente la suma de todas las
transacciones recibidas - transacciones enviadas,
registradas en la blockchain.
Tipos de Wallets
Hot Wallets (conectadas a internet)
Tipo Ejemplo Seguridad Conveniencia
──────────────────────────────────────────────────────────────────
Browser Extension MetaMask Media Muy alta
Mobile App Trust Wallet Media Alta
Desktop App Exodus Media Alta
Web Wallet MyEtherWallet Baja Alta
Cold Wallets (offline)
Tipo Ejemplo Seguridad Conveniencia
──────────────────────────────────────────────────────────────────
Hardware Wallet Ledger, Trezor Muy alta Media
Paper Wallet Claves impresas Alta* Baja
Air-gapped PC sin internet Muy alta Baja
Generación de Claves
Entropía y aleatoriedad
La seguridad de todo el sistema depende de la calidad de la aleatoriedad al generar la clave privada:
Clave privada = 256 bits aleatorios
Espacio de claves: 2²⁵⁶ posibilidades
= 1.16 × 10⁷⁷ combinaciones
Para contexto:
- Átomos en el universo visible: ~10⁸⁰
- Es computacionalmente imposible adivinar una clave
Frases Mnemónicas (BIP-39)
En lugar de recordar una clave privada hexadecimal, se utilizan 12 o 24 palabras en inglés:
Ejemplo de frase mnemónica (12 palabras):
"abandon ability able about above absent
absorb abstract absurd abuse access accident"
Proceso:
1. Generar 128-256 bits de entropía
2. Agregar checksum
3. Dividir en grupos de 11 bits
4. Cada grupo = índice en wordlist de 2048 palabras
5. Las palabras → seed (512 bits via PBKDF2)
6. Seed → múltiples claves privadas (HD wallet)
HD Wallets (BIP-32/BIP-44)
Las Hierarchical Deterministic wallets generan un árbol de claves a partir de una sola seed:
Seed (frase mnemónica)
│
└── Master Key
│
├── Account 0 (Ethereum)
│ ├── Address 0 ← m/44'/60'/0'/0/0
│ ├── Address 1 ← m/44'/60'/0'/0/1
│ └── Address 2 ← m/44'/60'/0'/0/2
│
├── Account 1 (Bitcoin)
│ ├── Address 0 ← m/44'/0'/0'/0/0
│ └── Address 1 ← m/44'/0'/0'/0/1
│
└── Account 2 (Polygon)
└── Address 0 ← m/44'/60'/1'/0/0
Derivation Path
m / purpose' / coin_type' / account' / change / index
m/44'/60'/0'/0/0 → Primera dirección Ethereum
m/44'/0'/0'/0/0 → Primera dirección Bitcoin
m/44'/60'/0'/0/1 → Segunda dirección Ethereum
44' = BIP-44
60' = Ethereum (coin type)
0' = Primera cuenta
0 = Direcciones externas
0 = Primer índice
MetaMask: La Wallet del Desarrollador
MetaMask es la wallet más utilizada para desarrollo en Ethereum. Funciona como extensión del navegador y provee:
Funcionalidades principales:
- Gestión de cuentas (múltiples direcciones)
- Conexión a diferentes redes (mainnet, testnets, local)
- Firma de transacciones
- Interacción con DApps
- Inyección de window.ethereum en el navegador
Redes configurables:
- Ethereum Mainnet (chainId: 1)
- Sepolia Testnet (chainId: 11155111)
- Localhost (chainId: 1337)
- Custom RPC (cualquier EVM)
Seguridad de Wallets
Mejores prácticas
✓ HACER:
- Respaldar la frase mnemónica offline (papel, metal)
- Usar hardware wallet para cantidades significativas
- Verificar direcciones antes de enviar
- Usar wallets de prueba para desarrollo
- Revocar aprobaciones de contratos innecesarias
✗ NO HACER:
- Guardar la seed phrase digitalmentey (foto, email, cloud)
- Compartir la clave privada jamás
- Conectar la wallet a sitios desconocidos
- Usar la misma wallet para desarrollo y fondos reales
- Ignorar alertas de phishing
Multisig Wallets
Las wallets multifirma requieren M de N firmas para ejecutar transacciones:
Ejemplo: Wallet 2-de-3
3 propietarios: Alice, Bob, Carol
Se necesitan 2 firmas para cualquier transacción
Alice + Bob ✓ → Transacción aprobada
Alice + Carol ✓ → Transacción aprobada
Solo Alice ✗ → Necesita otra firma
Usado por:
- DAOs para gestionar tesorerías
- Empresas para fondos corporativos
- Gnosis Safe es la implementación más popular
Interacción Programática
// Conectar MetaMask desde una DApp
async function connectWallet() {
if (typeof window.ethereum !== 'undefined') {
const accounts = await window.ethereum.request({
method: 'eth_requestAccounts'
});
console.log('Conectado:', accounts[0]);
return accounts[0];
}
throw new Error('MetaMask no instalado');
}
// Obtener balance
async function getBalance(address) {
const balance = await window.ethereum.request({
method: 'eth_getBalance',
params: [address, 'latest']
});
// balance está en Wei (hex)
const ethBalance = parseInt(balance, 16) / 1e18;
return ethBalance;
}
Resumen
Las wallets son la interfaz entre el usuario y la blockchain. Almacenan claves privadas, no criptomonedas. Las HD wallets permiten generar múltiples direcciones desde una sola seed phrase. La seguridad de la wallet es la seguridad de tus fondos: respaldar la seed phrase offline y usar hardware wallets para cantidades importantes son prácticas esenciales.