Flujo de transacción de bitcoin de extremo a extremo

Mi comprensión sobre la tecnología de cadena de bloques de bitcoin después de leer algunos artículos en los últimos días. No estoy seguro de que mi comprensión sea 100% correcta. Escribo para que alguien pueda corregirme, lo que también será útil para otros recién llegados.

Caso: A quiere enviar 10 BTC a B 

  1. A creó una dirección que es un hash (SHA 256) de varias palabras. Similar para B. Esta es la clave privada ; validador de propiedad de la cantidad de Bitcoin. Utilizando la clave privada, se genera la clave pública . Las aplicaciones de billetera ofrecen palabras clave que generan una dirección privada mediante el hash con SHA256 para que incluso la clave privada se pierda y pueda liberarse de las palabras clave secretas. Esta clave pública es conocida por todos, pero la clave privada es secreta y no debe compartirse. No es posible obtener la clave privada de la clave pública. La clave privada es la prueba matemática de que A tiene derecho a gastar cierta cantidad de BTC. Esto es probar la propiedad del dinero. Vamos, de alguna manera A tiene más de 10 BTC en este momento.

  2. A envía 10 BTC a la clave pública de B. La clave pública es la 'dirección de destino' de la transacción. El mensaje (A envía 10 BTC a B) se firma con la clave privada de A. Esta es la firma digital para la transacción. Este mensaje de transacción se transmite a todos (todos los nodos de la red blockchain). La firma digital confirma que el propietario real ha creado la transacción.

  3. Los mineros elegirán esta transacción junto con otras transacciones pendientes e intentarán crear el siguiente bloque de la cadena de bloques. Todas las transacciones están abiertas a todos. Para el caso de transacción de ejemplo, los mineros validarán la transacción si A realmente tiene más de 10 BTC al verificar la base de datos completa de la cadena de bloques (todos los bloques completos de la cadena). De lo contrario, la transacción será rechazada y no se agregará al bloque que intentará resolver el rompecabezas.

  4. Los mineros validarán el número de transacciones de las transacciones pendientes (las transacciones que aún no se agregaron a ningún bloque en la cadena de bloques). 

  5. Diferente minero puede tomar diferente número de transacciones válidas para formar un bloque. Pero el minero que gana el acertijo matemático , su bloque creado se agregará como el siguiente bloque a la cadena de bloques. Este acertijo es para obtener hash (SHA 256) según la dificultad actual (19 ceros iniciales del hash en formato hexadecimal). Este es un proceso de prueba y error para obtener el hash deseado que tiene 19 ceros. La función de salida hash se ve a continuación: 

SHA256 (marca de tiempo + hash del bloque anterior + MarkleRootHash (todas las transacciones válidas realizadas en este bloque) + nonce)

Los mineros cambian el valor de nonce (número entero) cada vez que intenta obtener el hash deseado de acuerdo con el formato de generación de hash mencionado anteriormente. Requiere una enorme cantidad de intentos, por lo tanto, una gran potencia informática para resolver el rompecabezas. Supongamos que un minero acaba de obtener hash con 19 ceros. Tenga en cuenta que la transacción "A envía 10 BTC a B" es válida y existe en este bloque de ejemplo cuyo hash acaba de encontrar con 19 ceros a la izquierda. 

  1. El minero obtuvo el hash deseado con un valor de nonce afortunado. Usando este valor nonce, cualquiera puede validar el hash de 19 ceros de salida; por lo tanto, es el bloque exitoso. Este valor nonce es en realidad la prueba de trabajo . Cuando la mayoría de los mineros validarán el nonce y obtendrán una prueba de trabajo exitosa, estará ganando el consenso . Luego, el bloque se agrega a la base de datos de blockchain. 

  2. Como este bloque contiene la transacción "A envía 10 BTC a B". Esta transacción también se completa con éxito. B obtiene 10 BTC. La propiedad de estos 10 BTC es de B, ya que B tiene la clave privada de la clave pública utilizada como "dirección" de la transacción de ejemplo. 

Respuestas (1)

Ampliamente correcto. Algunos detalles menores no están bien.

#1. Las claves privadas son simplemente números de 256 bits. Pueden crearse mediante un proceso aleatorio o, en las carteras modernas, como parte de una secuencia determinista jerárquica en la que cada clave se genera de forma repetible a partir de una semilla. Consulte https://learnmeabitcoin.com/technical/hd-wallets . Además, la dirección de la billetera no es la clave pública en sí, aunque se deriva de ella. El sitio vinculado anteriormente explica esto también.

#3. Una transacción se refiere explícitamente a transacciones anteriores, y son estas las que se verifican en busca de fondos suficientes (no "toda la cadena de bloques"). La nueva transacción también se ocupará de cualquier exceso de fondos.

Todavía necesito saber cómo todos los nodos/mineros verifican las transacciones. Por ejemplo, si un minero toma 100 transacciones y de ellas 1 transacción no es válida (la solicitud ha llegado por una cantidad mayor que el saldo) intencionalmente. Y alcanzó el hash deseado. Usando el valor de nonce, todos los demás mineros podrán validar el bloque para llegar a un consenso. Pero, ¿cómo todos los mineros llegaron a un acuerdo de que todas las transacciones en el bloque que se agregará son válidas?
Todas las transacciones son validadas individualmente por nodos. Si un minero transmite un bloque que contiene una transacción no válida, los nodos lo rechazarán. De hecho, las transacciones no válidas ni siquiera se transmiten por la red. El trabajo de validación lo realiza el cliente bitcoin que se ejecuta en todos los nodos.
" 1 transacción no es válida (la solicitud ha llegado por un monto mayor que el saldo)" Nadie más que el propietario realiza un seguimiento o se preocupa por los saldos. Otros nodos (carteras, mineros, etc.) solo se preocupan de que las "monedas" individuales (entradas de transacción) no se hayan gastado y que se cumpla el script de gasto (prueba efectiva de propiedad).