Blockchain y Bitcoin (I)
Supongamos que durante la final del Mundial de 2006, nos encontramos con dos aficionados al fútbol que no se conocían. Italia jugó contra Francia. Los aficionados franceses dijeron que tenemos a Zidane y que Francia definitivamente le ganará a Italia. Los aficionados no estaban convencidos y decían que somos Italia. Si no lo crees, apostemos 100 euros. En el mundo real, ¿qué hacer?
Como se mencionó anteriormente, los que trabajamos en computadoras pasamos más del 90% de nuestro tiempo lidiando con situaciones anormales. Si los humanos fueran muy dignos de confianza, el mundo podría no ser así. ¿Qué pasa si el dinero se le da a un tercero y el tercero se escapa? Se malversó dinero. Por lo tanto, un corazón bondadoso no puede confiar únicamente en el extraño círculo de la realidad. Debe haber un medio para garantizar de forma segura este compromiso, contratos legales, etc. Un enfoque muy común hoy en día es encontrar una institución autorizada de terceros, como el gobierno, un banco, etc., o encontrar una persona u organización de buena reputación. En última instancia, es mejor encontrar una institución o persona con credibilidad. . Sin embargo, en términos generales, este tipo de terceros definitivamente "se arrancarán los pelos" y cobrarán un cierto porcentaje de los gastos de gestión.
Entonces, ¿hay alguna forma de solucionar este problema? Esta es también una de las intenciones originales del diseño de Bitcoin, que es resolver el problema de confianza entre dos extraños.
Algoritmo de cifrado + contabilidad de varias personas
El primero es el algoritmo de cifrado. Aquí está el cifrado asimétrico que mencioné antes, es decir, la clave pública y la clave privada. Todo el mundo puede tener uno o más pares de claves públicas y privadas, pero una clave pública sólo puede tener una clave privada correspondiente, y viceversa. El principio es que dos números primos muy grandes (p y q) se multiplican para obtener un número (n). Si desea descifrar la clave privada basándose en la clave pública, en teoría debe usar la fuerza bruta para determinar qué número es. compuesto por dos grandes números primos que se obtienen multiplicando. Actualmente, no existe ninguna clave privada pública en el mundo que pueda descifrarse con un número superior a 1024 bits, por lo que es muy seguro utilizar una clave privada de 1024 o 2048 o incluso más.
Luego, con la clave pública y la clave privada, yo, como individuo, puedo usar la clave privada para cifrar y luego publicar la clave pública. Cualquiera puede usar mi clave pública para descifrar, asegurándose de que esto sea lo que hace. Yo personalmente publico. De manera similar, cuando alguien más me transmite un mensaje, puedo usar su clave pública para descifrarlo y confirmar que es la identidad de alguien. Esto también se llama firma digital. Los principios son los mismos, todos son algoritmos de cifrado y utilizan principios matemáticos como la fórmula de Euler y la multiplicación de números primos. Este es un gran algoritmo llamado RSA, propuesto por tres matemáticos. Nosotros, la gente común, solo necesitamos comprender los conceptos y usos de las claves públicas y privadas.
En el modelo tradicional anterior, los bancos o agencias gubernamentales tenían sus propios libros de contabilidad independientes. Por ejemplo, si Zhang San transfirió 100 yuanes a Li Si, ¿cómo se registraba en el libro de contabilidad? La cuenta de Zhang San se deduce en 100 y la cuenta de Li Si aumenta en 100, ¿verdad?
El mismo principio se aplica a los libros de contabilidad de varias personas, excepto que cambia de una organización central a un libro de contabilidad distribuido de múltiples instituciones e incluso individuos. Por ejemplo, Li Bai transfirió 100 taeles de plata a Du Fu. En el pasado, el Ministerio de Finanzas llevaba cuentas, pero en la cadena de bloques, Tang Taizong, Yang Yuhuan, Zhang Xiaojing, He Zhizhang y otras personas llevaban cuentas juntas, registrando eso. Li Taibai transfirió 100 taels de plata a Du Fu Zimei, como vale, el sello de Li Bai estaba estampado en la parte posterior. De esta manera, con varios libros de cuentas, sería difícil manipularlos. Li Bai podría transferir el dinero de forma segura a Du Fu sin preocuparse de que alteraría la cantidad o la negaría.
De esta forma se soluciona el problema de las apuestas de fans mencionado al principio, pero aún queda otra pregunta, ¿por qué otros deberían llevar cuentas por nosotros?
La respuesta es que te pagan por hacerlo, y esa es la naturaleza humana: ¿quién más querría ayudar a grabar algo que no tiene nada que ver con ellos?
Pero al final del día, sólo hay una persona responsable de llevar los libros, de lo contrario es un desastre.
Con tantos beneficios, ¿cómo se determina qué persona debe llevar las cuentas? Esto implica conocimiento matemático. Todo aquel que lleva cuentas es en realidad un llamado minero. Debe resolver un problema matemático al llevar cuentas y ganar dinero. No existe una forma complicada de resolver este problema matemático. Solo se puede convertir en fórmulas a través de números. Cálculo difícil, este algoritmo es un algoritmo hash, que es similar a calcular una serie de números. Los mineros solo pueden adivinar, pero no hay otra forma. La probabilidad actual de adivinar este número en Bitcoin es de una entre un billón, por lo que una computadora común necesitaría seguir adivinando durante un año para adivinar este número.
Sin embargo, hay miles de computadoras en el mundo, y si todas trabajan juntas, será mucho más rápido, porque en términos de probabilidad, una de las computadoras lo adivinará, y esto también es cierto en realidad. Bitcoin es un ejemplo de la vida real.
Además de esto, también puedes ver quiénes son los mineros y cuántas transacciones hay en el bloque.
¿Qué pasa si los mineros tienen motivos ocultos y alteran los registros de transferencia y los montos después de calcularlos?
A. Manipulación de registros/montos de transacciones
Anteriormente introdujimos la criptografía de clave pública y privada. En teoría, el minero mismo no tiene la clave privada del remitente o del receptor, por lo que. lo manipuló. El registro de la transacción será descifrado incorrectamente mediante la clave pública correcta y eventualmente será identificado como una transacción ilegal (el autor no está seguro en qué momento se realizó la identificación, pero está seguro de que este registro). puede ser falsificado).
B. Eliminar registros de transacciones
Supongamos este escenario: Zhang San quiere comprar una casa de dos dormitorios y una sola vivienda en el Cuarto Anillo de circunvalación de Beijing, pero no lo hace. No quería pagarlo. Quería obtenerlo gratis, así que pensé en una forma de robar dinero modificando los registros de transacciones. En teoría, después de que Zhang San pagó, se generó este registro, pero no fue confirmado. Este registro debe ser confirmado por un minero que resuelva el rompecabezas. Suponiendo que el minero es uno de los nuestros, no tiene ningún problema en pedirle que elimine este registro. Pero hay varias maneras de hacer esto:
Como todos sabemos, la minería de Bitcoin lleva mucho tiempo debido a los problemas matemáticos muy problemáticos mencionados anteriormente, y ahora el ciclo de minería ha sido de aproximadamente 10 minutos. y esto se basa en la premisa de que cientos de miles de mineros en todo el mundo están trabajando a plena capacidad al mismo tiempo. Esto significa que cada diez minutos se identificarán decenas de miles de transacciones y se colocarán en bloques inmutables, y estos cientos de miles de mineros actualizarán sus registros locales al mismo tiempo.
2.1 Si esta transacción acaba de ocurrir y el propietario la ve, y al segundo siguiente transfiere los derechos de propiedad a Zhang San, entonces si Zhang San quiere alterar este registro de pago, debe cumplir varias condiciones. :
La dificultad del éxito depende de cuántos bloques confirmados siguen al registro manipulado. Si solo hubiera uno, sería demasiado fácil porque el algoritmo blockchain utiliza de forma predeterminada que los mineros utilicen el primer bloque más largo que reciben al publicar un nuevo bloque. Entonces, después de esta modificación, se hará de una vez por todas, porque todos los libros de contabilidad están sincronizados, pero también hay un problema, es decir, esta sincronización se registrará si el propietario no puede verificar el libro de contabilidad, Zhang San será arrestado. al final. Si hay muchos, por ejemplo, el propietario transfirió los derechos de propiedad 1 hora después de que Zhang San transfiriera el dinero, entonces Zhang San tendría que alterar la información del bloque anterior de aproximadamente 6 bloques, lo cual sería problemático, porque cada bloque Todos apuntan al bloque anterior y cada bloque tiene un resumen (valor hash), que es un resumen de todos los registros de transacciones en el bloque actual. Por lo tanto, si intenta modificar un bloque hace mucho tiempo, los resúmenes de todos los bloques posteriores cambiarán. Este es el llamado árbol hash (MerkleTree). Otros nodos pueden informar que la cadena de bloques ha sido manipulada. Esto lleva al punto más importante, que es el algoritmo del 51% mencionado a menudo, es decir, si Zhang San posee más del 50% del libro mayor, otros nodos reconocerán la modificación según el diseño del algoritmo. Sin embargo, no mencionemos que básicamente nadie en el mundo puede hacer ambas cosas al mismo tiempo. Incluso si alguien puede hacerlo, si alguien tiene dudas al respecto, puede forzar la reparación del sistema. en Ethereum antes, y finalmente Ethereum fue manipulado. Se cubrió todo el bloque y se recuperó la propiedad robada. Evento de bifurcación de Ethereum.
Lo anterior es solo una introducción aproximada a las características de Bitcoin. Bitcoin se implementa utilizando la tecnología blockchain y puede lograr apertura, equidad, neutralidad e igualdad. Dos desconocidos cualesquiera en el mundo pueden confiar en Bitcoin u otra tecnología blockchain para confiar el uno en el otro.