Red de conocimiento informático - Conocimiento informático - ¿Qué necesitamos saber sobre blockchain?

¿Qué necesitamos saber sobre blockchain?

Primero, debemos comprender el contenido relevante de la comunicación de red, seguido del almacenamiento de datos, la tecnología de cifrado, el mecanismo de autenticación y la tecnología de seguridad, y finalmente la tecnología entre cadenas y la tecnología fuera de la cadena. Personalmente, creo que aprender blockchain debería comenzar con la práctica. Si eres programador, puedes acudir a empresas relacionadas con blockchain para contactar empresas relacionadas y aprender en el trabajo. He trabajado en Xuanling Technology antes y la solidez y la experiencia de la empresa en el desarrollo de blockchain son muy buenas. Es un buen socio tanto para el trabajo como para la cooperación.

Como puede verse por el nombre, "blockchain" se compone de "bloques" y "cadenas". Los bloques (fragmentos de datos) están vinculados entre sí de alguna manera para formar una cadena de bloques.

¿Qué contiene un bloque de datos? ¿De qué manera está conectado?

Puedes ver que un bloque contiene el encabezado del bloque y el valor hash del encabezado del bloque anterior, lo que determina que todos los bloques se pueden vincular entre sí en un orden determinado. Entre ellos, el valor hash se implementa en forma de función de cifrado hash. Existe el concepto de puntero en el lenguaje C/C++: un puntero es una dirección, que es la dirección de un dato de la memoria en la memoria. Blockchain se basa en un concepto similar de utilizar el hash de cada bloque como dirección del siguiente bloque.

¿Qué es un valor hash?

Un hash es un "resumen" de un conjunto de datos, un conjunto de cadenas generadas por un algoritmo de cifrado hash. La clave tiene un conjunto de claves secretas, claves públicas y claves. La clave pública son los datos cifrados que se proporcionan al mundo exterior y se utilizan para descifrar los datos. Los datos cifrados con la clave pública sólo se pueden descifrar con la clave privada. Incluso si otros obtienen los datos con la clave pública, no pueden descifrarlos. Esto garantiza la seguridad de los datos. La clave privada también se puede utilizar como única autenticación del nodo para garantizar la privacidad de cada nodo y lograr el anonimato. Si uno de los nodos modifica parte de los datos, el valor hash de este bloque cambiará, lo que provocará que todos los bloques posteriores cambien. Cuando este bloque notifique a otros bloques sobre los datos modificados, otros bloques encontrarán que los datos enviados son. inconsistente con los datos que guarda y, por lo tanto, se niega a aceptar que los datos se escriban en su propio libro mayor. De esta forma se garantiza la coherencia de los datos.

¿Qué es la descentralización?

Por lo general, QQ, WeChat, etc. de todos tienen un servidor backend, que procesa de manera uniforme los datos transmitidos desde cada teléfono móvil y los procesa de manera uniforme a través del servidor. La tecnología Blockchain elimina el procesamiento unificado de servidores, y cada nodo también es un servidor, incluso si es un cliente. Cuando un nodo envía datos a través de la red, los otros nodos reciben los datos y confirman que no hay ningún problema con los datos a través de una serie de verificaciones, y luego los escriben en sus propios bloques. Este nodo es el servidor y los demás nodos son clientes. Asimismo, cuando este nodo recibe datos, uno de los otros nodos es el servidor y este nodo es el cliente. La ventaja de esto es que se elimina el servidor y cada nodo puede procesar datos de forma independiente, ahorrando así costes.

¿Cómo mantener la coherencia de los datos?

La llamada coherencia de datos significa que los datos o el estado de todos los nodos son consistentes al mismo tiempo. La esencia de blockchain es un software de aplicación distribuida. Si se trata de un escenario centralizado, la coherencia no es un problema porque solo hay una copia de seguridad de los datos. En un entorno distribuido, los datos se transmiten a través de la red, pero en un entorno de red, los datos pueden no ser confiables, retrasarse o incluso tener fallas, apagarse, reiniciarse y otras situaciones que afectan la coherencia de los datos.

Teorema de FLP: no pierda el tiempo diseñando algoritmos para sistemas distribuidos asincrónicos que puedan lograr conciencia sexual bajo cualquier circunstancia. Los sistemas puramente asincrónicos no pueden garantizar que se permitan fallas de nodos en un tiempo limitado. dentro del tiempo.

Teorema CAP: Un sistema informático distribuido no puede garantizar la coherencia, la disponibilidad y la tolerancia a fallos de la partición al mismo tiempo; es imposible tener estos tres puntos al mismo tiempo.