Heu sentit a parlar d’arbres de Merkle quan es parla de tecnologia blockchain? Això es deu a que l’arbre de Merkle és el nucli de la pròpia tecnologia.
Llavors, què és exactament?
En aquest article, analitzarem en profunditat l’arbre de Merkle i comprendreem el seu paper per aconseguir que la tecnologia blockchain sigui un èxit.
Comencem.
Què és un arbre de Merkle?
Un arbre de Merkle és una estructura de dades que s’utilitza per a la verificació segura de les dades en un grup de contingut gran. També és eficaç i coherent a l’hora de verificar les dades.
Ethereum i Bitcoin utilitzen els arbres Merkle.
El problema: Al nucli de la xarxa centralitzada, es pot accedir a les dades des d’una única còpia. Això significa que no han de fer molt per emmagatzemar o accedir a les dades. Tanmateix, quan es tracta de la xarxa descentralitzada de blockchain, les coses van malament a mesura que es copien cada dada entre els nodes. Per tant, és un repte accedir de manera eficient a les dades. El repte també és fer una còpia de les dades i compartir-les entre nodes. A més, cal verificar les dades compartides per a cadascun dels nodes receptors.
La solució: Els arbres Merkle permeten les cadenes de blocs descentralitzades per compartir dades, verificar-les i fer-les fiables. Organitza les dades de manera que no es necessita molta potència de processament per compartir i verificar les dades. També facilita la transacció segura gràcies a l’ús de funcions de hash i criptografia.
Satoshi Nakamoto va ser la primera persona que va implementar els arbres de Merkle en tecnologia blockchain mitjançant Bitcoin. El seu ús va obrir una nova branca de la informàtica on no cal una autoritat centralitzada. També va utilitzar els arbres de Merkle en excés i va utilitzar els arbres de Fast Merkle.
Tanmateix, el concepte va ser introduït per primera vegada per Ralph Merkle, que el va patentar el 1979. Va rebre el seu nom.
Llegiu també, Hyperledger Cactus: Un nou marc Hyperledger
Funcions Hash criptogràfiques
Abans de discutir els arbres de Merkle, hem d’entendre millor la funció de hash criptogràfic.
Una funció de hash és responsable de mapar qualsevol forma de dades arbitràries de qualsevol longitud a una sortida de mida fixa. És una funció criptogràfica i, per tant, és àmpliament utilitzat en criptografia.
Les funcions de hash són eficients i són conegudes per la seva única propietat, és a dir, la funció no es pot revertir. És una funció unidireccional dissenyada per funcionar només d’aquesta manera.
Hashing té diversos usos, inclosos
- Protecció de contrasenya
- Comprovacions i verificació d’integritat dels fitxers
- Criptomoneda
Hi ha diverses famílies de hash que inclouen Message Direct (MD), Secure Hash Function (SHF) i RIPE Message Direct (RIPEMD).
Si utilitzeu un algorisme de hash SHA256 i passeu 101Blockchains com a entrada, obtindreu la següent sortida
fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9
En resum, les propietats clau de les funcions de resum inclouen:
- Determinista
- Resistent a la imatge prèvia
- Computacionalment eficient
- No es pot invertir
- Resistent a les col·lisions
Si voleu obtenir més informació sobre les funcions Hash criptogràfiques, consulteu els articles detallats aquí:
Com funcionen els arbres de Merkle?
Ara que tenim una bona comprensió de les funcions de Hash, és hora d’aprendre més sobre els arbres de Merkle.
Per tant, tècnicament, els arbres de Merkle són arbres d’estructures de dades on el node que no és de fulla es defineix com un valor hash dels seus respectius nodes fills.
Això també significa que l’arbre de Merkle s’inverteix cap avall on els nodes de la fulla són el node més baix.
Per obtenir una millor comprensió del que intento transmetre, fem una ullada a l’exemple de l’arbre de Merkle:
Font: Wikipedia
Al nucli dels arbres de Merkle, hem d’aprendre tres termes importants. Són els següents:
- Arrel Merkle
- Nodes de fulles
- Nodes sense fulles
Si mireu l’arbre de Merkle en el seu conjunt, és un arbre capgirat. L’arbre és capaç de resumir tot un conjunt de transaccions per si mateix. Això significa que l’usuari pot verificar si una transacció forma part del bloc o no.
Per fer funcionar els arbres de Merkle s’utilitza el hash. Simplement fa els parells de nombres de hash repetidament fins que només queda un valor de hash. Es coneix com a valor hash esquerre Merkle Root o el Rash Hash. L’arbre es crea de baix a dalt mitjançant els hash de transaccions individuals. Els hash de transaccions individuals també es coneixen com a identificadors de transaccions.
Els nodes de fulla són els nodes que contenen hash de dades transaccionals. En el cas dels nodes que no són de fulla, emmagatzemen el hash dels dos hash anteriors.
Una altra propietat important dels arbres de Merkle és que té un caràcter binari. Això vol dir que requereix que els nodes de fulles siguin uniformes perquè funcioni. Per si de cas, si hi ha un nombre imparell de nodes de fulles, simplement duplicarà l’últim hash i el farà parell.
Un exemple
Intentem entendre-ho prenent un exemple.
Exemple de Merkle Tree
Aquí veiem que s’han produït quatre transaccions al bloc. Aquestes transaccions reben el nom de X, Y, Z i W. Les transaccions es posen al capdavant i s’emmagatzemen en nodes de fulla que anomenem Hash X, Hash Y, Hash Z i Hash W.
Un cop fet, els nodes de fulles de Hash X, Y, Z i W es tornen a resumir i es creen en un hash combinat de XY i ZW. Finalment, aquests dos hash s’utilitzen per crear Merkle Root o Root Hash.
Tot el procés de hash es pot fer en un conjunt de dades molt gran que fa que l’estructura de dades de Merkle Trees sigui útil en el cas de xarxes descentralitzades.
Com hem comentat anteriorment, l’ús d’algoritmes de resum depèn de la implementació. Tot i això, una de les funcions de hash més comunes que s’utilitzen inclou la funció de hash criptogràfic SHA-2.
Per tant, es pot verificar una transacció si les transaccions anteriors són verificables, gràcies als valors de hash.
Què passa amb la integritat de dades?
L’arbre de Merkle és ideal per a la integritat de les dades. Tampoc no és necessari revisar tota la transacció per veure la seva verificabilitat. Les transaccions es poden verificar amb l’ús de la informació emmagatzemada a la capçalera del bloc. El valor arrel de Merkle també es modifica en funció de les transaccions anteriors.
Això també significa que els valors arrel es canvien amb freqüència i es poden utilitzar per verificar transaccions gairebé a l’instant.
Tot això pot semblar una mica similar a la llista de hash, però això no és cert. Per obtenir una llista de hash, heu de descarregar la llista completa per verificar les transaccions o les dades.
En el cas de l’arbre de Merkle, podeu descarregar la branca i utilitzar-la per verificar les transaccions.
No cal descarregar tot l’arbre per verificar les transaccions. Això també significa que tot l’arbre es pot dividir en petits blocs de dades que es poden utilitzar per verificar les transaccions a tota la xarxa. El concepte es coneix com Proves de Merkle.
També podeu consultar Merkle Python Tree: una implementació de Merkle Tree a Python article.
Com funcionen els arbres de Merkle a Bitcoin
Bitcoin va ser la primera criptomoneda que va emprar els arbres de Merkle de manera efectiva. Per assegurar-se que els valors de hash estan protegits i no es poden revertir fàcilment, utilitza el famós algoritme Secure Hashing SHA-256. Això també significa que la sortida dels valors hash té una longitud de 256 bits. Al nucli, els arbres de Merkle s’utilitzen per emmagatzemar dades i també podar transaccions.
Llegiu també, Com començar amb Blockchain
En bitcoin, cada bloc està connectat a blocs anteriors mitjançant valors de hash. Així es crea tota la cadena de blocs. En un bloc, hi ha capçaleres de blocs que contenen informació important com:
- Merkle Root Hash
- Bloqueja el número de versió
- Marca de temps
- Nonce
- Objectiu de dificultat minera
- Anterior Block Hash
Per obtenir una millor comprensió, fem una ullada al diagrama següent. Es pren del Llibre blanc de Bitcoin a si mateix.
Peu de foto: arbres de Merkle a Bitcoin
Com podeu veure, requereix que els miners incloguin les transaccions al bloc. Un cop fet, es fa un hash i passa a formar part de l’arbre de Merkle.
L’ús dels arbres Merkle, d’aquesta manera, pot comportar múltiples beneficis. Això inclou un avantatge notable, és a dir, la verificació de pagaments senzills (SPV). Aquests SVP són nodes que també es poden anomenar clients lleugers. Llavors, què fan? Simplement descarreguen les capçaleres de blocs de cadena més llargues i, per tant, no han de descarregar tota la cadena de blocs. Per fer tot això, han de verificar si té les capçaleres de bloc emmagatzemades per a la cadena més llarga. Així es fa la implementació de l’arbre de Merkle a Bitcoin.
Al final, un SPV pot utilitzar la prova de mapa Merkle i verificar una transacció mitjançant el hash arrel de l’arbre Merkle..
Com s’utilitzen els arbres de Merkle a Ethereum
Ethereum blockchain també utilitza arbres de Merkle. No obstant això, l’enfocament aquí és diferent del de com l’ha utilitzat Bitcoin. A Ethereum s’utilitza Merkle Patricia Tree, que és una versió complexa de l’arbre de Merkle. Això és possible perquè Ethereum és complet de Turing.
Si voleu obtenir més informació sobre com funcionen els arbres de Merkle a Ethereum, consulteu la publicació detallada aquí.
Implementació d’altres arbres de Merkle: casos d’ús
Per descomptat, hi ha altres implementacions d’arbres de Merkle. Un dels més populars és Git, un sistema de control de versions distribuïdes. L’utilitzen programadors de tot el món per gestionar els seus projectes.
Una altra implementació útil es veu a Sistema de fitxers interplanetari – un protocol distribuït peer-to-peer. També és de codi obert i permet als dispositius informàtics unir-se i utilitzar un sistema de fitxers omnipresent.
Fins i tot les autoritats certificadores utilitzen els arbres de Merkle al seu favor. L’utilitzen al mecanisme per crear registres de transparència de certificats verificables. Com que el registre és enorme, els arbres de Merkle permeten als ordinadors verificar-lo sense perdre massa temps i esforç.
L’últim cas d’ús que parlarem són sistemes de bases de dades com Amazon DynamoDB i Apache Cassandra. Aquestes bases de dades distribuïdes sense SQL prenen el control de les inconsistències que fan servir els arbres de Merkle durant el procés de replicació de dades. Si hi ha algun problema, pot actualitzar o reparar les dades mitjançant el procés de reparació anti-entropia.
En resum, inclou l’ús de casos d’arbres de Merkle
- Sincronització de dades
- Verificació de dades
- Verificació de la coherència
Beneficis dels arbres Merkle
En aquesta secció, veurem ràpidament els beneficis de l’arbre de Merkle.
- Valideu la integritat de les dades: Es pot utilitzar eficaçment per validar la integritat de les dades.
- Ocupa poc espai al disc: L’arbre de Merkle ocupa poc espai al disc en comparació amb altres estructures de dades.
- Informació minúscula a través de xarxes: Els arbres de Merkle es poden dividir en minúscules dades per verificar-les.
- Verificació eficient: L’estructura de dades és eficient i només triga un temps a verificar la integritat de les dades.
Conclusió
L’arbre de Merkle és un dels conceptes importants en informàtica. S’utilitza àmpliament en molts casos d’ús i el seu ús en criptomoneda ha donat lloc a una revolucionària tecnologia, blockchain.
Llavors, què en sabeu dels arbres de Merkle? Comenta a continuació i fes-nos-ho saber.