Taula de continguts:

Com funciona realment la cadena de blocs
Com funciona realment la cadena de blocs

Vídeo: Com funciona realment la cadena de blocs

Vídeo: Com funciona realment la cadena de blocs
Vídeo: Adolf Hitler: El dictador que provocó la Segunda Guerra Mundial 2024, Maig
Anonim

Aquest post pretén explicar a tothom per què es va inventar la cadena de blocs, com funcionen les criptomonedes i per què és el sistema més bonic dels últims anys des del punt de vista de la lògica.

De seguida us advertiré que sota el tall hi ha un full de text ENORME i si no esteu preparat per "tancar" la pregunta sobre el tema de les criptomonedes d'una vegada per totes, afegiu una entrada als vostres favorits ara mateix i reserveu temps)

Blockchain és una tecnologia, nova, estranya, incomprensible, però sembla que està canviant el món, en contrast amb aquestes històries teves. Pel que sembla, fa molt de temps que està amb nosaltres.

Aquest post està escrit com si s'estigués explicant a persones que estan molt allunyades dels ordinadors i els coneixen només superficialment, per exemple, imagina't que s'estava preparant per als teus pares. Fins i tot puc lliurar-ho als meus companys d'humanitats i estar segur que ho entendran.

I l'Oleg ens ajudarà a tots en aquest difícil assumpte. Trobar-se!

Si no t'agrada l'Oleg, el faré fora.

El bàsic: per què necessitem blockchain?

La cadena de blocs es va descriure a l'article de Satoshi Nakamoto "Bitcoin: A Peer-to-Peer Electronic Cash System". Allà, en només vuit pàgines, l'autor va descriure els conceptes bàsics de la criptomoneda Bitcoin, que es basava en l'algorisme Blockchain.

Llista que no es pot modificar

Blockchain - una cadena de blocs o, en altres paraules, una llista enllaçada. En aquesta llista, cada registre següent fa referència a un d'anterior, i així successivament fins al primer. Com els vagons d'un tren, cadascun arrossega el següent. Pel que fa a les llistes, hi ha un bon article de Nikita Likhachev a TJ, on s'explica el mateix per als novells. Les analogies es prenen en part d'aquí.

Prenguem un exemple

Els amics d'Oleg li demanen diners constantment. Oleg és amable, però extremadament oblidat. Una setmana després, ja no recorda qui no li va tornar el deute, però li fa vergonya preguntar-ho a tothom. Per això, un dia va decidir posar fi a això creant una llista d'amics a la pissarra de casa seva als quals va demanar diners en préstec.

Ara Oleg sempre pot anar al tauler i assegurar-se que Max ho ha tornat tot, però Vanya encara no dóna 700 rubles. Un dia l'Oleg convida a la Vanya a prendre una copa a casa seva. Mentre l'Oleg va al lavabo, Vanya esborra l'entrada "Vaig demanar prestat 200 rubles per a Vanya" i escriu al seu lloc "Vanya va donar 500 rubles".

Oleg, que confiava en la seva llista, s'oblida del deute i perd 700 rubles. Decideix lluitar-hi d'alguna manera. L'any passat, Oleg va assistir a un curs de programació, on se li va parlar de l'hashing. Recorda que qualsevol cadena es pot convertir en un conjunt inequívoc de caràcters: un hash, i canviar qualsevol caràcter de la cadena el canviarà completament.

Afegir un punt al final va canviar el hash final més enllà del reconeixement; podeu utilitzar-lo.

Oleg agafa el conegut hash SHA-256 i hash amb cada registre, afegint el resultat al final. Ara l'Oleg pot assegurar-se que ningú ha canviat els seus registres tornant-los a fer hash i comparant-los amb el verd.

Però EVIL IVAN també sap com utilitzar SHA-256 i pot canviar fàcilment l'entrada juntament amb el seu hash. Sobretot si el hash està escrit just al costat d'ell al tauler.

Per tant, per a una major seguretat, Oleg decideix hash no només el registre en si, sinó afegir-lo juntament amb el hash del registre anterior. Ara totes les entrades següents depenen de les anteriors. Si canvieu almenys una línia, haureu de tornar a calcular els hash de totes les altres que hi ha a continuació de la llista.

Però un dia l'Ivan s'acosta a la nit, canvia l'entrada que necessita i actualitza els hash de tota la llista fins al final. Triga unes quantes hores, però l'Oleg encara està profundament adormit i no pot escoltar. Al matí, Oleg descobreix una llista absolutament correcta: tots els hashes coincideixen. Però l'Ivan el va enganyar de totes maneres, tot i que hi va passar una nit sense dormir. Com pots protegir-te de Night Ivan?

L'Oleg decideix complicar-se d'alguna manera la seva vida. Ara, per afegir una nova entrada a la llista, l'Oleg resoldrà un problema complex associat, per exemple, una equació matemàtica. Afegirà la resposta al hash final.

L'Oleg és bo en matemàtiques, però fins i tot triga deu minuts a afegir una entrada. Malgrat això, el temps dedicat val la pena, perquè si l'Ivan vol tornar a canviar alguna cosa, haurà de tornar a resoldre les equacions de cada fila, i n'hi pot haver desenes. Prendrà molt de temps, perquè les equacions són úniques cada vegada i s'associen a un registre específic.

Però comprovar la llista és igual de senzill: primer cal comparar els hashes com abans, i després comprovar les solucions de les equacions mitjançant una simple substitució. Si tot convergeix, la llista no es modifica.

En realitat, les coses no són tan bones amb les equacions: els ordinadors les resolen massa bé i on emmagatzemar tantes equacions úniques. Per tant, els autors de la cadena de blocs van plantejar un problema més bonic: cal trobar aquest nombre (nonce) perquè el hash final de tot el registre comenci amb 10 zeros. Aquest noce és difícil de trobar, però el resultat sempre es pot comprovar amb només ulls.

Ara Oleg verifica tots els hash i, a més, s'assegura que cadascun comenci amb el nombre especificat de zeros. Sly Ivan, fins i tot armat amb un ordinador portàtil potent, no tindrà temps de recalcular tots els hash en una nit perquè compleixin la condició: no hi haurà prou temps.

Aquesta llista, de fet, és la cadena de blocs de casa al genoll. La seva seguretat està garantida pels matemàtics, que van demostrar que aquests hashes no es poden calcular d'alguna manera més ràpid, excepte per força bruta. Aquesta enumeració de hashes per a cada registre és mineria, sobre la qual avui hi haurà molt i amb detall.

Centralització de la confiança

Als nostres amics els va agradar la idea de mantenir una llista falsa de "qui va prestar a qui". Tampoc volen recordar qui va pagar per a qui al bar i quant encara deuen: tot està escrit a la paret. Vau discutir la idea i vau decidir que ara necessiteu una llista única per a tots.

Però a qui s'ha de confiar una comptabilitat tan important? Després de tot, quan es tracta de diners, la confiança passa a primer lloc. No confiarem en el desconegut per quedar-nos amb els nostres diners. Per això, els nostres avantpassats van inventar els bancs, que amb el temps van començar a ser de confiança, perquè estan avalats per una llicència, lleis i assegurances del Banc Central.

Al cercle d'amics, tothom confia els uns en els altres i, simplement, pots triar el més responsable d'aquest paper. Però, què passa si la pregunta és sobre desconeguts? Una ciutat sencera, un país o el món sencer, com és el cas de Bitcoin? En general, ningú no pot confiar en ningú.

Descentralització: ningú confia en ningú

Així que van plantejar un enfocament alternatiu: mantenir una còpia de la llista per a tothom. Així, un atacant no només hauria de reescriure una llista, sinó que també hauria de colar-se a cada casa i reescriure-hi les llistes. I després resulta que algú guardava a casa diverses llistes, de les quals ningú no sabia. Això és descentralització.

L'inconvenient d'aquest enfocament és que, per fer noves entrades, haureu de trucar a la resta de participants i informar-los a cadascun dels últims canvis. Però si aquests participants són màquines sense ànima, deixa de ser cap problema.

En aquest sistema, no hi ha un únic punt de confiança i, per tant, la possibilitat de suborn i engany. Tots els participants del sistema actuen d'acord amb una sola regla: ningú no confia en ningú. Cadascú es creu només la informació que té a la seva disposició. Aquesta és la llei principal de qualsevol xarxa descentralitzada.

Transaccions

Quan compreu una olla en una botiga, introduïu el codi PIN de la vostra targeta, la qual cosa permet que la botiga demani al banc si teniu 35 rubles al vostre compte. En altres paraules, signeu una transacció per 35 rubles amb el vostre codi PIN, que el banc confirma o rebutja.

Els nostres registres del tipus "Vaig agafar en préstec Vanya 500 rubles" també són transaccions. Però no tenim cap banc que autoritzi l'autor de les transaccions. Com podem comprovar que Ivan no ha afegit en silenci l'entrada "Max deu a Oleg 100.500 rubles"?

La cadena de blocs utilitza el mecanisme de claus públiques i privades per a això; els especialistes informàtics les fan servir per autoritzar-les al mateix SSH. Ho vaig explicar amb els dits a la publicació "Seguretat, encriptació, cyberpunk" a la secció "Introducció al xifrat".

Breument sobre com funciona aquesta complexa però bella matemàtica: genereu un parell de nombres primers llargs al vostre ordinador: una clau pública i una privada. La clau privada es considera supersecreta perquè pot desxifrar allò que està xifrat en públic.

Però també funciona el contrari. Si comparteixes la clau pública amb tots els teus amics, aquests podran xifrar qualsevol missatge per a ells perquè només tu el puguis llegir, ja que ets propietari de la privada.

Però a més d'això, la clau pública té un efecte útil: amb ella podeu comprovar que les dades s'han xifrat amb la vostra clau privada, sense desxifrar les dades en si. Totes aquestes propietats estan ben descrites al "Llibre de xifres".

Estem en una Internet descentralitzada on no es pot confiar en ningú. La transacció es signa amb una clau privada i, juntament amb la clau pública, s'envia a un emmagatzematge especial: un conjunt de transaccions no confirmades. Així, qualsevol membre de la xarxa pot verificar que has estat tu qui l'has iniciat, i no algú més vol pagar els teus diners.

Això garanteix l'obertura i la seguretat de la xarxa. Si els bancs anteriors eren responsables d'això, a la cadena de blocs, els matemàtics en són els responsables.

Per als usuaris normals que no volen esbrinar com emetre i emmagatzemar claus privades, els serveis de cartera en línia ajudaran. Per copiar claus públiques llargues, s'hi fan codis QR convenients. Per exemple, Blockchain Wallet, perquè té una aplicació mòbil convenient i és compatible amb les dues criptomonedes principals: BTC i ETH.

Absència del concepte d'"equilibri"

Igual que el nostre tauler, la cadena de blocs consisteix essencialment només en l'historial de transaccions. No emmagatzema el saldo de cada cartera, en cas contrari hauríem d'inventar mètodes de protecció addicionals.

Només la clau privada confirma la propietat de la cartera. Però, com poden els altres membres de la xarxa assegurar-se que tinc prou diners per comprar?

Com que no tenim balanç, ho heu de demostrar. Per tant, una transacció blockchain inclou no només la vostra signatura i quant voleu gastar, sinó també enllaços a transaccions anteriors en què heu rebut la quantitat de diners requerida.

És a dir, si voleu gastar 400 rubles, recorreu tot el vostre historial d'ingressos i despeses i adjunteu a la vostra transacció aquells ingressos on se us van donar 100 + 250 + 50 rubles, demostrant així que teniu aquests 400 rubles.

Cada membre de la xarxa s'assegurarà una vegada més de comprovar que no heu adjuntat ingressos dues vegades. Que aquests 300 rubles que Max va donar la setmana passada, realment encara no els has gastat.

Aquests ingressos vinculats a una transacció s'anomenen inputs a la cadena de blocs i tots els destinataris de diners s'anomenen sortides. La suma de totes les entrades poques vegades és exactament la mateixa que voleu transferir alhora; per tant, una de les sortides sovint seràs tu mateix. En altres paraules, la transacció a la cadena de blocs sembla que "em van donar 3 i 2 BTC, vull transferir-los 4 BTC i tornar els 1 BTC restants".

La bellesa de la cadena de blocs és que les entrades no han de provenir d'una cartera. Després de tot, només es revisa la clau. Si coneixeu la clau privada de totes les entrades, podeu adjuntar-les fàcilment a la vostra transacció i pagar amb aquests diners. Com si paguessis en un supermercat amb diverses targetes de les quals saps el codi PIN.

Tanmateix, si perds la teva clau privada, el teu disc mor o el teu ordinador portàtil és robat, els teus bitcoins es perdran per sempre. Ningú pot utilitzar-los com a inputs per a noves transaccions.

Aquesta quantitat serà inaccessible per a tot el món per sempre, com si cremés un paquet de bitllets. No hi ha cap banc únic on puguis escriure una sol·licitud amb una còpia del teu passaport, i ell l'imprimirà. Això requereix un llançament addicional de nous bitcoins "des de l'aire".

Problema de doble despesa

Més amunt he dit que les transaccions s'afegeixen a un "conjunt especial de transaccions no confirmades". Per què necessitem algun tipus d'entitat intermèdia, si ja tenim, de fet, transaccions ja fetes i signades? Per què no escriure'ls directament a la cadena de blocs?

Perquè els senyals del punt A al punt B sempre van amb un retard. Dues transaccions poden anar de manera completament diferent. I la transacció que es va iniciar primer pot arribar al destinatari més tard, perquè va prendre un camí més llarg.

Això es tradueix en una doble despesa, quan s'enviaven els mateixos diners a dos destinataris alhora, que ni tan sols endevinarien. No es tracta de lliurar els bitllets de mà en mà.

Per a una xarxa descentralitzada en la qual no es pot confiar en ningú, aquest problema és especialment greu. Així és com us assegureu que una transacció és definitivament abans que una altra? Demaneu al remitent que hi cosi l'hora d'enviament, oi? Però recordeu: no podeu confiar en ningú, ni tan sols en el remitent.

L'hora de tots els ordinadors serà necessàriament diferent i no hi ha cap manera garantida de sincronitzar-los. Una còpia de la cadena de blocs s'emmagatzema a cada ordinador de la xarxa i cada participant només hi confia.

Com podeu assegurar-vos que una transacció va ser anterior a una altra?

La resposta és senzilla: és impossible. No hi ha manera de confirmar l'hora d'una transacció en una xarxa descentralitzada. I la solució a aquest problema és la tercera idea important de cadena de blocs que va inventar Satoshi i que, curiosament, s'escriu exactament en el seu nom: blocs.

Els blocs són la columna vertebral de la cadena de blocs

Cada equip de treball de la xarxa selecciona les transaccions que li agraden del grup general. Normalment només per la comissió més alta que pot guanyar. Així que recull les transaccions per ell mateix fins que la seva mida total arriba al límit negociat. A Bitcoin, aquest límit de mida de bloc és d'1 MB (després de SegWit2x serà de 2 MB) i a Bitcoin Cash - 8 MB.

Tota la cadena de blocs és essencialment una llista d'aquests blocs, on cadascun es refereix a l'anterior. Es pot utilitzar per fer un seguiment de qualsevol transacció en tot l'historial, desenrotllant la cadena de blocs fins al primer registre.

És aquesta llista que ara pesa centenars de gigabytes i s'ha de descarregar completament a tots els ordinadors que vulguin formar part de la xarxa (però no és necessari simplement per crear transaccions i transferir diners). Es descarrega de la mateixa manera des de tots els ordinadors més propers de la xarxa, ja que si estàs baixant una sèrie de torrents, només s'hi publiquen nous episodis cada 10 minuts.

Després d'haver escrit les transaccions del grup per si mateix, l'ordinador comença a compondre a partir d'elles la mateixa llista infalsable que vam fer al principi de la publicació al tauler de casa.

Només ell ho fa en forma d'arbre: fa hash els registres per parelles, després el resultat torna a ser per parelles, i així successivament fins que només quedi un hash: l'arrel de l'arbre, que s'afegeix al bloc. Per què exactament amb un arbre: no vaig trobar la resposta, però suposo que és més ràpid així. Llegeix més a la wiki: Merkle tree.

Com que la cadena de blocs actual ja s'ha descarregat, el nostre ordinador sap exactament quin és l'últim bloc. Només ha d'afegir-hi un enllaç a la capçalera del bloc, triturar-ho tot i dir-li a la resta d'ordinadors de la xarxa "mira, he fet un bloc nou, afegim-lo a la nostra cadena de blocs".

La resta hauria de comprovar que el bloc està construït d'acord amb totes les regles i que no hi hem afegit transaccions innecessàries, i després afegir-les a les nostres cadenes. Ara s'han confirmat totes les transaccions, la cadena de blocs s'incrementa un bloc i tot va bé, no?

Però no. Milers d'ordinadors estan treballant simultàniament a la xarxa i, tan aviat com munten un bloc nou, gairebé simultàniament s'afanyen a informar a tothom que el seu bloc es va crear primer. I per l'apartat anterior ja sabem que en una xarxa descentralitzada és impossible demostrar qui va ser realment el primer.

Com a l'escola, quan tothom resolia una prova difícil, poques vegades passava que fins i tot els alumnes excel·lents prenguessin les respostes al mateix temps.

Però si per a una persona és una tasca difícil planificar unes vacances perquè arribi a les vacances de maig i les entrades al mar són barates, llavors per a un ordinador és afegir aquest número (nonce) al final del bloc de manera que, com a resultat, el hash SHA-256 per a tot el bloc comenci, diguem-ne 10 zeros. Aquest és el problema que cal resoldre per afegir un bloc a la xarxa Bitcoin. Per a altres xarxes, les tasques poden ser diferents.

Arribem, doncs, al concepte de mineria, amb el qual tothom ha estat tan obsessionat els darrers anys.

Mineria

La mineria de Bitcoin no és una mena de sagrament sagrat. La mineria no es tracta de trobar nous bitcoins en algun lloc de les profunditats d'Internet. La mineria és quan milers d'ordinadors d'arreu del món bullen als soterranis, passant per milions de números per segon, intentant trobar un hash que comenci amb 10 zeros. Ni tan sols necessiten estar en línia per fer-ho.

Les targetes de vídeo amb centenars de nuclis paral·lels resolen aquest problema més ràpidament que qualsevol CPU.

Per què exactament 10 zeros? I així, no té sentit. Així que Satoshi va plantejar-se. Perquè aquest és un d'aquells problemes per als quals sempre hi ha solució, però certament no es pot trobar més ràpid que una llarga enumeració monòtona d'opcions.

La complexitat de la mineria depèn directament de la mida de la xarxa, és a dir, de la seva potència total. Si creeu la vostra pròpia cadena de blocs i l'executeu a casa vostra en dos ordinadors portàtils, la tasca hauria de ser més senzilla. Per exemple, perquè el hash comenci amb només un zero, o perquè la suma dels dígits parells sigui igual a la suma dels senars.

Un equip trigarà diverses dècades a trobar un hash que comenci amb 10 zeros. Però si combineu milers d'ordinadors en una única xarxa i cerqueu en paral·lel, aleshores, segons la teoria de la probabilitat, aquest problema es resol de mitjana en 10 minuts. Aquest és el moment en què apareix un bloc nou a la cadena de blocs de bitcoin.

Cada 8-12 minuts, algú a la terra troba aquest hash i té el privilegi d'anunciar el seu descobriment a tothom, evitant així el problema de qui va ser el primer.

Per trobar una resposta, l'ordinador (a partir del 2017) rep 12,5 BTC: aquesta és la quantitat de recompensa que genera el sistema bitcoin "de la nada" i disminueix cada quatre anys.

Tècnicament, això significa que cada miner sempre afegeix una altra transacció al seu bloc: "crear 12,5 BTC i enviar-los a la meva cartera". Quan escolteu "el nombre de bitcoins al món es limita a 21 milions, ara ja n'han contractat 16 milions": aquestes són les recompenses que genera la xarxa.

Ves a veure un veritable bloc de Bitcoin en directe en un dels llocs dedicats. També hi ha transaccions amb entrades i sortides, i fins a 18 zeros al principi i tots els hash descrits anteriorment.

Són els miners els que afegeixen les transaccions emergents a la cadena de blocs. Per tant, si algú us diu que "farà una cadena de blocs per a ***", la primera pregunta que ha de respondre és qui hi explotarà i per què. Molt sovint, la resposta correcta és "tothom ho farà, perquè per a la mineria donem les nostres monedes, que creixeran i és rendible per als miners". Però això no s'aplica a tots els projectes.

Per exemple, algun ministeri de Salut demà crearà la seva pròpia cadena de blocs tancada per als metges (i la volen), qui la minaria? Terapeutes de cap de setmana?

Però, quin serà el benefici dels miners més endavant, quan les recompenses desapareguin o es facin escasses?

Segons la idea del Creador, en aquell moment la gent haurà de creure en la realitat del bitcoin i la mineria començarà a pagar per la quantitat de tarifes incloses en cada transacció. Aquí és on va tot: l'any 2012, totes les comissions eren zero, els miners minats només per recompenses dels blocs. Avui dia, una transacció amb comissió zero es pot penjar a la piscina durant diverses hores, perquè hi ha competència i la gent està disposada a pagar per velocitat.

És a dir, l'essència de la mineria està en resoldre problemes sense sentit. No es podria utilitzar tot aquest poder per a alguna cosa més útil: la recerca d'una cura per al càncer, per exemple?

L'essència de la mineria és resoldre qualsevol problema computacional. Aquesta tasca hauria de ser prou senzilla perquè els participants de la xarxa tinguin una probabilitat estable de trobar una resposta; en cas contrari, les transaccions es confirmaran per sempre. Imagineu que a la caixa d'una botiga haureu d'esperar mitja hora cada cop perquè el banc confirmi la vostra transacció. Ningú utilitzarà aquest banc.

Però la tasca ha de ser alhora difícil, perquè tots els internautes no trobin la resposta alhora. Perquè en aquest cas anunciaran molts blocs amb les mateixes transaccions a la xarxa i hi haurà la possibilitat de "doble malbaratament", que he comentat. O encara pitjor: dividir una única cadena de blocs en diverses branques, en les quals ningú pot esbrinar quina transacció està confirmada i quina no.

Si només s'entrega una recompensa de 12,5 BTC cada 10 minuts i només una persona que va trobar el bloc, resulta que he de malgastar targetes de vídeo durant diversos anys amb l'esperança que algun dia cairé 40.000 dòlars (al tipus de canvi actual)?

Aquest és exactament el cas del bitcoin. Però no sempre va ser així. Anteriorment, la xarxa era més petita, la complexitat és menor, la qual cosa significa que la probabilitat de trobar un hash per a un bloc nou és més gran. Però aleshores el bitcoin no era tan car.

Ara ningú està minant bitcoins sol. Ara els participants estan units en grups especials: piscines mineres, on tots junts intenten trobar el hash correcte.

Si almenys un dels grups troba, aleshores tota la recompensa es reparteix entre els participants, en funció de la seva contribució al treball comú. Resulta que esteu minant i obteniu un cèntim de la quota total cada setmana.

Però la mineria en solitari és molt possible en altres xarxes. Fins fa poc, era fàcil extreure Ethereum, on es troben blocs cada 10 segons. La recompensa del bloc és molt més baixa allà, però la probabilitat de guanyar un bon cèntim és més alta.

Per tant, cremarem milers de targetes de vídeo en va i no hi ha sortida?

Sí, però hi ha idees. La mineria que he descrit és clàssica i es diu Proof-of-Work (prova de treball). És a dir, cada màquina demostra que funcionava en benefici de la xarxa resolent problemes sense sentit amb una probabilitat determinada.

Però alguns nois estan començant a fer blockchains amb altres tipus de mineria. Ara el segon concepte més popular és Proof-of-Stake (prova d'aposta). En aquest tipus de mineria, com més "monedes" tingui un participant de la xarxa al seu compte, més probabilitats hi haurà d'inserir el seu bloc a la cadena de blocs. Com el noi més sorollós del poble.

Podeu pensar en altres tipus de mineria. Com ja s'ha suggerit, tots els ordinadors de la xarxa poden buscar una cura per al càncer, només cal que esbrineu com, en aquest cas, registrar la seva contribució al sistema. Després de tot, puc declarar que també participo, però apagueu la meva targeta de vídeo i no compte res.

Com quantifiqueu la contribució de cada participant per trobar una cura per al càncer? Si ho trobeu, atreviu-vos a retallar la vostra CancerCoin, us garanteix un bombo als mitjans.

Blockchain

Imagineu una situació en què, malgrat tota la nostra teoria de la probabilitat, dos miners encara van aconseguir trobar la resposta correcta alhora. Comencen a enviar dos blocs absolutament correctes per la xarxa.

Es garanteix que aquests blocs seran diferents, perquè fins i tot si escollissin miraculosament les mateixes transaccions del grup, fessin arbres absolutament idèntics i endevinessin el mateix nombre aleatori (nonce), els seus hash encara seran diferents, ja que cadascun escriurà el seu número de cartera a el bloc per a la recompensa.

Ara tenim dos blocs vàlids i de nou sorgeix el problema de qui s'ha de considerar primer. Com es comportarà la xarxa en aquest cas?

L'algorisme blockchain estableix que els participants de la xarxa simplement accepten la primera resposta correcta que els arriba. Després viuen sobre la base de la seva pròpia imatge del món.

Tots dos miners rebran la seva recompensa, i tota la resta comencen a mina, confiant en l'últim bloc que han rebut personalment, descartant tota la resta es tornen a corregir. A la xarxa apareixen dues versions de la cadena de blocs correcta. Aquesta és la paradoxa.

Aquesta és una situació rutinària en la qual la teoria de la probabilitat torna a ajudar. La xarxa funciona en un estat tan bifurcat fins que un dels miners troba el següent bloc d'una d'aquestes cadenes.

Tan bon punt es troba un bloc d'aquest tipus i s'insereix a la cadena, es fa més llarg i s'inclou un dels acords de la xarxa blockchain: sota qualsevol condició, s'accepta la cadena de blocs més llarga com a única vertadera per a tota la xarxa.

La cadena curta, malgrat tota la seva correcció, és rebutjada per tots els participants de la xarxa. Les transaccions d'aquest es retornen al grup (si no s'han confirmat en un altre) i el seu processament comença de nou. El miner perd la seva recompensa perquè el seu bloc ja no existeix.

Amb el creixement de la xarxa, aquestes coincidències de "molt improbable" entren a la categoria de "bé, de vegades passa". Els vells diuen que hi va haver casos en què es va caure una cadena de quatre blocs alhora.

Per això, s'han inventat tres regles d'inseguretat final de la cadena:

1. Les recompenses per a la mineria només es poden utilitzar després de 20 blocs confirmats després de rebre-les. Per a Bitcoin, això és d'unes tres hores.

2. Si us van enviar bitcoins, podeu utilitzar-los com a entrades en transaccions noves només després d'1-5 blocs.

3. Les regles 1 i 2 només s'especifiquen a la configuració de cada client. Ningú supervisa el seu compliment. Però la llei de cadena més llarga encara esborrarà totes les vostres transaccions si intenteu enganyar el sistema perquè no les faci complir.

Intentant enganyar la cadena de blocs

Ara que ho sabeu tot sobre la mineria, el dispositiu de la cadena de blocs i la regla de la cadena més llarga, potser tingueu una pregunta: és possible superar d'alguna manera específicament la cadena de blocs fent vosaltres mateixos la cadena més llarga, confirmant així les vostres transaccions falses?

Suposem que teniu l'ordinador més potent del món. Els centres de dades de Google i Amazon es posen a la vostra disposició i esteu intentant calcular una cadena d'aquest tipus que es convertirà en la cadena de blocs més llarga de la xarxa.

No pots agafar i calcular immediatament diversos blocs de la cadena, perquè cada bloc següent depèn de l'anterior. Aleshores, decidiu tan aviat com sigui possible comptar cada bloc dels vostres grans centres de dades en paral·lel amb com la resta de participants continuen augmentant la cadena de blocs principal. És possible superar-los? Probablement si.

Si la vostra potència de càlcul és superior al 50% de la potència de tots els participants de la xarxa, aleshores amb un 50% de probabilitat podreu construir una cadena més llarga més ràpidament que totes les altres combinades. Aquesta és una manera teòricament possible d'enganyar la cadena de blocs calculant una cadena de transaccions més llarga. Aleshores, totes les transaccions de la xarxa real es consideraran no vàlides i recollireu totes les recompenses i començareu una nova fita en la història de la criptomoneda, que s'anomena "divisió de cadena de blocs". Una vegada, a causa d'un error al codi, aquest va ser el cas d'Ethereum.

Però, en realitat, cap centre de dades es pot comparar en termes de potència amb tots els ordinadors del món. Mil milions i mig de xinesos amb glaçons, un altre mil milions i mig d'indis famolencs amb granges mineres i electricitat barata: aquesta és una gran potència informàtica. Ningú al món encara pot competir amb ells sol, ni tan sols Google.

És com sortir al carrer i intentar convèncer a totes les persones del món que ara el dòlar val 1 ruble i arribar a temps abans que els mitjans de comunicació t'exposin. I si aconsegueixes convèncer tothom, pots col·lapsar l'economia mundial. En teoria, no és possible? Però a la pràctica, per alguna raó, ningú ho va aconseguir.

La cadena de blocs també es basa en aquesta probabilitat. Com més participants-miners, més seguretat i confiança en la xarxa. Per tant, quan una altra gran granja minera està coberta a la Xina, la taxa s'enfonsa. Tothom té por que en algun lloc del món hi hagués un geni malvat que ja havia recollit un grup de miners a ~ 49% de capacitat.

Conclusió

Blockchain no és un conjunt d'algorismes estrictament definit. És una estructura per construir una xarxa falsa entre els participants, on ningú pot confiar en ningú. Durant la lectura, probablement més d'una vegada has pensat que "ho pots fer així i et serà encara més útil". Això vol dir que enteneu la cadena de blocs, felicitats.

Alguns nois del món també ho van entendre i volien millorar o adaptar-se a algunes tasques concretes. Les criptomonedes no són les mateixes, encara que també n'hi ha moltes. Aquí teniu una breu llista d'algunes de les idees i projectes que han guanyat certa popularitat gràcies al replantejament de la idea de la cadena de blocs.

Ethereum

"Ethers" és la segona paraula més popular que escolteu a les notícies sobre criptografia, després de Bitcoin. Per a la gent normal, aquesta és una altra criptomoneda i una manera de fer el més de moda anomenada ICO. Els desenvolupadors del lloc descriuen Ethereum com "un creador de blockchain per a les vostres necessitats". Això també és possible, sí.

Però si aprofundeixes encara més, l'èter no és només una xarxa de monedes. Es tracta d'una enorme màquina informàtica global, on els usuaris executen el codi dels programes d'altres persones (smart contracts), rebent una recompensa per cada línia executada. I tot això és descentralitzat, indestructible i amb totes les garanties de la blockchain.

Podem parlar d'Ethereum i contractes intel·ligents durant tant de temps que n'hi haurà prou per a una altra publicació d'aquest tipus. Per tant, actuarem a l'estil dels millors bloggers: si aquesta publicació es republica i es retuiteja activament, i divendres aconsegueix almenys 1.500 visualitzacions úniques, escriuré una seqüela sobre Ethereum i contractes intel·ligents.

Recomanat: