Hash: el trencaclosques de Bitcoin

A la publicació anterior ja hem explicat les idees del sistema Bitcoin, però, un tema es va quedar sense explicar: Quin és aquest cruixent trencaclosques que els miners de Bitcoin intenten solucionar constantment?

Recordem que en el sistema Bitcoin, els miners estan en constant competència: qui resol primer el trencaclosques obtindrà l’honor d’afegir un bloc nou a la cadena de blocs i guanyarà diners també. Per tant, els miners intenten febrilment ser els primers a resoldre el trencaclosques. A la secció següent abordarem les següents qüestions:

  • Què és exactament aquest trencaclosques?
  • Com s’integra al sistema Bitcoin?

Trencaclosques: un trencaclosques de criptografia

No tingueu por de la paraula “criptografia”, en el nostre context, simplement vol dir que el trencaclosques “hash” està relacionat amb el món de la criptografia, és a dir, crear sistemes irrompibles.

Potser la millor analogia del món real amb un trencaclosques hash és una empremta digital.

Empremta digital sobre fons blau

Imagineu que se us dóna una mostra d’empremtes digitals i se’ls demana que descobreixi l’altura, el pes i l’aspecte general de la persona a la qual pertany aquesta empremta. Què faries?

Per fer-ho una mica més difícil, suposeu que no hi ha cap correlació entre les empremtes dactilars i altres característiques humanes (com el color del cabell), així que l’única manera de provar si aquesta empremta digital provenia del vostre millor amic és agafar la seva empremta i comparar-la amb l’altra..

Aleshores, la vostra millor elecció seria fer empremtes dactilars de totes les persones de la Terra i després comparar-la amb l’empremta digital en qüestió, fins que trobis una aturada i s’aturi. En cas que tingueu mala sort, la persona adequada seria la darrera que vau comprovar, cosa que vol dir que continuareu buscant-la durant els propers 13.555 anys, suposant que reviseu una persona per minut (i la població de la Terra és de 7.125 milions de persones). gent). Tanmateix, si teniu sort, és probable que la busqueu només per a la meitat d’aquest temps! Males notícies ah?

Tornem al nostre trencaclosques de hash. En un trencaclosques hash, l’empremta digital que se us dóna és una llista de caràcters (anomenem-ne una paraula), com ara “gos”, després de la qual cosa la vostra tasca és trobar la persona adequada (en el nostre cas també és una paraula) que va produir l’empremta digital. Per a això, l’únic que podeu fer és provar totes les combinacions possibles de dígits (d’alguna longitud), una per una.

crypto

(Font de la imatge: https://blog.varonis.com/the-definitive-guide-to-cryptographic-hash-functions-part-1/)

Conceptualment parlant, teniu una màquina que sempre que hi poseu alguns dígits, produeix una sortida d’alguna altra combinació de dígits. No sabeu completament res sobre aquesta màquina i funciona com la màgia: no veieu cap correlació entre els personatges que introduïu i els personatges que produeix. L’única regla que heu observat és que, independentment de quants caràcters poseu a la màquina, la sortida produïda sempre té la mateixa longitud.

Una mica de tècnic: els caràcters que utilitza la màquina (tant la seva entrada com la seva sortida) només estan compostos pels deu dígits 0-9 i les sis lletres a-f. Això vol dir que tots els caràcters d’entrada o sortida podrien ser un dels 16 caràcters.

El trencaclosques és essencialment una paraula (llista de caràcters), anomeneu-la A, que representa la sortida de la màquina, per tal de resoldre-la la vostra tasca és trobar l’entrada correcta (una altra paraula), anomenada iti B, de manera que quan poseu B a la màquina obtindreu A com a sortida.

Començant per un cas senzill, suposem que la màquina produeix sortides d’un sol caràcter. Això significa que només hi ha 16 sortides possibles diferents. Com a exemple, suposem que teniu el personatge “d” (com a trencaclosques) i la màquina funciona de manera que cada personatge que s’insereix condueixi a un caràcter diferent. Així, si proveu tots els possibles caràcters 0-9 i a-f, trobareu la concordança, és a dir, el caràcter que, quan s’insereix a la màquina, produeix el caràcter “d” com a sortida. En particular, cal tenir un mínim de 16 comparacions completament segur que es trobarà un partit.

Complicant això una mica més, considereu el cas en què la màquina produeix una sortida de 2 caràcters en lloc d’un únic, com en l’exemple anterior. Això vol dir que hi ha 16X16 = 256 sortides diferents. Així, per exemple, quan es dóna algun trencaclosques, “4c”, haureu de provar totes les entrades possibles de 2 caràcters (per exemple, “00”, “01” … “fd”, “fe”, “ff”) per tal de garantir un èxit.

Tingueu en compte que l’augment de la longitud de sortida de la màquina en un sol caràcter augmenta el nombre d’assajos que heu de fer per un ordre de magnitud (en el nostre exemple amb un factor de 16!). Així, una sortida d’un sol caràcter condueix a 16 assaigs, una sortida de 2 caràcters condueix a 256 assaigs, una sortida de 3 caràcters condueix a 4096 assaigs, etc..

Per tant, “què és el gran problema?”, Es podria preguntar. Els ordinadors són tan ràpids avui en dia, podeu crear un programari que computarà totes les proves per a vosaltres en qüestió de segons!

Bé, potser heu notat que el nombre d’assajos està creixent en un any exponencial manera! Això vol dir que per a una sortida de x caràcters, haureu de fer proves x16 Per obtenir una sortida de 40 caràcters, haureu de fer proves 1461501637330902918203684832716283019655932542976 !! Aquest nombre és tan enorme, cap ordinador modern no pot fer aquest nombre d’assajos encara que funcioni constantment fins al col·lapse del sistema solar.

Si encara no esteu convençuts que el trencaclosques hash és difícil, potser voldreu provar-lo i trobar la solució al següent trencaclosques: Cerqueu una llista de personatges que quan el poseu a través de la màquina SHA1 obtinguis una sortida de tot zero caràcters (és a dir, “000000 …”). La màquina està disponible a sha1-online.com. Bona sort ��

La connexió a Bitcoin

Recordeu (a la publicació anterior) que en un curt període de temps (generalment 10 minuts), un sol “bloc” s’afegeix a la “cadena de blocs” per un sol “miner” (el guanyador de la ronda). Aquest miner, que afegeix aquest bloc, és el primer que va trobar una solució al trencaclosques de l’hash. Per entendre aquest trencaclosques, hem de saber com s’assembla un bloc. Els detalls segueixen.

Breument, un bloc de la cadena de blocs té una estructura de dades que conté:

  1. Un noce, aquest és el nucli de la solució, la part del bloc que dóna dret al miner de la taxa de transacció.
  2. Una referència al bloc anterior: això és necessari per poder fer un seguiment de l’historial de totes les transaccions, cada bloc fa referència al seu predecessor, d’aquesta manera es pot tornar a la història fins al primer bloc (podeu fer el seguiment de l’historial de transaccions a blockchain .info)
  3. Llista de totes les transaccions a processar si s’afegeix aquest bloc a la cadena de blocs.

A la figura següent es poden veure aquestes 3 propietats: la noce (a l’última fila grogada), la referència (“hash del bloc anterior”) i la llista de transaccions en files grisades (s’explica el costat dret destacat de la figura) aviat).

bloc-diagrama-ghash

(font de la imatge: http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html)

Com s’ha esmentat, els miners busquen el noce correcte que solucioni el trencaclosques. El trencaclosques hash descrit a la pregunta anterior era un específics llista de caràcters que la màquina ha produït com a sortida, per tal de solucionar-la, cal trobar una entrada que la produeixi específics sortida.

En el sistema bitcoin, però, el trencaclosques hash és una mica més fàcil: en lloc de perseguir una sortida específica, el miner necessita trobar una entrada que produeixi una sortida d’un gran conjunt de sortides permeses. És a dir, un trencaclosques podria ser una llista de caràcters, de manera que els seus primers 16 caràcters són “0” mentre que no hi ha cap limitació a la resta de personatges, podrien ser qualsevol cosa. Tot i que això fa que el trencaclosques sigui molt més senzill, es tracta d’un problema que consumeix temps i energia. A la figura de dalt, el miner realitza moltes proves per resoldre el trencaclosques, l’únic camp que es permet canviar en cada assaig és el noce. En tots els assajos, el miner combina el noce que acabava de triar, la llista de transaccions que volia afegir a la cadena de blocs i la referència al bloc anterior tot junt, per després introduir-lo a la màquina SHA1. Si la sortida de la màquina SHA1 comença amb 16 caràcters “0”, això va resoldre el trencaclosques i va guanyar el joc.

Espero que us hagi agradat llegir, ens veiem al següent post!

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me