Paso a paso: ¿cómo funciona el envío de 1 bitcoin?

He estado leyendo sobre cómo funciona BitCoin durante algunas semanas, y estoy tratando de entender cómo funciona la criptografía.

Así que explicaré lo que sé en este momento, ¿y si alguien pudiera aclararme? O proporcione enlaces a documentos que puedan explicarlo un poco mejor (he leído el bitcoin.pdf original, pero es un poco vago)

Guión:

Tengo una dirección (pk, sk).

Tengo una transacción anterior tx que contiene 1 bitcoin.

Creo una nueva dirección (pk', sk') a la que también quiero enviar el bitcoin.

Hash la nueva clave pública pk' con la transacción anterior tx tal que hash(pk', tx) = h1.

Firmo la transacción hash h1 usando mi clave secreta y algo de 'aleatoriedad' r. Signo "sk" (h1, r)

Entonces, ¿esto se transmite y un minero de Bitcoin lo coloca dentro de un bloque?


Además, si tuviera que enviar dos bitcoins de 0,5 a pk', haría lo siguiente...

tx1 y tx2 están asociados con 0,5 bitcoins.

Luego hago un hash de tx1 y tx2 con la nueva clave pública pk' tal que hash(tx1, pk') = h1 y hash(tx2, pk') = h2.

Luego firmo ambos hashes usando la siguiente función... Sign"sk"(h1, h2, r) o sería Sign"sk"(h1,r), Sign"sk"(h2,r'). (diferente aleatoriedad para cada firma)


Esta puede ser una pregunta tonta... pero me ha resultado difícil obtener algo de claridad sobre cómo funciona. También entiendo que algunos caracteres (como i y 0) no están incluidos en el hash. ¿Se refiere esto a la base 58?

Respuestas (1)

Probablemente le resulte útil leer detenidamente los artículos técnicos en Bitcoin Wiki. Aquí hay algunos puntos de partida basados ​​en sus preguntas.

https://en.bitcoin.it/wiki/Dirección

https://en.bitcoin.it/wiki/Transacción

https://en.bitcoin.it/wiki/Script

https://en.bitcoin.it/wiki/Red

https://en.bitcoin.it/wiki/Bloquear

Un concepto que no mencionó pero que es crucial para comprender cómo funciona a bajo nivel es el hecho de que las transacciones se verifican mediante la ejecución de Scripts (consulte el enlace anterior).

Por cierto, parece que estás bastante cerca de entenderlo... aunque no estoy seguro acerca de la "aleatoriedad" o "algunos caracteres no incluidos en el hash".
Estaba leyendo un documento llamado CommitCoin eprint.iacr.org/2011/677.pdf - se refiere a la capacidad de demostrar un compromiso con un mensaje al permitir que el verificador extraiga la clave secreta de dos transacciones - lo hace usando el mismo aleatoriedad dos veces en una transacción. He estado tratando de averiguar dónde está esta "aleatoriedad" en realidad, pero parece que no puedo encontrarla. Al hash le faltan algunos caracteres que encontré en en.bitcoin.it/wiki/Address#What.27s_in_an_address . Echaré un vistazo a esos enlaces ahora, gracias sin alquiler por responder.
usando la misma aleatoriedad y clave secreta en dos transacciones separadas******
@RentFree El algoritmo de firma ECDSA que utiliza Bitcoin requiere que se use un número aleatorio en cada firma. Hay posibles ataques si no son aleatorios. Además, la codificación Base58 de la clave pública no usa algunos caracteres, así como la base 10 no se usa Acomo un número, la base 58 no se usa i(porque se confunde demasiado fácilmente con 1).