Informe técnico de Bitcoin: detalles de la firma digital utilizada en las transacciones

He leído el documento técnico varias veces, solo quiero saber exactamente qué quiso decir Satoshi con 'firmar digitalmente un hash de la transacción anterior y la clave pública del próximo propietario y agregarlos al final de la moneda'.ingrese la descripción de la imagen aquí

Olvídese de todo lo que sabe sobre Bitcoin, imagine que está leyendo esto por primera vez a fines de 2008 y solo ha leído el resumen y las secciones 1 y 2. ¿Quiere decir:

  1. Obtenga el hash de la transacción anterior, Prev_Hash
  2. Obtenga la clave pública de a quién le estamos transfiriendo monedas, Pub_Key
  3. Concatenar estas dos cadenas, New_String = concat(Prev_Hash,Pub_Key)
  4. Firme digitalmente New_String usando cualquier algoritmo (sin mención de detalles en el documento técnico)

O

  1. Obtener transacción anterior, Prev_Tx
  2. Obtenga la clave pública de a quién le estamos transfiriendo monedas, Pub_Key
  3. Concatene estas dos cadenas, New_String = concat (Prev_Tx, Pub_Key)
  4. Hash New_String , Hashed_New_String
  5. Firme digitalmente Hashed_New_String usando cualquier algoritmo

O cualquier otra forma de hacerlo, como firmar un hash de Prev_Tx y luego firmar también un hash de Pub_key y tener 2 firmas.

Quiero explorar la evolución de Bitcoin de forma cronológica tratando de ponerme en el lugar de las personas que trabajan en él desde el principio, por lo que quiero saber qué significó realmente Satoshi. Parece que no puedo encontrar nada en línea

Creo que el primero sería mejor ya que cuando lo descifras te queda una cadena y luego, si sabes, por ejemplo, los primeros 32 bytes se refieren a Prev_Hash (porque es la salida de SHA_256), entonces puedes simplemente dividir esto cadena en 2 y la primera cadena sería una huella digital de la transacción anterior a la que se refiere y la segunda cadena sería la clave pública a la que se está transfiriendo. Esto es todo lo que necesitaría un minero para validar una transacción, ¿no es así?
Además, ¿exactamente qué se incluye en cada transacción, 3 cosas? Pub_Key del próximo propietario, hash de la transacción anterior y la firma? [Pub_Key, Hash(Prev_Tx), Sig]? Entonces, cuando un minero recibe esta tupla, mira la segunda entrada para obtener "Tx_id" y la encuentra en la cadena de bloques, luego usa la primera entrada de Prev_Tx para descifrar el Sig (tercera entrada) y luego puede usar las primeras 2 entradas y hacer: concat (Prev_Hash, Pub_Key) y verifique si ambos son iguales?
"TX_id" se define como el hash de la transacción...
Puede (y debe) editar su pregunta en lugar de agregar comentarios. En los sitios web de stackexchange, los comentarios son temporales y desechables. Los comentarios son principalmente para ayudar a un autor a mejorar una pregunta o una respuesta.
Ah, está bien, lo haré en el futuro, es mi primera vez aquí, así que no estaba al tanto.

Respuestas (1)

Según algunos de sus otros escritos, Satoshi tenía un prototipo funcional cuando escribió el documento técnico¹. El documento técnico brinda una descripción general de alto nivel de cómo funciona Bitcoin y, con ese fin, Satoshi simplificó algunos de los conceptos.

Por ejemplo, "Definimos una moneda electrónica como una cadena de firmas digitales". es una simplificación, porque las transacciones pueden tener múltiples entradas y múltiples salidas. La estructura resultante es un gráfico acíclico dirigido, no una cadena.

Asimismo, la casilla "Hash" que se compone de la transacción anterior y la clave pública del destinatario es una simplificación. El primer tipo de salida, Pagar a clave pública (P2PK), bloqueó los fondos a la clave pública del destinatario (literalmente: <pubkey> OP_CHECKSIG). Mientras tanto, las entradas identifican qué "moneda" están gastando al hacer referencia al punto de salida de la salida de la transacción, txid:voutcompuesto por la identificación de la transacción y la posición en la lista de salida. Para firmar, creamos un resumen de toda la transacción para confirmar las entradas y salidas exactas, así como otros detalles de la transacción. Este hash de la transacción a firmar, el sighash, luego se usa como entrada para el algoritmo de firma, junto con la clave privada del remitente. Como puede ver, el documento técnico no proporciona suficiente información para deducir la implementación real.

El documento técnico hace un buen trabajo al explicar Bitcoin a grandes rasgos, pero los detalles reales de la implementación solo se hicieron evidentes cuando se publicó el software en sí. Aquí hay, por ejemplo, una copia del código base del lanzamiento original anotado por Jeremy Rubin.


¹ Un documento técnico es un documento destinado a brindar una descripción general concisa de algo, generalmente para atraer a los lectores a obtener más información sobre un producto o propuesta. (¡Y funcionó! Lo leí hace unos nueve o diez años, todavía estoy fascinado). Sin embargo, es un documento de marketing. No pretende ser un documento técnico exhaustivo. No entiendo por qué la gente actúa como si fuera alguna forma de verdad última (en este sentido, vea, por ejemplo, esta fe de erratas ).

Gracias por tomarse el tiempo para responder. Estaba tratando de ponerme en la mentalidad de alguien que hubiera estado en la lista de correo en ese momento y hubiera visto este documento técnico. Si vio el correo electrónico y el documento técnico de Satoshi en 2008 y solo leyó el resumen y la introducción y luego leyó la sección 2 (transacciones), ¿cómo habría interpretado lo que estaba diciendo? ¿Le responderías y le dirías que sea un poco más preciso? ¿O crees que deliberadamente lo dejó un poco vago como si dijera 'la implementación podría ser muy buena, pero esta es la esencia'?
Además, ¿sabe dónde encontraría una copia del código original? No creo que su prototipo se haya lanzado públicamente, no estoy seguro, ¿dónde encontraría la versión más antigua?
@Kryptonite: agregué un enlace a una copia del código fuente publicado originalmente.
Oh, solo viendo tu comentario anterior. He agregado un comentario sobre cómo percibo el documento técnico.
De acuerdo, eso ayudó a aclarar algunas cosas, especialmente la errata a la que se vinculó; eso es exactamente lo que buscaba, gracias.
Genial, me alegra saber que fue útil.