Crypto Academy S3:W4 | ROOT HASH Y ÁRBOL MERKLE

in SteemitCryptoAcademy3 years ago

image.png
Diseño Original

HASH RATE

Sabemos que el Hash es la representación codificada de un mensaje, sus características principales son la seguridad y la inmutabilidad dentro de la blockchain. La cantidad de Hashes dentro de la cadena es infinita y del procesamiento de éstos dependerá la eficiencia de la blockchain.

El Hash Rate es la tasa de procesamiento de Hashes dentro de la cadena, y de él dependerá la velocidad de verificación de las transacciones. Por lo tanto, existe una relación muy estrecha entre la tecnología empleada por los mineros y el Hash Rate.

ASPECTOS POSITIVOS DEL HASH RATE

Ya que el hardware será la herramienta para un mayor Hash Rate, pudiéramos decir que la inversión en tecnología y equipos es garantizada.

A mayor Hash Rate existe mayor eficiencia en la verificación de transacciones según el protocolo de Prueba de Trabajo PoW.

Las recompensas por comprobaciones de bloques son mayores.

ASPECTOS NEGATIVOS DEL HASH RATE

No todos los países permiten la minería, incluso, existen regiones donde el consumo de energía es limitado, por lo que pudiéramos decir que hay limitaciones en el mundo para alcanzar altos niveles de Hash Rate.

Según el protocolo de Prueba de Trabajo PoW, la eficiencia de la Blockchain a la que aplique depende del Hash Rate y aunque el diseño es totalmente seguro contra ataques maliciosos, siempre deben existir actualizaciones tanto de hardware como de software para estar en el top, por lo tanto, es costoso alcanzar el alto rendimiento.

REALICE EL SIGUIENTE ÁRBOL MERKLE

Realizaré un Árbol de Merkle a partir de las siguientes hojas: Steem1 - Steem2 - Steem3 - Steem4 - Steem5 - Steem6 - Steem7 - Steem8

Hash para Steem1

7760E25BCB80ADF1DD92DB339BF5790A59E90CD54EFA072F1250DCE13FA97045


image.png
SHA256

Hash para Steem2

FE00506E91CF52BC4B35321E6B978D1A7349397B19C6C1C01E095971FDEC9741

image.png
SHA256

Hash para Steem3

A9418332E0C351D6A50C835AA9E57D514F0573C231D491E97726DB8A5844F2DC

image.png
SHA256

Hash para Steem4

22F4EC8E20C9CCAF2C313B23F18981B1C73BF39081BCD739E5D998A95A46AB30

image.png
SHA256

Hash para Steem5

2A3C87336683AB0DDFA56AFEFC740E6C13A02FEA0A43D6797343B26D7AF0C57B

image.png
SHA256

Hash para Steem6

A7BAA6DE0C0658E9E3681966E542BACD116529F5AE9A2D9126CDB1C1D5BC1278

image.png
SHA256

Hash para Steem7

D441688DDA7F9285E8811728DD9A3955CF74F0A3C7600C1589D0F1D3B48FFAC7

image.png
SHA256

Hash para Steem8

F2E38ED4FF662087B6E9BEAFA4158EBC488B995732057BDA019A6A77FFB5F9F5

image.png
SHA256

SEGUIMOS CON LAS RAMAS DEL PRIMER NIVEL

Hash para Steem1Steem2

A5568957014F6AC3866923C7DE20D375E706B8D8C9F453636E90B9965ABEC62B

image.png
SHA256

Hash para Steem3Steem4

18D25196DB699F6AB9222B7302EB8A6F6EBFADEC703C07DD5DB8D9455913A499


image.png
SHA256

Hash para Steem5Steem6

D118E137F92A0DBEA138B6BF70C7714153A7BC393CD0272A44BD94864645224B

image.png
SHA256

Hash para Steem7Steem8

A81D57BA11AEDFA9EFBBA42F6523D75D1EFA50B22C5E3557A21CEFFE87DDFC4A

image.png
SHA256

SEGUIMOS CON LAS RAMAS DEL SEGUNDO NIVEL

Hash para Steem1Steem2Steem3Steem4

8A248C05E69C4F1AA403AD18A7F445FF500C42483DA425CE0C980CDB2FD1AD9B

image.png
SHA256

Hash para Steem5Steem6Steem7Steem8

8B0935AEAB3F51BFA2B0750703EE2387E2B20EB19B0D24227E180C03A851AF17

image.png
SHA256

Y POR ÚLTIMO LA RAÍZ DEL ÁRBOL

Hash para Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8

9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9

image.png
SHA256

Después de diseñar mi modelo en Excel, mi Árbol de Merkle se ve de esta forma:

image.png
Diseño original en Excel

VERIFICAR SI Steem6 ESTÁ INCLUIDO EN EL ÁRBOL MARKLE

Partiendo del principio de que cualquier alteración en alguno de sus nodos cambiaría el resultado final, debido al hecho de que todas las hojas están interconectadas, procedo a verificar el par Steem6 que en este caso es Steem5. Este procedimiento se puede realizar a través del generador de Hash, en este caso el modelo es el SHA256.

image.png
Diseño original en Excel

Seguido verificamos el siguiente nivel, que serían las ramas primarias, tenemos que nuestro siguiente par es la Steem7Steem8.

image.png
Diseño original en Excel

Ya que nuestra raíz está compuesta de todas las hojas, es preciso verificar también la otra vía, donde tenemos Steem1Steem2Steem3Steem4. Esto nos garantiza una verificación completa del árbol abarcando todas sus ramas.

image.png
Diseño original en Excel

Y por último verificamos el último peldaño que se llama Raíz, el cual está compuesta por todas las hojas. En este caso es Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8. Con este último paso verificamos que todo el árbol está completo y a su vez está correcto, lo que es de gran importancia, garantizando la seguridad de este bloque.

image.png
Diseño original en Excel

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.

Hash para SCA1

13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8

image.png
SHA256

Hash para SCA2

27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B

image.png
SHA256

Hash para SCA3

67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D

image.png
SHA256

Hash para SCA4

491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43

image.png
SHA256

Hash para SCA5

99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19

image.png
SHA256

Hash para SCA6

7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729

image.png
SHA256

Hash para SCA7

7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E


image.png
SHA256

Hash para SCA8

562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD


image.png
SHA256

CONTINUAMOS CON LAS RAMAS DEL SIGUIENTE NIVEL

Hash para SCA1SCA2

91B09BBA815748166FB36413342C7E4E7E809F4BAC538C0418841A4476B527EF


image.png
SHA256

Hash para SCA3SCA4

B49B48697A3ACBC5E3D2E36B6EE49C44020D88E664C5C1AA7A7CF34058177379

image.png
SHA256

Hash para SCA5SCA6

F026924CD1285FF92C2A2DE9B9313027EB67273A82375C939348C887F6B52F77

image.png
SHA256

Hash para SCA7SCA8

AA55EC5A6B11393B289C4B2B6916172ACC2941C5C978FB1D7BF02696BAB323A4

image.png
SHA256

SEGUNDO NIVEL DE RAMAS

Hash para SCA1SCA2SCA3SCA4

F50DC120CBF6C46923037F6D7F41D4153ECC9AB7430DDA662C142DB1FFE483F7


image.png
SHA256

Hash para SCA5SCA6SCA7SCA8

A3D8CA8494CC426ABD5E1FC5FA0FEAE4F2B2ECE4C4CECDCA05E19EB66542533F

image.png
SHA256

Por último, generar la Raíz del Árbol

#####Hash para SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8
CB40CA6DB72DD507CF9118963F94B7740822258E74AFB0FD45D89DB35D24B386

image.png
SHA256

Luego de diseñar en el Excel, mi Árbol se ve de esta forma:

image.png
Diseño original en Excel

SI EL NÚMERO DE LAS HOJAS DEL ÁRBOL ES IMPAR, ¿QUÉ DEBES HACER? EXPLIQUE

Sabemos que la estructura del Árbol de Merkle está compuesta en su inicio por hojas que se agrupan en pares para construir el siguiente nivel que serían las ramas. Posteriormente las ramas se agruparán en pares también y de este mismo modo llegar a la raíz. Por lo tanto, al no contar con un número par de hojas sería imposible la construcción del árbol.

image.png
Diseño original en Excel

Pero es posible duplicar una hoja para así completar el par y construir la rama del siguiente nivel, y posteriormente llegar a la raíz. Esto con el objetivo de verificar esta transacción.

image.png
Diseño original en Excel

CONCLUSIÓN

Tenemos que los hashes son mensajes codificados a través de un algoritmo que los define con igual longitud de caracteres y haciéndolos indescifrables por ataques maliciosos, aportando de esta forma seguridad e inmutabilidad a la blockchain.

A su vez, los hashes son verificados por mineros a través de hardware especializado, capaces de procesar una cantidad infinita de éstos, y la eficacia con que se logre la comprobación de estos bloques de información se define con el nombre de Hash Rate.

Para hacer más ligero este sistema, o para alcanzar un Hash Rate mayor (en otras palabras), el algoritmo de consenso por Prueba de Trabajo agrupa esta cantidad de hashes en árboles, siguiendo la teoría del Árbol de Merkle. Estos hashes son agrupados en pares para crear ramas hasta concretar la raíz del mismo, y este procedimiento permite que fluya con mayor rapidez la comprobación del bloque.

Me despido, agradeciendo a la Crypto Academy y al profesor @pelon53 por impartir estos conocimientos nuevos para mí. Hasta la próxima semana!

Sort:  
Loading...

Coin Marketplace

STEEM 0.25
TRX 0.19
JST 0.037
BTC 91911.91
ETH 3307.29
USDT 1.00
SBD 3.71