¿Qué es el algoritmo hash en la tecnología blockchain?
1.1.Introducción
Los profesionales de la industria informática deben estar muy familiarizados con la palabra hash. Puede mapear datos de una dimensión a otra, generalmente utilizando una función hash para implementar este mapeo. . Por lo general, la industria usa y = hash(x) para representarlo. Esta función hash implementa operaciones en x para calcular un valor hash y.
Características de las funciones hash en blockchain:
Los parámetros de la función son de tipo cadena;
Salida de tamaño fijo;
Cálculo eficiente
p>
Libre de colisiones significa que la probabilidad de conflicto es pequeña: x != y => hash(x) != hash(y)
Ocultar la información original: por ejemplo, entre los nodos en la cadena de bloques La verificación de transacciones entre nodos solo requiere verificar la entropía de la información de la transacción, sin la necesidad de comparar la información original. No es necesario transmitir los datos originales de la transacción entre nodos, solo el hash de la transacción. Los algoritmos comunes incluyen la serie SHA y los algoritmos MD5
1.2 Uso de hash
Hash se usa ampliamente en blockchain, uno de los cuales se llama Hash Pointer
HashPointer se utiliza principalmente en dos lugares de la cadena de bloques. El primero es para construir la estructura de datos de la cadena de bloques. Los lectores que entienden blockchain deben saber que la estructura de datos de blockchain está conectada desde el bloque génesis hacia atrás a través de punteros entre bloques. Este puntero utiliza el HashPointer que se muestra en la figura. Cada bloque almacena el HashPointer del bloque. La ventaja de dicha estructura de datos es que los bloques posteriores pueden buscar información en todos los bloques anteriores y el cálculo del HashPointer del bloque incluye la información de los bloques anteriores, lo que garantiza que la cadena de bloques no sea fácilmente manipulada hasta cierto punto. El segundo uso es construir Merkle Tree. Cada nodo de Merkle Tree se construye utilizando HashPointer. Presentaremos más a fondo la estructura de datos de blockchain y el contenido de MerkleTree en artículos posteriores.
Hash también se utiliza en otras tecnologías como la verificación de transacciones y las firmas digitales.
2. Algoritmo de cifrado
2.1 Breve descripción
El cifrado consiste simplemente en convertir la información original a través de un algoritmo, para que el destinatario de la información pueda realizar el proceso. de descifrar texto cifrado utilizando una clave secreta para obtener el texto original. Los algoritmos de cifrado se pueden dividir aproximadamente en tres subtipos según si las claves de cifrado y descifrado son las mismas:
Cifrado simétrico
El cifrado simétrico utiliza la misma clave secreta para el cifrado y el descifrado. La ventaja de este método es que el cifrado y descifrado son rápidos, pero es difícil distribuir de forma segura la clave secreta. Los algoritmos de cifrado simétrico comunes incluyen DES, AES,...
Cifrado asimétrico
<. p>El sistema de cifrado no simétrico también se denomina sistema de clave pública. Al cifrar y descifrar, la parte que cifra es propietaria de la clave pública y la parte que cifra puede enviar la clave pública a otras partes relevantes y la clave privada. se mantiene estrictamente solo. Por ejemplo, la clave privada emitida por un banco a un usuario individual se almacena en el escudo USB del individuo; en el cifrado asimétrico, la clave privada se puede cifrar y otros pueden usar la clave pública para descifrar, y viceversa; son generalmente más complejos y tardan más en ejecutarse. El cifrado relativamente simétrico es más largo; la ventaja es que no hay problemas de distribución de claves. Otros algoritmos de cifrado asimétrico comunes incluyen RSA y ECC. El algoritmo de curva elíptica ECC se utiliza principalmente en blockchain.La combinación de cifrado simétrico y cifrado asimétrico
Este método divide el proceso de cifrado en dos etapas. En la etapa uno, el cifrado asimétrico se utiliza para distribuir la clave secreta a la otra parte. puede obtenerla de forma segura. La clave secreta para el cifrado simétrico. La Fase 2 utiliza cifrado simétrico para cifrar y descifrar el texto original.
2.2 Firma digital
La firma digital, también conocida como firma digital de clave pública, es una firma física similar a la escrita en papel. Las firmas digitales se utilizan principalmente para la identificación del firmante de cambios de datos y el no repudio.
Las firmas digitales incluyen tres características importantes:
Solo usted puede firmar su propia firma digital, pero otros pueden verificar si la firma fue emitida por usted;
Las firmas digitales deben estar vinculadas a Es cierto que, al igual que en la realidad, su firma debe estar vinculada a un soporte de papel;
Las firmas digitales no se pueden falsificar;
Confiar en mecanismos de cifrado asimétricos puede facilitar la identificación. lograr las tres características anteriores.
Primero, necesita generar un par de claves públicas y privadas personales:
(sk, pk):= generateKeys(keysize), el usuario conserva la clave privada sk. y la clave pública pk se puede distribuir a otras personas
En segundo lugar, puede firmar un mensaje específico a través de sk:
sig := sign(sk, message) De esta manera obtiene la firma específica firma
Finalmente, la parte que posee la clave pública de la firma puede verificar la firma:
isValid := verificar(pk, mensaje, sig)
En En el sistema blockchain, cada transacción de datos requiere firmas. En el proceso de diseño de Bitcoin, la clave pública del usuario se utiliza directamente para representar la dirección de Bitcoin del usuario. De esta manera, cuando los usuarios inician transacciones de Bitcoin, como transferencias, se puede verificar fácilmente la legalidad de las transacciones de los usuarios.
2.3 Certificado Digital y Centro de Certificación
2.3.1 Certificado Digital
El certificado digital también se denomina "DNI digital" y "DNI de red" se un archivo electrónico emitido bajo la autoridad del centro de certificación y firmado digitalmente por el centro de certificación que contiene el propietario de la clave pública e información relacionada con la clave pública. Puede usarse para identificar al propietario del certificado digital.
Los certificados digitales contienen: clave pública, información del nombre del certificado, firma digital de la autoridad emisora en el certificado y clave privada coincidente.
Los certificados se pueden almacenar en una base de datos en la red. Los usuarios pueden utilizar la red para intercambiar certificados entre sí. Cuando se revoca un certificado, la CA que lo emitió aún conserva una copia del certificado para resolver posibles disputas en el futuro.
2.3.2 Centro de certificación (Autoridad de certificación)
El centro de certificación generalmente se conoce como CA y es generalmente una organización de terceros reconocida y confiable. Emitir certificados para cada usuario. Un certificado digital único que contiene un nombre y una clave pública.
2.4 Comparación de algoritmos de cifrado comunes