Notas personales de Xiaobai sobre el aprendizaje de blockchain desde cero (2) Primer conocimiento del sistema distribuido de Bitcoin

Capítulo 2 Conociendo el sistema distribuido de Bitcoin

2.1 El propósito original de Bitcoin

La etapa de desarrollo de la moneda.

Trueque-> moneda física (principalmente moneda de metal) -> papel moneda-> moneda de contabilidad centralizada .
La centralización tiene el problema de la confianza en el pago electrónico, ver abajo

b) Dos cuestiones básicas en la industria de pagos electrónicos.

1. ¿Cómo puedo transferir dinero en línea entre dos partes necesitadas sin usar un tercero autorizado?
2. ¿Cómo registrar la información de pago mientras se realiza la transferencia electrónica para evitar el doble pago y garantizar la seguridad de los fondos?

c. El nacimiento de Bitcoin

Para resolver los dos problemas anteriores, en 2008, una persona que cambió su nombre a Satoshi Nakamoto publicó un libro blanco
titulado ** "Un sistema de pago electrónico en efectivo entre pares" , que proponía los dos problemas anteriores. Hay dos soluciones: 1. En las transferencias de persona a persona, debe haber una moneda electrónica que pueda juzgar su valor sin estar vinculada a una agencia de precios de terceros **.
2. Tenemos que tener un centro de libros digitales que ir , ser capaz de comercio de información y transacción registros almacenados distribuida a ordenadores de todo el mundo
y por lo tanto, junto con la descentralización de las expectativas, Bitcoin entró en vigor.
Bitcoin es la fuente del auge de la tecnología blockchain y la aplicación más temprana y exitosa de la tecnología blockchain. Blockchain también ha entrado en los ojos de las grandes masas de personas

2.2 Tres conceptos básicos de Bitcoin (billetera, dirección, clave privada)

a) Relación entre usuario, clave privada, clave pública y dirección

Clave pública y clave privada: la clave pública y la clave privada son un conjunto de conceptos utilizados juntos, y existe una estrecha relación entre ellos. En pocas palabras, la clave privada es generada aleatoriamente por el sistema, y ​​la clave pública es calculada por la clave privada; la clave pública es responsable del cifrado, la clave privada es responsable del descifrado; la clave privada es responsable de la firma y la clave pública es responsable de la verificación.
Bitcoin realmente existe en la dirección del usuario .
Este proceso no se puede revertir.
Entendimiento personal

b. El proceso de transacción

Transacción: El acto de transferir el bitcoin de una dirección a otra utilizando la clave privada que posee el minero
1. Primero suponga que A quiere transferir bitcoin a B, donde CD es un transeúnte
Inserte la descripción de la imagen aquí
2.
Si A envía a B algo de bitcoin, entonces Esta transacción tiene tres elementos de información:
1. Ingrese. Registra desde qué dirección las monedas propiedad de A fueron transferidas originalmente a A.
2. Número. Esta es la cantidad de bitcoins A transferidos a B.
3. Salida. Esa es la dirección de Bitcoin de B.
Además de que la primera transacción son los ingresos mineros de los mineros, cada transacción tiene una o más entradas y una o más salidas.
Inserte la descripción de la imagen aquí
Entre ellos, hay tres puntos para agregar
1. El cifrado de la clave privada registra el resultado de la transacción, aquí A. Esto asegura que cada transacción pueda rastrearse
2. La verificación de la clave pública se convierte en un script de clave pública, asegurando que la dirección de recepción de la transacción debe ser la dirección de B

2.3 Encriptación asimétrica y cómo evitar la contabilidad falsa

Es decir, asimétrico de cifrado para cifrar y descifrar el mismo algoritmo que irreversible
principio de funcionamiento de la transferencia de información de cifrado asimétrico entre:

1. A quiere enviar información a B. Tanto A como B deben generar un par de claves públicas y privadas para el cifrado y descifrado.
2. La clave privada de A se mantiene en secreto, y la clave pública de A se le dice a B; la clave privada de B se mantiene en secreto, y la clave pública de B se le dice a A.
3. Cuando A quiere enviar información a B, A cifra la información con la clave pública de B, porque A conoce la clave pública de B.
4. A envía el mensaje a B (el mensaje ha sido encriptado con la clave pública de B).
5. Después de que B recibe este mensaje, B descifra el mensaje de A con su clave privada. Nadie más que recibió este mensaje puede descifrarlo, porque solo B tiene la clave privada de B.

Inserte la descripción de la imagen aquí

2.4 Algoritmo de hash difícil de manipular

1. Características del algoritmo de hash

Características del algoritmo de hash
➢ Unidireccional
➢ Calcule un hash de longitud fija basado en un mensaje de cualquier longitud
➢ Diferentes entradas tienen diferentes salidas
➢ El algoritmo es altamente eficiente, y la
función de hash de tiempo para calcular el valor de hash debe tener las siguientes propiedades:
⚫ H puede usarse para mensajes de longitud "arbitraria". "Cualquiera" se refiere a lo que realmente existe.
Value El valor hash generado por H es de longitud fija. Esta es la naturaleza básica de la función Hash.
⚫ Para cualquier mensaje dado M, es fácil calcular el valor H (M). Esta es la disponibilidad de funciones hash.
⚫ Unidireccionalidad (antigenicidad): para un valor hash dado h,
es computacionalmente inviable encontrar M tal que H (M) = h .

2. El papel de los punteros hash en la cadena de bloques

Es decir, cifrado de datos
Puntero hash: no solo para guardar la posición de la estructura en la memoria sino también para guardar el valor hash de la estructura.
La principal diferencia entre blockchain y la lista vinculada normal es que se utiliza el puntero hash en lugar del puntero ordinario
Inserte la descripción de la imagen aquí

Dirección de transacción con cifrado A de uso real

Se utiliza hash unidireccional. La parte superior del árbol de hash es el hash superior, también conocido como hash raíz o hash maestro. Es escalar el árbol conectando dos sub-hashes en paralelo hasta que se encuentre el hash raíz. Función:
1. Localice rápidamente cada transacción
2. Verifique si los datos de la transacción han sido alterados

Uso práctico B-la esencia de la minería

Minería: hay un parámetro en el encabezado del bloque llamado número aleatorio Nonce. El proceso de encontrar este número aleatorio se llama "minería". El
proceso de minería de bitcoin utiliza la función hash SHA256 para calcular continuamente. La minería consiste en calcular repetidamente el valor hash del encabezado del bloque. Continúe modificando el valor Nonce hasta que cumpla con el proceso de valor hash objetivo. El resultado de la función hash es impredecible y no hay un modo específico para calcular rápidamente el valor hash.

2.5 Problema de doble gasto y mecanismo UTXO

Problema de doble flor

¿Qué es la flor doble?

Se gasta una suma de dinero dos veces o más, también llamado "pago doble".
En el sistema de moneda digital, los activos digitales son esencialmente números virtuales basados ​​en Internet. En resumen, los llamados activos digitales son en realidad una cadena de caracteres, por lo que es fácil de copiar o enviar varias veces. En este caso, si no hay una organización central, las personas no pueden determinar si se ha gastado un activo, lo que lleva a la situación de que el mismo activo digital puede reutilizarse debido a una operación incorrecta.

¿Cómo evitar el doble gasto en el sistema Bitcoin? —— Mecanismo UTXO

1. ¿Qué es UTXO?

• UTXO es la abreviatura de Salidas de transacciones no utilizadas, el nombre completo es "salida de transacciones no utilizadas".
• U significa Sin gastar, lo que significa sin pagar o sin usar. "Sin pagar" significa que el resultado de la transacción aún no ha aparecido en la entrada de otras transacciones.
• TX es una abreviatura de transacción. Una transacción es una transferencia de una billetera de bitcoin a otra. Es la única forma de cambiar la propiedad de bitcoin, incluidos los contenidos básicos de entrada, número y salida.
• O es Salida, que significa salida, y TXO significa salida de transacción.

2. UTXO en transacciones de Bitcoin

El libro mayor de blockchain distribuido de Bitcoin está formado por una transacción a la vez. Cada transacción requiere una entrada para generar una salida, y la salida que genera es "no gastada" "Salida de transacción", que es UTXO.

No hay concepto de cuentas de usuario en Bitcoin.

Decimos cuántos bitcoins nos referimos realmente a la cantidad de bitcoins especificados en UTXO que poseemos.
D tiene 14 bitcoins. En esencia, en el libro mayor de blockchain actual, los beneficiarios del artículo UTXO de varias transacciones escribieron la dirección de D, y la cantidad total de estos artículos UTXO es 14.
Vea la figura a continuación para más detalles.Inserte la descripción de la imagen aquí

2.6 Algoritmo de consenso y mecanismo de prueba de carga de trabajo

¿Qué es el consenso?

xx (objeto) de acuerdo en xx (cosa)

Consenso en Bitcoin

Todos los nodos en qué nodo puede generar el siguiente bloque para llegar a una visión unificada de
la cadena de bloque bitcoin algoritmo de consenso proporciona el siguiente nuevo bloque que se genera por los mineros, al mismo tiempo, en esta cadena de bloque para llegar a un acuerdo, Algunos nodos seleccionados por el algoritmo de consenso necesitan llegar a un consenso.

Varios algoritmos de consenso

• PoW (Prueba de trabajo, Prueba de trabajo)
• PoS (Prueba de estaca, Prueba de estaca)
• DPoW (Prueba de trabajo delegada, Prueba de trabajo)
• DPoS (Prueba de estaca delegada, Prueba de derechos)
• PBFT (Práctico Tolerancia de falla bizantina, algoritmo práctico de tolerancia a falla bizantina)

Aquí explicamos principalmente el mecanismo de pow utilizado por la red Bitcoin

Mecanismo de consenso en el mecanismo de prueba de trabajo de la red Bitcoin

Características:
Los usuarios que realizan un trabajo real con asimetría deben pagar mucho trabajo para obtener un resultado que cumpla con las condiciones especificadas, pero como verificador, puede volver a calcular fácilmente el resultado en función de los materiales proporcionados por el usuario y verificar si el resultado está satisfecho Definir buenas condiciones de antemano.

En la red de Bitcoin, en primer lugar, genera una nueva información de transacción que se agregará a la cadena de bloques, es decir, los requisitos que deben cumplirse cuando se cumple un nuevo bloque. Luego, en la red blockchain basada en el mecanismo de prueba de trabajo, todos los nodos comienzan a intentar y calcular continuamente hasta que el primer nodo encuentra la solución numérica del hash hash aleatorio, por lo que tiene el derecho de generar nuevos bloques .
Ventajas: Completamente descentralizado
Desventajas: 1. El comportamiento minero causa una gran pérdida de recursos
2. Se requiere un período más largo para llegar a un consenso.
Comprensión personal: Al dar un valor hash, la operación de cifrado se realiza continuamente a través de un método exhaustivo hasta el original. Expresiones, y luego se puede verificar fácilmente si el resultado es correcto

2.7 Altura del bloque, 51% de ataque, grupo de minería y potencia informática

Bloque y altura de bloque

Un bloque es la unidad básica que constituye una cadena de bloques y está compuesto por un encabezado de bloque y un cuerpo de bloque . El encabezado del bloque contiene la información de hash del bloque anterior, que puede ayudar al nuevo bloque a conectarse con el bloque anterior; y el cuerpo del bloque contiene toda la información de la transacción durante este período.
Inserte la descripción de la imagen aquí

¿Cuál es el encabezado del bloque?

Inserte la descripción de la imagen aquí

1) El número de versión (Versión) se
utiliza para identificar la versión de la transacción y las reglas referenciadas. Por ejemplo, Android 10 o iOS13, el bloque también tiene su propio número de versión.
2) El valor hash del bloque anterior
también se denomina "valor hash del bloque padre". Este valor hash se obtiene al mezclar los datos del encabezado del bloque anterior (algoritmo SHA256). Su importancia radica en: Cada bloque recién extraído está conectado a la parte posterior del bloque anterior en orden; de esta manera, después de cavar el nuevo bloque, puede tener un sorbo de tranquilidad, porque sabe que a este bloque le sigue una colcha Detrás del bloque confiable verificado por cada nodo.
3) Merkle Root (Merkle Root)
Como se muestra arriba, en el cuerpo del bloque, toda la información de la transacción se agrupa primero en grupos de dos. Esta estructura se llama Merkle Tree (Merkle Tree), y es un árbol invertido. Arbol
Simplificamos el problema, suponiendo que hay 4 información de transacción en el cuerpo del bloque, a saber, la transacción 1, la transacción 2, la transacción 3 y la transacción 4. El árbol Merkle primero realiza el cálculo de hash Hash en cada información de transacción para obtener Hash 1, Hash 2, Hash 3, Hash 4 respectivamente.
En el segundo piso, al igual que el maestro de clase organiza los asientos, dos grupos, es decir, las cadenas de Hash 1 y Hash 2 se sientan en una fila y se convierten en una cadena de doble longitud, y luego calculan el valor hash de esta cadena, Recordemos como Hash (1 y 2); Hash 3 y Hash 4 se procesan de la misma manera que arriba para obtener Hash (3 y 4), y luego cuentan, las dos cadenas Hash (1 y 2) y Hash (3 y 4) se fusionan nuevamente, y luego la operación de hash El valor hash final es la raíz de Merkle del encabezado del bloque.
En lo que respecta a Bitcoin, la situación real es que un cuerpo de bloque contiene más de 4.000 golpes. En más casos, todos harán inferencias. En resumen, los dos grupos se fusionan y se combinan continuamente. Con suerte
El árbol de Merkle puede verificar rápidamente la integridad de los datos de la transacción, es decir, si los datos han sido alterados. Según las características de la función hash en criptografía, si alguien ha manipulado los datos, el valor hash calculado será completamente diferente. Incluso en estas 4000 transacciones, solo moví un punto decimal, puede encontrar el problema a partir del valor hash de la raíz de Merkle.
Inserte la descripción de la imagen aquí
4) La marca de tiempo (Hora)
registra la hora a la que se generó este bloque, precisa para el segundo. Cada vez que nace un nuevo bloque, se estampará con la marca de tiempo correspondiente, para garantizar que los bloques de toda la cadena estén ordenados en orden cronológico.
5) El valor de dificultad (Target_bits)
excava el objetivo de dificultad del bloque. Cada 2016 bloques se generan, la dificultad de cálculo del bloque de datos se ajustará una vez. Por ejemplo, la red de blockchain de Bitcoin puede ajustar automáticamente la dificultad de la minería, permitiendo a los mineros excavar un bloque cada 10 minutos. Originalmente tardó 14 días en desenterrar el bloque de 2016, pero no sé qué matanza del cielo de repente obtuvo algunas máquinas mineras que explotaron la potencia informática, y se realizó en 7 días, lo que significa que cuando se alcanza el período de ajuste programado, la minería La dificultad se duplicará.
6) La
minería Nonce es equivalente a un minero que hace un problema de matemática. Usan el hashrate de una computadora o una máquina minera para realizar una gran cantidad de cálculos (profesionalmente llamado "colisión hash") para probar un área correcta. Bloquear hashes; muchas veces también nos referimos a la minería como contención de los derechos de facturación.Inserte la descripción de la imagen aquí

¿Cuál es el cuerpo principal del bloque?

El lugar utilizado para registrar la información de la transacción. En Bitcoin, cada bloque almacena aproximadamente diez minutos de información de la transacción, y luego se genera el siguiente bloque, y la información de la transacción se almacena en el siguiente bloque, y así sucesivamente.
La información de la transacción de 10 minutos está determinada por la velocidad promedio de generación de bloques y cambiará de acuerdo con la velocidad de extracción. Por ejemplo, la configuración de Bitcoin permite a los mineros excavar un bloque cada 10 minutos. Originalmente tardó 14 días en desenterrar el bloque de 2016, pero no sé qué dios mató a algunas máquinas mineras que explotaron repentinamente la potencia informática. Tomó 7 días en completarse. Esto significa que cuando se alcanza el período de ajuste programado, el sistema Aumenta automáticamente la dificultad de la minería, de modo que la velocidad general de generación de bloques tiende a ser estable durante diez minutos

¿Cuál es la altura del bloque?

La altura del bloque es un concepto utilizado para identificar la ubicación de un bloque en la cadena de bloques.
Inserte la descripción de la imagen aquí

Piscina minera

Después de combinar mucha potencia informática, el sitio web formado por la operación conjunta

Potencia de cálculo

La tasa de hash, también conocida como tasa de hash, es un índice utilizado para medir la capacidad de realizar operaciones de hash, o
el tiempo requerido para realizar un cálculo de hash. Si la red alcanza una tasa de hash de 10T hash / s (10T hash por segundo), significa que puede realizar 10 billones de cálculos por segundo.
Choque de hash: el proceso de tratar de resolver valores aleatorios de hash.
El número de veces que un minero puede hacer tales colisiones por segundo representa su potencia informática.
Cuanto más avanzadas son las máquinas utilizadas por los mineros para minar, mayor es la potencia informática.

51% de ataque y paradoja

La potencia informática de alguien en toda la red supera el 50% de toda la red. Luego puede intentar modificar el estado de la cadena de bloques, realizar transacciones inversas y lograr el doble gasto.
Ver https://www.jianshu.com/p/d6be6637edc1

3 artículos originales publicados · Me gusta0 · Visitas 62

Supongo que te gusta

Origin blog.csdn.net/weixin_45067603/article/details/105444151
Recomendado
Clasificación