Narrative, SAT, UC, Scholarship, Descriptive essay examples

¿Qué es Blockchain Hashing? Blog de HedgeTrade

¿Qué es Blockchain Hashing? Blog de HedgeTrade
13 enero, 2021
Author:

Este artículo examina varios de los detalles de la relación entre blockchain y hash , y cómo funcionan estas cosas con las criptomonedas como Bitc oin. Para empezar, miro qué es blockchain y cómo se relaciona el hash. Después de esto, analizo algunas de las complejidades de los algoritmos hash.

La tecnología blockchain no es necesariamente monetaria por su creación, sino parafraseando a Vitalik Buterin, la esencia de blockchain es “informativa y procesual”. La tecnología Blockchain podría usarse de muchas maneras, Bitcoin es simplemente una aplicación efectiva de la tecnología. Una cadena de bloques es una lista vinculada de transacciones que contiene datos y un puntero hash al bloque anterior en la cadena de bloques. Una determinada cadena de bloques funciona en función de la verificación de un hash y firmas digitales . El hash es el proceso que utiliza la cadena de bloques para confirmar su estado. Cada transacción requiere una o más firmas digitales. Las firmas garantizan que la transacción solo la realice el propietario de la dirección. Y que lo reciba el destinatario correcto.

Hashing en acción

Las criptomonedas como Bitcoin y Ethereum se basan principalmente en dos procesos computacionales: hash y la plataforma blockchain , más comúnmente entendida como el libro mayor público. Es la aplicación revolucionaria de estas tecnologías lo que hace que la moneda descentralizada y las transacciones entre pares sean seguras y cada vez más atractivas.

En una cadena de bloques, el hash de un bloque anterior en una secuencia es una secuencia a prueba de manipulaciones porque, en función del diseño, un hash es muy sensible. Entonces, cambiar cualquier variable de cualquiera de los hash en un bloque dado causaría un efecto dominó, alterando todas las transacciones anteriores en el bloque. Los hash de blockchain son deterministas ; lo que significa que los datos de entrada producirán el mismo resultado cada vez.

La tecnología Blockchain no es exclusiva de las criptomonedas. Blockchain se puede utilizar para cualquier número de transacciones electrónicas / digitales. Sin embargo, el algoritmo de Bitcoin ha aplicado hashing y blockchain basándose en la participación de redes autónomas, todas las cuales participan en la producción y confirmación de transacciones hash . Los hash de transacción se aprueban mediante la prueba de trabajo . A continuación, las transacciones hash se verifican con las reglas de consenso de las redes participantes. Las transacciones aprobadas se agregan al libro mayor público con las otras extensiones / transacciones aprobadas o bloques.

Como se mencionó anteriormente, las transacciones descentralizadas y peer-to-peer son un beneficio central de la tecnología blockchain. Sin duda, blockchain no necesita estar descentralizado. Los terceros, como los bancos y las empresas de tarjetas de crédito, también utilizan la tecnología para sus propias necesidades digitales.

La tecnología Blockchain funciona como un libro mayor público descentralizado . El beneficio de dicho sistema es que tiene la capacidad de ser monitoreado por múltiples redes benéficas, en lugar de depender exclusivamente de un tercero confiable y monedas centralizadas. En el mejor de los casos, la tecnología blockchain aplicada a la criptomoneda hace posible una reducción de la corrupción tanto dentro de las monedas descentralizadas como centralizadas. Esto se debe a que se basa en un compañerismo de participación, en lugar de depender únicamente de las instituciones financieras tradicionales. Bitcoin es simplemente un ejemplo de una criptomoneda que se negocia con la tecnología de hash y blockchain, con el objetivo central de establecer una criptomoneda descentralizada moderna.

Crítico para la legitimidad de una criptomoneda es el libro de contabilidad público que hace posible blockchain. Aquí hay un ejemplo divertido de una moneda duradera pero oscura, el Stone Rai. El Stone Rai es una moneda de larga data de la isla micronesia de Yap. Los rai son grandes piedras con forma de rosquilla que representan tanto la riqueza como el intercambio de riqueza. Pero no solo fue valioso tener la piedra de 3,5 metros en su poder, sino que el registro de las transacciones en sí también es igualmente valioso. Los registros históricos indican que durante el transporte de estas grandes piedras se perderían en el mar. Sin embargo, esto no disminuyó el valor de la piedra, ni anuló necesariamente el valor de cambio, porque el registrode la transacción fue igual de valiosa. Y dado el valor mutuamente aceptado de Rai por el Yap, el objeto físico no necesitaba estar presente para mantener su valor fiduciario.

De manera similar, con Bitcoin y las criptomonedas, sin la capacidad de las redes para expresar consenso en el libro mayor público, una criptomoneda no tiene valor. Bitcoin, como el oro, es un recurso limitado. El sistema producirá 21 millones de Bitcoins para 2040. Cuando la minería de Bitcoin cese una vez que se hayan extraído todas las nuevas monedas. Después de 2040, la moneda solo se utilizará y negociará por su valor de cambio. Actualmente, Bitcoin se extrae con regularidad. Entonces, a medida que pasa el tiempo, se vuelve cada vez más escaso y, por lo tanto, más valioso.

Entonces, para que una moneda descentralizada como Bitcoin funcione, no solo depende de la confiabilidad de la cadena de bloques, sino que también depende de que los usuarios posean un equilibrio de racionalidad, interés propio y altruismo. Es decir, que dada la inversión y el poder computacional necesarios para extraer Bitcoin, debe haber un valor futuro. Sin embargo, la confiabilidad del sistema también depende de la armonía entre las necesidades del individuo y la salud del sistema para alinearse. Por lo tanto, las redes deben cooperar y colaborar para que el sistema prospere.

Añadiendo a Blockchain

Los mineros deben resolver el hash objetivo para agregarlo a una cadena de bloques. Para encontrar o resolver un hash, se usa un algoritmo que se basa en los datos del encabezado del bloque. Cada bloque contiene un encabezado de bloque con el número del bloque, una marca de tiempo de la transacción y el hash del bloque anterior que contiene el nonce .

Continuando, un nonce es un “número que solo se usa una vez”. Para un bloque de Bitcoin, un nonce es una cadena numérica de 32 bits (4 bytes). Los mineros ajustan el valor del nonce para que el hash del bloque sea menor o igual que el objetivo actual de la red. La presentación del bloque con el valor de nonce correcto constituye una prueba de trabajo, ya que este cálculo iterativo requiere tiempo y recursos.

El Genesis Block es la primera transacción en el bloque que inicia una nueva transacción electrónica (o moneda en el caso de Bitcoin). Una función crucial de la cadena de bloques es que se basa en punteros hash que contienen la dirección del bloque anterior, así como el hash de los nuevos datos. El bloque es como una secuencia de eslabones de una cadena. Al igual que en una cadena, cada eslabón está conectado con el otro a través de su eslabón anterior y siguiente. Los bloques digitales, sin embargo, se conectan al bloque anterior mediante un puntero . Un puntero no almacena el valor hash real, sino que “apunta” a una dirección de variables. Los datos de los bloques anteriores se cifran (o cifran), lo que genera una serie nueva y única de letras y números de una longitud fija.

Por lo tanto, el nonce tiene una minientropía alta porque las variables se eligen de una gran distribución. Esto también significa que el nonce es una cadena de números generados al azar. Una minientropía alta significa que hay una baja probabilidad de generar el hash de forma aleatoria. Luego, el nonce se agrega a un bloque hash. Entonces, un minero solo tiene éxito si cumple con el hash objetivo, solo entonces se agrega el nonce a un bloque hash.

Comprobante de transacción

Para que los nuevos bloques sean aceptados hasta cierto punto en blockchain, es necesario generar una prueba de trabajo . La prueba de trabajo se compone de letras y números fijados por la entrada original. Esto se expresa mediante el algoritmo de hash SHA-256 doble.

Eso significa que una vez que se ha obtenido el hash objetivo, el bloque se acepta en el libro mayor público por consenso de otras redes participantes.

Las transacciones fraudulentas no se agregan a la cadena, porque solo las transacciones validadas se aprueban y agregan a la cadena de bloques. El problema del doble gasto se evita con un único nonce. Utilizar la misma transacción e intentar gastarla dos veces se denomina “gasto doble”.

Es por eso que las criptomonedas como Bitcoin dependen de las características de la tecnología blockchain; el uso de un bloque de hashes en una secuencia interdependiente reemplaza la necesidad de un tercero confiable. Sin embargo, utilizando blockchain, la lista de transacciones publicada públicamente funciona como garante, al desarrollar un sistema público de participación que es en sí mismo la garantía de su propia autenticidad. O más correctamente, la cadena de bloques establecida garantiza continuamente la autenticidad.

Entonces, en este sentido, una cadena de bloques como Bitcoin es auto garantizada, porque hay múltiples redes que aprueban continuamente las transacciones. La cadena de bloques de Bitcoin es, por lo tanto, un libro mayor público que se compone de bloques hash con éxito. Solo los bloques exitosos se agregan a la lista de transacciones que han sido aprobadas mutuamente por redes independientes.

Hash y hash

Un algoritmo hash es una función computacional que condensa los datos de entrada en un tamaño fijo. El resultado del cálculo es la salida denominada hash o valor hash . Los hash identifican, comparan o ejecutan cálculos con archivos y cadenas de datos. Normalmente, el programa primero calcula un hash y luego compara los valores con los archivos originales

Si no gusta hacer en matemáticas en la escuela, que está bien, porque mientras hash se basa en algunos bastante locos Alan Turing- esque cálculos, un programa de ordenador hace todo los cálculos por usted. Entonces, todo lo que necesitas recordar de la clase de matemáticas son los conceptos básicos de los exponentes y las funciones de probabilidad.

Firmar digitalmente una pieza de software para que esté disponible para su descarga es un ejemplo básico de hash. Para hacer esto, necesita un hash del script del programa que desea descargar. También necesita una firma digital con hash. El software está encriptado cuando los datos de entrada son hash; luego se puede descargar. Entonces, cuando alguien descarga software, el navegador necesita descifrar el archivo y verificar los dos valores hash únicos. Luego, el navegador ejecuta la misma función hash, utilizando el mismo algoritmo y vuelve a aplicar hash al archivo y a la firma. Si el navegador produce con éxito el mismo valor hash, puede confirmar que tanto la firma como el archivo son auténticos y que no se han alterado.

Los valores hash son deterministas y responden a los parámetros de las variables dadas del algoritmo. La misma secuencia no se puede reproducir con un conjunto de datos diferente como entrada, por lo que el hash es tan útil para las criptomonedas. El hash resultante de la entrada de datos es único e irreversible. Por ejemplo, una entrada de “123” siempre tendrá la misma salida. Si este no fuera el caso, sino que 123 obtuviera una salida diferente cada vez que se hiciera hash, no habría coherencia ni validez en el proceso. Esto significaría que sus programas nunca hablarán el mismo idioma. El hash utilizado para Bitcoin es un número hexadecimal de 65 dígitos, que explicaré en breve.

Firmas digitales

El hash también requiere el uso de firmas digitales únicas. Por ejemplo, los certificados SSL (protocolo SSL / TLS) tienen un papel en lo que hace posible la transmisión segura de datos de un dispositivo a otro. Las firmas digitales vinculan una clave a un conjunto de datos. Los certificados SSL, por lo tanto, deben hacer coincidir una clave pública específica con la transacción prevista, como un candado y una llave.

SSL / TLS utiliza encriptación asimétrica que hace posible el intercambio seguro de claves. La seguridad de esta transferencia se basa en dos claves: una clave pública utilizada para el cifrado y una clave privada para el descifrado del destinatario. Las firmas digitales son muy sensibles y los pequeños cambios dan como resultado una generación de hash muy diferente.

SHA-256

Actualmente, SHA-256 es la función hash más segura. Esta función expresa las posibles combinaciones o valores que resultan de los datos de entrada dados. SHA son las siglas de Secure Hashing Function y 256 expresa la cantidad numérica de la longitud de bits fija. Esto significa que el objetivo es correcto de 256 bits y, como se mencionó, Bitcoin usa un valor hash hexadecimal de 65.

El uso de la función SHA-256 hace que sea (casi) imposible duplicar un hash porque hay demasiadas combinaciones para probar y procesar. Por lo tanto, esto requiere una cantidad significativa de trabajo computacional; realmente significativo. Tanto es así que las computadoras personales ya no extraen Bitcoin. Actualmente, los mineros requieren circuitos integrados específicos de aplicación o ASIC. Lograr este objetivo tiene una probabilidad de 2 ^ 256, si recuerdas tus exponentes, deducirás que esta es una variable increíblemente difícil de alcanzar.

Además, el uso de esta función hash significa que dicho hash es intencionalmente impráctico desde el punto de vista computacional para revertir y como resultado intencional que requiere un método aleatorio o de fuerza bruta para resolver la entrada.

Considere lo siguiente, si tengo 1 dado de seis caras, tengo una probabilidad de 1 en 6 de sacar un 6. Sin embargo, cuantos más lados tengan mis dados (digamos 256 caras), mis posibilidades de sacar un 6 son mucho menores (eso es 1 en 256: que es aún mejor que sus probabilidades de usar fuerza bruta en un hash de extensión).

Una tasa de hash es la velocidad a la que tienen lugar las operaciones de hash durante el proceso de minería. Si la tasa de hash es demasiado alta y los mineros resuelven que el objetivo es demasiado rápido, aumenta la posibilidad de una colisión e indica que la dificultad del hash debe ajustarse en consecuencia. Por ejemplo, cada 10 minutos, en la actualidad, se extrae nuevo Bitcoin.

Resistencia a colisiones

SHA-256 es complejo y sensible, esto hace que la inversión de la secuencia hash, en un esfuerzo por encontrar los datos de entrada originales, sea básicamente imposible. La dificultad de cumplir con SHA-256 significa que este hash es extremadamente seguro porque es “resistente a las colisiones”. La resistencia a colisiones expresa la probabilidad de que dos redes diferentes resuelvan el mismo hash con la misma probabilidad es minúscula

Por lo tanto, dadas las posibles permutaciones de SHA-256, la probabilidad de colisión es insignificante. A continuación se muestra una comparación de dos resultados hash diferentes. El primero solo usa la función hash simple (SHA-1), mientras que el segundo usa la función hash doble (SHA-256). Y como puede ver, la función de doble hash produce un hash mucho más complicado y, como consecuencia, es mucho más resistente a las colisiones.

A continuación se muestran algunos ejemplos de otras funciones de hash criptográficas y cuándo se rompió la resistencia a colisiones, y se hará evidente por qué SHA-256 es actualmente el hash favorito:

    MD 5: produce un hash de 128 bits.

      Después

    Se rompió la resistencia a colisiones de 2 ^ 21 hashes.

SHA 1: produce un hash de 160 bits.

    La resistencia a la colisión se rompió después

    2 ^ 61 hashes.

  • SHA 256: produce un hash de 256 bits.
    • Bitcoin utiliza actualmente el doble hash SHA-256.
  • Keccak-256: produce un hash de 256 bits.
    • Usado actualmente por Ethereum.
  • Merkle Tree y Merkle Roots

    Dado que los bloques se agregan continuamente a una cadena de bloques en aumento, existe la necesidad de recuperar espacio de almacenamiento; este es el papel del árbol Merkle. Solo se almacena la raíz del hash (Merkle Root) y no toda la transacción. Por lo tanto, con la raíz, todavía es posible verificar la cadena de bloques sin clasificar todos los datos. Por lo tanto, los procesos de verificación se simplifican porque se sigue una rama que vincula las transacciones con el bloque en el que originalmente se registró la hora. Pero la transacción completa en sí no se almacena porque ocupan mucho espacio. En cambio, la verificación es para asegurar que el nodo de red anterior aceptó la transacción. Este proceso afirma constantemente la fiabilidad. También exige que los bloques posteriores se agreguen a la cadena de la misma manera.

    ¿Cómo se hace esto? Merkle Root resume todos los datos de las transacciones relacionadas y los almacena en el encabezado del bloque. Tal como vimos en el caso de los hash, la raíz de Merkle se altera si se modifica un solo detalle en cualquiera de las transacciones. El uso de las raíces de un árbol Merkle hace que las pruebas para ver si una transacción específica está incluida en el conjunto o no es mucho más eficiente que pasar por todos los bloques de la cadena.

    Al aplicar hash repetidamente a pares de nodos, se crea un árbol Merkle. Esto se repite hasta que solo queda un hash (este hash se llama Root Hash o Merkle Root). Cada nodo hoja es un hash de datos transaccionales y cada nodo no hoja es un hash de sus hashes anteriores. Los árboles de Merkle son binarios y, por lo tanto, requieren un número par de nodos de hojas. Si el número de transacciones es impar, el último hash se duplica una vez para crear un número par de nodos hoja.

    Tomaré prestado un ejemplo de Shaan Ray. Aquí hay cuatro transacciones en un bloque: A, B, C y D. Cada una de ellas tiene un hash y el hash se almacena en cada nodo hoja. El resultado es Hash A, B, C y D. Los pares consecutivos de nodos hoja luego resumen un nodo padre mediante hash A y Hash B, lo que da como resultado Hash AB, y hash por separado Hash C y Hash D, lo que resulta en Hash CD. Los dos hashes (Hash AB y Hash CD) se vuelven a aplicar hash para producir el Root Hash (Merkle Root).

    Conclusión y revisión

    Para algunos, las criptomonedas pueden parecer demasiado efímeras para confiar, pero la idea básica de una moneda como Bitcoin se basa en las prácticas monetarias típicas de un sistema fiduciario. De hecho, ya existen prácticas monetarias digitales similares. Muchas transacciones y saldos bancarios se basan en datos y no en la presencia física de moneda fuerte (como el oro). Una diferencia crucial en la aplicación de blockchain en términos de criptomonedas es que típicamente un intercambio de moneda requiere un tercero como garante; como un banco o una empresa de tarjetas de crédito. Sin embargo, la aplicación de la tecnología blockchain en las criptomonedas está interrumpiendo la necesidad de un tercero, además de hacer que las transacciones entre pares que no son en efectivo sean más seguras y deseables.

    Esto es lo que debe extraer de este artículo, ¿Qué es Blockchain Hashing? :