Crypto Academy / Season 3 / Week 4 - Homework Post for [Pelon53] ROOT HASH Y ÁRBOL MERKLE.
Hola mis amigos steemit, saludos esperose encuentren muy bien, y con cordial saludo a nuestro gran profesor @pelon53, esta semana luego de leer la tarea de nuestro profesor, me llamo mucha la atención este dema sobre ROOT HASH y ÁRBOL MERKLE. clase y hoy les mostrare mi contenido espero les guste. Saludos!
imagen creada por mi en power point @gaby20
Explique en detalle el hash rate.
Entendemos que un hash es un código alfanumérico de longitud determinada que se utiliza para representar palabras, mensajes y datos de cualquier tamaño en las funciones unidireccionales en el área de la criptografía. Un algoritmo de hash modifica una cantidad extensamente grande de información en un hash de longitud fija. Los algoritmos hash son expresiones variadas para los proyectos criptográficos usados para crear distintos tipos de código hash, es decir, son como generadores de palabras en forma aleatoria, en el cual cada algoritmo genera un sistema diferente. Este tipo de funciones poseen características y propiedades que las hacen precisas para su uso en sistemas que confían en la criptografía para generar mayor seguridad.
Hash rate es la capacidad o potencia computacional combinada en la red de criptomonedas concebida para resolver los acertijos criptográficos, se utilizada para minar y procesar transacciones en una blockchain que se ejecute con un sistema de prueba de trabajo, tales como Bitcoin y Ethereum.
El hashrate es una función importante para evaluar la fortaleza de una red de blockchain, ya que determina la distancia entre cada par de elementos que se encuentren presentes analizando la seguridad. Es decir mientras más máquinas dediquen los mineros honestos a descubrir el bloque siguiente, será mayor el hashrate, resultando difícil la perturbación de la red por los agentes maliciosos.
Para conseguir un buen hash rate es muy necesario un hardware adecuado, que sea minero para poder resolver los problemas matemáticos complejos que presenten los hashes, mediante el protocolo Proof of Work y el algoritmo SHA 256 utilizados en la red Bitcoin.
Para resolver la velocidad de los hashes, se mide unidad x segundo en megas, gigas, teras o petas.
Ejemplo:
1 Hash
1 Kilo Hash = 1000 Hashes
1 Mega Hash = 1000 Kilo Hashes
1 Giga Hash = 1000 Mega Hashes
1 Terra Hash = 1000 Giga Hashes
1 Peta Hash = 1000 Terra Hashes
Importancia del hash rate :
El hash rate es importante, ya que permite conocer qué tan segura es la red de minería de una criptomoneda. Se podría decir que mientras más alto es el hash rate, mucho más segura sera la red, mostrando una resistencia a los ataques, y estableciendo la potencia de la red Bitcoin y su seguridad, al mismo tiempo que ayuda a medir la capacidad para minar bitcoins y obtener ganancias. Por otro lado, presenta una utilidad para calcular la dificultad de la minería ajustándose a una determinada cantidad de bloques, en función del tiempo que tardo encontrar o generar esos bloques, es por eso que la red de mineros de Bitcoin genera mayor potencia cada vez que un nuevo minero se conecta y empieza a minar. Es decir, cada vez que el hash rate global de Bitcoin aumenta y el tiempo que la red tarda en generar un bloque se ve acortado.
Unidades que se presentan en el hash rate:
1 kH/s is 1,000 (mil) hashes por segundo
1 MH/s is 1,000,000 (1 millón) hashes por segundo 1 GH/s is 1,000,000,000 (1000 millones, 1 billón americano) hashes por segundo
1 TH/s is 1,000,000,000,000 (1 trillón americano) hashes por segundo
1 PH/s is 1,000,000,000,000,000 (1 quadrillón americano) hashes por segundo
1 EH/s is 1,000,000,000,000,000,000 (1 quintillón) hashes por segundo.
Conversiones mas comunes de hash rate:
1 MH/s = 1,000 kH/s
1 GH/s = 1,000 MH/s = 1,000,000 kH/s
1 TH/s = 1,000 GH/s = 1,000,000 MH/s = 1,000,000,000 kH/s.
Realice el siguiente Árbol Merkle:
Transacción (hojas del árbol): Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8.
Ya realizado el árbol Merkle, se muestra lo siguiente:
Hash raíz: Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8
En la primera rama principal tenemos: Steem1Steem2Steem3Steem4
En la segunda rama principal tenemos: Steem5Steem6Steem7Steem8
En la primera rama secundaria tenemos: Steem1Steem2
En la segunda rama secundaria tenemos: Steem3Steem4
En la tercera rama secundaria tenemos: Steem5Steem6
En la cuarta rama secundaria tenemos: Steem7Steem8
Hoja 1: Steem1 Hoja 2: Steem2 Hoja 3: Steem3 Hoja 4: Steem4
Hoja 5: Steem5 Hoja 6: Steem6 Hoja 7: Steem7 Hoja 8: Steem8
Quedando de esta manera:
imagen creada por mi en power point @gaby20
Aquí observamos en las capture de pantalla cada paso del hash generado hasta el Root Hash, utilizando SHA-256.
Creamos cada hoja:
Steem1:
7760E25BCB80ADF1DD92DB339BF5790A59E90CD54EFA072F1250DCE13FA97045
Steem2:
FE00506E91CF52BC4B35321E6B978D1A7349397B19C6C1C01E095971FDEC9741
Steem3:
A9418332E0C351D6A50C835AA9E57D514F0573C231D491E97726DB8A5844F2DC
Steem4:
22F4EC8E20C9CCAF2C313B23F18981B1C73BF39081BCD739E5D998A95A46AB30
Steem5:
2A3C87336683AB0DDFA56AFEFC740E6C13A02FEA0A43D6797343B26D7AF0C57B
Steem6:
A7BAA6DE0C0658E9E3681966E542BACD116529F5AE9A2D9126CDB1C1D5BC1278
Steem7:
D441688DDA7F9285E8811728DD9A3955CF74F0A3C7600C1589D0F1D3B48FFAC7
Steem8:
F2E38ED4FF662087B6E9BEAFA4158EBC488B995732057BDA019A6A77FFB5F9F5
Ramas del primer nivel
Steem1Steem2:
A5568957014F6AC3866923C7DE20D375E706B8D8C9F453636E90B9965ABEC62B
Steem3Steem4:
18D25196DB699F6AB9222B7302EB8A6F6EBFADEC703C07DD5DB8D9455913A499
Steem5Steem6:
D118E137F92A0DBEA138B6BF70C7714153A7BC393CD0272A44BD94864645224B
Steem7Steem8:
A81D57BA11AEDFA9EFBBA42F6523D75D1EFA50B22C5E3557A21CEFFE87DDFC4A
Creamos las Ramas Principales:
Steem1Steem2Steem3Steem4:
8A248C05E69C4F1AA403AD18A7F445FF500C42483DA425CE0C980CDB2FD1AD9B
Steem5Steem6Steem7Steem8:
8B0935AEAB3F51BFA2B0750703EE2387E2B20EB19B0D24227E180C03A851AF17
Y por ultimo creamos La Raíz:
Steem1Steem2Steem3Steem4Steem5Steem6Steem7Steem8:
9C2FC83F36D59B8ED5033D2BCC417728583C8DAA0AA9868FD374BE3619D6E4F9
El Arbol Merkle quedaria de esta manera:
imagen creada por mi en power point @gaby20
Para verificar si Steem6 está incluido en el Árbol Markle, procedimos a modificar una letra mayúscula de la hoja Steem6 por una letra minúscula en la hoja steem6. Esta pequeña modificación ha generado un código diferente al original
Esto quiere decir que Steem6 si está incluido en el Árbol Markle, tomando en cuenta que utilizamos una función unidireccional para verificar el hash.
imagen creada por mi en power point @gaby20
Steem1Steem2Steem3Steem4Steem5steem6Steem7Steem8:
CB974428676E396E7C0C4935594B4836B9E8CA801CBD13F9DBF854F8C52DB341
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.
Al utilizar el SHA256 obtuve los siguientes resultados:
Comenzando desde la parte inferior hacia arriba, siendo esta la primera hoja del Árbol Merkle, hasta obtener la raíz de la estructura se realizo de la siguiente forma:
• Primero colocamos las transacciones de la parte inferior (hojas), que estaría representada asi:
Hoja 1 seria: SCA1
Hoja 2 seria: SCA2
Hoja 3 seria: SCA3
Hoja 4 seria: SCA4
Hoja 5 seria: SCA5
Hoja 6 seria: SCA6
Hoja 7 seria: SCA7
Hoja 8 seria: SCA8
• Las siguientes transacciones estarían representadas asi:
Rama 1seria: SCA1SCA2
Rama 2 seria: SCA3SCA4
Rama 3 seria: SCA5SCA6
Rama 4 seria: SCA7SCA8
• Las siguientes transacciones de las ramas principales estarían representadas asi:
Rama principal 1seria: SCA1SCA2 SCA3SCA4
Rama principal 2 seria: SCA5SCA6 SCA7SCA8
La parte superior seria el resultado de todos los hash, siendo el hash de raíz.
Hash de raíz: SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8
Aquí observamos los pasos mencionados arriba con los captures de pantalla
SCA1:
13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8
SCA2:
27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B
SCA3:
67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D
SCA4:
491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43
SCA5:
99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19
SCA6:
7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729
SCA7:
7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E
SCA8:
562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD
ramas nivel 1:
SCA1SCA2:
91B09BBA815748166FB36413342C7E4E7E809F4BAC538C0418841A4476B527EF
SCA3SCA4:
B49B48697A3ACBC5E3D2E36B6EE49C44020D88E664C5C1AA7A7CF34058177379
SCA5SCA6:
F026924CD1285FF92C2A2DE9B9313027EB67273A82375C939348C887F6B52F77
SCA7SCA8:
AA55EC5A6B11393B289C4B2B6916172ACC2941C5C978FB1D7BF02696BAB323A4
SCA1SCA2SCA3SCA4:
F50DC120CBF6C46923037F6D7F41D4153ECC9AB7430DDA662C142DB1FFE483F7
SCA5SCA6SCA7SCA8:
A3D8CA8494CC426ABD5E1FC5FA0FEAE4F2B2ECE4C4CECDCA05E19EB66542533F
SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA8:
CB40CA6DB72DD507CF9118963F94B7740822258E74AFB0FD45D89DB35D24B386
Aquí observamos la codificacion alfanumerica de las transacciones del Árbol Merkle que realizamos
imagen creada por mi en power point @gaby20
Si el número de las hojas del árbol es impar, ¿Qué debes hacer? Explique.
En el caso que el número de transacciones sea impar, la transacción se duplica y su hash se concatena consigo mismo. Es decir, el último hash se duplica creando un vínculo, ya que guardan relación lógica entre sí.
imagen creada por mi en power point @gaby20
SCA7SCA7:
71AF5095F10844EDA37CFCF8EE7712ADD5940F4ADAE1946CE66793270438C39B
SCA5SCA6SCA7SCA7 :
2DAE9A09ABB66E133AEBD3F875490C194CD75E035B3AC6D1479379E89CFB2E67
SCA1SCA2SCA3SCA4SCA5SCA6SCA7SCA7 :
79A243A66E564ABAFEADAAA763B0D5BA7CFFD5462ADDC77D88CA683210AA2784
Quedaría de esta manera:
imagen creada por mi en power point @gaby20
Conclusión:
Para concluir, podemos decir que el hash rate representa un impacto en la seguridad de las criptomonedas, y en la descentralización y la sostenibilidad de la red en el ecosistema financiero, siendo una unidad de medida de la potencia de procesamiento de la red Bitcoin. Por su parte, los Merkle trees han demostrado ser muy útiles por su variedad de aplicaciones informáticas en la blockchains, permitiendo una sencilla verificación de la información peer-to-peer sin inundar la red con datos innecesarios. Gracias a los Merkle trees los bloques de Bitcoin y otras criptomonedas son mucho más compactos el día de hoy.