¿Cómo se pueden incrustar datos personalizados en los encabezados de los bloques?

Algunos administradores de grupos de minería colocan datos personalizados en encabezados de bloque, como oraciones . ¿Cómo lo hacen? ¿Dónde puedo ver esos datos por mí mismo?

Bastante justo, ¿podemos ahora obtener una respuesta de alto nivel que aclare que hay (al menos) dos formas en que las personas han puesto mensajes y otros datos personalizados en la cadena de bloques?
No puede incrustar NADA en el encabezado del bloque. Puede incrustar datos en el propio bloque. Los dos métodos son mediante la transacción coinbase o mediante una "transacción ficticia". Ninguno de los cuales puso nada en el encabezado del bloque.
Las personas han escrito mensajes en la cadena de bloques usando etchablock.com ; consulte blockexplorer.com/tx/… para ver un ejemplo.

Respuestas (4)

Cuando generas un bloque, la transacción de generación (la que crea nuevas monedas) tiene un atributo llamado coinbase . Es un valor especial en el que puedes poner lo que quieras para que el bloque sea impredecible para los demás (y esto es bueno).

Entonces, naturalmente, puede poner texto en este atributo, aunque la mayoría solo pone información relacionada con la minería que no es legible por humanos (nonce y extra-nonce).

Puede leer esta base de monedas utilizando un nodo de bitcoin parcheado que puede volcar bloques, por ejemplo, con los parches "dumpblock" o "getblockbyhash".

O simplemente puede imprimir cada cadena en la base de datos de blockchain directamente:strings -n 20 blk0001.dat

Ejemplo para el 1er bloque:

base de monedas:04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

Traducción ASCII:ᝣᝣᝣᝣᝣᝣᝣEThe Times 03/Jan/2009 Chancellor on brink of second bailout for banks

Esto es lo que usa el pool de Eligius; pone oraciones en este campo.

En realidad, esa no es la forma más eficiente de almacenar información en la cadena de bloques. Ver mi comentario.
Cierto, puede que no sea la forma más eficiente, pero definitivamente es la forma más fácil (tanto para poner mensajes como para leerlos).
Ese enlace pident.artefact2.com/b/0 está muerto. Me dice "[...] ya no está disponible en este servidor y no hay una dirección de reenvío. Elimine todas las referencias a este recurso".

Dan Kaminsky explicó su método y las motivaciones para insertar imágenes en la cadena de bloques en una charla en Black Hat USA 2011; las diapositivas relevantes (12 -20) de la presentación se pueden encontrar aquí.

Su método básico era crear transacciones con muchas salidas e incluir el mensaje en ASCII, en partes, en el campo de dirección de recepción de los scripts de salida. Puede ver los códigos hexadecimales correspondientes para el ASCII en su mensaje en la transacción sin procesar . Puede ver que el mensaje está interrumpido por los otros campos de transacción, por lo que solo puede ver los mensajes correctamente si mira con una herramienta (como cadenas ) que filtra los caracteres no imprimibles y muestra los caracteres imprimibles en líneas. Su transacción requirió una tarifa de bitcoin de .15, alrededor de $ 1.50 en ese momento.

¿Puede proporcionar un poco de información en la respuesta además del enlace?
sí, una pequeña explicación del método utilizado sería genial.

Hubo una charla muy interesante en Chaos Communication Camp este año sobre este tema. IIRC, puede almacenar información arbitraria en transacciones de bitcoin, ya que en realidad contienen "programas" que especifican cómo se debe verificar la transacción.

Puede encontrar información sobre la interfaz de 'secuencias de comandos' aquí . Consulte la sección 2.3 para obtener detalles sobre la incrustación de mensajes.

La pregunta es sobre incrustar datos en encabezados de bloque, no sobre transacciones.
@nmat: Bueno, si lo vas a tomar literalmente, entonces la respuesta es que no puedes. Al menos, no por ningún medio que sea remotamente práctico. (El encabezado es demasiado pequeño y la mayoría de los campos son obligatorios).

El hacker fue Dan Kaminsky , e incrustó esta imagen en la cadena de bloques.

En este momento, esto es solo una curiosidad tecnológica, no tiene implicaciones conocidas en los aspectos legales o técnicos de Bitcoin. No he leído su artículo, pero debe haber usado un minero modificado que busca hashes que comienzan con un prefijo preestablecido.

Aclaremos: La minería es el proceso de encontrar soluciones (o hashes) a una ecuación criptográfica. El primero en encontrar una solución obtiene su solución agregada a la cadena de bloques, el registro permanente de transacciones. Lo que hizo Kaminsky fue buscar un tipo particular de hash en lugar de cualquier hash aleatorio, que contenga la prueba incrustada. Una vez que se encontró esto (solo es cuestión de ejecutar un minero durante un período lo suficientemente largo), esta solución específica, con el texto incrustado, se agregó a la cadena de bloques.

¿Puedes escribir una oración o dos sobre lo que eso significa (es decir, cómo se incrusta una imagen en una lista de transacciones)? tratando de obtener una respuesta aquí que muestre que nadie tuvo acceso a la cadena de bloques para "cambiar los datos de la transacción" o algo similar.
@lemoginger: ¿mi respuesta extendida responde a su pregunta?
Creo que sí. De hecho, no entendí cómo funcionaba eso yo mismo :)
¿Estas seguro acerca de esto? Según esto lo hizo usando transacciones con direcciones de destino especiales
@nmat: no estoy seguro en absoluto, había asumido que así era como se hacía. (Madre de todos los errores). Por favor, publique otra respuesta.
sí, alguien, por favor, publique otra respuesta, esto es definitivamente incorrecto.