Red de conocimiento de abogados - Derecho de sociedades - Puzzles sobre Bitcoin (Completo)

Puzzles sobre Bitcoin (Completo)

¿Alguna vez has pensado: ¿Por qué cuanto mayor sea la potencia informática de la máquina minera, mejor? (Dado que se trata de resolver problemas matemáticos, ¿por qué no competir con alguien cuyo algoritmo sea mejor?) ¿Por qué el número total de Bitcoins es 21 millones? ¿Qué está pasando con el robo de Bitcoin? Si no juego con Bitcoin, ¿realmente no tengo nada que ver con Bitcoin?

Hay muchas cosas ingeniosas detrás de Bitcoin, que ya no son desconocidas para el público. Este artículo presenta los principios básicos y principios fundamentales de Bitcoin y combina el análisis de algunos detalles técnicos para responder algunas de las preguntas anteriores. El texto completo es extenso, unas 7.000 palabras, y el tiempo de lectura es de unos 22 minutos. ¿Se recomienda guardarlo y leerlo?

El artículo se puede dividir en las siguientes partes:

* Conocimientos previos de Bitcoin

p>

-- Relacionados con la criptozoología

-- Conceptos importantes de Bitcoin

* El ciclo de vida de las transacciones

* La composición de la cadena de bloques

* El crecimiento de la cadena de bloques

?--La esencia matemática de la “minería”

?--La beneficios de los "mineros"

* ¿El mecanismo de consenso de Bitcoin

- el consenso descentralizado de Bitcoin

- el principio de "la cadena más larga primero"

* Bitcoin Security

Como la primera moneda digital descentralizada, Bitcoin utiliza una gran cantidad de conocimiento relacionado con la criptografía en su diseño, que incluye principalmente tecnología de cifrado asimétrico, funciones hash, etc. Comprender este conocimiento criptográfico puede ayudarnos a comprender mejor algunos conceptos y reglas de Bitcoin.

Las siguientes son algunas definiciones y explicaciones conceptuales de Bitcoin. Los amigos que lo conocen antes pueden omitirlo directamente ~

En Bitcoin, una red de pago innovadora, la vida de una transacción El ciclo. Se puede dividir aproximadamente en varias etapas: creación, difusión y verificación, empaquetado en bloques y registrado en la cadena de bloques, y obtención de más confirmaciones. La Figura 1 ilustra estas etapas.

Nota:

1. Cuando un pagador A inicia una transacción de Bitcoin, utilizará su clave privada para firmar el valor hash de la información de la transacción. Por lo tanto, además de la información de la transacción, el contenido transmitido por A a toda la red también incluye su propia información de clave pública y la firma del mensaje. Otros mineros pueden usar la clave pública de A para verificar la transacción y determinar si realmente fue creada por A.

2? "Propagación de transacciones y verificación de transacciones" significa alternativamente que cada nodo verifica de forma independiente cada transacción de acuerdo con ciertas reglas (*** base de conocimiento 1). es válido. Sigue corriendo la voz.

La tecnología subyacente de Bitcoin es blockchain. El sistema blockchain es un sistema de consenso distribuido. Todos los nodos participantes en la red blockchain llegarán a un acuerdo sobre el estado de la transacción.

¿Qué es exactamente blockchain? Puede considerarlo como un libro de contabilidad compartido y distribuido de transacciones, vinculado entre sí con bloques como unidad básica. La información de la transacción se organizará, empaquetará y registrará en bloques. Cada bloque contiene un encabezado de bloque, seguido de una lista de transacciones. El encabezado del bloque contiene 3 conjuntos de metadatos de bloque: hash de bloque de pedido anticipado (estrictamente hablando, hash de encabezado de bloque de pedido anticipado, porque solo el encabezado del bloque se usa para operaciones hash), conjunto de metadatos (incluida dificultad, marca de tiempo, números aleatorios, etc. ), un árbol Merkle que resume eficientemente todas las transacciones en un bloque basado en hashes criptográficos. Comprender esta estructura nos ayudará a comprender mejor la naturaleza matemática de la minería.

Es posible que hayas oído la palabra "minería" o hayas oído hablar de personas que se apresuran a comprar máquinas mineras para hacer una fortuna.

Pero lo que confunde a la gente es: dicen que la esencia de empaquetar bloques es resolver problemas matemáticos, pero ¿puedes asegurarte de tener una alta tasa de ganancia en la resolución de problemas de Bitcoin simplemente confiando en esas máquinas aparentemente simples que zumban y consumen electricidad como locas? ? En los principios técnicos de Bitcoin, ¿el problema matemático que resuelven los mineros es un problema de fuerza bruta?

Después de mirar a mi alrededor, descubrí que los problemas resueltos por los mineros son en realidad una solución de fuerza bruta. Cada vez que intento resolver el problema, casi me siento perdido y pruebo suerte. Quien tenga la suerte de competir también calculará lo suficientemente rápido. Si el cálculo es lo suficientemente rápido, cuantas más pruebas y errores, mayores serán las posibilidades de ganar.

Los antecedentes para resolver el problema son los siguientes: el nodo minero agrega transacciones de forma independiente en nuevos bloques mediante operaciones de prueba basadas en el algoritmo de prueba de trabajo (POW) (*** Base de conocimiento 2). Cuando el minero recibe un nuevo bloque de la red, descubre que ha fallado en la ronda anterior de competencia, por lo que inmediatamente inicia el proceso de minado del nuevo bloque. Para crear un nuevo bloque, selecciona transacciones del mempool para completar el bloque (la primera transacción agregada al bloque es una "transacción de acuñación", cuyos detalles se proporcionan en la Sección 3.2). El siguiente paso es completar los campos para crear el encabezado del bloque (incluido el hash del encabezado del bloque anterior, el árbol Merkel de la transacción (árbol Merkel), la marca de tiempo, el valor objetivo de dificultad, el número aleatorio) y luego comenzar a calcular. el nuevo bloque Prueba de trabajo.

En pocas palabras, este proceso de cálculo consiste en realizar dos operaciones sha256 en el encabezado del bloque para obtener un RESULTADO. Si este RESULTADO cumple con requisitos específicos, la persona puede considerarse correcta y tiene derecho a recordar. El RESULTADO que cumple con los requisitos se denomina "prueba de trabajo" (llamado "prueba de trabajo" en el artículo de Satoshi Nakamoto).

Con respecto a este proceso de cálculo, se enfatizan los siguientes puntos:

Primero, el encabezado del bloque contiene el hash del encabezado del bloque anterior y la información de transacción de este árbol Merkle, la marca de tiempo. , valor objetivo de dificultad, número aleatorio y otra información (ver Figura 2).

En segundo lugar, la operación hash tiene las siguientes características: "Conociendo y, es imposible deducir x que hace que h(x)=y sea verdadero", "Incluso si la entrada cambia solo un poco, la salida será muy diferente", característica "Utiliza una longitud arbitraria de datos como entrada y genera un resultado determinista de longitud fija". Por lo tanto, nadie sabe qué tipo de información puede producir los resultados que desea y los mineros sólo pueden seguir intentándolo.

En tercer lugar, como se mencionó anteriormente, el valor hash del encabezado del bloque debe cumplir con un requisito específico para convertirse en una prueba de trabajo: menos de un cierto umbral o el valor hash contiene un prefijo determinado. El tamaño del umbral está relacionado con la dificultad de la minería: la dificultad de la minería es un parámetro dinámico. Cuanto mayor es el valor, menor es el umbral, lo que significa que la probabilidad de que el valor hash cumpla con los requisitos es menor y la probabilidad de que el valor hash cumpla con los requisitos es menor. El minero puede convertirse en una prueba de trabajo cada vez que calcula el más pequeño. Bitcoin tiene un proceso de autorregulación: al estimar la potencia informática minera existente y ajustar la dificultad de la minería en consecuencia, puede garantizar que la cadena de bloques produzca un bloque cada diez minutos para controlar la velocidad de emisión. (La idea básica de este proceso es similar a la pregunta de estimación de datos en la prueba escrita del producto. De acuerdo con la idea de "un suministro, una necesidad", se construye una ecuación y luego un factor en un lado de la ecuación está resuelta; los estudiantes que quieran comprender el sistema de dificultad de minería y los métodos de ajuste pueden leer más ~)

Con base en los tres puntos anteriores, para generar una prueba de trabajo, los usuarios básicamente lo intentarán; su suerte ajustando números aleatorios (porque otros campos básicamente no cambian) y realiza múltiples operaciones hasta que cumpla con los requisitos y no haya otra manera. Visto de esta manera, los números aleatorios tienen el significado de "números de la suerte". Por lo tanto, en promedio, quien tenga mayor capacidad computacional (más intentos) tiene más posibilidades de empaquetar un bloque.

Quizás estés pensando, ¿qué tipo de intereses impulsan los mineros que están tan dispuestos a consumir potencia informática para mantener la cadena de bloques? En pocas palabras, hay dos fuentes de ingresos para los mineros: 1. Calcular la prueba de trabajo y crear un nuevo bloque como recompensa por las nuevas monedas 2. Contabilizar las tarifas de minería;

Cuando un minero encuentra la prueba de trabajo, empaqueta un nuevo bloque y lo transmite a todos sus pares.

Cada nodo minero verifica de forma independiente el nuevo bloque, integra el nuevo bloque calificado en la cadena de bloques (***Conocimiento básico 3) y continúa pasando el bloque a su nodo par. Como resultado, solo los bloques verificados se difundirán ampliamente en la red, lo que garantizará que la cadena de bloques pueda aceptar nuevos bloques excavados por mineros honestos. Los nodos individuales o colectivos que extraen con éxito pueden recibir nuevas recompensas monetarias y tarifas de minería contables al mismo tiempo.

La nueva recompensa monetaria es similar a la emisión de moneda. Las reglas son que cada nuevo bloque generará 50 btc en los primeros cuatro años, y se generarán 25 btc en cada nuevo bloque en los segundos cuatro años. , y se generarán 25 btc en los terceros cuatro años. Cada nuevo bloque genera 12,5 BTC, y este ciclo disminuye exponencialmente. Según la suma de la serie geométrica, se puede ver que para 2140, el número total de Bitcoins generados será de aproximadamente 21.000.000 (por lo que el número de Bitcoins es limitado e inherentemente deflactado). En ese momento, ya no se agregarán nuevos Bitcoins con la generación de bloques y los mineros ya no tendrán los primeros ingresos. Pero en realidad, debido al alto costo de la minería, la minería exitosa suele ser el resultado de todos los participantes en un pool de minería. Los ingresos se distribuyen a la dirección del grupo de minería y el grupo de minería comparte los ingresos de acuerdo con la proporción de la contribución de potencia informática dentro del grupo.

Las tarifas de minería contables, también conocidas como tarifas de transacción, existen en forma de la diferencia entre la entrada y la salida de la transacción; la tarifa de transacción total de un bloque es para todas las transacciones agregadas al bloque (entrada de transacción - resultados de la transacción) suma. En términos generales, las transacciones con tarifas mineras más altas se procesarán más rápido. Las tarifas de minería desempeñan dos funciones aquí: una es recompensar a los mineros y la otra es evitar el abuso de la cadena principal (evitando que todos envíen transacciones spam, porque hay un cierto costo por proponer transacciones).

¿De qué forma se verifican las ganancias de los mineros? Debo mencionar aquí el “comercio de monedas”. La primera transacción agregada al bloque por cada nodo de computadora antes de realizar el cálculo de prueba de trabajo es la "transacción de acuñación". Esta transacción genera Bitcoin desde cero, y el monto es la suma de la recompensa de la nueva moneda y la tarifa contable del minero, que se paga a la propia dirección de Bitcoin del minero. Si el minero encuentra una prueba de trabajo que hace que el bloque sea válido, gana esta recompensa porque la "transacción de acuñación" que construyó entra en vigor.

Con respecto a las transacciones de acuñación y las "recompensas de nuevas monedas", un lector me preguntó antes: si un minero anuncia que ha excavado un nuevo bloque, ¿no será plagiado por otros su prueba de trabajo?

Personalmente, creo que al menos el "comercio de monedas" puede evitar que esto suceda. Reiteremos el proceso de cálculo de la prueba de trabajo: un minero E agrega una "transacción de monedas" para recompensarse a sí mismo en el nuevo bloque y usa la marca de tiempo, el hash del encabezado del bloque anterior, el número aleatorio y el valor de transacción de este. El árbol Merkle y otra información se utilizan para calcular una prueba de carga de trabajo que cumpla con los requisitos.

En este proceso, el aspecto del árbol merkle depende de toda la información de transacción de este bloque, incluidas las "transacciones de monedas". Por tanto, las transacciones de acuñación pueden considerarse como una de las variables indirectas de la prueba de trabajo. Luego, incluso si otros obtienen la prueba de trabajo de E, esta prueba de trabajo está marcada con E y está relacionada con la transacción de monedas que recompensa a E, y otros no pueden usarla para su propio uso.

También puede profundizar su comprensión del Conocimiento Básico 2 imaginando el siguiente escenario: "Los nodos mineros agregan transacciones de forma independiente en nuevos bloques a través de operaciones de prueba basadas en el algoritmo de prueba de trabajo".

¿Por qué un minero que extrae un nuevo bloque no establece en secreto el monto de la transacción de acuñación en 1000 BTC al comienzo de la creación del bloque? La razón es que cada nodo verifica de forma independiente los bloques basándose en las mismas reglas. Los mineros deben crear bloques perfectos que cumplan con las reglas públicas y sigan correctamente el método de prueba de trabajo y una transacción de acuñación no válida hará que todo el bloque no sea válido y sea rechazado por otros nodos, y nunca pasará a formar parte del libro mayor. Se puede esperar que para generar esta prueba de trabajo, los mineros hayan invertido una enorme potencia informática y electricidad en la minería. Si se rechaza por sospecha de fraude, el costo de la minería será en vano.

En resumen, los mineros no pueden pretender recibir recompensas de otros, y los mineros que reciben recompensas solo deben tomar la cantidad que cumpla con las regulaciones.

La excelencia de Bitcoin radica en el establecimiento de un consenso espontáneo descentralizado. Este tipo de conciencia independiente se genera espontáneamente, se forma en interacciones asincrónicas por miles de nodos en la red que siguen las mismas reglas, y no depende de la mediación e intervención de ninguna organización central.

En cuanto a las cuatro bases de conocimiento principales de Bitcoin, este artículo las menciona al explicar los detalles correspondientes. Aquí hay una integración:

Estos cuatro procesos se complementan y se complementan. Como resultado, se forma un consenso espontáneo en toda la red, lo que incita a los nodos de la red a crear un libro mayor creíble, abierto y autorizado. ?

Puedes pensar que Bitcoin es algo descentralizado que se basa en la confianza pública y depende del poder de todos. ¿Qué pasa si algunos mineros son sobornados por los malos? ¿A qué se refiere el "ataque 51"? ¿Qué pasa con las “6 confirmaciones” requeridas por los intercambios de Bitcoin?

Aquí debemos mencionar primero una regla de Bitcoin "la cadena más larga primero". Esto significa que cuando la cadena de billetes de Bitcoin se bifurca, cada minero elegirá de forma independiente la cadena más larga (que ha acumulado la mayor cantidad de prueba de trabajo) y continuará minando en ella (***Conocimientos Básicos 4).

Este principio implica principalmente dos cuestiones:

Cuando dos mineros A y B extraen con éxito al mismo tiempo (calculan una respuesta matemática que cumple con los requisitos), calculan respectivamente su propia respuesta. La prueba de trabajo resultante se utiliza como hash del bloque de pedido anticipado del siguiente bloque, generando un bloque conectado a la parte posterior de la cadena original, lo que da como resultado dos ramas.

En este momento, estos dos exitosos mineros transmiten la noticia de su exitoso empaque. Dado que la cadena de bloques es una estructura de datos descentralizada, los momentos en los que los mensajes de bloque llegan a diferentes nodos son inconsistentes, por lo que es posible que diferentes nodos no tengan exactamente la misma vista de la cadena de bloques: algunos mineros recibirán el mensaje de A primero, otros recibirán el mensaje de B primero. Para solucionar este problema, los mineros que reciben el mensaje siguen un principio: seleccionar e intentar extender la cadena más larga.

Por lo tanto, las dos ramas crecerán cada una durante un corto período de tiempo hasta que sus longitudes difieran (es imposible que las longitudes sean siempre las mismas. Por ejemplo, los mineros de una de las cadenas lo harán). paquete en la cadena de rama más rápido. Agregue otra pieza en la parte posterior. De acuerdo con la regla de "la cadena más larga primero", las cadenas más cortas serán abandonadas y los mineros que originalmente trabajaron en la cadena corta volverán a trabajar en la cadena larga.

En otras palabras, las bifurcaciones son solo inconsistencias temporales entre diferentes nodos. Cuando se agregan nuevos bloques a una de las ramas, la convergencia final resolverá este problema. [Los lectores pueden pensar por qué la cadena de bloques está configurada para extraer un bloque cada diez minutos: si el tiempo es corto, ¿aumenta el número de ramas? Si lleva mucho tiempo, ¿será demasiado baja la eficiencia de la liquidación de transacciones? ]

La esencia del pago doble es en realidad una bifurcación de la cadena de bloques, pero esta bifurcación es producto de una "intención maliciosa antinatural".

Suponemos que Xiao Min es la parte que conspiró para gastar dos veces. Primero le dio solo 10 BTC a Xiao Qiang a cambio de una pieza de oro. Después de que la información de la transacción P se empaquetó en el bloque Q. , se lo dio a Xiao Qiang. Tenía oro en la mano. En ese momento, Xiao Min hizo un truco. Quería borrar y manipular en secreto la información de la transacción P en el bloque Q, para "obtener" el oro gratis. Para lograr este objetivo, de acuerdo con la regla de "la cadena más larga primero", Xiao Min debe eliminar la transacción P y rehacer el trabajo de liquidación, concentrar la potencia informática para formar una bifurcación y dejar que la bifurcación crezca más rápido que la fusión. . Reemplace la cadena principal donde se encuentra Q. Si Xiao Min realmente puede alargar la bifurcación, la bifurcación se convertirá en la cadena principal y otros nodos cambiarán a la nueva cadena principal para continuar trabajando. De esta manera, Xiaoqiang pagó oro, pero no recibió los 10 Bitcoins, "perdiendo a su esposa y perdiendo sus tropas".

En este proceso, Xiao Min necesita "luchar" con la cadena original para hacer que la nueva bifurcación se convierta en la cadena principal más larga. Esto se llama "ataque de conciencia sexual". El "ataque de conocimiento básico" es esencialmente una competencia por el siguiente bloque. Cuanto más "fuerte" sea el atacante y mayor sea el poder de hash, más fácil será tener éxito.

¿Cuáles son las posibilidades de que un "ataque cognitivo" tenga éxito?

La mayoría de los intercambios de Bitcoin estipulan que después de que una transacción se transmite a la cadena de bloques, se requieren 6 "confirmaciones" para completar la verificación de la transacción. La base de esta regulación es que suponiendo que el minero que intenta cometer fraude tiene una potencia de cálculo de 10 (probabilidad de éxito de la minería 0,1), entonces el minero falsificador debe minar con éxito al menos 6 veces para construir otra cadena falsa que exceda la longitud. . Entonces, la probabilidad de que la cadena original sea reemplazada o abandonada es aproximadamente 0,1 elevada a la sexta potencia, acercándose a 0. Puede pensar en Bitcoin como una estructura geológica. La capa superficial puede cambiar debido a los cambios estacionales, o incluso ser arrastrada por el viento, pero una vez que se adentra en las profundidades, la capa geológica será más estable y tranquila.

Supongamos que hay un grupo de mineros con 51 potencias informáticas. Controlan más de la mitad del poder de hash de toda la red y pueden crear deliberadamente bifurcaciones en la cadena de bloques y realizar transacciones de doble gasto. Pero el hecho es que con el aumento masivo en el poder de hash de toda la red, es casi imposible para los mineros individuales controlar incluso 1 poder de hash (pero el control centralizado del poder de hash que brindan los grupos de minería tiene ciertos riesgos). Es más, si existe una organización con una potencia informática tan poderosa, puede usar su poderosa potencia informática para invertir en minería y obtener recompensas de Bitcoin por desarrollar nuevos bloques. La minería honesta es más rentable que el doble gasto.

Aunque el problema de los 51 ataques no ha ocurrido realmente, es innegable que la concentración de potencia informática viola la intención original de la descentralización de Bitcoin y se ha convertido en un importante peligro oculto para su desarrollo continuo.

La seguridad de un sistema a menudo depende del eslabón más débil de la seguridad del sistema. Este es el llamado "principio del barril". Los problemas de seguridad relacionados con los sistemas blockchain incluyen, entre otros, los siguientes:

(1) El sistema de clave pública ampliamente utilizado en blockchains es básicamente seguro, pero los algoritmos cuánticos son teóricamente posibles romper la clave pública. sistema, por lo tanto, la seguridad algorítmica de la cadena de bloques es relativa.

(2) El protocolo blockchain en sí tiene fallas lógicas, como el mecanismo de identificación del sistema blockchain que es atacado por piratas informáticos.

(3) Todos los sistemas de moneda digital dependen en gran medida de claves privadas, y la seguridad de las claves privadas en su almacenamiento y uso se ha convertido en una parte crucial de la seguridad del sistema blockchain.

Aunque la cadena de bloques es un sistema descentralizado, la gran mayoría de los intercambios digitales actuales están centralizados y existen vulnerabilidades de seguridad humana y vulnerabilidades de seguridad técnica. Estos intercambios digitales contienen claves privadas que almacenan grandes cantidades de criptomonedas, lo que sin duda es el objetivo más atractivo para los piratas informáticos, siempre que los piratas informáticos roben estas claves privadas, pueden obtener estas criptomonedas;

El autor continuará leyendo materiales relevantes y mejorando continuamente este artículo, con el objetivo de completar un artículo científico de Bitcoin fácil de entender. :)

**Este artículo es una combinación de información en línea y comprensión personal. Si hay alguna desviación o malentendido, los lectores pueden señalarlo. También se agradece orientación sobre la estructura del artículo~