Algunas preguntas básicas sobre cómo comenzar con blockchain

prefacio

Cuando mencionamos la cadena de bloques, muchas personas saben que es algo relacionado con las finanzas, es decir, el dinero. En lugar de decir cadena de bloques, la palabra que usamos a menudo debería ser tecnología de cadena de bloques. Esta declaración en realidad revela su esencia: la tecnología. ¿Cuál es otro sustantivo asociado con blockchain? Eso, por supuesto, es el famoso Bitcoin (BitCoin).

bitcoin

Bitcoin, puedes pensar en él como una moneda electrónica, su aparición definitivamente no es accidental, sino que es la necesidad del desarrollo histórico. En el artículo de Satoshi Nakamoto (ver archivo adjunto), las causas y consecuencias de la aparición de Bitcoin se describen a grandes rasgos de la siguiente manera (la traducción puede ser incorrecta)

En el mundo físico, la moneda es emitida por los bancos centrales de varios países. Este es un mecanismo de emisión centralizado. Para decirlo sin rodeos, es fácil ser controlado por una organización centralizada
. Moneda física: las personas entregan directamente efectivo a otra persona . Por supuesto, las personas comercian directamente con otras personas y hacen circular la moneda. Este método es, por supuesto, seguro (a menos que se encuentren billetes falsos, esto no se discute aquí. Ja) Entonces, ¿hay algo de malo en tener un tercero de confianza como intermediario para las transferencias de dinero? Creo que Alipay suele usarse bien. En el artículo de Satoshi Nakamoto, dijo:



Un tercero centralizado no puede garantizar completamente a un
tercero centralizado creíble. Todas las transacciones y los saldos de los usuarios se almacenan en una base de datos centralizada, que no puede garantizar completamente que las transacciones no se puedan cambiar (porque solo una persona sabe, tú cambias Ya, ¿con quién hablo? ?)
En el proceso de transacciones de persona a persona, el tercero, como intermediario, también debe asumir riesgos. Si dos personas en la transacción discuten, ¿crees que me aburriré como garante? Pérdida, esto será aumentar virtualmente el costo de este tipo de transacción, e incluso puede hacer que muchas personas renuncien a este tipo de transacción. El
tercero centralizado no es una organización de bienestar. ¿Por qué deberían administrar los libros por usted y discutir con usted? ¿Paño de lana? ¿No hay un cargo por servicio?
Entonces, Satoshi Nakamoto imaginó que en el proceso de transacciones electrónicas, ¿se podría regalar a este tercero de alguna manera, como las transacciones avanzadas en el mundo físico, donde el usuario A transfiere directamente la moneda a la cuenta del usuario B en la billetera?

Desde entonces, Bitcoin acaba de entrar en la etapa de la historia. . .

cadena de bloques

Después de leer lo anterior, creo que ya tiene una comprensión general de para qué se usa Bitcoin.En el artículo de Satoshi Nakamoto, Bitcoin es un sistema de efectivo electrónico peer-to-peer, por lo tanto, como moneda correspondiente a los billetes en el mundo físico. ¿Qué problemas hay que resolver para el dinero electrónico?

La emisión de moneda, en primer lugar, tiene un cierto mecanismo para garantizar que estas monedas se puedan emitir normalmente, al igual que la emisión de monedas hermanas blandas por parte del banco central. Sin embargo, no es como la emisión de monedas hermanas blandas del banco central. Puedo enviar todo lo que quiera. Terminará tarde o temprano. No enumeraré muchos ejemplos sangrientos de transferencia de moneda. Bitcoin es un sistema de efectivo electrónico
. Debe haber un mecanismo para asegurar que la moneda pueda circular entre los usuarios, y este tipo de circulación ya no puede ser intervenida por un tercero Transacciones
, saldos, etc., tengo que tener un mecanismo para almacenar las transacciones entre personas Para la información de la transacción, todavía necesito registrar cuánto dinero le queda a una persona. Además, este proceso no puede ser realizado por una organización centralizada como se mencionó anteriormente. Puede considerarse como la realización del sistema de efectivo electrónico de Bitcoin. Entre las
claves problemas que deben ser resueltos, ¿cómo resolver estos problemas? Ahí es donde entra en juego el protagonista de hoy: la tecnología blockchain. El significado general es: ¿qué es la cadena de bloques, una moneda electrónica como bitcoin y la tecnología subyacente que garantiza el funcionamiento de bitcoin?

Secretos de la cadena de bloques revelados

tirar ladrillos y empezar jade

A continuación, vamos a contar una historia para sacar a la luz los problemas clave de la tecnología blockchain.

historia uno

Era una mañana soleada y Shi Jin fue a trabajar feliz como siempre. Tan pronto como llegó a la empresa, Cheng Xiao le dijo que el jefe pensaba que eras muy bueno y solo dijo que te daría un ascenso y un salario. aumentar. Al escuchar esto, pensó que debía haberme mentido, por lo que no se lo tomó en serio. Inesperadamente, el hermano Sheng volvió después de un tiempo y dijo lo mismo que Cheng Xiao, el corazón de Shi Jin comenzó a latir. ¿esta verdad? Después de un tiempo, Li Chen también le dijo lo mismo a él, a Zimo y a Han Yu, esto es un gran problema, Shi Jin comenzó a creerlo, tiene que creerlo, después de todo, tanta gente lo ha dicho, es debe ser realmente!

historia dos

Era una mañana soleada y Shi Jin se fue a trabajar feliz como siempre. Tan pronto como llegó a la empresa, el maestro Ma le dijo a Shi Jin que la empresa había decidido darte un ascenso y un aumento de salario, y Shi Jin lo creyó de inmediato.

A través de las dos historias anteriores, puede ver que en realidad hay dos formas de convencer a los usuarios de una cosa. Una es que muchas personas en la Historia 1 dicen que es cierto, y la otra es que hay una autoridad. Esto es cierto para terceros. . La tecnología blockchain utiliza formalmente la idea de la historia 1 para realizar la garantía de la validez de la transacción.

Resumir

Esta es la idea más importante de la tecnología blockchain: la descentralización

Por supuesto, esta descentralización tiene dos significados, el primero es la descentralización de la emisión de moneda, el otro es la descentralización de la transferencia (circulación) de moneda. Significa que la emisión de moneda ya no está controlada por una institución centralizada como el banco central, sino que está determinada por todo el sistema.En cuanto a los factores que determinan la emisión de moneda, hablaremos de ello más adelante; al mismo tiempo , la circulación de moneda entre los usuarios También se requiere la descentralización. Los usuarios transfieren moneda directamente a otro usuario sin la necesidad de que un tercero garantice la contabilidad. En cambio, todos los usuarios participantes garantizarán conjuntamente que todos presenciarán la transacción juntos para garantizar la validez de la transacción.

fascinante

Tomemos como ejemplo la transferencia (transacción) de Bitcoin entre usuarios para introducir varios mecanismos mágicos de la cadena de bloques.

transmitir información de transacciones
inserte la descripción de la imagen aquí

Después de recibir la información de la transacción, las personas que comen melones sacan sus propios cuadernos y anotan la transacción de A y B. Una vez que el registro es exitoso, es irrevocable y no se puede cambiar.

inserte la descripción de la imagen aquí

¡Enfócate en eso!

¿Por qué las personas que comen melones llevan cuentas para los demás? Esto lleva a la minería minera, que también es el mecanismo de emisión de Bitcoin. Es decir, el sistema otorgará las recompensas correspondientes a los usuarios que mantengan cuentas.
Hay tantas personas que comen melones, y todos llevan las cuentas con un pequeño libro, entonces, ¿quién debe llevar el libro de cuentas final? Por lo tanto, debe haber un mecanismo que permita a todos ponerse de acuerdo sobre la validez de los resultados contables finales. Este es el mecanismo de consenso adoptado por Bitcoin, el mecanismo de consenso basado en la prueba de trabajo. Lectores, tengan en cuenta sus cuadernos.
?

Continuando, bajo la protección del mecanismo de consenso, las personas que hayan obtenido los derechos finales de contabilidad transmitirán la información de transacción de esta transacción a toda la red, y otras personas verificarán y confirmarán la transacción, y la transacción se registrará cuando sea llega a más de 6 confirmaciones. (¿Qué? ¿Por qué 6?)

Cuando los comedores de melón registren la información de la transacción, estamparán la marca de tiempo (valor Hash) para formar una cadena de tiempo completa. Esta marca de tiempo es en realidad una prueba de existencia, lo que indica que la transacción realmente ha ocurrido cada vez que se confirma.
Transacción los registros formarán un bloque (Block)
y los bloques se vincularán mediante un algoritmo mágico
inserte la descripción de la imagen aquí

hablar elocuentemente

Bueno, después de pasar por las operaciones anteriores, creo que todos tienen una comprensión perceptiva de los conceptos básicos de Bitcoin, blockchain y procesos generales (bueno, parece que conozco el área ¡Qué es la cadena de bloques!) Resumamos la clave ideas y tecnologías de la cadena de bloques en profundidad!

descentralizado

En la red Bitcoin, no hay un servidor centralizado. Toda la red está compuesta por varios nodos, que juntos forman una red descentralizada
de emisión de moneda descentralizada. En la red Bitcoin, la emisión de moneda está garantizada por este mecanismo. y este mecanismo es un mecanismo completamente descentralizado. La
circulación de transacciones de moneda está descentralizada. Cada transacción de Bitcoin está garantizada conjuntamente por todos los nodos de la red. Sexo e inmutabilidad

franqueza

La información de transacciones de todos los usuarios de Bitcoin se registra en un libro mayor distribuido. Esta información del libro mayor está abierta a todos los usuarios, y cualquiera puede descargar la información del libro mayor. La red de Bitcoin está abierta y cualquier servidor puede conectarse a la red. También
puede descargar la cantidad completa de información del libro mayor

Inmutable

Cada información de transacción se almacena en un bloque, y cada bloque recién generado se vincula en el orden del tiempo (valor hash). La irreversibilidad del tiempo hace que cualquier operación que intente modificar la información del bloque sea Cada bloque recién generado que se pueda
rastrear back se cifra con el algoritmo hash de volumen. Los factores que intervienen en el hash incluyen no solo la información de esta transacción, sino también el valor hash del bloque anterior. De esta manera ,

tecnología relacionada

La siguiente figura es una visualización de un bloque real.Los campos en el bloque en los que nos centraremos esta vez son:

Bits
Nonce
Hash
Bloque anterior
Merkle Root
inserte la descripción de la imagen aquí

mecanismo de consenso

http://c.biancheng.net/view/1897.html

La tecnología Blockchain resuelve el problema de la representación de valor y la transmisión de valor en una red descentralizada, y cómo acordar los datos en esta red descentralizada distribuida es un tema muy crítico. En nuestra vida diaria, casi todo es un proceso de consenso. Y este es precisamente uno de los principales avances de Bitcoin, a saber: cómo llegar a un consenso sobre un determinado evento de transacción en un entorno descentralizado.

Los dos núcleos del mecanismo de consenso

Incentivos económicos: Premiar a los participantes generando una cierta cantidad de nuevos bitcoins en cada bloque
Introducir recursos externos para garantizar la seguridad: es decir, a través de una gran cantidad de cálculos externos para garantizar la seguridad del consenso, es decir, Prueba de Trabajo

El proceso principal de llegar a un consenso (el proceso de generar nuevos bloques)

Escuchar: el nodo monitorea la información de la transacción de toda la red, y la transacción verificada ingresará al grupo de memoria del nodo
Construcción: construya un bloque vacío, llamado bloque candidato
Transacción: empaquete la transacción del grupo de memoria al bloque candidato
Head : Encabezado del bloque de construcción, complete los siguientes campos del encabezado del bloque
Número de versión Campo de versión: Indica las reglas de verificación que cumple este bloque
Valor hash del bloque principal Bloque anterior
utiliza el árbol merkle para resumir todas las transacciones y completa el valor hash de la raíz de merkle a la raíz de merkle Campo
Marca de tiempo campo de marca de tiempo
Rellene el valor objetivo Campo de bits
Operación: ajuste constantemente el número aleatorio Nonce y realice el cálculo Hash, de modo que el valor Hash calculado cumpla con ciertos requisitos, a saber: menos que el Hash objetivo. (O: la representación binaria del valor Hash calculado tiene una cierta cantidad de 0 iniciales) Porque al comparar
números binarios, la comparación es en realidad los 0 anteriores, y quien tenga más 0 será más pequeño
.
: Después de que otros nodos pasen la verificación, enlace (Bloque anterior) a la cadena principal (¿hay una cadena lateral? Bueno...)
Espere: espere a que la cadena principal enlace 5 bloques nuevos (es decir, después de 5+1 bloques ), el bloqueo entrará en vigor oficialmente y no podrá ser manipulado.
Este proceso de llegar a un consenso se denomina mecanismo de consenso basado en la prueba de la carga de trabajo. Aquí hay algunos puntos para explicar:

¿Cómo entender la carga de trabajo?

El ajuste constante de números aleatorios para realizar la competencia de cálculo SHA-256 es poder de cómputo de la computadora. Este cálculo basado en el poder de cómputo es un tipo de carga de trabajo. ¿Por qué el
valor Hash calculado puede ser más pequeño que el Hash objetivo para reflejar la carga de trabajo?
La cantidad de puntos arrojados por los dados es <= 6, y debe lanzarse una vez en promedio, y la carga de trabajo se puede cuantificar como 1; ¿qué pasa con la cantidad requerida de puntos arrojados <= 3? Se requiere un promedio de 2 lanzamientos, duplicando la carga de trabajo. Cuando el valor objetivo es muy pequeño, ¿es muy grande hacer que el valor Hash calculado sea más pequeño que el valor objetivo?
Con el aumento de la potencia informática, ¿cómo controlar la dificultad del cálculo?
El valor Hash objetivo compuesto por números binarios de 256 bits, si un bit se cambia arbitrariamente, la dificultad se duplicará. Por lo tanto, la dificultad se puede ajustar ajustando el valor Hash objetivo

Cálculo de hash


Generalmente, se usa una operación SHA-256, y el valor Hash generado por el cálculo se compone de un número binario de 256 bits. Para facilitar la expresión, se expresa en hexadecimal, por lo que es 256/4 = 64 bits de entrada hexadecimal Los cambios causarán grandes cambios en la salida, y no hay ley en absoluto.

Bits y valor hash de destino

Los bits corresponden a la dificultad. Utiliza un número entero de 32 bits para comprimir y almacenar el valor Hash objetivo actual de 256 bits.

Valor hash de destino: 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Bits: 0x1D00FFFF
¿Cómo comprimirlo? Las reglas son:

El número efectivo de dígitos del valor Hash objetivo = (64-8) + 2 = 58 (es decir, 29 bytes), luego el byte más alto del campo Bits = 29, y la representación hexadecimal es 0x1D + 2 debido a
la valor hash objetivo El bit más alto 0xFF (1111 1111) > 0x80 (1000 0000) Los
3 bytes de bits restantes, tome los 3 bytes más altos del valor hash para almacenar

Raíz de Merkle

El árbol Merkle se usa en Bitcoin para almacenar información de transacciones en cada bloque.

inserte la descripción de la imagen aquí

Use el árbol de Merkle para resumir toda la información de la transacción y coloque la Raíz de Merkle resumida en el encabezado del bloque. Los beneficios de esto son obvios:

Todas las transacciones participan en el cálculo de Hash hasta que se agregan a Merkle Root. Si alguien manipula algunos bloques de datos en la parte inferior del árbol Merkle, hará que el puntero hash de la capa superior no coincida, entonces tendrá que manipular el puntero hash de la capa superior hasta la parte superior del número, y en este momento, la manipulación está a punto de finalizar, porque almacenamos el puntero hash del nodo raíz del árbol, de modo que se pueda evitar que se altere la información de la transacción. Los usuarios solo necesitan descargar datos de encabezado de bloque muy pequeños para
verificar la autenticidad de una transacción
De acuerdo con el principio de la cadena más larga, arrastre todos los encabezados de bloque al local
Calcule el valor tx_hash de la transacción que se verificará
Encuentre el encabezado de bloque con tx_hash
para encontrar esta área Algunos nodos clave del Merkle Tree en el bloque , y construya una Merkle-Tree-Copy de acuerdo con las reglas de construcción para
comparar si la raíz de Merkle-Tree-Copy es la misma que la raíz en el bloque
, siempre que recordemos el nodo raíz del primer árbol Hash pointer ,
punteropodemos volver a cualquier posición en la tabla de acuerdo con el
Entonces, ¿cuál es el problema del "doble gasto"? Aquí, resolvamos algunos conceptos relacionados con esto:

Ataque de potencia informática del 51 %
Problema de gasto doble
3.1.6.1 Ataque de potencia informática del 51 %
En el mecanismo de consenso basado en la prueba de trabajo, los nodos de la red compiten con la potencia informática de la computadora para realizar operaciones Hash complejas, y el nodo que primero calcula el resultado genera Los bloques serán aceptados por toda la red y vinculados a la cadena de bloques, llamados nuevos bloques. Luego, cuando una persona u organización ha dominado el 51% del poder de cómputo de toda la red, puede falsificar transacciones de acuerdo a "lo que quiera".

problema del doble gasto

Suponiendo que Xiaohei tiene 666 BTC, paga a Dabai con estas monedas y al mismo tiempo las envía a otra dirección de billetera propia.

Al final, la transacción enviada a Dabai se confirmó primero y se empaquetó en un bloque con una altura de bloque de N.

En ese momento, Xiao Hei, que controlaba más del 50 % de la potencia informática, lanzó un ataque de potencia informática del 51 %. a las ventajas del poder de cómputo, esta cantidad se llamará la cadena legal más larga. (El usuario solo reconoce la cadena más larga que ve: el principio de la cadena más larga)

En ese momento, la transacción transferida a Dabai fue manipulada.

como evitar

Para evitar pérdidas causadas por el doble gasto, generalmente se cree que las transacciones de Bitcoin después de que se confirmen 6 bloques no se pueden manipular.
inserte la descripción de la imagen aquí

En términos generales, cuantos más bloques confirmados, más seguros y menor es la posibilidad de que se manipulen las transacciones.

Para lograr el doble gasto, en realidad es un proceso en el que los nodos maliciosos y los nodos seguros compiten entre sí por la minería.Cuando la cadena maliciosa formada por el nodo malicioso es más larga que la cadena de confianza formada por el nodo seguro, el nodo malicioso puede realizar el doble de gasto. Aquí, se hace una suposición, es decir, asumiendo que los nodos maliciosos dan cuenta de que la potencia informática de toda la red es p, entonces el nodo seguro es q=1-p, después de pasar el bloque n, la probabilidad de que el malicioso cadena poniéndose al día con la cadena de confianza para:

(pq)n ( pq ) n
Entonces, cuando el nodo de confianza genera n bloques, ¿cuántos bloques genera el nodo malicioso?

Aquí, Satoshi Nakamoto asume que la cantidad de bloques generados por nodos maliciosos obedece a una distribución de Poisson:

P(X=k)=(λkk!)e−λ P ( X = k ) = ( λ kk ! ) e − λ Esta fórmula significa: la probabilidad de que un nodo malicioso genere
k bloques es: P(X=k)

Por lo tanto, podemos averiguar el valor esperado de los nodos maliciosos que generan bloques después de que los nodos confiables generen n bloques.

∑∞k=0(λkk!)e−λ(pq)n−k ∑ k = 0 ∞ ( λ kk ! ) e − λ ( pq ) n − k Suma esta secuencia, cuando N=6, p =
At 10%, suma=0,0002.

Indica: cuando el nodo de confianza genera 6 bloques, el valor esperado de la cantidad de bloques generados por el nodo malicioso es 0.0002

Es decir, bajo las condiciones de los supuestos anteriores, después de la confirmación de 6 bloques, la posibilidad de fraude de nodo malicioso es casi nula.

Supongo que te gusta

Origin blog.csdn.net/jgku/article/details/128360418
Recomendado
Clasificación