Saltar al contenido principal

Prerequisitos

Antes de sumergirte en el desarrollo de Bitcoin, deberías tener conocimientos prácticos en las siguientes áreas. No necesitas ser un experto — pero tener una base sólida hará que todo lo demás sea mucho más fluido.

Programación​

Deberías sentirte cómodo con al menos un lenguaje de programación de propósito general. Los más comunes en el ecosistema Bitcoin son:

  • C++ — Bitcoin Core está escrito en C++. Esencial para el desarrollo de protocolo.
  • Python — Excelente para scripting, testing y prototipado rápido. Ampliamente usado en herramientas de Bitcoin.
  • JavaScript/TypeScript — La opción principal para wallets web, herramientas y apps Lightning.
  • Rust — Creciendo rápidamente en el espacio Bitcoin (BDK, LDK y muchos proyectos nuevos).
  • Go — Usado en herramientas de infraestructura como btcd, lnd.

Más allá de un lenguaje específico, deberías entender:

  • Estructuras de datos (arrays, hash maps, árboles, listas enlazadas)
  • Algoritmos (ordenamiento, búsqueda, recorrido de grafos)
  • Conceptos de programación orientada a objetos y funcional
  • Control de versiones con Git

Matemáticas y Criptografía​

Bitcoin depende fuertemente de la criptografía. Deberías entender:

  • Aritmética modular — La base de la mayoría de las operaciones criptográficas
  • Funciones hash — SHA-256, RIPEMD-160 y sus propiedades (resistencia a preimagen, resistencia a colisiones)
  • Criptografía de curva elíptica (ECC) — Bitcoin usa la curva secp256k1 para firmas digitales
  • Firmas digitales — Cómo funcionan ECDSA y las firmas Schnorr a alto nivel
  • Árboles de Merkle — Usados en los encabezados de bloques y verificación de transacciones

No necesitas un título en matemáticas, pero estar familiarizado con estos conceptos te ayudará a entender por qué Bitcoin funciona como lo hace.

Sistemas y Redes​

Bitcoin es un sistema distribuido. La familiaridad con estos temas será valiosa:

  • Sistemas operativos — Gestión de procesos, sistemas de archivos, gestión de memoria
  • Redes — TCP/IP, HTTP, protocolos peer-to-peer, sockets
  • Línea de comandos — Navegación por la terminal, shell scripting, gestión de paquetes
  • Linux/macOS — La mayoría del desarrollo de Bitcoin ocurre en sistemas tipo Unix
  • Bases de datos — Comprensión básica de almacenes clave-valor y bases de datos relacionales

Recursos Recomendados​