Steemit Crypto Academy | Temporada 3, semana 4 | Root Hash y Merkle Tree | para @pelon53



¡Un saludo Steemian's y adictos a las criptomonedas!

¡Bienvenidos a la cuarta semana en la comunidad de Crypto Academy! Esta es la tercera temporada dando continuación a las tareas de los criptoprofesores, esta semana @pelon53 ha continuado con la tarea de la semana pasada ofreciendo una conferencia importante sobre Root Hash y los aportes de Merkle, esta clase es realmente recomendada para entender algunos aspectos de la seguridad e integridad del mundo blockchain, si usted desea leerla le adjunto la clase aquí, también debemos agradecer a @steemitblog por este proyecto educacional.

Sin más que añadir, comencemos.


| Entremos en contexto: ¿Qué es el Hash Rate? |


La semana pasada estudiamos sobre el Hash y el significado que tiene este aporte informático para la criptografía, como vimos en aquella oportunidad sabemos que un Hash es un código alfanumérico fijo que posee un mensaje cifrado, este mensaje puede contener un número de datos ilimitado o de longitud.

En este caso nos vamos a referir al Hash Rate como el “Poder del Hash” es decir, el poder de computo que requiere un GPU para minar nuevos bloques a una cadena de bloques, gracias a esto los mineros pueden minar criptomondas mediante el algoritmo de consenso Proof of Work.

Cuando Bitcoin nació era necesario medir la capacidad y el número de Hashes que un grupo de mineros podrían realizar por segundo, por este motivo el Hash Rate fue una necesidad como medida estandarizada.


analytics-3088958_1920.jpg Fuente de la Imagen


¿En qué consiste?

En la actualidad los mineros compiten por tener mejores actualizaciones y tener en sus manos el mejor equipo de hardware, mientras mayor poder de cómputo posean mayor será su Hash Rate, es básicamente una competencia, el más veloz tendrá mayores posibilidades de quedarse con el botín.

Cada minero tiene la posibilidad de medir su rango de efectividad usando para ello una calculadora especial para esta tarea, este no es el único método, pero un minero puede conocer la calidad de su minería consultando con el señor Google sobre la rentabilidad minera, gracias a esto cada minero puede conocer su Hash Rate.

De acuerdo a la cantidad de Hash que el minero puede procesar por segundo (H/s) cada medida tiene una ubicación en la tabla, incluyendo su porpia denominación.


hashrate.jpg
Fuente de la Imagen


¿Cuál es la importancia de esto?

Para mí existen dos importancias primordiales, la primera es la integridad del sistema, este factor es clave para que blockchain exista, pues en el Hash en sí mismo se convierte en la estructura que contiene todos los datos cifrados de mayor relevancia, es la raíz de todas las aplicaciones, es el vehículo de cualquier operación elemental dentro de este mundo.

La segunda importancia tiene su origen en la seguridad, cuando un equipo de mineros posee un gran rango de Hash Rate o poder computacional que pueden ofrecer a una cadena de bloques, mayor será la seguridad que pueden aportar al sistema y el número de datos protegidos en esta red. Esto es realmente necesario para evitar ataques del 51%, pues a mayor Hash Rate más posibilidades existen a la hora de prevenir ataques maliciosos de este estilo.

¿Se imaginan la complejidad y lo que significa el Hash Rate? Las personas que se dedican a minar Bitcoin saben lo complejidad de las operaciones que esto conlleva, pues se tarda 10 minutos aproximadamente en minar un bloque, por esta razón el consumo de energía es tan requerido.



| El Hash Rate y los inconvenientes del sistema: el problema de todo ecologista con la minería |


hmm.png

Sabemos que a mayor porcentaje de Hash Rate mayor son los beneficios y la contribución con la integridad y la seguridad del sistema ¿pero cuáles son los inconvenientes asociados a este “modus operandi”?

Cada año existe la una competición más dura debido a la mayor demanda de Hash Rate y mayor participación por parte de los mineros, mientras la comunidad de mineros sigue creciendo, más reñida es la competición, más personas intentan minar y por ende el sistema demanda equipo de Hardware más poderoso para las operaciones matemáticas y computacionales.

Esto se traduce a un mayor gasto energético debido a la explotación de la minería y por ende a un impacto inoportuno en el medio ambiente, este debate sigue incluso hasta nuestros días, pues con el escándalo sucedido con los acontecimientos de Elon Musk las personas que tenían en su poder Bitcoin han experimentado miedo incidiendo en sobreventas, por esta razón hubo una fuerte tendencia bajista que afectó todo el mercado.

Se pudo apreciar el reflejo psicológico en el mercado a raíz de este asunto, sin dejar de lado el impacto ecológico que esto representa, se deben analizar otras formas de minería que sean más amigables con el medio ambiente.

Ya que estamos tocando este tema ¿qué es un “ataque del 51%”?

Para el mundo Bitcoin, solo se requiere del 51% de la participación de los nodos de una red blockchain para validar una información, ahora bien, si ese mismo porcentaje del 51% se pone de acuerdo para falsificar una información esto podría lograrse, sin embargo esta hazaña es muy difícil de lograr, pero no es imposible.


| El árbol de Merkle |


Para crear un árbol Merkle a partir de las hojas que nos ha asignado el profesor @pelon53 para esta tarea (Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8), utilizaremos el generador de Hash SHA256, el procedimiento será igual a la anterior tarea de Hash y Criptografía. Muy bien, comencemos.

Hojas del árbol


Captura 1.pngCaptura de pantalla 1


  • Steem1: 7760E25BCB80ADF1DD92DB339BF5790A59E90CD54EFA072F1250DCE13FA97045


Captura 2.png
Captura de pantalla 2


  • Steem2: FE00506E91CF52BC4B35321E6B978D1A7349397B19C6C1C01E095971FDEC9741


Captura 3.png
Captura de pantalla 3


  • Steem3: A9418332E0C351D6A50C835AA9E57D514F0573C231D491E97726DB8A5844F2DC


Captura 4.png
Captura de pantalla 4


  • Steem4: 22F4EC8E20C9CCAF2C313B23F18981B1C73BF39081BCD739E5D998A95A46AB30


Captura 5.png
Captura de pantalla 5


  • Steem5: 2A3C87336683AB0DDFA56AFEFC740E6C13A02FEA0A43D6797343B26D7AF0C57B


Captura 6.png
Captura de pantalla 6


  • Steem6: A7BAA6DE0C0658E9E3681966E542BACD116529F5AE9A2D9126CDB1C1D5BC1278


Captura 7.png
Captura de pantalla 7


  • Steem7: D441688DDA7F9285E8811728DD9A3955CF74F0A3C7600C1589D0F1D3B48FFAC7


Captura 8.png
Captura de pantalla 8


  • Steem8: F2E38ED4FF662087B6E9BEAFA4158EBC488B995732057BDA019A6A77FFB5F9F5

Ramas del primer nivel.

Las hojas están graficadas, a continuación comenzaré a realizar las primeras combinaciones de los Hash para las ramas del primer nivel.


Captura 9.png
Captura de pantalla 9


  • Steem1Steem2: A5568957014F6AC3866923C7DE20D375E706B8D8C9F453636E90B9965ABEC62B


Captura 10.png
Captura de pantalla 10


  • Steem3Steem4: 18D25196DB699F6AB9222B7302EB8A6F6EBFADEC703C07DD5DB8D9455913A499


Captura 11.png
Captura de pantalla 11


  • Steem5Steem6: D118E137F92A0DBEA138B6BF70C7714153A7BC393CD0272A44BD94864645224B


Captura 12.png
Captura de pantalla 12


  • Steem7Steem8: A81D57BA11AEDFA9EFBBA42F6523D75D1EFA50B22C5E3557A21CEFFE87DDFC4A

Ramas del Segundo nivel

Ya estamos muy cerca de la raíz del árbol, por ahora falta realizar las combinaciones para la estructura del segundo nivel de las ramas, veamos a continuación:


Captura 13.png
Captura de pantalla 13


  • Steem1Steem2Steem3Steem4: 8A248C05E69C4F1AA403AD18A7F445FF500C42483DA425CE0C980CDB2FD1AD9B


Captura 14.png
Captura de pantalla 14


  • Steem5Steem6Steem7Steem8: 8B0935AEAB3F51BFA2B0750703EE2387E2B20EB19B0D24227E180C03A851AF17

Raíz del árbol

Ahora generaremos el último Hash de la raíz, en este código debería estar integrada toda la información del árbol, en caso contrario, los dígitos cifrados deberían ser diferentes. Echemos un vistazo.


Captura 15.png
Captura de pantalla 15


  • Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8: 9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9

Muy bien, para armar la estructura utilizaré el programa Microsoft PowerPoint para integrar cada Hash correspondiente a su nivel y mensaje, quedando de la siguiente manera:


ArbolMerkle.png
Árbol de Merkle creado con el uso de Microsoft PowerPoint



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


Gracias a las clases del profesor @pelon53 sabemos que si alteramos alguno de los códigos del hash presente en el árbol de Merkle sucesivamente todos los siguientes Hash se modificarán de igual manera, cambiando la raíz de forma general, de esta forma invalidaremos todas las operaciones presentes.

Ya sabemos que la interconexión de los nodos es imprescindible para cualquier medida de seguridad y la integridad de los datos, ahora bien, para verificarlos por separado es necesario aplicar la función de algoritmo binario.

Debemos inspeccionar los nodos que están cerca del nodo en cuestión, para ello verificaremos 2 rutas del árbol de Merkle para finalizar en la raíz y verificar que el nodo Steem6 se encuentre íntegro dentro de la estructura de la raíz, a continuación verificaremos en primer lugar a su pareja Steem5:


ArbolMerkle2.png
Árbol de Merkle


  • Posteriormente verificaremos las ramas del segundo nivel que se encuentran en la parte superior de esos nodos hoja correspondiente al Hash Steem7Steem8.


ArbolMerkle3.png
Árbol de Merkle


  • Luego en oposición contraria en la estructura, en las ramas del segundo nivel procederemos a verificar Steem1Steem2Steem3Steem4.


ArbolMerkle4.png
Árbol de Merkle


  • Finalizaremos la verificación en el Hash Raíz, asegurándonos de esta forma que el nodo Steem6 se encuentra dentro de la estructura del árbol de Merkle y en su Hash raíz.



ArbolMerkle5.png
Árbol de Merkle



| Creación de un Árbol de Merkle a partir de sus hojas |


A continuación crearemos un Árbol Merkle a partir de las hojas asignadas por el profesor @pelon53 (SCA1; SCA2; SCA3; SCA4; SCA5; SCA6; SCA7; SCA8).

Hojas del árbol


Captura 16.png
Captura de pantalla 16


  • SCA1: 13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8


Captura 17.png
Captura de pantalla 17


  • SCA2: 27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B

Captura 18.png
Captura de pantalla 18


  • SCA3: 67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D


Captura 19.png
Captura de pantalla 19


  • SCA4: 491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43


Captura 20.png
Captura de pantalla 20


  • SCA5: 99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19


Captura 21.png
Captura de pantalla 21


  • SCA6: 7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729


Captura 22.png
Captura de pantalla 22


  • SCA7: 7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E


Captura 23.png
Captura de pantalla 23


  • SCA8: 562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD

Ramas del primer nivel


Captura 24.png
Captura de pantalla 24


  • SCA1SCA2: 91B09BBA815748166FB36413342C7E4E7E809F4BAC538C0418841A4476B527EF


Captura 25.png
Captura de pantalla 25


  • SCA3SCA4: B49B48697A3ACBC5E3D2E36B6EE49C44020D88E664C5C1AA7A7CF34058177379


Captura 26.png
Captura de pantalla 26


  • SCA5SCA6: F026924CD1285FF92C2A2DE9B9313027EB67273A82375C939348C887F6B52F77


Captura 27.png
Captura de pantalla 27


  • SCA7SCA8: AA55EC5A6B11393B289C4B2B6916172ACC2941C5C978FB1D7BF02696BAB323A4

Ramas del segundo nivel


Captura 28.png
Captura de pantalla 28


  • SCA1SCA2SCA3SCA4: F50DC120CBF6C46923037F6D7F41D4153ECC9AB7430DDA662C142DB1FFE483F7


Captura 29.png
Captura de pantalla 29


  • SCA5SCA6SCA7SCA8: A3D8CA8494CC426ABD5E1FC5FA0FEAE4F2B2ECE4C4CECDCA05E19EB66542533F

Raíz del árbol.


Captura 30.png
Captura de pantalla 30


  • SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8: CB40CA6DB72DD507CF9118963F94B7740822258E74AFB0FD45D89DB35D24B386

Árbol de Merkle finalizado.


ArbolMerkle6.png
Árbol de Merkle creado con el uso de Microsoft PowerPoint



| ¿Qué pasaría si el número de hojas de un árbol Merkle resulta ser impar?|


Como bien sabemos la clásica estructura de Merkle agrupa los Hash de las transacciones en pares bien definidos, es una condición que cada hash tenga su pareja para pasar al próximo nivel, sin embargo, en caso contrario de que falte una transacción o que no se haya finalizado un hash nuevo, se tiene la posibilidad de duplicar un hash en el espacio vacante y así emparejar la transacción para finalmente completar la estructura de la raíz del hash.

A continuación les mostraré un ejemplo de la siguiente manera:


ArbolMerkle7.png
Árbol de Merkle impar e imcompleto.


  • En este caso hipotético, podemos observar la ausencia de un Hash en una de las hojas de este árbol, la ausencia de este par imposibilita completar la estructura de este árbol y conformar el Hash Raíz.


ArbolMerkle8.png
Árbol de Merkle última hoja duplicada.


  • Como pueden apreciar, duplicamos la última hoja del Hash, de tal forma que “SCA7” esté emparejado.
  • Una vez esté duplicado y las hojas del Hash tengan un número par, procederemos a generar los nuevos Hash hasta llegar a la raíz, de la siguiente forma:


Captura 31.png
Captura de pantalla 31


  • SCA7SCA7: 71AF5095F10844EDA37CFCF8EE7712ADD5940F4ADAE1946CE66793270438C39B


Captura 32.png
Captura de pantalla 32


  • SCA5SCA6SCA7SCA7: 2DAE9A09ABB66E133AEBD3F875490C194CD75E035B3AC6D1479379E89CFB2E67


Captura 33.png
Captura de pantalla 33


  • SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA7: 79A243A66E564ABAFEADAAA763B0D5BA7CFFD5462ADDC77D88CA683210AA2784

El Árbol de Merkle quedaría de la siguiente manera:


ArbolMerkle9.png
Nuevo Arbor Merkle



| Conclusiones |


Ahora veo la relevancia de esta tarea cuando la relaciono con la tarea anterior de Hash y Criptografía, pues el árbol de Merkle es imprecindible para el ecosistema DeFi, gracias a este modelo podemos analizar su impacto real, basta con que solo miremos el mercado digital para darnos cuenta de esta realidad, gracias a estos aportes las critomonedas están funcionando y ya ha dado sus frutos en el mundo blockchain.

Esta estructura de Hash permite la validación rápida y sencilla de los datos, aumentando el grado de escalabilidad, esto es prueba contundente de su aplicación, pues con ella podemos procesar datos de forma resumida, ayuda a preservar la integridad de los datos y además contribuye con la seguridad, debo admitir que esto es muy listo y eficiente.
El único inconveniente a mi parecer son las consecuencias a largo plazo, me refiero al aspecto ecológico, pues los mineros compiten cada día para mejorar su Hash Rate y así procurar mayores posibilidades de beneficios y seguridad, a cambio de un consumo de energía excesivo.

El escenario perfecto sería el de tener a mineros con un equipo de cómputo equilibrado que sea amigable con el medio ambiente y así cumplir con los requisitos exigentes del Hash Rate deseado, esperemos que este dilema se resuelva en los próximos años, sería muy emocionante ver su resolución.

Me ha encantado realizar esta serie de tareas, han sido muy iluminadoras para mí, por ahora me despido, les mando un saludo y un abrazo, espero verlos en la próxima tarea. Hasta pronto.





Gracias por leerme. By @Psic.EmirGabriel.png

#spanish
#venezuela

Agradecimientos especiales / Special Thanks:

@pelon53


Sort:  
 3 years ago (edited)

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.1
  • Pregunta 1, con buena información.

  • Pregunta 2, todos los hash coinciden. Y se verificó Steem6.

  • Pregunta 3, todos los hash coinciden. Y se explicó el árbol con has impar.

  • Buena tarea, felicitaciones.

Recomendaciones:

  • No dejar a última hora las asignaciones, con tiempo tendrás mejores resultados. Porque después muchas tareas son iguales una de otra. La primera se lleva los créditos.

Calificación: 9.6

Buenas estimado profesor, muchísimas gracias por sus aportes y sugerencias, los tomaré en cuenta. Espero haya tenido un feliz fin de semana.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63630.04
ETH 2656.44
USDT 1.00
SBD 2.81