Tabla de contenido:

Cómo funciona realmente la cadena de bloques
Cómo funciona realmente la cadena de bloques

Video: Cómo funciona realmente la cadena de bloques

Video: Cómo funciona realmente la cadena de bloques
Video: Las 15 Mejores Tropas De Combate Femeninas Altamente Entrenadas En El Mundo 2024, Abril
Anonim

Esta publicación está destinada a contarles a todos por qué se inventó la cadena de bloques, cómo funcionan las criptomonedas y por qué es el sistema más hermoso de los últimos años desde el punto de vista de la lógica.

De inmediato te advertiré que debajo del corte hay una ENORME hoja de texto y si no estás listo para "cerrar" la pregunta sobre el tema de las criptomonedas de una vez por todas, agrega una entrada a tus favoritos ahora mismo y reserva tiempo)

Blockchain es una tecnología, nueva, extraña, incomprensible, pero parece estar cambiando el mundo, en contraste con estas historias tuyas. Al parecer, ella está con nosotros durante mucho tiempo.

Este post está escrito como si se lo contaran a personas que están muy lejos de las computadoras y las conocen solo superficialmente, por ejemplo, imagina que se estaba preparando para tus padres. Incluso puedo decírselo a mis compañeros de humanidades y estar seguro de que lo entenderán.

Y Oleg nos ayudará a todos en este difícil asunto. ¡Reunirse!

Si no te gusta Oleg, lo echaré.

Lo básico: ¿por qué necesitamos blockchain?

La cadena de bloques se describió en el artículo de Satoshi Nakamoto "Bitcoin: un sistema de efectivo electrónico de igual a igual". Allí, en solo ocho páginas, el autor describió los conceptos básicos de la criptomoneda Bitcoin, que se basó en el algoritmo Blockchain.

Lista que no se puede cambiar

Blockchain - una cadena de bloques o, en otras palabras, una lista enlazada. En dicha lista, cada registro siguiente se refiere a uno anterior, y así sucesivamente en la cadena hasta el primero. Como los vagones de un tren, cada uno arrastra al siguiente. En cuanto a las listas, hay un buen artículo de Nikita Likhachev en TJ, donde se explica lo mismo para los completamente novatos. Las analogías se toman en parte de allí.

Pongamos un ejemplo

Los amigos de Oleg constantemente le piden prestado dinero. Oleg es amable, pero extremadamente olvidadizo. Una semana después, ya no recuerda quién no le devolvió la deuda, pero le da vergüenza preguntarle a todo el mundo al respecto. Por eso, un día decidió acabar con esto creando una lista de amigos en la pizarra de su casa a los que pidió dinero prestado.

Ahora Oleg siempre puede ir al tablero y asegurarse de que Max devuelva todo, pero Vanya ya no da 700 rublos. Un día, Oleg invita a Vanya a tomar una copa en su casa. Mientras Oleg va al baño, Vanya borra la entrada “Pedí prestados 200 rublos para Vanya” y escribe en su lugar “Vanya dio 500 rublos”.

Oleg, que confiaba en su lista, se olvida de la deuda y pierde 700 rublos. Decide luchar contra él de alguna manera. El año pasado, Oleg asistió a un curso de programación, donde le hablaron sobre el hash. Recuerda que cualquier cadena se puede convertir en un conjunto inequívoco de caracteres: un hash, y cambiar cualquier carácter de la cadena lo cambiará por completo.

Agregar un punto al final cambió el hash final más allá del reconocimiento; puede usarlo.

Oleg toma el conocido hash SHA-256 y aplica un hash a cada registro, agregando el resultado al final. Ahora Oleg puede asegurarse de que nadie haya cambiado sus registros haciéndolos hash de nuevo y comparándolos con el verde.

Pero EVIL IVAN también sabe cómo usar SHA-256 y puede cambiar fácilmente la entrada junto con su hash. Especialmente si el hash está escrito junto a él en la pizarra.

Por lo tanto, para mayor seguridad, Oleg decide aplicar un hash no solo al registro en sí, sino que lo agrega junto con el hash del registro anterior. Ahora todas las entradas siguientes dependen de las anteriores. Si cambia al menos una línea, tendrá que volver a calcular los valores hash de todos los demás a continuación en la lista.

Pero un día, Ivan se acerca sigilosamente por la noche, cambia la entrada que necesita y actualiza los valores hash de toda la lista hasta el final. Le toma varias horas, pero Oleg todavía está profundamente dormido y no puede oír. Por la mañana, Oleg descubre una lista absolutamente correcta: todos los hash coinciden. Pero Iván lo engañó de todos modos, a pesar de que pasó una noche sin dormir en eso. ¿De qué otra manera puedes protegerte de Night Ivan?

Oleg decide complicarse la vida de alguna manera. Ahora, para agregar una nueva entrada a la lista, Oleg resolverá un problema complejo asociado con ella, por ejemplo, una ecuación matemática. Agregará la respuesta al hash final.

Oleg es bueno en matemáticas, pero incluso se necesitan diez minutos para agregar una entrada. A pesar de esto, el tiempo invertido vale la pena, porque si Iván quiere cambiar algo nuevamente, tendrá que volver a resolver las ecuaciones para cada fila, y puede haber decenas de ellas. Llevará mucho tiempo, porque las ecuaciones son únicas cada vez y están asociadas con un registro específico.

Pero verificar la lista es tan simple: primero debe comparar los valores hash como antes y luego verificar las soluciones de las ecuaciones mediante una simple sustitución. Si todo converge, la lista no cambia.

En realidad, las cosas no van tan bien con las ecuaciones: las computadoras las resuelven demasiado bien y dónde almacenar tantas ecuaciones únicas. Por lo tanto, a los autores de la cadena de bloques se les ocurrió un problema más hermoso: necesita encontrar ese número (nonce) para que el hash final de todo el registro comience con 10 ceros. Es difícil encontrar un resultado así, pero el resultado siempre se puede comprobar con los ojos.

Ahora Oleg verifica todos los hash y además se asegura de que cada uno comience con el número especificado de ceros. Sly Ivan, incluso armado con una computadora portátil potente, no tendrá tiempo de volver a calcular todos los valores hash en una noche para que cumplan la condición; no habrá tiempo suficiente.

Tal lista, de hecho, es la cadena de bloques de origen en su rodilla. Su seguridad está garantizada por los matemáticos, quienes demostraron que estos hashes no se pueden calcular de alguna manera más rápido, excepto por la fuerza bruta. Tal enumeración de hashes para cada registro es minería, sobre la que hoy habrá mucho y en detalle.

Centralización de la confianza

A nuestros amigos les gustó la idea de mantener una lista falsa de "quién pidió prestado a quién". Tampoco quieren recordar quién pagó por quién en el bar y cuánto aún deben: todo está escrito en la pared. Discutió la idea y decidió que ahora necesita una lista única para todos.

Pero, ¿a quién se le debe confiar una contabilidad tan importante? Después de todo, cuando se trata de dinero, la confianza pasa a primer plano. No confiaremos en lo desconocido para quedarse con nuestro dinero. Para ello, nuestros antepasados inventaron los bancos, en los que con el tiempo se empezó a confiar, porque están respaldados por una licencia, leyes y seguros del Banco Central.

En el círculo de amigos, todos confían entre sí y simplemente puedes elegir al más responsable para este rol. Pero, ¿y si la pregunta es sobre extraños? ¿Una ciudad, un país o el mundo entero, como es el caso de Bitcoin? En general, nadie puede confiar en nadie allí.

Descentralización: nadie se fía de nadie

Entonces se les ocurrió un enfoque alternativo: mantener una copia de la lista para todos. Por lo tanto, un atacante no solo tendría que reescribir una lista, sino también colarse en cada casa y reescribir las listas allí. Y luego resulta que alguien tenía varias listas en casa, que nadie conocía. Eso es descentralización.

La desventaja de este enfoque es que para realizar nuevas entradas, tendrá que llamar a todos los demás participantes e informar a cada uno de ellos de los últimos cambios. Pero si estos participantes son máquinas sin alma, deja de ser un problema en absoluto.

En un sistema de este tipo, no existe un único punto de confianza y, por lo tanto, existe la posibilidad de sobornos y trampas. Todos los participantes del sistema actúan de acuerdo con una sola regla: nadie se fía de nadie. Todos creen solo en la información que tienen a su disposición. Esta es la ley principal de cualquier red descentralizada.

Actas

Al comprar una olla en una tienda, ingresa el código pin de su tarjeta, lo que permite que la tienda le pregunte al banco si tiene 35 rublos en su cuenta. En otras palabras, firmas una transacción por 35 rublos con tu código pin, que el banco confirma o rechaza.

Nuestros registros del tipo "Tomé prestado Vanya 500 rublos" también son transacciones. Pero no tenemos un banco que autorice al autor de las transacciones. ¿Cómo podemos comprobar que Iván no ha añadido silenciosamente la entrada "Max le debe a Oleg 100.500 rublos"?

La cadena de bloques utiliza el mecanismo de claves públicas y privadas para esto; los especialistas en TI las han estado utilizando durante mucho tiempo para la autorización en el mismo SSH. Lo expliqué con mis dedos en el post "Seguridad, cifrado, cyberpunk" en la sección "Introducción al cifrado".

Brevemente sobre cómo funcionan estas matemáticas complejas pero hermosas: genera un par de números primos largos en su computadora: una clave pública y una privada. La clave privada se considera súper secreta porque puede descifrar lo que está cifrado en el público.

Pero lo contrario también funciona. Si compartes la clave pública con todos tus amigos, ellos podrán encriptar cualquier mensaje para que solo tú puedas leerlo, ya que eres dueño de la privada.

Pero además de esto, la clave pública tiene un efecto útil: con ella puede verificar que los datos se cifraron con su clave privada, sin descifrar los datos en sí. Todas estas propiedades están bien descritas en el "Libro de cifrados".

Estamos en una Internet descentralizada donde no se puede confiar en nadie. La transacción se firma con una clave privada y, junto con la clave pública, se envía a un almacenamiento especial: un grupo de transacciones no confirmadas. Entonces, cualquier miembro de la red puede verificar que fue usted quien lo inició y que nadie más quiere pagar con su dinero.

Esto asegura la apertura y seguridad de la red. Si los bancos anteriores fueron responsables de esto, entonces en la cadena de bloques, los matemáticos son responsables de esto.

Para los usuarios comunes que no quieren averiguar cómo emitir y almacenar claves privadas, los servicios de billetera en línea ayudarán. Para copiar claves públicas largas, se crean códigos QR convenientes allí. Por ejemplo, Blockchain Wallet, porque tiene una aplicación móvil conveniente y es compatible con las dos principales criptomonedas: BTC y ETH.

Falta del concepto de "equilibrio"

Al igual que nuestro tablero, la cadena de bloques consiste esencialmente solo en el historial de transacciones. No almacena el saldo de cada billetera, de lo contrario tendríamos que inventar métodos de protección adicionales.

Solo la clave privada confirma la propiedad de la billetera. Pero, ¿cómo pueden otros miembros de la red asegurarse de que tengo suficiente dinero para comprar?

Como no tenemos saldo, debes demostrarlo. Por lo tanto, una transacción de blockchain incluye no solo su firma y cuánto desea gastar, sino también enlaces a transacciones anteriores en las que recibió la cantidad de dinero requerida.

Es decir, si desea gastar 400 rublos, revise todo su historial de ingresos y gastos, y adjunte a su transacción los ingresos en los que recibió 100 + 250 + 50 rublos, demostrando así que tiene estos 400 rublos.

Cada miembro de la red se asegurará una vez más de verificar que no haya adjuntado ingresos dos veces. Que esos 300 rublos que Max dio la semana pasada, todavía no los has gastado.

Dichos ingresos adjuntos a una transacción se denominan entradas en la cadena de bloques y todos los destinatarios de dinero se denominan salidas. La suma de todas las entradas rara vez es exactamente la misma que desea transferir a la vez; por lo tanto, una de las salidas suele ser usted mismo. En otras palabras, la transacción en la cadena de bloques parece "Me dieron 3 y 2 BTC, quiero transferir 4 BTC de ellos y devolver el 1 BTC restante".

La belleza de blockchain es que las entradas no tienen que provenir de una sola billetera. Después de todo, solo se verifica la clave. Si conoce la clave privada de todas las entradas, puede adjuntarlas fácilmente a su transacción y pagar con este dinero. Como si estuvieras pagando en un supermercado con varias tarjetas de las que conoces el código pin.

Sin embargo, si pierde su clave privada, su disco muere o su computadora portátil es robada, sus bitcoins se perderán para siempre. Nadie puede utilizarlos como insumos para nuevas transacciones.

Esta cantidad será inaccesible para todo el mundo para siempre, como si quemaras un fajo de billetes. No existe un banco único donde pueda escribir una solicitud con una copia de su pasaporte, y él la imprimirá. Esto requiere un lanzamiento adicional de nuevos bitcoins "de la nada".

Problema de doble gasto

Anteriormente dije que las transacciones se agregan a un "grupo especial de transacciones no confirmadas". ¿Por qué necesitamos algún tipo de entidad intermedia, si ya tenemos, de hecho, transacciones firmadas listas para usar? ¿Por qué no escribirlos directamente en la cadena de bloques?

Porque las señales del punto A al punto B siempre van con retraso. Dos transacciones pueden ser completamente diferentes. Y la transacción que se inició primero puede llegar al destinatario más tarde, porque tomó un camino más largo.

Esto se traduce en un doble gasto, cuando se envía el mismo dinero a dos destinatarios a la vez, lo que ni siquiera imaginarían. No se trata de entregar billetes de mano en mano.

Para una red descentralizada en la que no se puede confiar en nadie, este problema es especialmente grave. ¿Así es como se asegura de que una transacción fue definitivamente antes que otra? Pídale al remitente que le coserá el tiempo de envío, ¿verdad? Pero recuerde: no puede confiar en nadie, ni siquiera en el remitente.

La hora en todas las computadoras será necesariamente diferente y no hay una forma garantizada de sincronizarlas. Una copia de la cadena de bloques se almacena en cada computadora de la red y cada participante confía solo en ella.

¿Cómo puede asegurarse de que una transacción fue anterior a otra?

La respuesta es simple: es imposible. No hay forma de confirmar la hora de una transacción en una red descentralizada. Y la solución a este problema es la tercera idea importante de blockchain que inventó Satoshi y que, curiosamente, está escrito en su nombre: bloques.

Los bloques son la columna vertebral de la cadena de bloques

Cada computadora que trabaja en la red selecciona las transacciones que le gustan del grupo general. Por lo general, solo por la comisión más alta que pueda ganar. De modo que recopila las transacciones para sí mismo hasta que su tamaño total alcanza el límite negociado. En Bitcoin, este límite de tamaño de bloque es de 1 MB (después de SegWit2x será de 2 MB), y en Bitcoin Cash - 8 MB.

Toda la cadena de bloques es esencialmente una lista de dichos bloques, donde cada uno se refiere al anterior. Se puede usar para rastrear cualquier transacción en todo el historial, desenrollando la cadena de bloques incluso hasta el primer registro.

Es esta lista la que ahora pesa cientos de gigabytes y debe descargarse por completo a todos los equipos que quieran formar parte de la red (pero esto no es necesario simplemente para crear transacciones y transferir dinero). Se descarga de la misma manera desde todas las computadoras más cercanas en la red, como si estuvieras descargando una serie de torrents, solo se lanzan nuevos episodios nuevos en ella cada 10 minutos.

Habiendo escrito las transacciones del grupo por sí mismo, la computadora comienza a componer a partir de ellas la misma lista infalsificable que hicimos al comienzo de la publicación en el tablero de casa.

Solo él lo hace en forma de árbol: hace un hash de los registros en pares, luego el resultado es nuevamente en pares, y así sucesivamente hasta que solo queda un hash: la raíz del árbol, que se agrega al bloque. ¿Por qué exactamente con un árbol? No encontré la respuesta, pero supongo que es simplemente más rápido de esa manera. Leer más en la wiki: árbol Merkle.

Dado que la cadena de bloques actual ya se ha descargado, nuestra computadora sabe exactamente cuál es el último bloque en ella. Solo necesita agregarle un enlace en el encabezado del bloque, agregarle un hash a todo y decirle a todas las demás computadoras en la red "miren, hice un nuevo bloque, agreguemoslo a nuestra cadena de bloques".

El resto debe comprobar que el bloque está construido de acuerdo con todas las reglas y que no hemos agregado transacciones innecesarias allí, y luego agregarlas a nuestras cadenas. Ahora todas las transacciones en él están confirmadas, la cadena de bloques se incrementa en un bloque y todo va bien, ¿no es así?

Pero no. Miles de computadoras están trabajando simultáneamente en la red, y tan pronto como ensamblan un nuevo bloque, casi simultáneamente se apresuran a informar a todos que su bloque fue creado primero. Y del apartado anterior ya sabemos que en una red descentralizada es imposible demostrar quién fue realmente el primero.

Como en la escuela, cuando todos estaban resolviendo una prueba difícil, rara vez ocurría que incluso los estudiantes excelentes tomaran las respuestas al mismo tiempo.

Pero si para una persona es una tarea difícil planificar unas vacaciones para que obtenga las vacaciones de mayo y los boletos para el mar son económicos, entonces para una computadora es agregar ese número (nonce) al final del bloque para que, como resultado, el hash SHA-256 para todo el bloque comience, digamos 10 ceros. Este es el problema que debe resolverse para agregar un bloque a la red Bitcoin. Para otras redes, las tareas pueden diferir.

Así llegamos al concepto de minería, con el que todo el mundo ha estado tan obsesionado en los últimos años.

Minería

La minería de Bitcoin no es una especie de sacramento sagrado. La minería no se trata de encontrar nuevos bitcoins en algún lugar de las profundidades de Internet. La minería es cuando miles de computadoras en todo el mundo están zumbando en los sótanos, revisando millones de números por segundo, tratando de encontrar un hash que comience con 10 ceros. Ni siquiera necesitan estar en línea para hacer esto.

Las tarjetas de video con cientos de núcleos paralelos resuelven este problema más rápido que cualquier CPU.

¿Por qué exactamente 10 ceros? Y así, no tiene sentido. Entonces se le ocurrió a Satoshi. Porque este es uno de esos problemas para los que siempre hay una solución, pero ciertamente no se puede encontrar más rápido que una larga y monótona enumeración de opciones.

La complejidad de la minería depende directamente del tamaño de la red, es decir, su potencia total. Si crea su propia cadena de bloques y la ejecuta usted mismo en casa en dos computadoras portátiles, entonces la tarea debería ser más simple. Por ejemplo, para que el hash comience con un solo cero, o para que la suma de los dígitos pares sea igual a la suma de los impares.

Una computadora tardará varias décadas en encontrar un hash que comience con 10 ceros. Pero si combina miles de computadoras en una sola red y busca en paralelo, entonces, de acuerdo con la teoría de la probabilidad, este problema se resuelve en promedio en 10 minutos. Este es el momento en que aparece un nuevo bloque en la cadena de bloques de bitcoin.

Cada 8-12 minutos, alguien en la tierra encuentra ese hash y tiene el privilegio de anunciar su descubrimiento a todos, evitando así el problema de quién fue el primero.

Para encontrar una respuesta, la computadora (a partir de 2017) recibe 12.5 BTC; esta es la cantidad de recompensa que genera el sistema bitcoin "de la nada" y disminuye cada cuatro años.

Técnicamente, esto significa que cada minero siempre agrega otra transacción a su bloque: "crear 12.5 BTC y enviarlos a mi billetera". Cuando escuche "la cantidad de bitcoins en el mundo está limitada a 21 millones, ahora ya han contratado 16 millones", estas son las recompensas generadas por la red.

Ve a ver un bloque de Bitcoin en vivo en uno de los sitios dedicados. También hay transacciones con entradas y salidas, y hasta 18 ceros al principio y todos los hash descritos anteriormente.

Son los mineros quienes agregan las transacciones emergentes a la cadena de bloques. Entonces, si alguien le dice que "hará una cadena de bloques para ***", la primera pregunta que debe responder es quién lo extraerá y por qué. La mayoría de las veces, la respuesta correcta es “todos lo harán, porque para la minería damos nuestras monedas, que crecerán y es rentable para los mineros”. Pero esto no se aplica a todos los proyectos.

Por ejemplo, algún Ministerio de Salud creará mañana su propia cadena de bloques cerrada para los médicos (y ellos la quieren), ¿quién la extraerá? ¿Terapeutas de fin de semana?

Pero, ¿cuál será el beneficio para los mineros más adelante, cuando las recompensas desaparezcan o se vuelvan escasas?

De acuerdo con la idea del Creador, para entonces la gente tendrá que creer en la realidad de bitcoin y la minería comenzará a amortizar la cantidad de tarifas incluidas en cada transacción. Aquí es donde va todo: en 2012, todas las comisiones eran cero, los mineros extraían solo las recompensas de los bloques. Hoy en día, una transacción sin comisión puede quedarse en la piscina durante varias horas, porque hay competencia y la gente está dispuesta a pagar por la velocidad.

Es decir, la esencia de la minería está en resolver problemas sin sentido. ¿No podría usarse todo este poder para algo más útil, como la búsqueda de una cura para el cáncer, por ejemplo?

La esencia de la minería es resolver cualquier problema computacional. Esta tarea debe ser lo suficientemente simple para que los participantes de la red tengan una probabilidad estable de encontrar una respuesta; de lo contrario, las transacciones se confirmarán para siempre. Imagina que en la caja de una tienda tienes que esperar media hora cada vez para que el banco confirme tu transacción. Nadie usará un banco así.

Pero la tarea debe ser al mismo tiempo difícil, para que todos los internautas no encuentren la respuesta a la vez. Porque en este caso anunciarán muchos bloques con las mismas transacciones a la red y habrá una posibilidad de "doble desperdicio", que mencioné. O peor aún, dividir una sola cadena de bloques en varias ramas, en las que nadie puede averiguar qué transacción está confirmada y cuál no.

Si se entrega una recompensa de 12.5 BTC solo una vez cada 10 minutos y solo una persona que encontró el bloque, resulta que tengo que desperdiciar tarjetas de video durante varios años con la esperanza de que algún día pierda $ 40,000 (en el tipo de cambio actual)?

Este es exactamente el caso de bitcoin. Pero no siempre fue así. Anteriormente, la red era más pequeña, la complejidad es menor, lo que significa que la probabilidad de encontrar por sí solo un hash para un nuevo bloque es mayor. Pero el bitcoin no era tan caro.

Ahora nadie está extrayendo bitcoins solo. Ahora los participantes están unidos en grupos especiales: grupos de minería, donde todos juntos intentan encontrar el hash correcto.

Si al menos uno de los miembros del grupo encuentra, entonces la recompensa completa se divide entre los participantes, dependiendo de su contribución al trabajo común. Resulta que estás minando y obtienes un centavo del total de acciones cada semana.

Pero la minería en solitario es bastante posible en otras redes. Hasta hace poco, era fácil minar Ethereum, donde los bloques se encuentran cada 10 segundos. La recompensa del bloque es mucho menor allí, pero la probabilidad de ganar un centavo es mayor.

¿Entonces vamos a quemar miles de tarjetas de video en vano y no hay salida?

Sí, pero hay ideas. La minería que describí es clásica y se llama Prueba de trabajo (prueba de trabajo). Es decir, cada máquina demuestra que funcionó en beneficio de la red resolviendo problemas sin sentido con una probabilidad determinada.

Pero algunos están comenzando a hacer blockchains con otros tipos de minería. Ahora, el segundo concepto más popular es Proof-of-Stake (prueba de participación). En este tipo de minería, cuantas más "monedas" tenga un participante de la red en su cuenta, es más probable que inserte su bloque en la cadena de bloques. Como el chico más ruidoso del pueblo.

Puedes pensar en otros tipos de minería. Como ya se sugirió, todas las computadoras de la red pueden buscar una cura para el cáncer, solo usted necesita averiguar cómo, en este caso, registrar su contribución al sistema. Después de todo, puedo declarar que también estoy participando, pero apague mi tarjeta de video y no cuente nada.

¿Cómo cuantifica la contribución de cada participante para encontrar una cura para el cáncer? Si se te ocurre, atrévete a cortar tu CancerCoin, te garantizamos una exageración en los medios.

Blockchain

Imagine una situación en la que, a pesar de toda nuestra teoría de la probabilidad, dos mineros lograron encontrar la respuesta correcta al mismo tiempo. Empiezan a enviar dos bloques absolutamente correctos a través de la red.

Se garantiza que estos bloques serán diferentes, porque incluso si eligieron milagrosamente las mismas transacciones del grupo, hicieron árboles absolutamente idénticos y adivinaron el mismo número aleatorio (nonce), sus hashes seguirán siendo diferentes, ya que cada uno escribirá su número de billetera en el bloque de recompensa.

Ahora tenemos dos bloques válidos y nuevamente surge el problema de quién debe considerarse primero. ¿Cómo se comportará la red en este caso?

El algoritmo blockchain establece que los participantes de la red simplemente aceptan la primera respuesta correcta que les llega. Entonces viven sobre la base de su propia imagen del mundo.

Ambos mineros recibirán su recompensa, y todos los demás comenzarán a minar, confiando en el último bloque que recibieron personalmente, descartando que todos los demás se vuelvan a corregir. Aparecen dos versiones de la cadena de bloques correcta en la red. Esa es la paradoja.

Ésta es una situación de rutina en la que la teoría de la probabilidad vuelve a ayudar. La red funciona en un estado tan bifurcado hasta que uno de los mineros encuentra el siguiente bloque de una de estas cadenas.

Tan pronto como se encuentra un bloque de este tipo y se inserta en la cadena, se vuelve más largo y se incluye uno de los acuerdos de la red blockchain: bajo cualquier condición, se acepta la cadena de bloques más larga como la única verdadera para toda la red.

La cadena corta, a pesar de toda su corrección, es rechazada por todos los participantes de la red. Las transacciones de este se devuelven al grupo (si no se han confirmado en otro) y su procesamiento comienza de nuevo. El minero pierde su recompensa porque su bloque ya no existe.

Con el crecimiento de la red, tales coincidencias de "muy improbables" pasan a la categoría de "bueno, a veces sucede". Los veteranos dicen que hubo casos en los que se soltó una cadena de cuatro bloques a la vez.

Debido a esto, se han inventado tres reglas de inseguridad al final de la cadena:

1. Las recompensas por minar solo se pueden usar después de otros 20 bloques confirmados después de recibirlos. Para Bitcoin, esto es aproximadamente tres horas.

2. Si se le enviaron bitcoins, puede usarlos como entradas en nuevas transacciones solo después de 1-5 bloques.

3. Las reglas 1 y 2 se detallan en la configuración de cada cliente. Nadie supervisa su observancia. Pero la ley de la cadena más larga aniquilará todas sus transacciones si intenta engañar al sistema para que no las aplique.

Tratando de engañar al blockchain

Ahora que sabe todo sobre la minería, el dispositivo de la cadena de bloques y la regla de la cadena más larga, es posible que tenga una pregunta: ¿es posible de alguna manera superar específicamente a la cadena de bloques al hacer la cadena más larga usted mismo, confirmando así sus transacciones falsas?

Digamos que tienes la computadora más poderosa del mundo. Los centros de datos de Google y Amazon se ponen a su disposición y está tratando de calcular esa cadena que se convertirá en la cadena de bloques más larga de la red.

No puede tomar y calcular inmediatamente varios bloques de la cadena, porque cada bloque siguiente depende del anterior. Luego, decide lo más rápido posible contar cada bloque en sus enormes centros de datos en paralelo con la forma en que todos los demás participantes continúan aumentando la cadena de bloques principal. ¿Es posible adelantarlos? Probablemente si.

Si su poder de cómputo es más del 50% del poder de todos los participantes de la red, entonces con un 50% de probabilidad podrá construir una cadena más larga más rápido que todas las demás juntas. Esta es una forma teóricamente posible de engañar a la cadena de bloques calculando una cadena de transacciones más larga. Entonces, todas las transacciones de la red real se considerarán inválidas, y recolectará todas las recompensas y comenzará un nuevo hito en la historia de la criptomoneda, que se llama "división blockchain". Una vez, debido a un error en el código, este fue el caso de Ethereum.

Pero, en realidad, ningún centro de datos se puede comparar en términos de potencia con todas las computadoras del mundo. Mil quinientos millones de chinos con icics, otro mil quinientos millones de indios hambrientos con granjas mineras y electricidad barata: esta es una enorme potencia informática. Nadie en el mundo puede competir con ellos solo, ni siquiera Google.

Es como salir a la calle y tratar de convencer a todas las personas del mundo de que el dólar ahora vale 1 rublo y llegar a tiempo antes de que los medios de comunicación lo expongan. Y si logras convencer a todos, puedes colapsar la economía mundial. En teoría, ¿no es posible? Pero en la práctica, por alguna razón, nadie tuvo éxito.

La cadena de bloques también se basa en esta probabilidad. Cuantos más participantes-mineros, más seguridad y confianza en la red. Por lo tanto, cuando se cubre otra gran granja minera en China, la tasa colapsa. Todos temen que en algún lugar del mundo hubiera un genio malvado que ya había reunido un grupo de mineros al ~ 49% de su capacidad.

Conclusión

Blockchain no es un conjunto de algoritmos estrictamente definido. Es una estructura para construir una red falsa entre participantes, donde nadie puede confiar en nadie. Mientras leía, probablemente pensó más de una vez que “puede hacerlo así y será aún más útil”. Esto significa que entiendes la cadena de bloques, felicitaciones.

Algunos chicos en el mundo también lo entendieron y querían mejorar o adaptarse para algunas tareas específicas. Las criptomonedas no son las mismas, aunque también hay muchas. Aquí hay una breve lista de algunas de las ideas y proyectos que han ganado cierta popularidad gracias al replanteamiento de la idea de blockchain.

Ethereum

"Ethers" es la segunda palabra más popular que se escucha en las noticias sobre cripto-hype, después de Bitcoin. Para la gente común, esta es otra criptomoneda y una forma de hacer lo más moderno llamado ICO. Los desarrolladores del sitio describen a Ethereum como "un constructor de blockchain para sus necesidades". Esto también es posible, sí.

Pero si profundizas aún más, el éter no es solo una red de monedas. Se trata de una enorme máquina informática global, donde los usuarios ejecutan el código de los programas de otras personas (contratos inteligentes), recibiendo una recompensa por cada línea ejecutada. Y todo ello descentralizado, indestructible y con todas las garantías del blockchain.

Podemos hablar sobre Ethereum y los contratos inteligentes durante tanto tiempo que será suficiente para otra publicación de este tipo. Por lo tanto, actuaremos al estilo de los mejores bloggers: si esta publicación se vuelve a publicar y retuitea activamente, y para el viernes obtiene al menos 1,500 vistas únicas, escribiré una secuela sobre Ethereum y los contratos inteligentes.

Recomendado: