ROOT HASH Y ARBOL MERKLE
Imagen de FotoXCapture en Pixabay
TAREA:
Explique en detalle el hash rate.
Es el valor numero de que cada criptomoneda que usa la prueba de trabajo (POW usada por bitcoin), es un valor que indica la cantidad de operaciones computacionales que un minero o red de minemos es capaz de realizar, y entre mas hash rate en particular tenga un minero, este tendrá mas oportunidad de recibir una recompensa en bitcoin.
Estas recompensas son posibles gracias a dispositivos electrónicos capaces de resolver los hash de tipo SHA-256, estos mineros compiten entre si para ver quien resuelve primero los hash y recibir recompensas, muchas veces crean pool de minerias capaces de juntar mucho hast rate para resolver los bloques sumando poder de computo.
Vale destacar también que entre mas alto sea el Hash Rate mas seguridad es la red ya que realizar un ataque de tipo 51% seria realmente difícil, así que se puede medir la seguridad de Bitcoin de acuerdo a su Hast Rate, este tambien esta relacionado con la dificultad de resolver cada bloque, ya que cada vez que se agregan mineros a la red de bitcoin sube la dificultad para resolverlos, y cada vez que se retiran mineros de la red bitcoin, entonces baja después del siguiente bloque la dificultad para resolver los bloques.
fuente
La tasa de hash es una unidad medida en hashes por segundo oh / sy aquí hay algunas denominaciones habituales que se utilizan para referirse a ella, en esta imagen podemos ver la denominación de la tasa hash.
1 TH / s es 1,000,000,000,000 (1 billon) de hashes que se pueden realizar por segundo.
Realice el siguiente Árbol Merkle:
Transacción (hojas del árbol): Steem1; Steem2; Steem3; Steem4; Steem5; Steem6; Steem7; Steem8.
steem1steem2steem3steem4steem5steem6steem7steem8; este viene siendo el Root hash, cuya hash generado es el siguiente: 4FD8BA07B307398CEE7A22B138A965B2
02067464B2F65257366C705A24E5220A
Diga los pasos a seguir para verificar si Steem6 está incluido en el Árbol Markle.
steem1 Hash:
B97D34F73C7742D805111D1243BD5BF396BDB43122C3755081A3325D613B9803
steem2 Hash:
B5F6EE9E3D63B48E00096DE32C8E1FF8EBB94D50337624A073534B995B2F6226
steem3 Hash:
419F6C383AC9F89E5653BA37FA88F2588E969A2886A0B84E51981159B59D82A0
steem4 Hash:
A7354E9941C1A8E3448BD10AB4A39E9FADDFD4B78318152A4F17C62A459DB0CA
steem5 Hash:
E6719173C1ED4B5E9D05D4B9DE35DB65F430B8C26F5624FB20F3676B8B3FA8BA
steem6 Hash:
A4A6CB0CF4A9BFD7E81257330141A76010E7C086B9806F14885359486C511FAA
steem7 Hash:
2CB496A8DA690F22F15CB8EE8524202B289434C78575B6330929D3E50B4B2139
steem8 Hash:
D546F02A9A03D4D2B01B1A1C935EEDF55128257891057331A8031831FD818121
El siguiente paso que haremos será general las ramas del árbol
steem1steem2 Hash:
708FB642D5A44FF25F688BD78E4C23F0138475CAEB2BB47557ED92D6BFCAC01E
steem3steem4 Hash:
03A1E3A34847732B726D23C096DF9740BEAB65E4D2A537F882994A8D19CC348E
steem5steem6 Hash:
1B88A7C0AFE9DDB1239B4289F3C05FF1886B30FE9ED74C96B58E997E206534E1
steem7steem8 Hash:
C856FD0E48434FD57974AF89FFA957B0F51D2D2BFF2141C950DB1091A5C52AE3
Seguimos con las ramas de segundo nivel:
steeem1steem2steem3steem4 Hash:
E238F2B58ED8223E679655A38E9BC8CEA71DDE6616BAA899CD5497FEC9E89CFF
steem5steem6steem7steem8 Hash:
4A879CC799A215375609C3A6F971427397F56FE3C68174B31AC12FEDF1E7A24C
y finalmente el Root Hash:
steem1steem2steem3steem4steem5steem6steem7steem8 Hash:
4FD8BA07B307398CEE7A22B138A965B202067464B2F65257366C705A24E5220A
En la siguiente imagen se ilustra el árbol merkle con sus respectivo hashes.
Calcula el hash de Steem6:
Dado que se conoce el hash de Steem5, calculamos el hash de steem5steem6;
Luego, como conocemos el hash steem7steem8, calculamos el hash steem5steem6steem7steem8.
Dado que se conoce el hash de Steem1Steem2Steem3Steem4, calcular el hash de steeem1steem2steem3steem4 y steem5steem6steem7steem8
Esto nos dará el root hash de Merkle:
steem1steem2steem3steem4steem5steem6steem7steem8 por tanto steem6 esta contenido dentro del root hash.
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.
Lo primero que haremos será calcular el hash de cada una, estos vendrán a ser las hojas.
SCA1 hash:
13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8
y haremos lo mismo para las siguientes hojas SCA2; SCA3; SCA4; SCA5; SCA6; SCA7; SCA8
SCA2 hash:
27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B
SCA3 hash:
67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D
SCA4 hash:
491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43
SCA5 hash:
99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19
SCA6 hash:
7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729
SCA7 hash:
7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E
SCA8 hash:
562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD
luego unimos los hashes en pares:
13E0A04BB0E669E1C638DBE3A704743F99F162B25245E4D8C064D35BA38FA8C8
27849353A9C8CC4E948EB6E5748EDD79CB83513D8C0ADAF3E8C83D3792C9149B
Nos dara el hash B28A854289DDEBCE8369622E01004B
C1690897BA5E4BB696096F55CBEF08014A
luego,
67E872F952C105C35E0BCE130536D061F4999DCA5593754BA9BA7BE59B8E7C0D
491928A32BAE70A12FA251412BBFD7C9999F317BA6BF577C283C724225270A43
nos dara el hash 9237E96A43F3D196AD84852942DF7AAFA59B37DB57674FAEFEF333D0C9623F4A
luego unimos:
99C078C39CDE7F47799E0E8691460A9F3E83E78D498EA989308FCFCC58907B19
7A648D887B124DB14E96E23BA92783E7F26D00957C19B9B8229632C2C1873729
nos dara el hash 1F96AFCCE894CA6C6FF396E4C0FAF8AC7CAD81EE45704E910BE1510E0AEF0D08
luego,
7E0BBD6BA4BA9896F9911AF46B06DD2C47535F9C80B29D693FDF6B9319D0D68E
562ABCEEB497E1FE7AE275A883FD5EF9D92A05F5C19D82ABAA0DC1571B7DF3AD
nos dara el hash 968E389875D8D8E307D305FFFBCA2D46429716273571C756CEB04F8A184DEB69
Uniendo en pares el segundo nivel tenemos que;
B28A854289DDEBCE8369622E01004BC1690897BA5E4BB696096F55CBEF08014A
9237E96A43F3D196AD84852942DF7AAFA59B37DB57674FAEFEF333D0C9623F4A
nos dará el has 9162B52AEAEF46F3329B7B7F5A87D3
CFF2C941F6D6BB7675D6C672FD12107B44
luego,
1F96AFCCE894CA6C6FF396E4C0FAF8AC7CAD81EE45704E910BE1510E0AEF0D08
968E389875D8D8E307D305FFFBCA2D46429716273571C756CEB04F8A184DEB69
nos dará el hash 8AF24DA39D0FCE99E7469C8BFFB7C362B7888011C3EE5DC1D2A5EEF673739420
y finalmente llegamos al root hash;
unimos en par los hashes tenemos que:
9162B52AEAEF46F3329B7B7F5A87D3CFF2C941F6D6BB7675D6C672FD12107B44
8AF24DA39D0FCE99E7469C8BFFB7C362B7888011C3EE5DC1D2A5EEF673739420
nos dará el hash 0512DAE97167D30847F52E991D86FED0DD4E5EDE9B21FF2F8560AFA301CF2897
Si el número de las hojas del árbol es impar, ¿Qué debes hacer? Explique.
La dificultad de configurar un árbol de Merkle radica en crear una serie de nodos hoja calculando el hash SHA-256 de los datos que contiene cada objeto de transacción (la cadena de bloques de Bitcoin aplica un doble hash a cada nodo de Merkle; el hash doble puede ayudar a reforzar el valor criptográfico del resultado del hash en caso de una detección de vulnerabilidad en el algoritmo SHA-256). El árbol de Merkle requiere un número par de nodos hoja: se suele duplicar el último nodo hoja si se empieza por un número impar.
En esta imagen podemos ver que lo tenemos que hacer es duplicar el hash de la ultima transacción.