Steemit Crypto Academy Season 3 Week 4 || Root Hash & Arbol Merkle por @pelon53

"Cualquier poder, si no se basa en la unión, es débil."

Jean de La Fontaine

PicsArt_07-21-09.39.28.png

Imagen editada con PicsArt

Fuente

Steemit Crypto Academy Season 3 Week 4 || Root Hash & Arbol Merkle por @pelon53

En la exposición anterior, tuvimos la oportunidad de conocer las diferencias entre dos términos de uso muy común en la blockchain, como lo son hash y criptografía; correspondiendo el primero de ellos, a una cadena de caracteres alfanuméricos de longitud fija, generados por algoritmos (funciones hash) que permiten la codificación o encriptación de los datos suministrados, y que permiten su verificación y almacenamiento de forma segura.

Por el contrario, el término criptografía, cuyo origen se remonta a los inicios de la humanidad, se emplea para denominar a la técnica de cifrado o codificación de escritura con el objeto de proteger mensajes o documentos, mediante la alteración de su representación visual, con el fin de preservarlos de receptores no autorizados por el emisor.

En esta ocasión, nos adentraremos en el conocimiento de otro término de uso frecuente en la blockchain y el cual es parte fundamental en su evolución, el hash rate y su significado como medida de la fortaleza y seguridad de una red.

Finalmente, a partir de una serie de datos suministrados por el Profesor @pelon53, construiremos un Arbol de Merkle, también conocido como "árbol hash", y el cual no es más que una estructura ramificada en forma de árbol invertido, de donde toma su nombre, que proporciona un método seguro y eficiente para la verificación de los contenidos de extensas estructuras de datos.

PicsArt_07-21-09.42.14.jpg

Imagen editada con PicsArt

Arbol de Merkle

qjrE4yyfw5pQYiuVvgYiUBP16WHGGN7UNn1BCdGdi8sLHDMmQ1KdHazCAusbLgyV7uzTph9dB35PrEbeoe59KhV7mqtnXPVA14dALYpZtgGr9rgrhNf6FyY2.png

¿Qué es Hash Rate?

El hash rate es una medida del poder computacional combinado de una red para el minado y procesamiento de transacciones en una blockchain, tal como Bitcoin. Es decir, es una expresión de la capacidad global de una red para resolver las complejas ecuaciones criptográficas y poder generar un hash válido, aunque también se emplea para describir el poder de cómputo de un minero en forma individual.

Además, bajo este término se denomina la métrica que se emplea para cuantificar la fortaleza y seguridad de una blockchain ante un ataque cibernético. En este sentido, cuanto mayor sea el hash rate de una red, menor será su vulnerabilidad ante un ataque de 51%, es decir, en la medida que se incrementa el poder combinado de cómputo de una blockchain, también se incrementa la potencia que debe poseer uno o varios mineros aislados para hackear la red, para lo cual requerirían una cantidad inmensa de equipos que le permitan alcanzar al menos un 51% del poder total de la red en cuestión, para vulnerarla.

Este concepto nace a la par de Bitcoin, la primera criptomoneda que salió a la luz pública; y desde entonces se ha convertido en parte fundamental de la tecnología blockchain, dado que indica la potencia de una red, y nos permite conocer su evolución a través del tiempo. Por supuesto, el hash rate es más que solo un número; es un concepto crítico para el funcionamiento de Bitcoin y de todas las criptomonedas posteriores.

Su expresión numérica está dada por la cantidad de hashes por segundo (H/s) que es capaz de procesar una red, tal como se observa a continuación:

Unidad Hashes por Segundo
1 kH/s 1.000
1 MH/s 1.000.000
1 GH/s 1.000.000.000
1 TH/s 1.000.000.000.000
1 PH/s 1.000.000.000.000.000
1 EH/s 1.000.000.000.000.000.000

En un principio, la complejidad de las operaciones matemáticas para la resolución de acertijos criptográficos, y en consecuencia, para validar transacciones dentro de una blockchain era baja; sin embargo, con el transcurso del tiempo se incrementó, tanto el número de mineros participantes como la complejidad de dichas operaciones y el poder de cómputo requerido para el minado de criptomonedas, particularmente Bitcoin. Esto generó, como era de esperarse, un aumento significativo en el consumo de energía, principalmente de origen fósil, lo cual tiene un impacto negativo en el ambiente.

Por lo tanto, el reto de las nuevas generaciones es alcanzar una mayor eficiencia en el uso de los recursos energéticos, procurando minimizar el impacto ambiental sin sacrificar la seguridad de las múltiples redes.

qjrE4yyfw5pQYiuVvgYiUBP16WHGGN7UNn1BCdGdi8sLHDMmQ1KdHazCAusbLgyV7uzTph9dB35PrEbeoe59KhV7mqtnXPVA14dALYpZtgGr9rgrhNf6FyY2.png

Arbol de Merkle (Steem)

Haciendo uso del generador de hashes SHA-256, construiremos un Arbol de Merkle con la siguiente información (Hojas del Arbol: Steem1, Steem2, Steem3, Steem4, Steem5, Steem6, Steem7, Steem8) hasta llegar al Hash Root o "Hash Raíz".

La palabra Steem1 nos genera el siguiente hash

7760E25BCB80ADF1DD92DB339BF5790A59E90CD54EFA072F1250DCE13FA97045

Como puede apreciarse en la siguiente imagen


PicsArt_07-22-09.17.11.jpg

Imagen editada con PicsArt

Fuente

  • Por otra parte, la palabra Steem2 genera el hash

FE00506E91CF52BC4B35321E6B978D1A7349397B19C6C1C01E095971FDEC9741

PicsArt_07-22-09.18.32.jpg

Imagen editada con PicsArt

Fuente

  • El hash correspondiente a Steem3 es:

A9418332E0C351D6A50C835AA9E57D514F0573C231D491E97726DB8A5844F2DC


PicsArt_07-22-09.20.41.jpg

Imagen editada con PicsArt

Fuente

  • El hash correspondiente a Steem4 es:

22F4EC8E20C9CCAF2C313B23F18981B1C73BF39081BCD739E5D998A95A46AB30


PicsArt_07-22-09.21.59.jpg

Imagen editada con PicsArt

Fuente

  • El hash correspondiente a Steem5 es:

2A3C87336683AB0DDFA56AFEFC740E6C13A02FEA0A43D6797343B26D7AF0C57B


PicsArt_07-22-09.23.05.jpg

Imagen editada con PicsArt

Fuente

  • Mientras el hash que corresponde a Steem6 es:

A7BAA6DE0C0658E9E3681966E542BACD116529F5AE9A2D9126CDB1C1D5BC1278

PicsArt_07-22-09.38.51.jpg

Imagen editada con PicsArt

Fuente

  • El hash que corresponde a Steem7 es:

D441688DDA7F9285E8811728DD9A3955CF74F0A3C7600C1589D0F1D3B48FFAC7

PicsArt_07-22-09.24.36.jpg

Imagen editada con PicsArt

Fuente

  • Mientras el hash que corresponde a Steem8 es:

F2E38ED4FF662087B6E9BEAFA4158EBC488B995732057BDA019A6A77FFB5F9F5

PicsArt_07-22-09.25.47.jpg

Imagen editada con PicsArt

Fuente

  • La unión de Steem1 y Steem2, corresponde al primer nivel de las ramas del Arbol de Merkle, genera el siguiente hash:

A5568957014F6AC3866923C7DE20D375E706B8D8C9F453636E90B9965ABEC62B


PicsArt_07-22-09.40.32.jpg

Imagen editada con PicsArt

Fuente

  • La unión de Steem3 y Steem4 nos genera el siguiente hash:

18D25196DB699F6AB9222B7302EB8A6F6EBFADEC703C07DD5DB8D9455913A499


PicsArt_07-22-09.41.36.jpg

Imagen editada con PicsArt

Fuente

  • La unión de Steem5 y Steem6 nos genera el siguiente hash:

D118E137F92A0DBEA138B6BF70C7714153A7BC393CD0272A44BD94864645224B


PicsArt_07-22-09.42.45.jpg

Imagen editada con PicsArt

Fuente

  • La unión de Steem7 y Steem8 nos genera el siguiente hash:

A81D57BA11AEDFA9EFBBA42F6523D75D1EFA50B22C5E3557A21CEFFE87DDFC4A


PicsArt_07-22-09.43.59.jpg

Imagen editada con PicsArt

Fuente

  • En este momento nos corresponde generar el hash que proviene de la unión de Steem1Steem2 y Steem3Steem4, lo cual se observa a continuación:

8A248C05E69C4F1AA403AD18A7F445FF500C42483DA425CE0C980CDB2FD1AD9B

PicsArt_07-22-09.46.50.jpg

Imagen editada con PicsArt

Fuente

  • El hash que proviene de la unión de las palabras Steem5Steem6 y Steem7Steem8, se observa a continuación:

8B0935AEAB3F51BFA2B0750703EE2387E2B20EB19B0D24227E180C03A851AF17

PicsArt_07-22-09.48.05.jpg

Imagen editada con PicsArt

Fuente

  • Finalmente, el hash root, que se ubica en la parte superior del Arbol de Merkle se obtiene de la unión de las palabras Steem1Steem2Steem3Steem4 y Steem5Steem6Steem7Steem8, como se observa a continuación:

9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9

PicsArt_07-22-09.45.24.jpg

Imagen editada con PicsArt

Fuente

Con toda la información, procedemos a construir un Arbol de Merkle de 8 hojas y 2 niveles de ramas, lo que genera un total de 15 hashes, como se aprecia en la siguiente imagen.


PicsArt_07-22-09.45.00.jpg

Imagen realizada con PowerPoint y editada con PicsArt

Verificación de Steem6

Para verificar si el hash asociado a la "hoja" Steem6 se encuentra incluido en el Arbol de Merkle recién construido, se procede de la siguiente manera:

  • Se verifica Steem5, la hoja, dato o input asociado al pareamiento Steem5Steem6

  • Posteriormente, en el primer nivel de ramas del árbol, se verifica el hash correspondiente a Steem5Steem6.

  • Luego nos trasladamos al segundo nivel de ramas del árbol para verificar el hash generado por Steem5Steem6Steem7Steem8.

  • Finalmente, en último nivel, se verifica el hash root o "hash raíz" del árbol, el cual fue generado por la unión de Steem1Steem2Steem3Steem4 por un lado, y por el otro, Steem5Steem6Steem7Steem8.

qjrE4yyfw5pQYiuVvgYiUBP16WHGGN7UNn1BCdGdi8sLHDMmQ1KdHazCAusbLgyV7uzTph9dB35PrEbeoe59KhV7mqtnXPVA14dALYpZtgGr9rgrhNf6FyY2.png

Arbol de Merkle (SCA)

Al igual que el procedimiento efectuado para dar respuesta a la pregunta anterior, hacemos uso nuevamente del generador de hashes SHA-256, construiremos un Arbol de Merkle con la siguiente información (Hojas del Arbol: SCA1, SCA2, SCA3, SCA4, SCA5, SCA6, SCA7, SCA8) hasta llegar al Hash Root o "Hash Raíz" en el último nivel.

La palabra SCA1 nos genera el siguiente hash

13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8

Como puede apreciarse en la siguiente imagen


PicsArt_07-22-09.49.33.jpg

Imagen editada con PicsArt

Fuente

  • Por otra parte, la palabra SCA2 genera el hash

27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B


PicsArt_07-22-09.51.16.jpg

Imagen editada con PicsArt

Fuente

  • El hash correspondiente a SCA3 es:

67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D


PicsArt_07-22-09.52.36.jpg

Imagen editada con PicsArt

Fuente

  • El hash correspondiente a SCA4 es:

491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43


PicsArt_07-22-09.53.45.jpg

Imagen editada con PicsArt

Fuente

  • El hash correspondiente a SCA5 es:

99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19


PicsArt_07-22-09.54.55.jpg

Imagen editada con PicsArt

Fuente

  • Mientras el hash que corresponde a SCA6 es:

7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729


PicsArt_07-22-09.56.03.jpg

Imagen editada con PicsArt

Fuente

  • El hash que corresponde a SCA7 es:

7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E


PicsArt_07-22-09.57.09.jpg

Imagen editada con PicsArt

Fuente

  • Mientras el hash que corresponde a SCA8 es:

562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD


PicsArt_07-22-09.58.15.jpg

Imagen editada con PicsArt

Fuente

  • La unión de SCA1 y SCA2, corresponde al primer nivel de las ramas del Arbol de Merkle, genera el siguiente hash:

91B09BBA815748166FB36413342C7E4E7E809F4BAC538C0418841A4476B527EF


PicsArt_07-22-10.06.33.jpg

Imagen editada con PicsArt

Fuente

  • La unión de SCA3 y SCA4 nos genera el siguiente hash:

B49B48697A3ACBC5E3D2E36B6EE49C44020D88E664C5C1AA7A7CF34058177379


PicsArt_07-22-10.07.46.jpg

Imagen editada con PicsArt

Fuente

  • La unión de SCA5 y SCA6 nos genera el siguiente hash:

F026924CD1285FF92C2A2DE9B9313027EB67273A82375C939348C887F6B52F77


PicsArt_07-22-10.08.52.jpg

Imagen editada con PicsArt

Fuente

  • La unión de SCA7 y SCA8 nos genera el siguiente hash:

AA55EC5A6B11393B289C4B2B6916172ACC2941C5C978FB1D7BF02696BAB323A4


PicsArt_07-22-10.09.52.jpg

Imagen editada con PicsArt

Fuente

  • En este momento nos corresponde generar el hash que proviene de la unión de SCA1SCA2 y SCA3SCA4, lo cual se observa a continuación:

F50DC120CBF6C46923037F6D7F41D4153ECC9AB7430DDA662C142DB1FFE483F7


PicsArt_07-22-10.11.13.jpg

Imagen editada con PicsArt

Fuente

  • El hash que proviene de la unión de las palabras SCA5SCA6 y SCA7SCA8, se observa a continuación:

A3D8CA8494CC426ABD5E1FC5FA0FEAE4F2B2ECE4C4CECDCA05E19EB66542533F


PicsArt_07-22-10.12.20.jpg

Imagen editada con PicsArt

Fuente

  • Finalmente, el hash root, que se ubica en la parte superior del Arbol de Merkle se obtiene de la unión de las palabras SCA1SCA2SCA3SCA4 y SCA5SCA6SCA7SCA8, como se observa a continuación:

CB40CA6DB72DD507CF9118963F94B7740822258E74AFB0FD45D89DB35D24B386


PicsArt_07-22-10.13.29.jpg

Imagen editada con PicsArt

Fuente

Con toda la información, procedemos a construir un Arbol de Merkle de 8 hojas y 2 niveles de ramas, lo que genera un total de 15 hashes, como se aprecia en la siguiente imagen.


PicsArt_07-22-09.44.00.jpg

Imagen realizada con PowerPoint y editada con PicsArt

¿Qué se debe hacer si el número de hojas del árbol es impar?

Una estructura tradicional de Arbol Merkle, requiere agrupar las transacciones o hashes en pares para su construcción. En el caso de que no se cuente con un número par de entradas, datos o inputs; existe la posibilidad de "duplicar" el hash que no tiene pareja, para así poder rellenar el espacio y crear un nuevo hash que permitirá la generación de los demás, hasta alcanzar el hash root o "hash raíz".

En la imagen que se presenta a continuación, se puede observar tan solo 7 hojas en la base del árbol.


PicsArt_07-22-09.47.12.jpg

Imagen realizada con PowerPoint y editada con PicsArt

Se procede a duplicar la última hoja con la finalidad de que SCA7 tenga su pareja y se pueda continuar con el proceso hasta obtener nuestro hash root.


PicsArt_07-22-09.46.02.jpg

Imagen realizada con PowerPoint y editada con PicsArt

qjrE4yyfw5pQYiuVvgYiUBP16WHGGN7UNn1BCdGdi8sLHDMmQ1KdHazCAusbLgyV7uzTph9dB35PrEbeoe59KhV7mqtnXPVA14dALYpZtgGr9rgrhNf6FyY2.png

Conclusiones

  • El término hash, se emplea para denominar una cadena alfanumérica de longitud fija, que representa o contiene dentro de su interior datos o información de cualquier longitud.

  • La longitud de un hash es fija e invariable, independientemente de la longitud de la información de las "entradas" (inputs). En el caso del algoritmo SHA-256 usado por Bitcoin y otras criptomonedas, es de 64 caracteres alfanuméricos.

  • El hash rate es una medida del poder computacional de un minero individual, o más comúnmente, de la totalidad de una red, y que permite conocer su fortaleza y seguridad ante ataques cibernéticos. Mientras mayor es el hash rate de una blockchain, menor es la probabilidad de que pueda ser susceptible de un ataque por parte de piratas informáticos.

  • Un Arbol de Merkle es una estructura de datos en forma de árbol invertido, desarrollada en 1979 por Ralph Merkle, y el cual se emplea en la blockchain para verificar la integridad de una base de datos.

This is my Homework Post for Steemit Crypto Academy Season 3 Week 4 || Root Hash & Merkle Tree by Professor @pelon53

U5dsgAmgYZEzsqx5mminCYebNQKMXdv_1680x8400.png


IMG-20201228-WA0057.jpg

If you liked this post, I invite you to support my work by following my account @manuelgil64 and leaving your comments and upvoting

Thanks!

Sort:  

Gracias por participar en Steemit Crypto Academy Season 3:

Espero seguir leyendo tus publicaciones.

NoPreguntas.Puntaje.
1Explique en detalle el hash rate.1.5
2Realice el Árbol Merkle. Pregunta 2. Diga los pasos a seguir para verificar si Steem6 está incluido en el Árbol Markle.2.7
3Realice el Árbol Merkle. Pregunta 3. Si el número de las hojas del árbol es impar, ¿Qué debes hacer? Explique.3.5
4Presentación y originalidad1.3
  • Pregunta 1, con buena información.

  • Pregunta 2, coinciden todos los hash. Pero para verificar Steem6, no debería tomarse él mismo, porque es a Steem6 que vamos a verificar. Entonces sería su hermano Steem5, Steem7Steem8 y la otra rama Steem1Steem2Steem3Steem4 y el Root hahs.

  • Pregunta 3, bien contestada y los hash coinciden.

Recomendaciones:

  • Sigue con tus buenas tareas.

Calificación: 9.0

Gracias Profesor @pelon53

Saludos

Congratulations, your post has been upvoted by @dsc-r2cornell, which is the curating account for @R2cornell's Discord Community.

Curated by @blessed-girl

r2cornell_curation_banner.png

Enhorabuena, su "post" ha sido "up-voted" por @dsc-r2cornell, que es la "cuenta curating" de la Comunidad de la Discordia de @R2cornell.

Gracias @dsc-r2cornell y @blessed-girl por el apoyo.

Saludos

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63039.96
ETH 2549.01
USDT 1.00
SBD 2.78