Criptomonedă pentru dumies: Bitcoin și dincolo
Publicat: 2022-03-11Bitcoin a creat o mulțime de zgomot pe internet. A fost ridiculizat, a fost atacat și în cele din urmă a fost acceptat și a devenit parte din viețile noastre. Cu toate acestea, Bitcoin nu este singur. În acest moment, există peste 700 de implementări AltCoin, care folosesc principii similare și diverși algoritmi de criptomonedă.
Deci, de ce aveți nevoie pentru a crea ceva ca Bitcoin?
Fără a încerca să înțelegeți motivația dvs. personală pentru crearea unui sistem descentralizat, anonim pentru schimbul de bani/informații (dar tot sperând că acesta este în domeniul de aplicare a activităților morale și legale), să dezvăluim mai întâi cerințele de bază pentru noul nostru sistem de plată:
- Toate tranzacțiile ar trebui făcute prin Internet
- Nu vrem să avem o autoritate centrală care să proceseze tranzacțiile
- Utilizatorii ar trebui să fie anonimi și identificați numai prin identitatea lor virtuală
- Un singur utilizator poate avea oricâte identități virtuale dorește
- Oferta de valoare (noile facturi virtuale) trebuie adăugată într-un mod controlat
Partajarea descentralizată a informațiilor prin internet
Îndeplinirea primelor două cerințe din lista noastră, eliminarea unei autorități centrale pentru schimbul de informații prin Internet, este deja posibilă. Ceea ce aveți nevoie este o rețea peer-to-peer (P2P) .
Partajarea informațiilor în rețelele P2P este similară cu partajarea informațiilor între prieteni și familie. Dacă partajați informații cu cel puțin un membru al rețelei, în cele din urmă aceste informații vor ajunge la fiecare alt membru al rețelei. Singura diferență este că în rețelele digitale aceste informații nu vor fi modificate în niciun fel.
Probabil ați auzit de BitTorrent, unul dintre cele mai populare sisteme de partajare a fișierelor (livrare de conținut) P2P. O altă aplicație populară pentru partajarea P2P este Skype, precum și alte sisteme de chat.
Concluzia este că puteți implementa sau utiliza unul dintre protocoalele P2P open-source existente pentru a susține noua dvs. criptomonedă, pe care o vom numi Topcoin .
Algoritmul de hashing
Pentru a înțelege identitățile digitale, trebuie să înțelegem cum funcționează hashingul criptografic . Hashing este procesul de mapare a datelor digitale de orice dimensiune arbitrară la date de dimensiune fixă. Cu cuvinte mai simple, hashingul este un proces de preluare a unor informații care pot fi citite și de a crea ceva care nu are deloc sens.
Puteți compara hashingul cu obținerea de răspunsuri de la politicieni. Informațiile pe care le furnizați sunt clare și ușor de înțeles, în timp ce rezultatele pe care le furnizează arată ca un flux aleatoriu de cuvinte.
Există câteva cerințe de care are nevoie un algoritm de hashing bun:
- Lungimea de ieșire a algoritmului de hashing trebuie să fie fixă (o valoare bună este de 256 de octeți)
- Chiar și cea mai mică modificare a datelor de intrare trebuie să producă o diferență semnificativă în ieșire
- Aceeași intrare va produce întotdeauna aceeași ieșire
- Nu trebuie să existe nicio modalitate de a inversa valoarea de ieșire pentru a calcula intrarea
- Calcularea valorii HASH nu ar trebui să fie intensivă în calcul și ar trebui să fie rapidă
Dacă aruncați o privire la statisticile simple, vom avea un număr limitat (dar uriaș) de valori HASH posibile, pur și simplu pentru că lungimea noastră HASH este limitată. Cu toate acestea, algoritmul nostru de hashing (să-l numim Politician256) ar trebui să fie suficient de fiabil încât să producă doar valori hash duplicate pentru diferite intrări, cam la fel de frecvent cu cât o maimuță dintr-o grădină zoologică reușește să scrie corect Hamlet pe o mașină de scris!
Dacă credeți că Hamlet este doar un nume sau un cuvânt, vă rugăm să nu mai citiți acum sau să citiți despre Teorema Maimuței Infinite.
Semnatura digitala
Când semnați o lucrare, tot ce trebuie să faceți este să adăugați semnătura la textul unui document. O semnătură digitală este similară: trebuie doar să atașați datele personale la documentul pe care îl semnați.
Dacă înțelegeți că algoritmul de hashing respectă regula în care chiar și cea mai mică modificare a datelor de intrare trebuie să producă o diferență semnificativă în ieșire , atunci este evident că valoarea HASH creată pentru documentul original va fi diferită de valoarea HASH creată pentru document. cu semnătura anexată.
O combinație a documentului original și a valorii HASH produsă pentru document cu datele dumneavoastră personale atașate este un document semnat digital .
Și așa ajungem la identitatea dvs. virtuală , care este definită ca datele pe care le-ați atașat la document înainte de a crea acea valoare HASH.
Apoi, trebuie să vă asigurați că semnătura dvs. nu poate fi copiată și că nimeni nu poate executa nicio tranzacție în numele dvs. Cel mai bun mod de a vă asigura că semnătura dvs. este securizată este să o păstrați singur și să oferiți o altă metodă pentru ca altcineva să valideze documentul semnat. Din nou, putem recurge la tehnologie și algoritmi care sunt ușor disponibili. Ceea ce trebuie să folosim este criptografia cu cheie publică , cunoscută și sub numele de criptografie asimetrică .
Pentru a face acest lucru, trebuie să creați o cheie privată și o cheie publică . Aceste două chei vor fi într-un fel de corelație matematică și vor depinde una de cealaltă. Algoritmul pe care îl veți folosi pentru a crea aceste chei va asigura că fiecare cheie privată va avea o cheie publică diferită. După cum sugerează numele lor, o cheie privată este informații pe care le veți păstra doar pentru dvs., în timp ce o cheie publică este informații pe care le veți partaja.
Dacă utilizați cheia privată (identitatea dvs.) și documentul original ca valori de intrare pentru algoritmul de semnare pentru a crea o valoare HASH, presupunând că ați păstrat secretul cheii, puteți fi sigur că nimeni altcineva nu poate produce aceeași valoare HASH pentru acel document. .
Dacă cineva trebuie să vă valideze semnătura, el sau ea va folosi documentul original, valoarea HASH pe care ați produs-o și cheia dvs. publică ca intrări pentru algoritmul de verificare a semnăturii pentru a verifica dacă aceste valori se potrivesc.
Cum să trimiți Bitcoin/Bani
Presupunând că ați implementat comunicarea P2P, mecanisme pentru crearea identităților digitale (chei private și publice) și că ați oferit modalități pentru ca utilizatorii să semneze documente folosind cheile lor private, sunteți gata să începeți să trimiteți informații către colegii dvs.
Deoarece nu avem o autoritate centrală care să valideze câți bani aveți, sistemul va trebui să vă întrebe de fiecare dată despre asta, apoi să verifice dacă ați mințit sau nu. Deci, înregistrarea tranzacției dvs. poate conține următoarele informații:
- Am 100 de Topcoins
- Vreau să trimit 10 monede farmacistului meu pentru medicamente ( veți include aici cheia publică a farmaciștilor )
- Vreau să ofer o monedă drept taxă de tranzacție sistemului ( vom reveni la asta mai târziu )
- Vreau să păstrez restul de 89 de monede
Singurul lucru care rămâne de făcut este să semnați digital înregistrarea tranzacției cu cheia dumneavoastră privată și să transmiteți înregistrarea tranzacției către colegii dvs. din rețea. În acel moment, toată lumea va primi informația că cineva (identitatea ta virtuală) trimite bani altcuiva (identitatea virtuală a farmacistului tău).
Treaba ta este gata. Cu toate acestea, medicamentele dvs. nu vor fi plătite până când întreaga rețea va fi de acord că aveți într-adevăr 100 de monede și, prin urmare, puteți executa această tranzacție. Doar după validarea tranzacției, farmacistul dumneavoastră va primi fondurile și vă va trimite medicamentele.

Minerii de criptomonede: o nouă generație de agenți
Minerii sunt cunoscuți a fi oameni foarte muncitori care, în opinia mea, sunt foarte prost plătiți. În lumea digitală a criptomonedei, minerii joacă un rol foarte asemănător, cu excepția cazului acesta, ei fac munca intensivă din punct de vedere computațional în loc să sape grămezi de murdărie. Spre deosebire de mineri adevărați, unii mineri de criptomonede au câștigat o mică avere în ultimii cinci ani, dar mulți alții au pierdut o avere în acest demers riscant.
Minerii sunt componenta de bază a sistemului și scopul lor principal este de a confirma validitatea fiecărei tranzacții solicitate de utilizatori.
Pentru a confirma validitatea tranzacției tale (sau o combinație a mai multor tranzacții solicitate de alți câțiva utilizatori), minerii vor face două lucruri.
În primul rând, se vor baza pe faptul că „toată lumea știe totul”, ceea ce înseamnă că fiecare tranzacție executată în sistem este copiată și disponibilă oricărui peer din rețea. Ei vor analiza istoricul tranzacțiilor dvs. pentru a verifica dacă ați avut de fapt 100 de monede pentru început. Odată ce soldul contului dvs. este confirmat, acestea vor genera o anumită valoare HASH. Această valoare hash trebuie să aibă un format specific; trebuie să înceapă cu un anumit număr de zerouri .
Există două intrări pentru calcularea acestei valori HASH:
- Date din înregistrarea tranzacțiilor
- Dovada de lucru a minerului
Având în vedere că și cea mai mică modificare a datelor de intrare trebuie să producă o diferență semnificativă în valoarea HASH de ieșire , minerilor au o sarcină foarte dificilă. Ei trebuie să găsească o valoare specifică pentru o variabilă de dovadă a muncii care va produce un HASH care începe cu zerouri. Dacă sistemul dvs. necesită un minim de 40 de zerouri în fiecare tranzacție validată, minerul va trebui să calculeze aproximativ 2^40 de valori HASH diferite pentru a găsi dovada de lucru corectă.
Odată ce un miner găsește valoarea potrivită pentru dovada de lucru, el sau ea are dreptul la o taxă de tranzacție (unica monedă pe care ați fost dispus să o plătiți), care poate fi adăugată ca parte a tranzacției validate. Fiecare tranzacție validată este transmisă colegilor din rețea și stocată într-un format specific de bază de date cunoscut sub numele de Blockchain .
Dar ce se întâmplă dacă numărul de mineri crește, iar hardware-ul lor devine mult mai eficient? Bitcoin obișnuia să fie extras pe procesoare, apoi pe GPU și FPGA, dar în cele din urmă minerii au început să-și proiecteze propriile cipuri ASIC, care erau mult mai puternice decât aceste soluții timpurii. Pe măsură ce rata de hash crește, crește și dificultatea de extragere, asigurând astfel echilibrul. Când se introduce mai multă putere de hashing în rețea, dificultatea crește și invers; dacă mulți mineri decid să tragă din priză deoarece operațiunea lor nu mai este profitabilă, dificultatea este reajustată pentru a se potrivi cu noua rată de hash.
Blockchain pentru dummies: The Global Cryptocurrency Ledger
Blockchain-ul conține istoricul tuturor tranzacțiilor efectuate în sistem. Fiecare tranzacție validată, sau lot de tranzacții, devine un alt inel în lanț. Fiecare companie de dezvoltare blockchain se bazează pe acest registru public.
Deci, blockchain-ul Bitcoin este, în esență, un registru public în care tranzacțiile sunt listate într-o ordine cronologică.
Primul inel din blockchain-ul Bitcoin se numește Genesis Block
Pentru a citi mai multe despre cum funcționează blockchain-ul, vă sugerez să citiți Blockchain Technology Explained: Powering Bitcoin, de Nermin Hajdarbegovic.
Nu există limită pentru numărul de mineri activi în sistemul dumneavoastră. Aceasta înseamnă că este posibil ca doi sau mai mulți mineri să valideze aceeași tranzacție. Dacă se întâmplă acest lucru, sistemul va verifica efortul total pe care fiecare miner a investit în validarea tranzacției prin simpla numărare a zerourilor. Minerul care a investit mai mult efort (a găsit mai multe zerouri de început) va prevala și blocul său va fi acceptat.
Controlul masei monetare
Prima regulă a sistemului Bitcoin este că pot fi generați maximum 21.000.000 de Bitcoin. Acest număr încă nu a fost atins și, conform tendințelor actuale, se crede că acest număr va fi atins până în anul 2140.
Acest lucru vă poate face să vă puneți la îndoială utilitatea unui astfel de sistem, deoarece 21 de milioane de unități nu sună prea mult. Cu toate acestea, sistemul Bitcoin acceptă valori fracționale până la opt zecimale (0,00000001). Această cea mai mică unitate a unui bitcoin se numește Satoshi , în onoarea lui Satoshi Nakamoto, dezvoltatorul anonim din spatele protocolului Bitcoin.
Sunt create monede noi ca recompensă pentru mineri pentru validarea tranzacțiilor. Această recompensă nu este taxa de tranzacție pe care ați specificat-o când ați creat o înregistrare a tranzacției, dar este definită de sistem. Suma recompensei scade în timp și în cele din urmă va fi setată la zero odată ce numărul total de monede emise (21 m) a fost atins. Când se întâmplă acest lucru, taxele de tranzacție vor juca un rol mult mai important, deoarece minerii ar putea alege să acorde prioritate tranzacțiilor mai valoroase pentru validare.
Pe lângă stabilirea limitei superioare a numărului maxim de monede, sistemul Bitcoin folosește și o modalitate interesantă de a limita producția zilnică de monede noi. Prin calibrarea numărului minim de zerouri de început necesare pentru un calcul de dovadă a lucrului, timpul necesar pentru validarea tranzacției și obținerea unei recompense de monede noi este întotdeauna setat la aproximativ 10 minute. Dacă timpul dintre adăugarea de noi blocuri la blockchain scade, sistemul ar putea solicita ca dovada de lucru să genereze 45 sau 50 de zerouri la început.
Așadar, limitând cât de repede și cât de multe monede noi pot fi generate, sistemul Bitcoin controlează efectiv masa monetară.
Începeți să „Imprimați” propria dvs. monedă
După cum puteți vedea, să vă faceți propria versiune de Bitcoin nu este atât de dificil. Utilizând tehnologia existentă, implementată într-un mod inovator, aveți tot ce aveți nevoie pentru o criptomonedă.
- Toate tranzacțiile sunt efectuate prin Internet folosind comunicarea P2P, eliminând astfel necesitatea unei autorități centrale
- Utilizatorii pot efectua tranzacții anonime utilizând criptografia asincronă și sunt identificați numai prin combinația lor privată/cheie publică
- Ați implementat un registru global validat al tuturor tranzacțiilor care a fost copiat în siguranță către fiecare peer din rețea
- Aveți o ofertă monetară securizată, automatizată și controlată, care asigură stabilitatea monedei dvs. fără a fi nevoie de autoritatea centrală
Un ultim lucru care merită menționat este că, în esența sa, criptomoneda este o modalitate de a transfera valoare/informații anonime de la un utilizator la altul într-o rețea distribuită peer-to-peer .
Luați în considerare înlocuirea monedelor din înregistrarea tranzacțiilor dvs. cu date aleatorii care ar putea fi chiar criptate folosind criptografia asincronă, astfel încât numai expeditorul și destinatarul să le poată descifra. Acum gândește-te să aplici asta la ceva de genul Internet of Things !
O serie de oameni grei ai tehnologiei explorează deja utilizarea tehnologiei blockchain în platformele IoT, dar aceasta nu este singura aplicație potențială a acestei tehnologii relativ noi.
Dacă nu vedeți niciun motiv pentru a crea o monedă alternativă proprie (altul decât o glumă practică), puteți încerca să utilizați aceeași abordare sau o abordare similară pentru altceva, cum ar fi autentificarea distribuită, crearea de monede virtuale utilizate în jocuri, rețele sociale , și alte aplicații, sau puteți continua să creați un nou program de loialitate pentru afacerea dvs. de comerț electronic, care ar recompensa clienții obișnuiți cu jetoane virtuale care ar putea fi răscumpărate ulterior.