Mastering Bitcoin
Mastering Bitcoin
Página 2 de 98

Andreas Antonopoulos
Mastering Bitcoin
ePub r2.0
Titivillus 18.04.2021
Título original: Mastering Bitcoin
Andreas Antonopoulos, 2018
Traducción: Comunidad
Ilustraciones: Comunidad
Diseño/Retoque de cubierta: Comunidad
Editor digital: Titivillus
ePub base r2.1


Índice de contenido
Cubierta
Mastering Bitcoin
1. Elogios a «Mastering Bitcoin»
2. Prólogo
Escribiendo el libro de Bitcoin
Audiencia Prevista
Convenciones usadas en el libro
Código fuente en GitHub
Ejemplos de Código
Agradecimientos
Edición Abierta y Atribución
Traducción
Glosario Rápido
3. Introducción
¿Qué es Bitcoin?
Monedas Digitales Antes de Bitcoin
Historia de Bitcoin
Usos de Bitcoin, Usuarios y Sus Historias
Primeros Pasos
Bitcoin Móvil
Comienzo Rápido
Obteniendo tus Primeros Bitcoins
Enviando y Recibiendo Bitcoins
Confirmaciones
4. ¿Cómo funciona Bitcoin?
Transacciones, Bloques, Minado, y la Cadena de Bloques
Visión General de Bitcoin
Comprando una Taza de Café
Transacciones Bitcoin
Formas Comunes de Transacción
Construyendo una Transacción
Consiguiendo las Entradas Correctas
Creando las Salidas
Añadiendo la Transacción al Libro Contable
Cómo se propaga
Minería de Bitcoin
Minando Transacciones en Bloques
Gastando la Transacción
5. El Cliente Bitcoin
El Núcleo de Bitcoin: La Implementación de Referencia
Ejecutando Bitcoin Core por Primera Vez
Compilando Bitcoin Core desde el Código Fuente.
Utilizando la API JSON-RPC de Bitcoin Core desde la Línea de Comandos
Obteniendo Información del Estado del Cliente Bitcoin Core
Encriptación y Configuración de la Cartera
Copia de Seguridad del Monedero, Volcado de Texto Plano y Restauración.
Direcciones de Cartera y Recepción de Transacciones
Explorando y Decodificando Transacciones
Explorando Bloques
Creando, Firmando y Enviando Transacciones Basadas en Salidas Sin Gastar
Clientes Alternativos, Bibliotecas y Kits de Herramientas
Libbitcoin y herramientas sx
pycoin
btcd
6. Claves, Direcciones, Carteras
Introducción
Criptografía de Clave Pública y Criptomonedas
Claves Privadas y Públicas
Claves Privadas
Claves Públicas
Criptografía de Curva Elíptica Explicada
Generando una Clave Pública
Direcciones Bitcoin
Codificación Base58 y Base58Check
Formatos de Claves
Formatos de claves privadas
Decodificar a partir de Base58Check
Codificar de hexadecimal a Base58Check
Formatos de claves públicas
Claves públicas comprimidas
Claves privadas comprimidas
Implementando Claves y Direcciones en Python
Carteras
Carteras No Deterministas (Aleatorias)
Carteras Deterministas (A Partir de Semilla)
Palabras Código Mnemónicas
Carteras Deterministas Jerárquicas (BIP0032/BIP0044)
Claves extendidas
Derivación de clave pública hija
Derivación reforzada de claves hijas
Números índice para derivación normal y reforzada
Identificador de clave de cartera HD (ruta)
Navegando por la estructura de árbol de la cartera HD
Experimentando con carteras HD usando Bitcoin Explorer
Claves y Direcciones Avanzadas
Claves Privadas Encriptadas (BIP0038)
Direcciones de Pago-a-Hash-de-Script (P2SH) y Multi-Firma
Direcciones multifirma y P2SH
Direcciones de Vanidad
Generando direcciones de vanidad
Seguridad de direcciones de vanidad
Carteras de Papel
7. Transacciones
Introducción
Ciclo de Vida de una Transacción
Creando Transacciones
Transmitiendo Transacciones a la Red Bitcoin
Propagando Transacciones sobre la Red Bitcoin
Estructura de una Transacción
Salidas de Transacción
Entradas de Transacción
Comisiones de Transacción
Añadiendo Comisiones a Transacciones
Encadenamiento de Transacciones y Transacciones Huérfanas
Scripts de Transacción y Lenguaje de Script
Construcción de Scripts (Bloqueo + Desbloqueo)
Lenguaje de Scripting
Incompletitud Turing
Verificación Sin Estado
Transacciones Estándar
Pago-a-Hash-de-Clave-Pública (P2PKH)
Pago-a-Clave-Pública
Multi-Firma
Salida de Datos (OP_RETURN)
Pago-a-Hash-de-Script (P2SH)
Tipos de Nodos y Roles
8. La Red Bitcoin
Arquitectura de Red Entre Pares (P2P)
La Red Bitcoin Extendida
Descubrimiento de Red
Nodos Completos
Intercambiando «Inventario»
Nodos de Verificación de Pago Simplificada (SPV)
Filtros Bloom
Filtros Bloom y Actualizaciones de Inventario
Reservas de Transacciones
Mensajes de Alerta
9. La Cadena de Bloques
Introducción
Estructura de un Bloque
Cabecera de Bloque
Identificadores de Bloque: Hash de Cabecera de Bloque y Altura de Bloque
El Bloque Génesis
Enlazando Bloques en la Cadena de Bloques
Árboles Merkle
Árboles Merkle y Verificación de Pago Simplificada (SPV)
10. Minería y Consenso
Introducción
Economía Bitcoin y Creación de Moneda
Consenso Descentralizado
Verificación Independiente de Transacciones
Nodos de Minería
Agregando Transacciones en los Bloques
Edad de Transacción, Comisiones, y Prioridad
La Transacción Generación
Recompensa de Coinbase y Comisiones
Estructura de la Transacción Generación
Datos Coinbase
Construyendo la Cabecera de Bloque
Minando el Bloque
Algoritmo de Prueba De Trabajo
Representación de la Dificultad
Objetivo de Dificultad y Recálculo de Dificultad.
Éxito en el Minado de un Bloque
Validación de un Nuevo Bloque
Montaje y Selección de Cadenas de Bloques
Minería y la Carrera de Hashing
La Solución de Nonce Extra
Pools de Minería
Pools gestionados
Ataques de Consenso
11. Cadenas Alternativas, Monedas y Aplicaciones
Una Taxonomía de Monedas y Cadenas Alternativas
Plataformas Meta Moneda
Monedas de Color
Mastercoin
Counterparty
Monedas Alternativas
Evaluando una Moneda Alternativa
Parámetros Monetarios Alternativos: Litecoin, Dogecoin, Freicoin
Litecoin
Dogecoin
Freicoin
Innovación de Consenso: Peercoin, Myriad, Blackcoin, VeriCoin, NXT
Peercoin
Myriad
Blackcoin
VeriCoin
NXT
Innovación en Minado de Doble Propósito: Primecoin, Curecoin, Gridcoin
Primecoin
Curecoin
Gridcoin
Monedas Alternativas Enfocadas hacia el Anonimato: CryptoNote, Bytecoin, Monero, Zerocash/Zerocoin, Darkcoin
Zerocoin/Zerocash
CryptoNote
Bytecoin
Monero
Darkcoin
Cadenas Alternativas No Monetarias
Namecoin
Ethereum
Futuro de las Monedas
12. Seguridad de Bitcoin
Principios de Seguridad
Desarrollando Sistemas Bitcoin de Forma Segura
La Raíz de la Confianza
Mejores Prácticas de Seguridad para el Usuario
Almacenamiento Físico de Bitcoins
Carteras de Hardware
Balance de Riesgo
Diversificación de Riesgo
Multifirma y Gobernanza
Supervivencia
Conclusión
Apéndice A: Comandos del Explorador de Bitcoin (bx)
Apéndice B: Propuestas de mejora para Bitcoin
Apéndice C: pycoin, ku, y tx
Apéndice D: Operadores, Constantes y Símbolos del Lenguaje de Script de Transacción
Sobre el autor
Notas