Hola a todos. Hoy, vamos a hablar sobre la palabra blockchain y desglosarla para entender qué significa cuando alguien dice "Blockchain". Vamos a tomarnos el tiempo para comprender la criptografía detrás de la tecnología blockchain. Hay dos conceptos criptográficos principales que sustentan la tecnología blockchain. El primero es hash y el segundo son firmas digitales.

¿Qué es el hash y la firma digital en Blockchain?
El hash se refiere al concepto de tomar una cantidad arbitraria de datos de entrada, aplicarle algún algoritmo y generar datos de salida de tamaño fijo llamados hash. La entrada puede ser cualquier cantidad de bits que puedan representar un solo carácter, un archivo MP3, una novela completa, una hoja de cálculo de tu historial bancario o incluso toda la Internet. El punto es que la entrada puede ser infinitamente grande. El algoritmo de hash se puede elegir según tus necesidades y hay muchos algoritmos de hash disponibles públicamente. El punto es que el algoritmo toma la entrada infinita de bits, les aplica algunos cálculos y genera un número finito de bits. Por ejemplo, 256 bits.
¿Para qué se puede utilizar este hash? Un uso común de los hash en la actualidad es el de huellas digitales en archivos, también conocidos como zonas de verificación. Esto significa que se utiliza un hash para verificar que un archivo no ha sido manipulado o modificado de ninguna manera no intencionada por el autor. Si WikiLeaks, por ejemplo, publica un conjunto de archivos junto con sus hash MD5, quien descargue esos archivos puede verificar que en realidad son de WikiLeaks calculando el hash MD5 de los archivos descargados, y si el hash no coincide con lo publicado por WikiLeaks, entonces sabrá que el archivo ha sido modificado de alguna manera.

¿Cómo hace uso de los hash la blockchain?
Los hash se utilizan en blockchains para representar el estado actual del mundo. La entrada es el estado completo de la blockchain, es decir, todas las transacciones que han tenido lugar hasta ahora y el hash de salida resultante representa el estado actual de la blockchain. El hash se usa para acordar entre todas las partes que el estado mundial es el mismo, pero ¿cómo se calculan realmente estos hash?.

El primer hash se calcula para el primer bloque o el bloque Génesis utilizando las transacciones dentro de ese bloque. La secuencia de transacciones iniciales se utiliza para calcular un hash de bloque para el bloque Génesis. Para cada nuevo bloque que se genera posteriormente, también se utiliza el hash del bloque anterior, así como sus propias transacciones, como entrada para determinar su hash de bloque. Así es como se forma una cadena de bloques, cada nuevo hash de bloque apunta al hash de bloque anterior. Este sistema de hash garantiza que ninguna transacción en el historial pueda ser alterada porque si alguna parte de la transacción cambia, también lo hace el hash del bloque al que pertenece y, como resultado, los hash de los siguientes bloques. Sería bastante fácil detectar cualquier manipulación como resultado porque simplemente puede comparar los valores hash. Esto es genial porque todos en la cadena de bloques solo necesitan estar de acuerdo en 256 bits para representar el estado potencialmente infinito de la cadena de bloques.

¿Qué pasa con las firmas digitales?
Las firmas digitales, como las firmas reales, son una forma de demostrar que alguien es quien dice ser, excepto que usamos criptografía o matemáticas, que es más seguro que las firmas manuscritas que se pueden falsificar fácilmente. Una firma digital es una forma de demostrar que un mensaje proviene de una persona específica y de nadie más, como un hacker.

Las firmas digitales se utilizan hoy en día en todo Internet. Siempre que visitas un sitio web a través de ACTPS, estás utilizando SSL, que utiliza firmas digitales para establecer la confianza entre ti y el servidor. Esto significa que cuando visitas Facebook.com, tu navegador puede verificar la firma digital que vino con la página web para verificar que realmente se originó en Facebook y no en algún hacker.

En los sistemas de cifrado asimétrico, los usuarios generan algo llamado par de claves, que es una clave pública y una clave privada utilizando algún algoritmo conocido. La clave pública y la clave privada están asociadas entre sí a través de alguna relación matemática. La clave pública está destinada a distribuirse públicamente para que sirva como dirección para recibir mensajes de otros usuarios, como una dirección IP o una dirección particular. La clave privada debe mantenerse en secreto y se utiliza para firmar digitalmente los mensajes enviados a otros usuarios. La firma se incluye en el mensaje para que el destinatario pueda verificar utilizando la clave pública del remitente. De esta manera, el destinatario puede estar seguro de que solo el remitente pudo haber enviado este mensaje. Generar un par de claves es análogo a crear una cuenta en la blockchain, pero sin tener que registrarse en ningún lugar. Muy genial. Además, cada transacción que se ejecuta en la blockchain está firmada digitalmente por el remitente con su clave privada. Esta firma garantiza que solo el propietario de la cuenta pueda sacar dinero de la cuenta.

Para resumir, blockchain no podría existir sin hash y firmas digitales. El hash proporciona una forma para que todos en la blockchain se pongan de acuerdo sobre el estado mundial actual, mientras que las firmas digitales proporcionan una forma de garantizar que todas las transacciones sean realizadas únicamente por los propietarios legítimos. Confiamos en estas dos propiedades para asegurarnos de que la blockchain no se haya dañado o comprometido.