Crypto Academy / Season 3 / Week 4 - Homework Post for [Pelon53] ROOT HASH Y ÁRBOL MERKLE.

in SteemitCryptoAcademy3 years ago
¡Un saludo a todos! Nuevamente nos encontramos en una nueva semana de la cryptoacademy, en dónde el profesor @pelon53 nos habla detalladamente sobre el Robot Hash y el Árbol Merkle, y nos explica la importancia de ambos en la red blockchain, y de los usos que podemos darle, es por eso que me he unido a su clase esta semana.


En la segunda semana, aprendí bastante en su clase sobre el Hash y la criptografía, y de las ventajas que ellos nos ofrecen, es por eso que no dudo que este tema sea muy interesante e instructivo para todos nosotros, así que vamos a aprender todos juntos!!

IMG_20210723_141351.jpg

Imagen de mi propiedad, realizada en CANVA.

separador22.png

Hash rate.


El Hash rate es uno de los conceptos más importantes en el mundo de la blockchain, ya que es un poder de cómputo que tiene la capacidad de otrogarle fuerza y seguridad a la red de una moneda cuando es minada, evitando ataques o errores de los nodos maliciosos que busquen perjudicar a la red, es por eso, que es aquí donde entra el Hash Rate, permitiendo la creación de los bloques de una manera totalmente segura por parte de los mineros que hacen su trabajo, mientras que a su ves nos indica las operaciones que estos mismos son capaces de realizar.

El inicio del Hash Rate surgió con la creación de la moneda con mayor dominancia en el mercado, es decir, el BTC, por lo tanto no es casual que este concepto sea tan importante para la evolución y seguridad de la moneda, y desde entonces se fue implementando en las monedas que deriven de la misma.

• Función:


Su función se basa a través del algoritmo de consenso Prueba de trabajo (PoW), y en dónde se encarga de demostrar la capacidad que tiene un minero o equipo de trabajo para para procesar hashes en la red.

El Hash rate es una parte fundamental en la seguridad y evolución de las monedas que trabajen con este algoritmo, o por el contrario que deriven del Bitcoin, por lo tanto su función principal es encargase de que el trabajo de minería para la creación de cada bloque, funcione de una manera segura y evitando futuros errores.

• Importancia:


Cuando decidimos involucrar nuevas criptomonedas en nuestro portafolio, es importante que revisemos e investiguemos el porcentaje de Hash Rate que poseen, ya que mientras mayor sea el porcentaje, menor será el riesgo de que ocurran ataques y errores en su red de minería, y mayor será la seguridad que esta moneda nos presente, por lo tanto:

• Gracias al Hash Rate podemos saber que tan segura y confiable es la red de su minado, y por ende podemos decidir incluirla en nuestro portafolio.

Otro uso importante que nos puede aportar el Hash Rate, es que ayuda a buscar soluciones y a calcular las dificultades mineras que pueda presentar la red de una moneda, ayudando a descongestionar el sistema y a mejorar la duración de la creación de cada bloque que se desarrolla por segundo, por lo tanto:

• Las dificultades mineras se ajustan cuando existen problemas en la red y en la creación del tiempo para generar un bloque. (En el caso del BTC, esta se ajusta automáticamente al determinar cierta cantidad de bloques)

Entonces como podemos ver, el Hash Rate tiene otros usos importantes que aportan valor y seguridad a la red de minería de una moneda, por lo tanto su implementación en ellas, es de vital Importancia para que logren tener un mejor desarrollo, ya que nos indica la potencia y el valor de la red, junto con el trabajo de los mineros que lo conforman.

• Características:


Importancia para el minero: El Hash Rate es fundamental para que los mineros logren hacer su trabajo de manera segura y confiable, por lo tanto la implementación del mismo, ayuda a que su poder aumente y que puedan realizar su trabajo de manera eficaz, para lograr obtener sus recompensas.

Resistencia a ataques del 51%: Como sabemos, el valor del Hash Rate de una moneda determinará que tan fuerte es, por lo tanto mientras mayor sea su valor, menor serán las posibilidades de un ataque del 51%, es decir, esto solo ocurre cuando la mayoría de los nodos se ponen de acuerdo en este porcentaje de votación (51%) para falsificar información logrando dañar la red, y presentar errores en él.

Es por eso que mientras mayor sea el porcentaje de su Hash Rate, es poco probable que ocurra un ataque de éstos.

Alta cantidad de energía: Otra de las características quizás no tan buenas del Hash Rate, es el alto consumo de energía que puede prorporcionar, ya que debido a su alto nivel de seguridad y tecnología que proporciona a los mineros, trae como consecuencia que los niveles de energía sean altos.

• Validar funciones dentro de la red: El Hash Rate también funciona para validar ciertas funciones que ocurren dentro de la red, y monitorear operaciones de cada uno de los bloques que se generan por segundo.

Tasa de Hash Rate:


El Hash Rate también se puede calcular, y es través de unidades, dependiendo de la cantidad de Hash que se procese en cada bloque H/S. (Por segundos)

Sus unidades son:

Hashes/segundos

• Kilo Hash: 1,000 hashes
• Mega Hash: 1,000,000 hashes
• Giga Hash: 1,000,000,000 hashes
• Tera Hash: 1,000,000,000,000, hashes
• Peta Hash: 1,000,000,000,000,000 hashes
• Exa Hash: 1,000,000,000, 000,000,000, hashes

separador22.png

2) Árbol Merkle

Con las siguientes hojas de árbol estipuladas, vamos a proceder a armar nuestro árbol Merkle, usando las siguientes hojas:

(Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8.)

Debemos colocar la palabra tal cuál como nos indica, ya que de lo contrario se podría alterar el Hash y obtendríamos un resultado no deseado para nuestro árbol Merkle.

SHA-256

Steem1:

7760E25BCB80ADF1DD92DB339BF5790A59E90CD54EFA072F1250DCE13FA97045

IMG_20210723_063655.jpg

Steem2:

FE00506E91CF52BC4B35321E6B978D1A7349397B19C6C1C01E095971FDEC9741

IMG_20210723_063839.jpg

Steem3:

A9418332E0C351D6A50C835AA9E57D514F0573C231D491E97726DB8A5844F2DC

IMG_20210723_064026.jpg

Steem4:

22F4EC8E20C9CCAF2C313B23F18981B1C73BF39081BCD739E5D998A95A46AB30

IMG_20210723_064354.jpg

Steem5:

2A3C87336683AB0DDFA56AFEFC740E6C13A02FEA0A43D6797343B26D7AF0C57B

IMG_20210723_064657.jpg

Steem6:

A7BAA6DE0C0658E9E3681966E542BACD116529F5AE9A2D9126CDB1C1D5BC1278

IMG_20210723_064832.jpg

Steem7:

D441688DDA7F9285E8811728DD9A3955CF74F0A3C7600C1589D0F1D3B48FFAC7

IMG_20210723_065006.jpg

Steem8:

F2E38ED4FF662087B6E9BEAFA4158EBC488B995732057BDA019A6A77FFB5F9F5

IMG_20210723_065125.jpg

separador22.png

Ramas del primer nivel

Ahora vamos a proceder a armar las ramas del primer nivel de nuestro Árbol Merkle, con las siguientes hojas:

Steem1Steem2:

A5568957014F6AC3866923C7DE20D375E706B8D8C9F453636E90B9965ABEC62B

IMG_20210723_070738.jpg

Steem3Steem4:

18D25196DB699F6AB9222B7302EB8A6F6EBFADEC703C07DD5DB8D9455913A499

IMG_20210723_071020.jpg

Steem5Steem6:

D118E137F92A0DBEA138B6BF70C7714153A7BC393CD0272A44BD94864645224B

IMG_20210723_071159.jpg

Steem7Steem8:

A81D57BA11AEDFA9EFBBA42F6523D75D1EFA50B22C5E3557A21CEFFE87DDFC4A

IMG_20210723_071327.jpg

separador22.png

Ramas del segundo nivel:

Ahora que ya tenemos lista nuestras primeras ramas, vamos a proceder a armar las de nuestro segundo nivel, combinando cada una de las siguientes hojas:

Steem1Steem2Steem3Steem4:

8A248C05E69C4F1AA403AD18A7F445FF500C42483DA425CE0C980CDB2FD1AD9B

IMG_20210723_071817.jpg

Steem5Steem6Steem7Steem8:

8B0935AEAB3F51BFA2B0750703EE2387E2B20EB19B0D24227E180C03A851AF17

IMG_20210723_072021.jpg

separador22.png

Raíz central del árbol

Ahora que ya obtuve mis ramas del primer y segundo nivel, vamos a proceder a realizar nuestra rama principal o central de nuestro árbol Merkle, y para ello solo demos juntar cada una de las hojas obtenidas:

Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8:

9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9

IMG_20210723_072551.jpg

Cómo podemos ver, esta es la raíz principal de nuestro árbol Merkle, y ahora lo voy a armar todo completamente:

IMG_20210723_112033.jpg

Imagen de mi propiedad, realizada en POWER POINT.

• Las palabras: (Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8) De color negro, representan las hojas principales de nuestro árbol Merkle.

• Las palabras: (Steem1Steem2)(Steem3Steem4)(Steem5Stee6)(Steem7Steem8), de color rojo, representan las ramas del primer nivel de nuestro árbol.

• Las palabras: (Steem1Steem2Steem3Steem4) (Steem5Steem6Steem7Steem8) de color azul, representan las ramas del segundo nivel de nuestro árbol.

• Las palabras: (Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8)de color verde, representan nuestra raíz principal de nuestro árbol Merkle.

¿Cómo verificar si Steem6 está incluido en el Árbol Markle?


Como dije anteriormente, al cambiar tan solo una letra de las palabras dadas, nuestra raíz del árbol principal cambiaría automáticamente, es por eso que debemos colocar muy bien la palabra correcta, para obtener el Hash correcto, y lograr así que nuestra raíz del árbol sea la indicada.

Para verificar si Steem6 es correcto y está incluído en las ramas de nuestro árbol, debemos verificar las ramas que están conectadas a él, es decir:

• Verificar la hoja Steem5 ya que es su pareja en la rama principal.

IMG_20210723_112233.jpg

• Ahora debemos verificar los nodos que están por encima de el, en la segunda rama de nuestro árbol, los cuales sería Steem7Steem8

IMG_20210723_112210.jpg

• Nos iremos al otro lado de nuestro árbol en la tercera rama, y verificaremos las combinaciones Steem1Steem2Steem3Steem4

IMG_20210723_112145.jpg

• Finalmente llegamos a nuestra raíz principal de nuestro árbol Merkle, en dónde podemos ver la combinación de cada uno de los nodos, que nos dió un Hash general, logrando confirmar que nuestro nodo Steem6 si está incluído dentro de nuestro árbol.

IMG_20210723_112119.jpg

• Raíz del árbol principal:

9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9

separador22.png

3) Árbol Merkle con distintas hojas

Ahora crearemos otro árbol Merkle con distintas hojas, las cuales son:

(SCA1; SCA2; SCA3; SCA4; SCA5; SCA6; SCA7; SCA8.)

Debemos colocar la palabra tal cuál como nos indica, ya que de lo contrario se podría alterar el Hash y obtendríamos un resultado no deseado para nuestro árbol Merkle.

Usaremos SHA-256 para obtener los Hash:

SHA-256

SCA1:

13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8

IMG_20210723_080053.jpg

SCA2:

27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B

IMG_20210723_080332.jpg

SCA3:

67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D

IMG_20210723_080504.jpg

SCA4:

491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43

IMG_20210723_080623.jpg

SCA5:

99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19

IMG_20210723_080746.jpg

SCA6:

7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729

IMG_20210723_080856.jpg

SCA7:

7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E

IMG_20210723_081010.jpg

SCA8:

562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD

IMG_20210723_081128.jpg

separador22.png

Ramas del primer nivel:

Ahora vamos a empezar armar nuestras ramas del primer nivel, juntando las combinaciones obtenidas:

SCA1SCA2:

91B09BBA815748166FB36413342C7E4E7E809F4BAC538C0418841A4476B527EF

IMG_20210723_081448.jpg

SCA3SCA4:

B49B48697A3ACBC5E3D2E36B6EE49C44020D88E664C5C1AA7A7CF34058177379

IMG_20210723_081615.jpg

SCA5SCA6:

F026924CD1285FF92C2A2DE9B9313027EB67273A82375C939348C887F6B52F77

IMG_20210723_081744.jpg

SCA7SCA8:

AA55EC5A6B11393B289C4B2B6916172ACC2941C5C978FB1D7BF02696BAB323A4

IMG_20210723_081907.jpg

separador22.png

Ramas del segundo nivel:

Ahora vamos a empezar a armar nuestras ramas del segundo nivel, obteniendo las combinaciones anteriores:

SCA1SCA2SCA3SCA4:

F50DC120CBF6C46923037F6D7F41D4153ECC9AB7430DDA662C142DB1FFE483F7

IMG_20210723_082215.jpg

SCA5SCA6SCA7SCA8:

A3D8CA8494CC426ABD5E1FC5FA0FEAE4F2B2ECE4C4CECDCA05E19EB66542533F

IMG_20210723_082351.jpg

separador22.png

Raíz del árbol:

Ahora vamos a combinar cada una de las hojas anteriores para formar nuestra raíz del árbol Merkle:

SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8:

CB40CA6DB72DD507CF9118963F94B7740822258E74AFB0FD45D89DB35D24B386

IMG_20210723_082931.jpg

Después de unir cada uno de las hojas obtenidas, aquí les presento mi árbol Merkle:

IMG_20210723_123456.jpg

Imagen de mi propiedad, realizada en POWER POINT.

• Las palabras (SCA1; SCA2; SCA3; SCA4; SCA5; SCA6; SCA7; SCA8.) De color negro, representan las hojas principales de nuestro árbol Merkle.

• Las palabras: (SCA1SCA2)(SCA3SCA4)(SCA5SCA6)(SCA7SCA8), de color rojo, representan las ramas del primer nivel de nuestro árbol.

• Las palabras: (SCA1SCA2SCA3SCA4) (SCA5SCA6SCA7SCA8) de color azul, representan las ramas del segundo nivel de nuestro árbol.

• Las palabras: (SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8)
de color verde, representan nuestra raíz principal de nuestro árbol Merkle.

¿Qué sucede cuándo el número de hojas de un árbol Markle es impar?


Como sabemos, para generar cada una de las ramas que componen nuestro árbol Merkle, cada una de sus hojas deben estar de manera par, y tener una pareja a su lado, ya que la estructura de su árbol las agrupa para que estén de manera uniforme, y lograr así, generar el Hash de ellos. Es decir, si una de las ramas no posee una de sus hojas de manera par, no se podrá continuar con las ramas o niveles restantes de nuestro árbol, por lo tanto nunca podemos llegar a saber nuestra raíz principal.

Sin embargo, si llegara a ocurrir este caso, de que falte una hoja de una de nuestras ramas, lo que podemos hacer es duplicar la hoja impar que tenemos , y lograr así completar las demás ramas de nuestro árbol para completar nuestra raíz principal.

Por ejemplo:

Si en nuestro árbol nos falta una de las hojas del primer nivel, no podemos continuar con el resto de nuestro árbol, por lo tanto, lo que podemos hacer es duplicarlo y seguir con las demás ramas:

IMG_20210723_125524.jpg

En este caso lo que voy a hacer es duplicar la hoja SCA7 para poder seguir con las demás ramas de mi árbol;

SCA7SCA7:

71AF5095F10844EDA37CFCF8EE7712ADD5940F4ADAE1946CE66793270438C39B

IMG_20210723_125658.jpg

Luego seguir armando el resto de mis ramas con el resultado ya obtenido:

SCA5SCA6SCA7SCA7 :

2DAE9A09ABB66E133AEBD3F875490C194CD75E035B3AC6D1479379E89CFB2E67

IMG_20210723_125729.jpg

Y para obtener nuestra raíz principal, colamos todos nuestras hojas obtenidas:

SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA7 :

79A243A66E564ABAFEADAAA763B0D5BA7CFFD5462ADDC77D88CA683210AA2784

IMG_20210723_125758.jpg

Entonces podemos ver como al cambiar una hoja de nuestro árbol Merkle, cambia todo automáticamente. Entonces este será mi nuevo resultado de mi raíz principal, duplicando mi hoja SCA7.

IMG_20210723_123537.jpg

Entonces cuando el número de hojas de nuestro árbol es impar, solo debemos duplicar la hoja que tenemos al lado, es decir su acompañante, para lograr obtener nuestra raíz principal.

separador22.png

Conclusión

• El árbol Merkle es de suma importancia en la red blockchain, ya que permite la verificación de cada uno de los nodos presentados, de madera rápida y concisa, uniendolo a cada una de sus ramas hasta obtener la raíz principal.

• Su creación le da mayor escalabilidad a la red que lo use, ya que el proceso de verificación de cada uno de ellos, se realizará de manera rápida.

• El nivel de seguridad que proporciona, es sumamente alto y factible, ya que evita que los (datos, nodos, hojas) se vean afectados y altere a todos los demás, obteniendo información falsa.

• El árbol de Merkle es muy práctico a la hora de validar gran cantidad de información en la red.

• EL hash Rate, es sumamente importante en la minería de criptomonedas, sin embargo, solo está permitido en las redes de criptomonedas que son derivadas del Bitcoin, y que trabajen con el algoritmo de consenso (PoW).

• El Hash Rate, le proporciona seguridad y respaldo a la red, es por eso que mientras más alto sea su valor de porcentaje, menor serán las opciones de un posible ataque del 51%.

• Para los trabajadores de minería, el Hash Rate es de suma importancia, ya que gracias a él, determina el valor y la fuerza que posee la red, ayudándolos a la creación de nuevos bloques de manera más rápida y eficaz.

En esta increíble clase del profesor @pelon53, le agradezco por su excelente conferencia, ya que la importancia del Hash Rate, y del árbol de Merkle, son temas muy importantes en el mundo de la blockchain, por ende, le aporta muchos beneficios a la red.

Fue un placer participar, hasta la próxima.

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.3.5
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.5
  • Pregunta 1, bien contestada.

  • Pregunta 2, todos los hash coinciden y buena su respuesta.

  • Pregunta 3, Todos los hash coinciden y muy bien explicado

  • Excelente trabajo, felicitaciones

Recomendaciones:

  • Hacer el árbol de Merkle que se pueda leer un poco más.

Calificación: 10.0

Un saludo profesor, fue un honor participar, gracias por sus recomendaciones, hasta la próxima!!!

Wowww amiga, excelente tu tarea, impecable 👏👏 sigue así.😉

Muchísimas gracias amiga, un saludo ☺️🙌

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.027
BTC 60256.67
ETH 2327.64
USDT 1.00
SBD 2.46