Steemit Crypto Academy, Season 3: Week 4 || ROOT HASH Y ÁRBOL MERKLE.
Steemit Crypto Academy, Season 3: Week 4 || ROOT HASH Y ÁRBOL MERKLE.
Saludos a todos los integrantes de Steemit Crypto Academy, les doy la bienvenida a cada uno de ustedes a esta clase. Hoy vamos a continuar con un tema que está estrechamente relacionado con “Hash y Criptografía”, que fue la primera clase que vimos esta tercera temporada de Steemit Crypto Academy, como lo es Root Hash y Árbol Merkle.
Ralph Merkle, es un informático y criptógrafo, que en 1979 diseñó y creó un tipo de árbol binario, que lo llamó Árbol Merkle, cuyo objetivo es agilizar el proceso de verificación de grandes cantidades de datos o información. Siendo Ralph Merkle también el creador del hash criptográfico. Esta esta clase estaremos hablando sobre el Root Hash y el Árbol Merkle. Empecemos con la clase.
El Root Hash o Merkle Root, como su nombre lo indica es “Hash Raíz”, y se puede definir como una estructura informática que fue creado con la finalidad de darle mayor fluidez a la blockchain. Simplifica el proceso de verificación de los datos en un árbol Merkle. Juega un papel principal en la seguridad de la blockchain del bitcoin. Tiene uso en muchas áreas, pero entre ellas la blockchain.
Se le llama root hash, al hash resultante en el árbol de Merkle, donde juega el papel de marcar los datos y/o información dentro del árbol Merkle para darle confiabilidad a la información.
FUNCIÓN DEL ROOT HASH
Entre las funciones que cumple el root hash, tenemos:
Menor tiempo de revisión de datos: Debido a que el root hash tiene una programación comprimida lo que hace que cada proceso se pueda ejecutar en menos tiempos, garantizando mayor cantidad de procesos que se puedan ejecutar en un tiempo determinado. Esta es la función por excelencia del hash raíz.
Confiabilidad: Es capaz de evaluar si los datos que se están recibiendo son confiables. Esto permite que las estafas disminuyan y ha sido un gran aporte a la blockchain. Esta función obstaculiza la labor de los hackers, ya que no se puede enviar información falsa sin ser detectados.
Sincronización: Esta función ayuda a la blockchain para sincronizar los diferentes procesos que se llevan a cabo. Entre estos procesos tenemos el envío de fondo y recepción de bitcoins, así como la creación de billeteras y otros procesos importantes en el ecosistema.
CREACIÓN DEL ROOT HASH
Cada bloque tiene numerosas transacciones, y cada transacción tiene su hash lo que va a generar el Root hash.
Supongamos que tenemos un bloque que tiene 3 transacciones, el nivel más bajo, llamado hoja habrá 2 transacciones y luego el hash raíz.
Las hojas tienen la siguiente identificación: Hash1 y Hash2. Por lo tanto, el Root Hash sería Hash1Hash2. Como se muestra en la figura siguiente:
Siempre se comienza de la parte inferior hacia arriba, hasta obtener la raíz de esa estructura.
Desde que la informática nació hasta en estos tiempos actuales, la informática ha permitido crear herramientas que han sido muy útiles. Muchas de esas herramientas se han hecho con la finalidad de resolver problemas diversos. Para la creación del bitcoin, que fue la primera criptomoneda, se utilizó tecnología ya conocida con una nueva tecnología. Y una de esas herramientas tecnológicas usadas por Satoshi Nakamoto fue el Árbol Merkle.
Se puede definir como una estructura de datos que están estratificadas y organizadas en grupos o conjuntos y son identificadas con un hash creando datos únicos e irrepetibles.
Donde cada uno de estos conjuntos se agrupa con otro conjunto de datos, generando otro conjunto con otro hash de identificación, hasta generar en última instancia el hash que resume todos los datos anteriores. Este hash resumen es el Root Hash.
Ahora el Root Hash tiene toda la información. De esta manera el Árbol Merkle puede resumir grandes cantidades de información, en un solo hash (Root Hash). Este Root Hash, está formado por todos los hashes de cada conjunto de datos, que van a formar el Árbol de Merkle. Así la verificación y validación de los datos se realiza con mayor eficiencia, porque sólo se tiene que validar el Root Hash y de esa forma se valida toda la información y datos asociados a esta estructura.
FUNCIONAMIENTO DEL ÁRBOL MERKLE
Es un algoritmo que genera una estructura de datos y en cada uno de los conjuntos o grupos de datos (nodos hijos) se agrupan en conjunto de datos más grandes (nodos padres). Así mismo estos grupos se van agrupando hasta llegar a obtener el Root hash. Como ya lo hemos dicho, este hash raíz contiene toda la información resumida y un pequeño cambio, generará otro Root Hash diferente. Al verificar la información y ésta concuerda se garantiza confiablidad.
Como hemos dicho, cada transacción tiene su propio hash, debemos saber que estos hashes no se almacenan secuencialmente en el bloque, sino que van organizándose en forma de árbol. Y cada hash se vincula a su padre.
Este Árbol Merkle tiene un funcionamiento de cascada, todos los datos de ese bloque son absorbidos y se minimizan en un solo hash. Es importante recalcar que el Root Hash tiene una relación determinística con todos los conjuntos de datos, y del hash que identifican a cada grupo o conjunto.
Se puede garantizar que cada dato es el correcto, ya que cualquier modificación, por pequeña que sea, alteraría el Árbol Merkle y toda la estructura queda sin efecto.
Al verificar que el Root Hash es el correcto, el proceso que se hace computacionalmente y algorítmicamente es sencillo de realizar, porque un bloque puede tener un gran número de transacciones, pero al verificar el Hash Raíz el proceso se hace menos pesado y más rápido, por lo tanto, no se necesitan potentes computadoras.
CARACTERÍSTICAS DE UN ÁRBOL MERKLE
Veamos algunas características del Árbol Merkle:
1.- Son capaces de verificar un gran número de información.
2.- Se puede verificar la información necesaria, sin tener que revisar todos los datos de la blockchain, porque permite la “disección”, sin que la seguridad y trazabilidad se vean afectadas. Por ejemplo, si se necesita verificar los datos del bloque 2035, no es necesario verificar la información del bloque anterior 2034 ni la información del bloque siguiente 2036. Sólo se verificaría la información del bloque 2035.
3.- Se ahorra recursos de almacenamiento, ya que permite la disección. Y búsqueda de información más rápida.
4.- Toda la información contenida en un Árbol Merkle, se relaciona con un solo hash, Merkle Root.
5.- No es necesario usar poderosas computadoras para la verificación de datos.
6.- Para los programadores, su algoritmo es sencillo de programar.
7.- En la sincronización de datos es muy eficiente.
EJEMPLO
Los hash en la fila inferior se llaman hojas, los hash intermedios ramas y el hash superior raíz, formando un árbol (al revés). La raíz de un bloque determinado se almacena en el encabezado del bloque. Generalmente un bloque bitcoin tiene más de 2.000 transacciones.
Supongamos que el bloque 421986 constan de 15 transacciones. Comenzando con 8 transacciones en la parte inferior, llamadas hojas. Luego 4 transacciones y en la siguiente línea 2 transacciones que formaran las ramas esas dos líneas y por último la raíz.
T1= Sp3; T2= Sp4; T3= Sp5; T4= Sp6; T5= Sp7; T6=Sp8; T7= Sp9; T8 = Sp10.
Cada transacción tiene su hash, hasta llegar al Root Hash, donde tendrá toda la información resumida del bloque 421986, según nuestro ejemplo.
Este es un pequeño ejemplo del Árbol de Merkle.
USOS EN LA BLOCKCHAIN
El Árbol Merkle es de suma importancia para esta tecnología por permite la verificación de datos. Las cadenas de bloques se forman gracias al Árbol Merkle. Viene dada por la relación entre los hash de cada bloque.
La seguridad e integridad de todos los datos distribuido a lo largo de la red, también se lo debemos al árbol Merkle. Con un solo nodo que se comunique con ellos, inmediatamente se realizan las comprobaciones del Árbol Merkle. Cada nodo puede saber que la red funciona y sus datos no pueden ser cambiados, se mantienen íntegro.
El Árbol Merkle permite que los nuevos nodos se puedan sincronizar muy rápido con la blockchain.
Hemos llegado al final de esta clase.
CONCLUSIONES
El Árbol Merkle trajo un gran avance en la informática, impactando en la blockchain, ya que mejora de una manera significativa el tiempo de verificación y validación de datos en el ecosistema blockchain.
La seguridad en la blockchain no se ve afectada al usar este algoritmo, más bien trae beneficios.
El Root Hash es como un sello a cada bloque que lo identifica como únicos e irrepetibles en la cadena de la blockchain.
TAREA
1.- Explique en detalle el hash rate.
2.- Realice el siguiente Árbol Merkle:
Transacción (hojas del árbol): Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8.
Llegué hasta el Root Hash. Y coloque cada hash generado usando SHA-256, muestre captures de pantalla.
Diga los pasos a seguir para verificar si Steem6 está incluido en el Árbol Markle.
3.- Usando el SHA-256; debes colocar cada hash completo en el Árbol Merkle.
Transacción (hojas del árbol): SCA1; SCA2; SCA3; SCA4; SCA5; SCA6; SCA7; SCA8. Explique cada paso, muestre captures de pantalla.
Si el número de las hojas del árbol es impar, ¿Qué debes hacer? Explique.
REGLAS
• Debe postear en la Comunidad de SteemitCryptoAcademy.
• Debe incluir obligatoriamente entre las 3 primeras etiquetas: #pelon53-s3week4 y #cryptoacademy . y etiquetarme en algún lado de tu publicación @pelon53.
• Asegúrese de colocar bien la etiqueta #pelon53-s3week4, de lo contrario su publicación puede perderse.
• EL PLAGIO O SPAM NO SERÁ TOLERADO.
• Esta tarea se ejecuta hasta el 24/07/2021. 23.59 UTC. (7:59 pm, Venezuela).
• Mínimo 300 palabras.
• Use imágenes libres de derechos de autor y señale la fuente, obligatoriamente.
• Coloque tu usuario de Steemit en cada gráfica o screenshot utilizado.
• Criterios de elegibilidad:
Debe tener una reputación de 55 o más.
Debe tener al menos 250 SP (excluyendo cualquier SP delegado)
• Antes de publicar su tarea, lea con detenimiento la publicación realizada por @steemitblog, para esta semana.
Hello professor @pelon53,
please could you explain this section of the question more.
Saludos, en cada paso se genera un hash, debes colocar cada hash generado hasta llegar al Root Hash.
Hola profesor a continuación mi tarea de esta semana:
https://steemit.com/hive-108451/@felixrodriguez/steeemit-crypto-academy-or-or-temporada-3-semana-4-or-or-root-hash-y-arbol-de-merkle-or-or-tarea-enviada-a-pelon53-por
Hello professor @pelon53 please review this one
https://steemit.com/hive-108451/@kingcent/steemcryptoacademy-season3-week4-home-work-post-for-pelon53
Sir this question 2: are we supposed to make the merkle tree the way you did yours then convert the words into hash and place them,???
Could you please throw more ligth on this question?
Eso es correcto, cada palabra debe tener su hash, hasta llegar al último hash, o Root Hash
Bendiciones profesor. Se ve muy interesante la clase. Estaré profundizando en ella a fin de obtener el mejor aprendizaje posible. Gracias por sus orientaciones y enseñanzas. Feliz noche.
Hola prefesor es una excelente clase . Intentaré participar
Gracias, estaré esperando su participación.
Saludos, estaré esperando su participación.
Greetings Professor @pelon53
I have few questions to ask
Question 1 : Do we need to show all conversion of Words Steem 1-8 in separate screenshot?
Question 2 : In the Merkle tree pictures we need to write whole hash code or we can write the hash code beneath the Merkle tree picture, because it is very difficult to add whole hash code of 8 words in single picture.
Saludos:
Pregunta 1: Necesito ver cada hash Steem1-8. Y de donde los sacas. En una sola hoja puedes colocar 2 ó 3 captures de pantalla. El Árbol Merkle debe tener cada hash, hasta llegar al Root Hash.
Pregunta 2: En las imágenes del Árbol Merkle debe ir cada hash generado. Por ejemplo, en el cuadro de Steem1, debe ir el hash de esa palabra. Y a medida que vayas subiendo debes colocar cada hash generado hasta llegar al Root Hash. La pregunta 2 y 3 son similares, pero son diferentes palabras.
Thank you professor @pelon53 for clearing my doubt.
Okay understood
Weldone Prof. @pelon53. Here is my entry
https://steemit.com/hive-108451/@samsuccess/steeemit-crypto-academy-or-or-season-3-week-4-or-or-root-hash-and-merkle-tree-or-or-home-work-task-submitted-to-pelon53
Thanks
Hello Professor @pelon53. Please sir, here is a link to my assignment:
https://steemit.com/hive-108451/@whileponderin/crypto-academy-season-3-week-4-homework-post-for-professor-pelon53-topic-root-hash-and-merkle-tree
Hi Professor @pelon53, it was a great lecture and I learnt a lot
Here is my submission entry
https://steemit.com/hive-108451/@ononiwujoel/crypto-academy-season-3-week-4-homework-submission-post-for-professor-pelon53-root-hash-and-merkel-tree
Buenas noches por aquí dejo mi entrada profesor Hash Root y Árbol de Merkle.
Saludos!