Una moneda es un registro compartido
Empezamos a diseñar DCoin separando propiedad, comunicación y acuerdo. Las redes entre pares, los hashes y las firmas resuelven problemas distintos.
Diseñamos una pequeña criptomoneda y seguimos Bitcoin desde las transacciones firmadas hasta los bytes que guarda en disco e intercambia entre nodos.
¿Qué haría falta para construir una moneda cuyo registro no tuviera dueño?
DCoin es un experimento para responder a esa pregunta una decisión cada vez. Empezamos con un registro compartido de pagos, incorporamos la criptografía que permite verificarlos y abordamos el problema más difícil: elegir un historial cuando los participantes discrepan. Después dejamos atrás el modelo didáctico para leer bloques y tráfico de red reales de Bitcoin.
Las cinco partes conectan el modelo con la implementación: redes entre pares y firmas; transacciones y bloques enlazados por hashes; consenso e incentivos; un bloque decodificado byte a byte; y los mensajes que lo transportan por la red. Las ilustraciones combinan TikZ y gráficos SVG; los capítulos prácticos incluyen capturas reales de terminal y Wireshark. Los ejemplos binarios incorporan pequeños programas de Python que puedes ejecutar sin un nodo de Bitcoin.
Sin especulación, predicciones de precios ni lanzamiento de un token. Solo la ingeniería de un registro que debe resistir el desacuerdo.
Empezamos a diseñar DCoin separando propiedad, comunicación y acuerdo. Las redes entre pares, los hashes y las firmas resuelven problemas distintos.
Modelamos un pago de DCoin, seguimos sus entradas y su cambio, y conectamos las transacciones con una cabecera mediante un árbol de Merkle.
Las bifurcaciones son normales. Vemos cómo la prueba de trabajo compara historiales, de qué supuestos depende su seguridad y cómo se remunera a quienes mantienen el registro.
Decodificamos una cabecera histórica y su primera transacción. Desplazamientos, orden de bytes, prueba de trabajo y una salida coinbase de 50,05877600 BTC, con Python ejecutable.
Seguimos un mensaje de Bitcoin desde el flujo TCP hasta su contenido. Decodificamos verack, examinamos una respuesta de bloque y distinguimos qué demuestra una captura y qué solo sugiere.