blockchain

Conceptos básicos de Bitcoin: Blockchain, Hashing y Minería... ¡Dios mío!

Seguimos desempolvando los archivos con esta pieza de Daz Bea, publicado por primera vez en Medium en julio de 2021. Se han realizado algunas ediciones menores para ayudar en la claridad... disfruten.

Tal vez sea nuevo en Bitcoin, o tal vez haya estado en la madriguera del conejo por un tiempo, pero nunca entendió exactamente lo que sucede detrás de escena, en la cadena de bloques. Espero develar el misterio detrás de blockchain, hashing, minería de bitcoin y libros de contabilidad distribuidos, todo en un artículo simple. Ponte el cinturón, tenemos mucho que superar.

Hashing SHA256

La red bitcoin utiliza el algoritmo SHA256 para realizar funciones hash. ¿Ya estás confundido? No se preocupe, esto puede ser muy complejo y muy por encima de mi nivel de pago, pero explicaré los conceptos básicos lo mejor que pueda.

Piense en hashing como la creación de una huella digital de un conjunto de datos. Los datos entran en el algoritmo (la entrada), el algoritmo hace su magia y escupe una serie de caracteres alfanuméricos (la salida). Lo que es realmente bueno sobre el hash es que no importa cuántos datos ejecutes a través del algoritmo, la salida siempre tiene la misma longitud, 64 caracteres hexadecimales para el algoritmo SHA256.

Figura 1 y XNUMX muestra la función hash SHA256 (a partir de aquí nos referiremos a esto como hash) del nombre “Daz”. “Daz” es la entrada y 3445748836aa04e53fd5de81c41c4a370f0cf52004659abf87920abc0da1bbaf es la salida…
Simple, ¿no?

Figura 1
Figura 1. Hash del nombre “Daz”

Ahora cambiaré la "D" mayúscula por una "d" minúscula (Figura 2) para demostrar que un simple y pequeño cambio en la entrada da como resultado una salida completamente nueva. Entrada = daz, salida = ae5e9de1ed5510933a86705cb253b3cbd0b0891e70217c7a64603869aeaac093. Como puede ver en nuestra nueva salida, en comparación con el original, los personajes son completamente diferentes. No hay un patrón discernible entre los dos.

captura de pantalla 2023 07 15 en 10.22.51 am
Figura 2. Hash del nombre “daz” con “d” minúscula

Como se mencionó anteriormente, el hash resultante tiene una longitud de 64 caracteres. Este es siempre el caso, sin importar el tamaño de los datos que coloquemos en el algoritmo. En la Figura 3, pego un artículo completo de Wikipedia sobre Fender Stratocasters en la entrada, la salida sigue siendo de 64 caracteres. Esta característica seguiría siendo válida si pasara todo el contenido de Internet a través del algoritmo, 64 caracteres cada vez.

hachís guardabarros
Figura 3. Hash de un artículo de Wikipedia sobre la Fender Stratocaster (fuente: https://en.wikipedia.org/wiki/Fender_Stratocaster)

Una característica de la función hash SHA256 es que si tuviéramos que volver a generar el mismo conjunto de datos, obtendríamos el mismo hash de esos datos todas y cada una de las veces. Esto es algo que se usa con frecuencia en todo el mundo para comparar una serie de grandes conjuntos de datos para garantizar su precisión. Comparar resultados hash es más fácil que comparar todo el contenido carácter por carácter. Esta característica es lo que forma la base de la cadena de bloques de bitcoin. Sumerjámonos en la siguiente pieza de ese rompecabezas... Bloques.

Bloques y Minería

Podemos usar la función hash SHA256 para comenzar a construir bloques de datos. Para cada bloque, tenemos la entrada (el conjunto de datos) y agregamos algunas características distintivas a esos datos, como un número de bloque, como ejemplo. Y lo ejecutamos a través de la función hash.

En la figura 4, podemos ver que tenemos algunos campos de datos como el bloque #, un nonce (hablaremos de esto pronto), y en este momento nuestro campo de datos está en blanco. El hash de estos campos de datos inclusivos es: 0000f727854b50bb95c054b39c1fe5c92e5ebcfa4bcb5dc279f56aa96a365e5a

bloque 1 hash
Figura 4. Ejemplo de bloque 1

Notará una característica distintiva de este hash, observe que los 4 caracteres principales son todos 0. Esto no es un accidente. Verá, el hash de salida del algoritmo SHA256 es en realidad un número muy grande. En la vida cotidiana estamos acostumbrados a utilizar un sistema numérico llamado base10. Lo que significa que nuestro sistema numérico es un sistema basado en los números del 0 al 9.

Hay varios sistemas numéricos diferentes, particularmente en informática. Base2 es otro sistema de numeración común, es posible que esté más familiarizado con el término binario. La base 2 o binaria es un sistema numérico comúnmente utilizado para la estructura base de los sistemas informáticos formado por los números 0 y 1.

La salida de los algoritmos bitcoin SHA256 está en Base16, también conocida como hexadecimal. Base 16 simplemente usa el sistema numérico base10 de 0 a 9, y extiende este sistema numérico con las letras a a través de f en minúsculas para crear un sistema numérico equivalente con valores del 0 al 15 ilustrados en la tabla 1.

figure2.26
Tabla 1: Sistema de numeración en base 16 (hexadecimal).

¿Por qué usar base16? Simplemente, usamos la base 16 en aras de la brevedad. Una forma de representar números extremadamente grandes mientras se reduce la cantidad total de caracteres.

Ahora, introduzcamos 2 nuevos términos relacionados con la minería de bitcoin. Dificultad y objetivo. La dificultad y el objetivo son formas en que el protocolo bitcoin controla la dificultad de encontrar bloques. Toco esto hasta cierto punto en uno de mis artículos anteriores sobre el Ajuste de dificultad, puedes leer eso esta página.

Por ahora, simplemente comprenda que el programa que estamos usando para esta demostración tiene un "objetivo" para hacer que la función hash de salida esté por debajo de un cierto número de destino, lo que hace que el nonce sea más difícil de encontrar. Para el protocolo bitcoin, el dirigidos se ajusta cada 2 semanas para regular una tasa de liberación de bloques promedio de 1 x bloque cada 10 minutos, a medida que se lanza más poder de cómputo a la red de Bitcoin, los bloques se resuelven más rápidamente, el protocolo mira hacia atrás a los bloques anteriores de 2016 y se ajusta la dificultad de extraer bloques al reducir el valor objetivo, lo que hace que el nonce sea más difícil de encontrar.

No nos adentraremos demasiado en esto en este artículo, lo guardaremos para otro momento. Hoy nos centraremos más en el nonce y en cómo construir una cadena de bloques.

Volviendo a nuestro ejemplo en Figura 4 y XNUMX. Ahora agreguemos algunos datos a este bloque. voy a agregar la frase "Hola Mundo". Una vez que agregue estos datos, notará que el fondo se ha vuelto rojo (Figura 5), ​​el programa no está contento con nuestro bloque ahora. Recuerde de la Figura 4 que el hash de ese conjunto de datos comenzó con 4 x 0 iniciales. Este programa en particular que estoy ejecutando requiere que el hash siempre debe estar por debajo de un valor objetivo con el hash de salida comenzando con 4 0 a la izquierda, ese número en su forma completa de base 16 es: 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

hola mundo bloque 1
Figura 5. Un cambio en los datos ha invalidado el bloque.

Cuando cambié los datos agregando "Hello World", el algoritmo SHA256 proporcionó un nuevo hash y, como podemos ver, mi nuevo hash no comienza con 4 0 iniciales, el hash de salida está por encima de nuestro valor objetivo y, por lo tanto, no es válido.

Hay una verdad fundamental en los algoritmos SHA256, en que no existe un conjunto de datos, que una vez incluidos en combinación con mis otros datos dentro del bloque, daría como resultado un hash de salida por debajo de mi número objetivo. De hecho, puede haber más de una respuesta, de hecho, es probable que haya muchas. Sin embargo, la dificultad (juego de palabras intencionado) es ¿qué datos podrían ser para satisfacer el problema?

Aquí es donde entra en juego la nuncio apostólico entra en juego. Si desglosamos mi conjunto de datos dentro del bloque, tenemos el número de bloque (1) y los Datos (Hello World) y un campo adicional llamado nonce (actualmente con un valor de: 72608). ¿Qué pasaría si hubiera un conjunto de datos que pudiera incluir como el valor nonce, que una vez agregado al resto de los datos, daría como resultado un hash que satisfizo el requisito de mi programa para que el hash de salida resulte en un número menor que 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Lo bonito de la criptografía es que no se puede calcular manualmente. Mi única opción es intentar adivinar arbitrariamente cuáles pueden ser esos datos. ¿Puedo cambiar el valor de nonce a 1? O cambiarlo a 2? o puedo intentar 2456395697 o 45628496902074?…….. Podría estar aquí por un tiempo.

O podemos usar el poder de mi computadora. Podemos usar la capacidad de la computadora para procesar rápidamente la información para comenzar a adivinar qué datos podríamos incluir en el campo "Nonce", que una vez ejecutados a través de la función hash, darían como resultado un hash de salida por debajo de 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.

Si presiono "Mío" en mi programa, mi PC comenzará a adivinar valores para el nonce, no hay otra forma de calcular este valor además de adivinar y verificar, adivinar y verificar, hasta que encontremos un valor de nonce que logre un resultado a continuación nuestro valor objetivo.

Una vez que se encuentra una solución, el programa verifica el resultado y el bloque se vuelve verde nuevamente. es feliz Este proceso puede tomar algún tiempo dependiendo de cómo difícil es encontrar un conjunto de datos que coincida. Esto, en términos simples, se conoce como minería. Estamos “excavando” a través de combinaciones de datos para encontrar una solución a un problema matemático. Estamos tratando de encontrar un valor del nonce, que cuando se combina con nuestros datos, produce un requisito predeterminado (en nuestro caso, un hash de salida por debajo del valor numérico base16 de 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff). Figura 6 y XNUMX muestra cómo se ve esto para nuestro ejemplo, esto tardó alrededor de 3 segundos en completarse en mi computadora de escritorio. El nonce era el número 24894.

hola mundo minado
Figura 6. Minería de un nuevo nonce para satisfacer una función hash con 4 x ceros a la izquierda.

¡Felicitaciones! Hemos minado nuestro primer bloque.

Servicios

Una cadena de bloques es…….espéralo…….una cadena de bloques. Es una cadena de bloques, como el primer bloque que extrajimos arriba, pero con algunas diferencias.

Se ingresa un conjunto de datos en el bloque 1, extraemos ese bloque para descubrir el nonce para satisfacer el requisito de dificultad (un hash de salida por debajo del valor objetivo). Esto produce un hash y nuestro bloque está completo. Luego creamos un nuevo bloque. Incluiremos un nuevo campo de datos en este nuevo bloque. Un campo de datos mediante el cual incluimos el hash de salida del bloque anterior como los datos de entrada en el nuevo bloque.

Podemos ver en Figura 7 y XNUMX, que tenemos una cadena de 2 bloques. El primer bloque es una copia de nuestros ejemplos anteriores, pero tenemos un nuevo campo etiquetado "Anterior" que contiene nuevos datos. El bloque 1 es nuestro bloque de génesis, contiene información arbitraria en el campo anterior. Se extrae el bloque y se obtiene nuestro hash de esos datos.

En el bloque 2, incluimos el hash de salida del bloque 1 como datos de entrada a nuestro nuevo bloque. Colocamos esos datos en el campo “Anterior”. Agregamos los nuevos datos que queremos que se incluyan en ese segundo bloque y extraemos ese bloque. Nuestros dos bloques están felices.

cadena de bloques x2 bloques
Figura 7. Construcción de una cadena de bloques. El hash de salida del bloque 1 se agrega al campo "Anterior" del Bloque 2.

Ahora regresemos y cambiemos algo en el bloque 1. Agregaré un punto "." a los datos Podemos ver ahora en la Figura 8 que toda la cadena de bloques no está contenta. Ambos bloques son rojos. He cambiado los datos y roto la cadena. El hash del bloque 1 ya no está por debajo del valor objetivo. Agregando el punto final “.” a los datos, ha resultado en un nuevo hash con un valor por encima de nuestro valor objetivo de 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y por lo tanto no es compatible con los requisitos del programa. Pero la salida del bloque 1 también es una entrada para el bloque 2, lo que también invalida el hash del bloque 2. Hemos roto la cadena.

blockchain agregar punto final
Figura 8. Un cambio en el Bloque 1 ha roto la cadena.

Re-minar el bloque 1 ha resuelto el programa para el bloque 1, pero nuevamente, los datos se han cambiado en el bloque 2 debido al cambio en el nuevo hash de salida del bloque 1, todavía no está satisfecho (Figura 9).

agregar parada completa mina 1
Figura 9. Volvimos a minar el bloque 1, pero el bloque 2 aún no está satisfecho.

Ahora también debemos volver a minar el bloque 2 para asegurarnos de que cumple con el requisito de dificultad. La Figura 10 muestra que nuevamente tenemos 2 x bloques felices una vez que hemos rehecho el trabajo para los 2 bloques. "Trabaja" es un término para describir el poder computacional que ejercemos a través del proceso de minería. Es posible que haya escuchado el término Prueba de Trabajo antes de lo cual se relaciona con este concepto de asegurar la cadena de bloques de bitcoin a través del proceso de gasto de energía... el trabajo.

agregar parada completa mina 2
Figura 10. Re-minado de bloques 1 y luego 2. El programa es feliz una vez más.

Tenga en cuenta la necesidad de minar los bloques en orden. Volver a minar el bloque 2 antes de que satisfagamos el trabajo necesario para el bloque 1 daría como resultado que tuviéramos que volver a minar el bloque 2 una vez más.

Ahora tenemos la base para nuestra cadena de bloques, se puede agregar un tercer y cuarto bloque, extrayendo cada bloque con los nuevos datos de entrada, con el hash de salida del bloque 3 que conduce a la entrada del bloque 4, y la salida del bloque 2 que conduce a la entrada del bloque 3 y así sucesivamente.

Si nuestra cadena de bloques tiene 4 bloques de largo ahora, y nuevamente intentamos cambiar los datos en el bloque 1. Invalidará toda la cadena. Entonces tendríamos que volver a minar el bloque 1, luego el bloque 2, luego el bloque 3... ¿ven a dónde voy con esto?

Ahora tenemos una buena comprensión de una cadena de bloques y las piezas que deben unirse para crear la cadena. Ahora, ampliemos este pensamiento y observemos una cadena de bloques distribuida.

Blockchain distribuido y consenso

Una de las cosas hermosas de la cadena de bloques de bitcoin es el libro mayor distribuido. Llegaremos al lado del "libro mayor" de las cosas en breve, por ahora, simplemente observemos una cadena de bloques distribuida para comprender el concepto.

Digamos que tengo una cadena de bloques que contiene una serie de bloques, cada bloque contiene algunos datos. Estos datos se han procesado y encadenado como hemos visto anteriormente para formar una cadena de bloques. Guardo una copia de esta cadena de bloques en mi computadora. ¿Qué pasaría si fuera necesario comparar notas con otra persona? ¿Qué pasaría si la integridad de estos datos fuera realmente importante para mí y quisiera asegurarme de que no hayan sido manipulados? ¿Qué pasaría si quisiera estar seguro de que los datos que tenía eran una versión verdadera y correcta de esa serie de datos? Sería útil si hubiera una copia exacta de esta cadena de bloques para comparar mi versión con... ¿Bien?

Aquí es donde entra en juego la belleza de la cadena de bloques distribuida. ¿Qué pasa si le doy a alguien más una copia de mi cadena de bloques para que pueda ir y comparar notas en cualquier momento? ¿Qué pasaría si escribiera un programa que hiciera eso por mí automáticamente? Podría comparar continuamente mi conjunto de datos con mis amigos y marcar cualquier discrepancia.

Para dar un ejemplo reducido. Digamos que tenía una cadena de bloques, solo 3 bloques de largo que contenía algunos datos realmente importantes en los que estaba trabajando. Podría asegurar estos datos en una cadena de bloques distribuida guardando una copia en casa (Figura 11 — Peer A) y dándole una copia a otra persona o simplemente guardando una copia en mi computadora en la oficina (Figura 11 — Peer B).

distribuido 1.
Figura 11. Ejemplo de cadena de bloques distribuida: el par A es el hogar y el par B es la oficina.

Si dejé mi computadora encendida y desbloqueada, y algún actor infame (están en todas partes) aparece y cambia los datos en el bloque 2 (¿puedes encontrar las diferencias?). Podrían volver a extraer cada bloque del 2 al 4 para que mi copia de la cadena de bloques se vea bien en términos de la cadena y las funciones de hashing para cada bloque. Sin embargo, cuando vuelvo a mi programa blockchain distribuido, ¿indica que mi versión de la verdad difiere de la de la computadora de mi oficina? Una comparación rápida muestra que, de hecho, el hashing ha cambiado desde el bloque 2 hasta el bloque 4 (Figura 12). Ambas cadenas se ven bien por sí solas, ambas son verdes, pero mi programa de computadora que compara cada versión distribuida, marcó la discrepancia entre los hash y me alertó de que no coinciden.

distribuido 2
Figura 12. Se cambiaron los datos en el Bloque 2 de la cadena de bloques de Peer A, los bloques se volvieron a minar. Los hashes del bloque 2 ahora son diferentes.

Pero, ¿qué versión es la correcta? Es imposible decirlo a menos que supiera qué versión específica había cambiado el atacante.

Sería lógico entonces que sería útil si tuviera otra versión para comparar. Mantendré una copia en casa (Figura 13a — Peer A), una copia en la oficina (Figura 13b — Peer B) y otra copia en casa de mi suegra (Figura 13c — Peer C).

consenso par a
Figura 13a: versión de Peer A de la cadena de bloques

consenso entre pares b
Figura 13b: versión de Peer B de la cadena de bloques

consenso entre pares c
Figura 13c: versión de Peer C de la cadena de bloques

Ahora, el nefasto actor ataca de nuevo, vuelven a cambiar los datos en la versión de PC de mi casa y vuelven a extraer todos los bloques en casa. Pero ahora tengo un mecanismo de consenso para comparar versiones. Tengo un sistema de votación. Tengo 3 copias de la verdad. El compañero A (Figura 14a) me dice una cosa y los otros 2 (Figura 14b) están de acuerdo en una versión diferente de la verdad.

sin consenso compañero a
Figura 14a: versión del par A (cambio realizado en el bloque 2)

sin consenso par b & c
Figura 14b — Peer B y Peer C están en consenso.

Puedo poner un nivel de confianza en este consenso asumiendo que el nefasto actor no habría sido capaz de:

  1. Conocer la ubicación física de mis blockchains
  2. Ser capaz de ingresar, cambiar los datos y volver a extraer 2 de los 3 conjuntos de esta cadena de bloques.

Si bien el escenario anterior es posible, no es muy probable.

Por lo tanto, puedo ignorar mi versión casera, hacer una copia de seguridad de esta versión usando las versiones de mi oficina y la versión de mi suegra, y estar seguro de que he recuperado LA versión CORRECTA de la verdad. Gracias a Dios por las suegras y la tecnología blockchain.

Ahora imagina que tengo decenas de miles de computadoras (nodos), distribuidas al azar en todo el mundo, ejecutando esta cadena de bloques (después de todo, esos datos son muy especiales para mí). Ese mal actor tendría que rastrear más del 10% de estos nodos y cambiar cada versión de ellos para poner en duda qué versión de la cadena era la verdad. Esto es altamente improbable, si no imposible. Así es exactamente como funciona la cadena de bloques de bitcoin. Una red de nodos distribuidos aleatoriamente, administrados por personas comunes, en software en sus computadoras o pequeños dispositivos de hardware dedicados y baratos, que almacenan una versión de la verdad y se mantienen honestos. Esto es lo que hace que Bitcoin sea descentralizado y sin confianza. No hay una sola parte que controle la cadena de bloques, está a cargo de la comunidad de participantes.

Pero Daz, ¿qué pasa con el propio bitcoin? ¿Qué pasa con las monedas? ¿Qué pasa con el libro mayor?

Bitcoins y el libro mayor

A partir del conocimiento que construimos sobre blockchain hasta ahora, comprender el libro mayor es tan simple como poder formatear el conjunto de datos con el que hemos estado jugando. Hasta ahora hemos estado jugando con un campo de texto. Y tan importante como la información es que "Daz es bastante genial", resulta que a nadie más le importa.

Pero lo que sería útil es si utilizáramos el "campo de datos" para comenzar a registrar algo útil como transacciones. Imaginemos que ahora tenemos una cadena de bloques distribuida entre muchos nodos, pero solo miraremos a los pares A y B para tener una idea, pero en realidad, hay miles de nodos que ejecutan la misma cadena de bloques. En nuestro ejemplo, hemos reemplazado el campo de texto libre de datos con una serie de campos de transacción. La Figura 15 muestra los bloques 4 y 5 de Peer A y Peer B y podemos ver que ahora hay una serie de datos transaccionales dentro de cada bloque.

libro mayor 1
Figura 15: Peer A y Peer B con datos transaccionales dentro de una cadena de bloques.

En el bloque 4 podemos ver que alguien llamado Rick envió una cantidad de $62.19 a alguien llamada Isla. Esta fue una transacción entre las 5 transacciones totales incluidas en ese bloque. El bloque de datos se procesa y extrae exactamente como hemos visto anteriormente.

Nuestro nefasto actor ataca de nuevo, su nombre es Sam y recibió $ 97.13 de Rick. Sam sabe un poco de codificación y decide que quiere robar algo de $$ de Rick, decide cambiar su versión de la verdad y cambia el monto de la transacción a $97,000.13. Vuelve a minar su versión (Figura 16), pero es inútil. La gran cantidad de nodos en la red ven que esta es una versión de la verdad que está fuera del consenso de la mayoría, esta versión es rechazada por la red. Buen intento Sam.

sam contra rick
Figura 16. Sam intenta estafar a Rick cambiando el monto de la transacción. Esto es rechazado por la red de consenso.

Podemos ver un montón de transacciones entre las partes, pero ¿cómo sabemos que Rick tenía $97.13 para gastar en primer lugar?

Coinbase — El bloque Génesis

Si ha estado en la comunidad de bitcoin por un tiempo, sin duda ha oído hablar del infame bloque de génesis. Satoshi Nakamoto, (el infame creador seudónimo de Bitcoin), extrajo el primer bloque que contenía una recompensa por bloque de 50 Bitcoin. Las recompensas en bloque forman la base de monedas de bitcoin, en otras palabras, para gastar monedas, primero deben ponerse en circulación. El bloque de Bitcoin Genesis en realidad se contó como el bloque "0" y los primeros 50 bitcoins en realidad no eran gastables, pero a partir del bloque 1 formaron la base de monedas.

Las monedas se introducen con todos y cada uno de los bloques en un programa de lanzamiento estrictamente controlado. Este cronograma de lanzamiento es de 1 bloque aproximadamente cada 10 minutos. Cada 210,000 2021 bloques, la recompensa del bloque se reduce a la mitad. Al momento de escribir este artículo en julio de 6.25, la recompensa por bloque es de 10 BTC cada ~ 18.7 minutos. Actualmente hay $ 21 millones de bitcoins en circulación, y se estima que el último bitcoin número 2140 millones se extrajo en el año XNUMX.

El bloque 1 estableció la base de monedas inicial, la extracción posterior de bloques adicionales se expande en la base de monedas a través de las recompensas del bloque. Mirando nuestro ejemplo, empiezo con el bloque número 1, esto forma mi base de monedas.

Si observamos nuestro ejemplo de cadena de bloques (Figura 17), podemos ver que me recompensé con $100 en nuestro primer bloque. En parte porque soy un buen tipo y en parte porque soy el que extrajo el primer bloque. Cuando nos mudamos al Bloque 2, empiezo a gastar mis monedas.

El programa siempre verificará que los resultados de mis transacciones (las monedas que gasto) no excedan mi saldo en la base de monedas. Incluyo los datos transaccionales en el bloque 2 y también extraigo ese bloque, soy recompensado con más monedas como recompensa de bloque para el Bloque 2.

A partir de aquí, la cadena de bloques sigue construyendo, manteniendo una copia distribuida del libro mayor entre los nodos y estos nodos hacen cumplir las reglas determinadas por el programa. El bloque 3 se incluye con más transacciones a medida que otros usuarios comienzan a realizar transacciones. Lucas también está minando, resolviendo el rompecabezas de dificultad para el bloque 3 y recibe la recompensa de bloque para ese bloque. Y una y otra vez la cadena crece.

coinbase 1
Figura 17. Ahora se agrega una base de monedas a la cadena de bloques

Como es coherente, si se modifican los datos, incluso mi único carácter, ya sea en los resultados de hash o en los datos transaccionales, si la cadena de alguien no está de acuerdo con la mayoría, simplemente se rechaza.

En términos de saldo, si trato de gastar más de mi saldo, la red rechazará la transacción. En nuestro ejemplo anterior de Sam tratando de cambiar la cantidad que Rick le envió, hay otra capa de seguridad incorporada llamada criptografía de clave pública y privada, que será el tema del próximo artículo. En realidad, es imposible que Sam edite esta entrada a menos que también tenga la clave privada de Rick.

Si intento cambiar el historial, la red lo rechazará comparando los hash de cada bloque. Los nodos son la fuente de la verdad y mantienen a todos honestos.

Los mineros lanzan poder computacional para resolver los acertijos criptográficos para cada bloque, son recompensados ​​​​con la recompensa del bloque por sus esfuerzos. La minería es una función necesaria de la cadena de bloques de bitcoin, sin minería, no hay valor ni seguridad.

Los mineros deben gastar energía para resolver los bloques, esta es una característica muy discreta de la seguridad de Bitcoin. A lo largo de este artículo, hemos hablado extensamente sobre la minería y el reminado de bloques donde se realizan cambios. Lo que es realmente importante tener en cuenta es la gran cantidad de poder computacional arrojado al protocolo Bitcoin todos y cada uno de los minutos de cada día. Si esta red enormemente vasta tardó 10 minutos en encontrar el último bloque, ¿cuánto tiempo le tomaría a un mal actor, actuando solo, encontrar un nonce alternativo para extraer un bloque por su cuenta, para cambiar los datos dentro? ¿Cuánta energía tendría que capturar un estado-nación para cambiar la historia de la cadena de bloques de Bitcoin? Y, junto con el punto anterior sobre las claves públicas y privadas que protegen el libro mayor, lo único que el mal actor podría lograr es gastar dos veces las monedas que ya tiene en su poder, y tendría que tener más poder computacional con la energía disponible para superar a todo el resto de la red. Esto es virtualmente imposible.

Esto también ayuda a explicar por qué Bitcoin es el único activo digital al que vale la pena dedicar su tiempo, gana solo en términos de efectos de red. Compare la tasa de hash de Bitcoin con cualquier otro protocolo y palidecen en comparación.

Para obtener más ejemplos de todas estas características, recomendamos leer nuestro libro B es para Bitcoin, disponible a través de Amazon. Lo llevamos a través de todo esto y mucho, mucho más, para una introducción profunda pero accesible a todo lo que necesita saber sobre Bitcoin.

Conclusión

Lo que hemos cubierto aquí es una versión simplificada de cómo funciona exactamente la red bitcoin. Libros mayores distribuidos, hashing, cadenas de bloques, nodos y mineros que trabajan en armonía para proporcionar una red monetaria abierta, libre de confianza, resistente a la censura, de código abierto y de libro mayor abierto. Nadie puede cambiar el libro mayor, nadie puede detener transacciones, nadie puede revertir transacciones y nadie puede gastar dos veces sus monedas. Es nada menos que brillante y está revolucionando por completo las finanzas globales.

El historial completo de transacciones está disponible para que cualquiera pueda consultarlo y verificarlo. Obviamente, a diferencia de nuestros ejemplos aquí hoy, la cadena de bloques de bitcoin no muestra las identidades de las personas que realizan transacciones, solo sus direcciones. Las direcciones serán el tema del próximo artículo, es un tema demasiado amplio para cubrir hoy.

En este artículo, utilicé la plataforma increíblemente interactiva construida por Anders Brownworth, quien enseñó blockchain en el MIT. Visita esta página, juegue y obtenga una comprensión más profunda de los conceptos que cubrimos en este artículo, obtendrá una comprensión mucho más profunda si juega con todo. Anders también tiene un video tutorial muy bueno con este contenido para ayudar a consolidar el aprendizaje.

En términos de adopción de bitcoin, si está leyendo esto, ya está por delante del resto en términos de adopción de bitcoin. La adopción institucional está llegando y llegando rápido, todavía tenemos tiempo para liderar a los grandes. A partir de mis artículos, estoy tratando de ayudar a la persona promedio a educarse sobre esta tecnología para que podamos beneficiarnos de ella. Nos beneficiaremos más, los muchachos en las trincheras, luchando por salarios. Comience a promediar el costo del dólar en bitcoin, compre un poco todos los días / todas las semanas. Trate a bitcoin como su cuenta de ahorros y suba la ola, es el dinero más difícil que jamás haya existido y crece exponencialmente cada día. (No solo con fines de asesoramiento financiero, educación y entretenimiento)

Feliz apilamiento, gracias por leer

Daz Bea
Twitter @dazbea

Lecturas recomendadas:
B es para Bitcoin
"Dominar Bitcoin"– Andreas M. Antonopoulos
Demo de blockchain –Anders Brownworth

Comente

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

editar imagen 3 4203740775
Cofundador, Director de Operaciones