Steemit Crypto Academy, Season 3: Week 4 || ROOT HASH Y ÁRBOL MERKLE by @marianaceleste
✍Tarea de la semana✍
Un gran saludo a toda la comunidad de SteemitCryptoAcademy, esta es mi segunda vez participando en el nivel intermedio lo que me tiene un poco nerviosa y emocionada a la vez pues siento que este es un mundo muy extenso pero poco a poco voy adquiriendo los conocimientos necesarios para desenvolverme en el.
Agradezco profundamente al profesor @pelon53 por esta clase magistral, usando términos que permiten el fácil entendimiento de la lectura.
Sin más que agregar empezamos:
Explique en detalle el hash rate
Antes de explicar con detalle que es el “hash rate”, me parece importante aclarar que significa cada palabra por separado.
El Hash es un código de números y letras intercaladas que se genera de forma aleatoria para representar datos, transacciones o mensajes. Utilizando el algoritmo SHA 256 se puede dar con este código para cualquier dato que se ingrese. Por ejemplo, yo ingresare mi nombre de usuario marianaceleste.
Para cada palabra, frase o transacción se genera un hash.
Y Rate significa tasa.
El termino de hash rate es bien conocido en el mundo de las criptomonedas, específicamente en cuanto al aspecto “minero” se refiere. Este termino hace referencia al recurso computacional que es utilizado para encontrar las soluciones a los artificios matemáticos encriptados en las transacciones de los criptoactivos (minería). También se puede decir que es la medida de la potencia computacional de un minero.
La importancia está estrechamente relacionada con la seguridad de la red, pues si un hash rate es alto esto significa que mas seguridad tiene la red.
Aquí voy a profundizar un poco mas respecto a la minería: las criptomonedas como ya sabemos están basadas en un sistema descentralizado, es decir que la información no se concentra en un solo punto o nodo si no que cada nodo involucrado tiene la misma información de transacciones (con nodo no solo me refiero a mineros, si no a cualquier participante conectado a la red p2p del criptoactivo).
Estos nodos validan el trabajo minero. Si la transacción es validada se agrega al histórico, si no se desecha. Pero esta validación se hace mediante el protocolo del 51%, el cual establece que, si mas del 51% de los nodos da por cierta una transacción entonces se valida y se convierte en la cadena mas larga, siendo esta la que todos toman.
Esto suena bastante lógico, pero a la vez puede que la red este vulnerable a ciertos participantes maliciosos que se unan para manipular la red, señalando cierto camino como el que ellos quieren que sea correcto.
Entonces, mientras mas largo sea el hash rate, menos probabilidad hay de que sea atacado por ese 51%, lo que lo hace mas seguro y confiable.
Por otro lado, el hash rate se usa para calcular la dificultad de minería, la red de mineros aumenta su potencia y por ende el hash rate de la red cada vez que un minero se conecta, esto se debe a que el propio algoritmo ajusta la dificultad para que vuelva al tiempo estipulado de minería por bloque.
Esto es uno de los aspectos que mas ha causado escandalo en cuanto al mundo de las criptomonedas. La cantidad de energía consumida es directamente proporcional al Hash rate, es decir, mientras mayor sea el hash rate (potencia computacional) mayor será el consumo de energía.
Sin embargo, es importante acotar que en realidad el consumo de energía ni siquiera se acerca al consumo que se da por la explotación petrolera. Entonces el impacto no es tan extremo como lo hacen ver.
Realice el siguiente Árbol Merkle: Transacción (hojas del árbol): Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8.
Teniendo ya las hojas del árbol (transacciones) suministradas, se procede a unir dichas transacciones en pares hasta llegar a la raíz. Este árbol puede decirse que es invertido, pues la "raíz" que es donde se encuentran todas las transacciones esta ubicado en la parte de arriba, sin embargo, la forma de elaborarlo es de abajo hacia arriba. Teniendo así 8 hojas, se pasa a un primer nivel obteniendo 4 ramas correspondientes de la unión de dos transacciones, luego vamos a un segundo nivel generando 2 ramas, hasta que finalmente estas se unen para formar la raiz quien englobla todas las transacciones.
Con el uso del algoritmo de bitcoin SHA 256 ubicamos el Hash para cada transacción .
Steem 1
7760E25BCB80ADF1DD92DB339BF5790A59E90CD54EFA072F1250DCE13FA97045
Steem 2
FE00506E91CF52BC4B35321E6B978D1A7349397B19C6C1C01E095971FDEC9741
Steem 3
A9418332E0C351D6A50C835AA9E57D514F0573C231D491E97726DB8A5844F2DC
Steem 4
22F4EC8E20C9CCAF2C313B23F18981B1C73BF39081BCD739E5D998A95A46AB30
Steem 5
2A3C87336683AB0DDFA56AFEFC740E6C13A02FEA0A43D6797343B26D7AF0C57B
Steem 6
A7BAA6DE0C0658E9E3681966E542BACD116529F5AE9A2D9126CDB1C1D5BC1278
Steem 7
D441688DDA7F9285E8811728DD9A3955CF74F0A3C7600C1589D0F1D3B48FFAC7
Steem 8
F2E38ED4FF662087B6E9BEAFA4158EBC488B995732057BDA019A6A77FFB5F9F5
Steem1Steem2
A5568957014F6AC3866923C7DE20D375E706B8D8C9F453636E90B9965ABEC62B
Steem3Steem4
18D25196DB699F6AB9222B7302EB8A6F6EBFADEC703C07DD5DB8D9455913A499
Steem5Steem6
D118E137F92A0DBEA138B6BF70C7714153A7BC393CD0272A44BD94864645224B
Steem7Steem8
A81D57BA11AEDFA9EFBBA42F6523D75D1EFA50B22C5E3557A21CEFFE87DDFC4A
Steem1Steem2Steem3Steem4
8A248C05E69C4F1AA403AD18A7F445FF500C42483DA425CE0C980CDB2FD1AD9B
Steem5Steem6Steem7Steem8
8B0935AEAB3F51BFA2B0750703EE2387E2B20EB19B0D24227E180C03A851AF17
Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8
9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9
Sustituyo los Hash generados por el algoritmo en el árbol, obteniendo el siguiente resultado:
Diga los pasos a seguir para verificar si Steem6 está incluido en el Árbol Markle.
Para verificar que Steem6 está incluido en el árbol es importante no tomar ningún Hash que involucre dicha transacción, pues se supone que es el que queremos verificar, es como una especie de "despeje" por así decirlo.
- Se verifica el hash del Steem5, quien es su nodo compañero.
- Posteriormente se verifica el Steem7 y Steem8, para unirlo a la rama que queda en el extremo izquierdo Steem1Steem2Steem3Steem4
- Finalmente se verifica la raíz del árbol.
Si todo coincide, pues efectivamente está incluido el Steem6 en nuestro árbol.
Algo que pude notar mientras hacia esta tarea, es que un espacio demás me cambiaba todo el hash generado, entonces pude comprobar por mi misma que un cambio mínimo en cualquiera de sus hojas me genera un cambio total en la estructura del árbol.
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.
Antes de ubicar los Hash con el algoritmo, realice el árbol solo con las transacciones suministradas para visualizar mejor como quedaría mi árbol:
El resto de los pasos es prácticamente los mismos que realice en la pregunta pasada, ingreso el nombre de mis transacciones y esto me arroja un hash único para cada uno:
SCA1
13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8
SCA2
27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B
SCA3
67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D
SCA4
491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43
SCA5
99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19
SCA6
7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729
SCA7
7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E
SCA8
562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD
SCA1SCA2
91B09BBA815748166FB36413342C7E4E7E809F4BAC538C0418841A4476B527EF
SCA3SCA4
B49B48697A3ACBC5E3D2E36B6EE49C44020D88E664C5C1AA7A7CF34058177379
SCA5SCA6
F026924CD1285FF92C2A2DE9B9313027EB67273A82375C939348C887F6B52F77
SCA7SCA8
AA55EC5A6B11393B289C4B2B6916172ACC2941C5C978FB1D7BF02696BAB323A4
SCA1SCA2SCA3SCA4
F50DC120CBF6C46923037F6D7F41D4153ECC9AB7430DDA662C142DB1FFE483F7
SCA5SCA6SCA7SCA8
A3D8CA8494CC426ABD5E1FC5FA0FEAE4F2B2ECE4C4CECDCA05E19EB66542533F
SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8
CB40CA6DB72DD507CF9118963F94B7740822258E74AFB0FD45D89DB35D24B386
Sustituyo los hashs generados en mi árbol previamente realizado:
Si el número de las hojas del árbol es impar, ¿Qué debes hacer? Explique.
Tomando como ejemplo el ejercicio anterior, eliminé la ultima transacción para que solo me quedara SCA1SCA2SCA3SCA4SCA5SCA6SCA7, que como pueden observar es un número impar. Para poder realizar un árbol de hojas impares es necesario duplicar la ultima transacción y de esa forma se puedan emparejar de dos en dos y darle la estructura correcta:
SCA7SCA7
71AF5095F10844EDA37CFCF8EE7712ADD5940F4ADAE1946CE66793270438C39B
SCA5SCA6SCA7SCA7
2DAE9A09ABB66E133AEBD3F875490C194CD75E035B3AC6D1479379E89CFB2E67
SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA7
79A243A66E564ABAFEADAAA763B0D5BA7CFFD5462ADDC77D88CA683210AA2784
Sustituyo mis hash generados:
Finalmente obtuve mi árbol, modificando los hash por la transacción duplicada. Como lo pueden notar cambió completamente el código alfanumérico generado de la raíz del árbol y de todo el extremo donde se veía involucrada la transacción SCA7 duplicada.
Conclusión
Esta estructura de datos llamada árbol merkle es una valiosa herramienta en el mundo de las criptomonedas pues nos permite simplificar la correlación de datos y ademas de esto nos genera mayor seguridad y confianza en cuanto a las transacciones se refiere.
Esta herramienta, aunque es mal vista en cuanto al consumo de energía en realidad nos ayuda a ahorrarlas pues verifica las transacciones de forma mas simplificada y rápida.
Todo el contenido de este texto es de la autoría de @marianaceleste, con sello original para la plataforma steemit.
El banner y las imágenes fueron editadas con la aplicación de canva por @marianaceleste
Gracias por participar en Steemit Crypto Academy Season 3:
Espero seguir leyendo tus publicaciones.
Pregunta 1, Puedes profundizar más.
Pregunta 2, coinciden los hash. La verificación de Steem6 se puede explicar con un gráfico.
Pregunta 3, Coinciden los hash. Se explicó el árbol con hoja impar.
Recomendaciones:
Investigar con mayor profundidad cada tarea a realizar.
Leer con detenimiento para dar las respuesta correctas en cada pregunta.
Calificación: 6.7
Gracias profesor por su valiosa evaluación.
Link Twitter