
Imagen editada en Canva por @dexsyluz
Se define como una ecuación lineal, donde no podemos revertirla a partir del resultado, por ejemplo.
La multiplicacion de H * x nos va a dar el resultado que es m, (m seria nuestro hash). Si nos arrojan solo el resultado de m, no vamos a poder descifrar el origen de la ecuación.
Con esto quiero decir que esta ecuación se va a encargar de desarrollar una serie de códigos alfanuméricos, con palabras o claves que le ofrezcamos al sistema. Estos van a tener una longitud fija, dependiendo del hash que estemos utilizando, sin importar de la cantidad de caracteres que introduzcamos para producir ese hash respectivamente.
Existen diferentes tipos de funciones que nos van a ayudar a crear hash para mejor la seguridad de aplicaciones o sistemas. De las funciones mas usadas tenemos el SHA, lo que sus siglas significan en ingles es “Secure Hash Algorithms", en esta serie de funciones vamos a encontrar SHA-0, SHA-1, SHA-2, SHA-3, SHA-256. El SHA-256 es el mas usado en la blockchain por su seguridad y también por otras características que veremos a continuación.
- Imposibles de repetir, y cuando ocurre eso, se le llama ''colisión''
- Funciones lineales, quiero decir que no podemos revertir la función hash solo con el resultado. Esto garantiza que no se pueda encontrar el origen de la función hash.
- Caracteres determinados. El numero de caracteres va a depender de la función utilizada.
- Podemos generar las funciones hash con facilidad y rapidez.
- Incrementan la seguridad del sistema que los utilice.
1.- Explique ¿Qué significa la resistencia a la colisión? Y ¿Qué significa resistencia a la preimagen?
Un hash se vuelve seguro cuando tiene resistencia a la colisión y resistencia a la preimagen.
Debemos tener en cuenta que se produce una colisión del hash, cuando el resultado de la función es producida por dos mismas entradas. Matemáticamente es imposible que dos entradas produzcan una misma salida como lo vemos en la siguiente imagen:

Imagen tomada de Kaspersky
El numero de entradas es infinito, pero la capacidad o cantidad de salidas que pueda producir un hash, la desconocemos(es muy limitada en comparacion a las entradas), y cuando se acaban las entradas, decimos que son malos algoritmos los causantes de esta colisión.
Decimos que un hash es perfecto cuando no existen colisiones capaces de aumentar la vulnerabilidad del sistema en el que se desarrolla, muchos hash aun sufrido colisiones, como el SHA-1. Por esto el hash que es usado en la red de blockchain es el SHA-256. Entonces utilizamos el termino ''Resistente a la colisiones'' cuando es muy baja la probabilidad de que se produzca una colisión en el hash.
Para entender esto, debemos tener en consideración que cada función hash va a ser unidireccional (esta es una característica fundamental de ellas) quiere decir que va a resultar difícil encontrar la entrada de la funcion hash, a partir del resultado.
Solo observando el resultado de la función hash, es difícil encontrar el origen de esa función, o la informacion escondida en dicho hash. Por ejemplo:
Si tenemos que H (x)= m, no vamos a poder encontrar x si solo tenemos el resultado que es m.
Una función hash es resistente a la preimagen cuando es baja la probabilidad de conseguir la información utilizada para generar el hash, solamente con el resultado de la función. Con esto quiero decir, que el resultado del hash, no va a guiar hacia la información que lo generó.
Solo podría averiguar una clave generada por hash si esta resulta ser sumamente fácil, para lo cual ya hay hashes creados. Por ejemplo, ''123456'' o de una sola palabra como ''maria'', para los cuales ya se tiene una función hash resuelta.
Esta tiene un punto medio entre las otra dos, ya que se refiere a encontrar la colisión. Con esto quiero decir que en lugar de encontrar dos input que generen la misma salida. Se van a encargar de buscar una entrada que genere una salida(hash) ,que fue generada por otra entrada.
Podemos afirmar que:
- Si la función hash es resistente a colisiones, va a tener también resistencia a los ataques de segunda preimagen. Porque al tener baja probabilidad de generar el mismo hash con distintas entradas, vamos de igual manera a tener baja probabilidad de poder encontrar esas colisiones.
- La resistencia a las colisiones es inversamente proporcional a la vulnerabilidad hacia los ataques a preimagen. Es decir que mientras mas aumente la resistencia a las colisiones, va a disminuir la resistencia a los ataques de preimagen.
2.- Use tronscan y etherscan para verificar el hash del último bloque y el hash de esa transacción. Se requiere capture de pantalla para su comprobación.
Vamos a verificar el hash utilizado en el ultimo bloque al momento de realizar mi tarea.
Para esto vamos a utilizar la plataforma Tronscan requerida para hacer la tarea.
Nos vamos a la interfaz de la pagina, le damos click a la casilla de ''pagina principal'', y nos vamos a la parte donde dice ''bloques'' y presionamos el ultimo bloque creado al momento de revisar la plataforma.

Screenshot by @dexsyluz
Nos va aparecer la información de la siguiente forma:

Screenshot by @dexsyluz
Para el bloque 31763209, el hash creado fue 0000000001e4ab0970a7e5fc702da4ac547db0e40c48b3ea2fadae89bdf6c2f7
Gracias a la cantidad de operaciones que se realizan, los últimos bloques por obvias razones cambian de posición en la lista, quiero decir que esto que al momento de realizar mi tarea este fue el ultimo bloque, pero si usted se va a verificar esta información, el ultimo bloque sera otro.
Luego fui a verificar el hash de la ultima transacción, fue nuevamente a la plataforma en la interfaz principal. Y observe la parte de ''Transacciones''

Screenshot by @dexsyluz
Aqui lo tenemos mas de cerca:

Screenshot by @dexsyluz
Le damos click al hash para ver mas información, y nos la dará de la siguiente manera:

Screenshot by @dexsyluz
Para el momento de realizar mi tarea, el hash de la ultima transacción era 4647e999025023628f571ba716cebc3ffb55b1c9828107e12e2aba003818f9ab
Vamos a verificar también para esta plataforma Etherscan.io, el hash del ultimo bloque y para la ultima transacción.
Cuando nos vamos a la plataforma, en la misma ventana principal podemos ver las ultimas transacciones y los ultimos bloques creados.

Screenshot by @dexsyluz
Primero le damos click al ultimo bloque para ver su información. Se nos va a desplegar de la siguiente manera.

Screenshot by @dexsyluz
Vamos un poquito mas a bajo para observar el hash.

Screenshot by @dexsyluz
El hash creado para el ultimo bloque 12788129 es de 0x21cf3ca6bbf22813816994636c0493400cf2cb5bf03b6f8a2eb5d9ba79e0eed3. El ultimo bloque fue observado al momento de realizar la tarea.
Ahora observemos la ultima transacción:

Screenshot by @dexsyluz
Le damos click para desplegar la información. La veremos de esta manera.

Screenshot by @dexsyluz
El hash de la ultima transacción al momento de la tarea es 0xd71cf0e8fcbe16d474eb67a394b95c37566c2802fac1b24f32160be430422027
3.- Genere el hash usando SHA-256, de la palabra CryptoAcademy y de cryptoacademy. Se requiere capture de pantalla. ¿Observa alguna diferencia entre ambas palabras? Explique.
Vamos a usar el hash SHA-256, vamos a generar un hash para la palabra CryptoAcademy
El hash generado para esta palabra fue: D03CA34B258E6E0FD06B2070DDE61B50BD4EEF6161A8EDAA4A420C9AE1BEB7F9

Screenshot by @dexsyluz
Ahora solo vamos a cambiar las mayúsculas por minúsculas. Generaremos un hash con la palabra cryptoacademy
Y el hash generado para esta palabra fue 0592F5DD27DC72E675B2AB9C77487A69FAAF84196597FA052EC099C18EE7C4C5

Screenshot by @dexsyluz
Pensaríamos que como las palabras son iguales, deberían sus resultados tener similitud, pues este no es el caso de los hashes. Al momento de cambiar las letras mayúsculas a minúsculas cambian totalmente la codificación alfanumérica del hash. Esta característica los hace únicos e incapaces de dar seguimiento a su entrada. Tampoco se provoco una colisión.
Aquí podemos ver que tan solo el hecho de cambiar dos de las letras de mayúsculas a minúsculas, hubo un cambio completamente rotundo en el hash.
4.- En sus propias palabras explique la diferencia entre el hash y la criptografía.
Desde sus inicios, la criptografía ha intentado preservar la seguridad de sus usuarios, ademas de intentar disminuir la vulnerabilidad de los sistemas de red que se manejan actualmente para la transacciones y operaciones en la red de bloques.
El principal objetivo de la criptografia es asegurarse de la descentralización de la red, ademas del anonimato para asegurar la información de quien opera.
El objetivo principal de las funciones de hash, es evitar a toda costa las colisiones y los ataques a preimagen. Generar códigos alfanuméricos que sean imposibles de repetir o rastear para conseguir informacion. Exactamente lo que necesita la red de bloques para sus operaciones.
La criptografía opera con las funciones hash para brindar mayor seguridad al usuario. Estas funciones se encargan de generar hashes para resguardar información valiosa para que el usuario pueda tener anonimato, aumentar la seguridad y con ello la privacidad.
CONCLUSIÓN
Podemos codificar infinitos mensajes con las funciones de hash sin importar el numero de caracteres de entrada. Pero si un numero finito de caracteres, que es 64 caracteres para el SHA-256. Podríamos codificar alfanumericamente un discurso completo con el SHA-256 y tendríamos los mismos 64 caracteres.
Gracias a esto y a su funcionalidad lineal, hace imposible que podemos rastrear la información de origen, otorgando así seguridad y anonimato a las redes de blockchain. Nadie puede tener acceso a la información codificada por las funciones hash. Muchas gracias por la conferencia profesor @pelon53
Gracias por participar en Steemit Crypto Academy Season 3:
Espero seguir leyendo tus publicaciones.
En la pregunta 2, el bloque no coincidió en tronsacan, y la idea es que se consiga el hash del último bloque y la transacción de ese bloque. 31763209 y 31763247.
Muy buen trabajo, felicitaciones.
Recomendaciones:
Calificación: 9.7
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Muchas gracias por revisar mi tarea profesor, para la próxima oportunidad tendré mas cuidado @pelon53
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit