INHOUDSOPGAWE:

Hoe die blockchain eintlik werk
Hoe die blockchain eintlik werk

Video: Hoe die blockchain eintlik werk

Video: Hoe die blockchain eintlik werk
Video: When the Army Attacked Veterans: The Bonus Army-Documentary 2024, Mei
Anonim

Hierdie pos is bedoel om almal te vertel hoekom die blokketting uitgevind is, hoe kripto-geldeenhede werk en hoekom dit die mooiste stelsel in onlangse jare is vanuit die oogpunt van logika.

Ek sal jou dadelik waarsku dat daar 'n GROOT vel teks onder die snit is en as jy nie gereed is om die vraag oor die onderwerp van kriptogeldeenhede vir eens en vir altyd te "toemaak" nie, voeg nou 'n inskrywing by jou gunstelinge en bespreek tyd)

Blockchain is 'n tegnologie, nuut, vreemd, onverstaanbaar, maar dit lyk of dit die wêreld verander, in teenstelling met hierdie stories van jou. Sy is blykbaar lank by ons.

Hierdie plasing is geskryf asof dit vertel word aan mense wat baie ver van rekenaars af is en hulle net oppervlakkig ken, stel jou byvoorbeeld voor dat hy vir jou ouers voorberei het. Ek kan dit selfs vir my mede-geesteswetenskappe afgooi en seker wees hulle sal verstaan.

En Oleg sal ons almal help in hierdie moeilike saak. Ontmoet!

As jy nie van Oleg hou nie, sal ek hom uitskop.

Die basiese beginsels: hoekom het ons blockchain nodig?

Die blokketting is beskryf in Satoshi Nakamoto se artikel "Bitcoin: A Peer-to-Peer Electronic Cash System". Daar, in net agt bladsye, het die skrywer die basiese beginsels van die Bitcoin-cryptocurrency beskryf, wat gebaseer was op die Blockchain-algoritme.

Lys wat nie verander kan word nie

Blokketting - 'n ketting van blokke of met ander woorde 'n gekoppelde lys. In so 'n lys verwys elke volgende rekord na een vorige een, ensovoorts in die ketting af tot by die heel eerste. Soos die waens van 'n trein, sleep elkeen die volgende een saam. Wat die lyste betref, is daar 'n goeie artikel deur Nikita Likhachev op TJ, waar dieselfde vir heeltemal nuwelinge verduidelik word. Die analogieë is deels daarvandaan geneem.

Kom ons neem 'n voorbeeld

Oleg se vriende leen gedurig geld by hom. Oleg is vriendelik, maar uiters vergeetagtig.’n Week later onthou hy nie meer wie nie die skuld aan hom terugbetaal het nie, maar hy is skaam om almal daaroor te vra. Daarom het hy eendag besluit om’n einde hieraan te maak deur’n lys vriende op die swartbord by sy huis te skep aan wie hy geld geleen het.

Nou kan Oleg altyd na die raad gaan en seker maak dat Max alles terugbesorg het, maar Vanya gee nie reeds 700 roebels nie. Op 'n dag nooi Oleg Vanya om 'n drankie by sy huis te drink. Terwyl Oleg toilet toe gaan, vee Vanya die inskrywing "Ek het 200 roebels vir Vanya geleen" uit en skryf in die plek daarvan "Vanya het 500 roebels gegee".

Oleg, wat sy lys vertrou het, vergeet van die skuld en verloor 700 roebels. Hy besluit om dit op een of ander manier te beveg. Verlede jaar het Oleg 'n programmeringskursus bygewoon, waar hy van hashing vertel is. Hy onthou dat enige string omskep kan word in 'n ondubbelsinnige stel karakters - 'n hash, en die verandering van enige karakter in die string sal dit heeltemal verander.

Deur 'n punt aan die einde by te voeg, het die finale hash onherkenbaar verander - jy kan dit gebruik.

Oleg neem die bekende SHA-256-hash en hash elke rekord daarmee, en voeg die resultaat aan die einde by. Nou kan Oleg seker maak dat niemand sy rekords verander het nie deur dit weer te hash en dit met die groen een te vergelyk.

Maar EVIL IVAN weet ook hoe om SHA-256 te gebruik en kan die inskrywing maklik saam met sy hash verander. Veral as die hash reg langsaan op die bord geskryf is.

Daarom, vir groter sekuriteit, besluit Oleg om nie net die rekord self te hash nie, maar dit saam met die hash van die vorige rekord by te voeg. Nou hang al die volgende inskrywings af van die voriges. As jy ten minste een reël verander, sal jy die hashes van al die ander hieronder in die lys moet herbereken.

Maar eendag sluip Ivan snags in, verander die inskrywing wat hy benodig en werk die hashes vir die hele lys op tot die einde. Dit neem hom etlike ure, maar Oleg slaap nog vas en kan nie hoor nie. Soggens ontdek Oleg 'n absoluut korrekte lys - alle hashes pas. Maar Ivan het hom in elk geval bedrieg, al het hy 'n slapelose nag daaraan deurgebring. Hoe anders kan jy jouself teen Night Ivan beskerm?

Oleg besluit om op een of ander manier sy lewe te kompliseer. Nou, om 'n nuwe inskrywing by die lys te voeg, sal Oleg 'n komplekse probleem wat daarmee geassosieer word, oplos, byvoorbeeld 'n wiskundige vergelyking. Hy sal die antwoord by die finale hash voeg.

Oleg is goed in wiskunde, maar selfs dit neem tien minute om 'n inskrywing by te voeg. Ten spyte hiervan is die tyd wat spandeer word die moeite werd, want as Ivan weer iets wil verander, sal hy die vergelykings vir elke ry moet heroplos, en daar kan dosyne van hulle wees. Dit sal baie tyd neem, want die vergelykings is elke keer uniek en geassosieer met 'n spesifieke rekord.

Maar om die lys na te gaan is net so eenvoudig: eers moet jy die hashes vergelyk soos voorheen, en dan die oplossings van die vergelykings nagaan deur eenvoudige vervanging. As alles konvergeer, word die lys nie verander nie.

In werklikheid is dit nie so goed met vergelykings nie: rekenaars los dit te goed op, en waar om soveel unieke vergelykings te stoor. Daarom het die skrywers van die blokketting met 'n mooier probleem vorendag gekom: jy moet so 'n nommer (nonce) vind sodat die finale hash van die hele rekord met 10 nulle begin. So 'n nonce is moeilik om te vind, maar die resultaat kan altyd met net oë nagegaan word.

Nou verifieer Oleg al die hashes en maak ook seker dat elkeen met die gespesifiseerde aantal nulle begin. Sly Ivan, selfs gewapen met 'n kragtige skootrekenaar, sal nie tyd hê om al die hashes in 'n nag te herbereken sodat hulle aan die voorwaarde voldoen nie - daar sal nie genoeg tyd wees nie.

So 'n lys is in werklikheid die tuisblokketting op sy knie. Die veiligheid daarvan word gewaarborg deur wiskundiges, wat bewys het dat hierdie hashes nie op een of ander manier vinniger bereken kan word nie, behalwe met brute geweld. Sulke opsomming van hashes vir elke rekord is mynbou, waaroor daar vandag baie en in detail sal wees.

Sentralisasie van vertroue

Ons vriende het gehou van die idee om 'n vals lys te hou van "wie het vir wie geleen". Hulle wil ook nie onthou wie vir wie in die kroeg betaal het en hoeveel hulle nog skuld nie - alles is op die muur geskryf. Jy het die idee bespreek en besluit dat jy nou 'n enkele lys vir almal nodig het.

Maar wie moet met sulke belangrike boekhouding toevertrou word? As dit by geld kom, kom vertroue immers na vore. Ons sal nie die onbekende vertrou om ons geld te hou nie. Hiervoor het ons voorouers banke uitgevind, wat mettertyd begin vertrou is, omdat hulle gerugsteun word deur 'n lisensie, wette en versekering van die Sentrale Bank.

In die vriendekring vertrou almal mekaar en jy kan eenvoudig die mees verantwoordelike een vir hierdie rol kies. Maar wat as die vraag oor vreemdelinge gaan? 'n Hele stad, land of die hele wêreld, soos die geval is met Bitcoin? Oor die algemeen kan niemand iemand daar vertrou nie.

Desentralisasie: niemand vertrou iemand nie

Hulle het dus met 'n alternatiewe benadering vorendag gekom: hou 'n kopie van die lys vir almal.’n Aanvaller sal dus nie net een lys moet oorskryf nie, maar ook by elke huis moet insluip en die lyste daar oorskryf. En toe blyk dit dat iemand verskeie lyste by die huis gehou het, waarvan niemand geweet het nie. Dit is desentralisasie.

Die nadeel van hierdie benadering is dat om nuwe inskrywings te maak, jy alle ander deelnemers sal moet bel en elkeen van hulle van die jongste veranderinge inlig. Maar as hierdie deelnemers siellose masjiene is, hou dit op om hoegenaamd enige probleem te wees.

In so 'n stelsel is daar geen enkele punt van vertroue nie, en dus die moontlikheid van omkopery en bedrog. Alle deelnemers aan die stelsel tree volgens 'n enkele reël op: niemand vertrou enigiemand nie. Almal glo net die inligting wat hulle tot hul beskikking het. Dit is die hoofwet van enige gedesentraliseerde netwerk.

Transaksies

Wanneer jy 'n pot in 'n winkel koop, voer jy die pin-kode van jou kaart in, wat die winkel toelaat om die bank te vra of jy 35 roebels op jou rekening het. Met ander woorde, jy teken 'n transaksie vir 35 roebels met jou pin-kode, wat die bank bevestig of verwerp.

Ons rekords van die tipe "Ek het Vanya 500 roebels geleen" is ook transaksies. Maar ons het nie 'n bank wat die outeur van die transaksies magtig nie. Hoe kan ons seker maak dat Ivan nie stilweg die inskrywing "Max skuld Oleg 100 500 roebels" bygevoeg het nie?

Die blokketting gebruik die meganisme van publieke en private sleutels hiervoor; IT-spesialiste gebruik dit lankal vir magtiging in dieselfde SSH. Ek het dit op my vingers verduidelik in die pos "Sekuriteit, enkripsie, kuberpunk" in die "Inleiding tot enkripsie"-afdeling.

Kortliks oor hoe hierdie komplekse maar pragtige wiskunde werk: jy genereer 'n paar lang priemgetalle op jou rekenaar - 'n publieke en 'n private sleutel. Die private sleutel word as supergeheim beskou omdat dit wat in die publiek geïnkripteer is, kan dekripteer.

Maar die teenoorgestelde werk ook. As jy die publieke sleutel met al jou vriende deel, sal hulle enige boodskap vir hulle kan enkripteer sodat net jy dit kan lees, aangesien jy die private een besit.

Maar daarbenewens het die publieke sleutel 'n nuttige effek - daarmee kan jy seker maak dat die data met jou private sleutel geënkripteer is, sonder om die data self te dekripteer. Al hierdie eienskappe word goed beskryf in die "Book of Ciphers".

Ons is op 'n gedesentraliseerde internet waar niemand vertrou kan word nie. Die transaksie word met 'n private sleutel onderteken en saam met die publieke sleutel word dit na 'n spesiale berging gestuur - 'n poel onbevestigde transaksies. So enige lid van die netwerk kan verifieer dat dit jy was wat dit geïnisieer het, en nie iemand anders wil afbetaal met jou geld nie.

Dit verseker die oopheid en sekuriteit van die netwerk. As vroeëre banke hiervoor verantwoordelik was, dan is wiskundiges in die blokketting daarvoor verantwoordelik.

Vir gewone gebruikers wat nie wil uitvind hoe om private sleutels uit te reik en te stoor nie, sal aanlyn beursiedienste help. Om lang publieke sleutels te kopieer, word gerieflike QR-kodes daar gemaak. Byvoorbeeld Blockchain Wallet, want dit het 'n gerieflike mobiele toepassing en ondersteun die twee hoof cryptocurrencies - BTC en ETH.

Gebrek aan die konsep van "balans"

Soos ons direksie, bestaan die blokketting in wese slegs uit transaksiegeskiedenis. Dit stoor nie die balans van elke beursie nie, anders sal ons bykomende beskermingsmetodes moet uitvind.

Slegs die private sleutel bevestig die eienaarskap van die beursie. Maar hoe kan ander lede van die netwerk seker maak ek het genoeg geld om te koop?

Aangesien ons geen balans het nie, moet jy dit bewys. Daarom sluit 'n blokkettingtransaksie nie net jou handtekening en hoeveel jy wil spandeer nie, maar ook skakels na vorige transaksies waarin jy die vereiste bedrag geld ontvang het.

Dit wil sê, as jy 400 roebels wil spandeer, gaan jy deur jou hele geskiedenis van inkomste en uitgawes, en heg daardie inkomste aan jou transaksie waar jy 100 + 250 + 50 roebels gekry het, en bewys daardeur dat jy hierdie 400 roebels het.

Elke lid van die netwerk sal weer seker maak dat jy nie twee keer inkomste aangeheg het nie. Dat daardie 300 roebels wat Max verlede week gegee het, jy regtig nog nie spandeer het nie.

Sulke inkomste verbonde aan 'n transaksie word insette in die blokketting genoem, en alle ontvangers van geld word uitsette genoem. Die som van alle insette is selde presies dieselfde as wat jy op 'n slag wil oordra - daarom sal een van die uitsette meestal jyself wees. Met ander woorde, die transaksie op die blokketting lyk soos "Ek is 3 en 2 BTC gegee, ek wil 4 BTC van hulle oordra en die oorblywende 1 BTC teruggee."

Die skoonheid van blockchain is dat insette nie uit een beursie hoef te kom nie. Slegs die sleutel word immers nagegaan. As jy die private sleutel van alle insette ken, kan jy dit maklik aan jou transaksie heg en met hierdie geld betaal. Asof jy in’n supermark betaal met verskeie kaarte waarvan jy die pinkode ken.

As jy egter jou private sleutel verloor, jou skyf sterf of jou skootrekenaar gesteel word, sal jou bitcoins vir altyd verlore wees. Niemand kan dit as insette vir nuwe transaksies gebruik nie.

Hierdie bedrag sal vir altyd vir die hele wêreld ontoeganklik wees – asof jy’n bondel banknote verbrand. Daar is nie’n enkele bank waar jy’n aansoek met’n afskrif van jou paspoort kan skryf nie, en hy sal dit druk. Dit vereis 'n bykomende vrystelling van nuwe bitcoins "uit die lug".

Dubbel besteding probleem

Hierbo het ek gesê dat transaksies by 'n spesiale "poel van onbevestigde transaksies" gevoeg word. Waarom het ons 'n soort tussen-entiteit nodig, as ons reeds klaargemaakte ondertekende transaksies het? Hoekom skryf hulle nie direk na die blokketting nie?

Omdat die seine van punt A na punt B altyd met 'n vertraging gaan. Twee transaksies kan heeltemal verskillende maniere verloop. En die transaksie wat eerste geïnisieer is, kan die ontvanger later bereik, want dit het 'n langer pad geneem.

Dit lei tot dubbele besteding, wanneer dieselfde geld gelyktydig aan twee geadresseerdes gestuur is, waaroor hulle nie eers sou raai nie. Dit is nie om rekeninge van hand tot hand te oorhandig nie.

Vir 'n gedesentraliseerde netwerk waarin niemand vertrou kan word nie, is hierdie probleem veral akuut. Hier is hoe jy seker maak dat een transaksie beslis voor 'n ander was? Vra die sender om die versendingtyd daarin vas te werk, reg? Maar onthou – jy kan niemand vertrou nie, nie eers die sender nie.

Die tyd op alle rekenaars sal noodwendig verskil en daar is geen gewaarborgde manier om hulle te sinchroniseer nie.’n Kopie van die blokketting word op elke rekenaar in die netwerk gestoor en elke deelnemer vertrou net dit.

Hoe kan jy seker maak dat een transaksie vroeër as 'n ander was?

Die antwoord is eenvoudig: dit is onmoontlik. Daar is geen manier om die tyd van 'n transaksie op 'n gedesentraliseerde netwerk te bevestig nie. En die oplossing vir hierdie probleem is die derde belangrike blokketting-idee wat Satoshi uitgevind het en wat, vreemd genoeg, reg in sy naam uitgespel word - blokke.

Blokke is die ruggraat van die blokketting

Elke werkende rekenaar op die netwerk kies enige transaksies waarvan hy hou uit die algemene poel. Gewoonlik net vir die hoogste kommissie wat hy daarop kan verdien. Hy samel dus transaksies vir homself in totdat hul totale grootte die onderhandelde limiet bereik. In Bitcoin is hierdie blokgrootte limiet 1 MB (na SegWit2x sal dit 2 MB wees), en in Bitcoin Cash - 8 MB.

Die hele blokketting is in wese 'n lys van sulke blokke, waar elkeen na die vorige een verwys. Dit kan gebruik word om enige transaksie in die hele geskiedenis na te spoor, en die blokketting tot die heel eerste rekord af te wikkel.

Dit is hierdie lys wat nou honderde gigagrepe weeg en volledig afgelaai moet word op alle rekenaars wat aan die netwerk wil deelneem (maar dit is nie nodig om bloot transaksies te skep en geld oor te dra nie). Dit word op dieselfde manier van al die naaste rekenaars op die netwerk afgelaai, asof jy 'n reeks van torrents aflaai, word net nuwe nuwe episodes elke 10 minute daarin vrygestel.

Nadat die transaksies vir homself uit die swembad getik is, begin die rekenaar dieselfde onvervalsbare lys daaruit saamstel as wat ons aan die begin van die pos op die bord by die huis gedoen het.

Net hy maak dit in die vorm van 'n boom - hashes die rekords in pare, dan is die resultaat weer in pare, ensovoorts totdat daar net een hash oor is - die wortel van die boom, wat by die blok gevoeg word. Hoekom juis met 'n boom - ek het nie die antwoord gekry nie, maar ek neem aan dis eenvoudig vinniger so. Lees meer op die wiki: Merkle boom.

Aangesien die huidige blokketting reeds afgelaai is, weet ons rekenaar presies wat die laaste blokkie daarin is. Hy moet net 'n skakel daarby in die blokopskrif voeg, dit alles hash en vir alle ander rekenaars op die netwerk sê "kyk, ek het 'n nuwe blok gemaak, kom ons voeg dit by ons blokketting".

Die res moet kyk dat die blok volgens al die reëls gebou is en dat ons nie onnodige transaksies daar bygevoeg het nie, en dan by ons kettings voeg. Nou is alle transaksies daarin bevestig, die blokketting word met een blok verhoog en alles gaan goed, is dit nie?

Maar nee. Duisende rekenaars werk gelyktydig op die netwerk, en sodra hulle 'n nuwe blok bymekaarmaak, jaag hulle amper gelyktydig om almal in te lig dat hul blok eerste geskep is. En uit die vorige afdeling weet ons reeds dat dit in 'n gedesentraliseerde netwerk onmoontlik is om te bewys wie werklik die eerste was.

Soos op skool, toe almal besig was om 'n moeilike toets op te los, het dit selde gebeur dat selfs uitstekende studente die antwoorde op dieselfde tyd geneem het.

Maar as dit vir 'n persoon 'n moeilike taak is om 'n vakansie te beplan sodat hy op die Mei-vakansie kom, en kaartjies na die see is goedkoop, dan is dit vir 'n rekenaar om so 'n nommer (nonce) by te voeg aan die einde van die blok sodat die SHA-256-hash vir die hele blok as gevolg daarvan begin, kom ons sê 10 nulle. Dit is die probleem wat opgelos moet word om 'n blok by die Bitcoin-netwerk te voeg. Vir ander netwerke kan die take verskil.

So kom ons by die konsep van mynbou, waaroor almal die afgelope jare so obsessief was.

Mynbou

Bitcoin-mynbou is nie 'n soort heilige sakrament nie. Mynbou gaan nie daaroor om nuwe bitcoins iewers in die dieptes van die internet te vind nie. Mynbou is wanneer duisende rekenaars regoor die wêreld in kelders gons, deur miljoene getalle per sekonde gaan, en probeer om 'n hash te vind wat met 10 nulle begin. Hulle hoef nie eers aanlyn te wees om dit te doen nie.

Videokaarte met honderde parallelle kerne los hierdie probleem vinniger op as enige SVE.

Hoekom presies 10 nulle? En net so maak dit geen sin nie. So het Satoshi vorendag gekom. Want dit is een van daardie probleme waarvoor daar altyd 'n oplossing is, maar dit kan beslis nie vinniger gevind word as 'n lang eentonige opsomming van opsies nie.

Die kompleksiteit van mynbou hang direk af van die grootte van die netwerk, dit wil sê sy totale krag. As jy jou eie blokketting skep en dit self by die huis op twee skootrekenaars laat loop, dan behoort die taak eenvoudiger te wees. Byvoorbeeld, sodat die hash met net een nul begin, of sodat die som van die ewe syfers gelyk is aan die som van die onewe.

Dit sal 'n paar dekades neem vir een rekenaar om 'n hash te vind wat met 10 nulle begin. Maar as jy duisende rekenaars in 'n enkele netwerk kombineer en parallel soek, dan word hierdie probleem volgens die waarskynlikheidsteorie gemiddeld binne 10 minute opgelos. Dit is die tyd wanneer 'n nuwe blok in die bitcoin-blokketting verskyn.

Elke 8-12 minute vind iemand op aarde so 'n hash en kry die voorreg om hul ontdekking aan almal aan te kondig en sodoende die probleem te vermy wie die eerste was.

Om 'n antwoord te vind, ontvang die rekenaar (vanaf 2017) 12,5 BTC - dit is die hoeveelheid beloning wat deur die bitcoin-stelsel "uit die lug" gegenereer word en elke vier jaar verminder.

Tegnies beteken dit dat elke mynwerker altyd nog 'n transaksie by sy blok voeg - "skep 12,5 BTC en stuur dit na my beursie". As jy hoor "die aantal bitcoins in die wêreld is beperk tot 21 miljoen, nou het hulle reeds 16 miljoen gehuur" - dit is die belonings wat deur die netwerk gegenereer word.

Gaan kyk na 'n regte lewendige Bitcoin-blok op een van die toegewyde werwe. Daar is ook transaksies met insette en uitsette, en soveel as 18 nulle aan die begin en al die hashes hierbo beskryf.

Dit is die mynwerkers wat die opkomende transaksies by die blokketting voeg. As iemand dus vir jou sê dat hy "'n blokketting vir *** sal maak", is die eerste vraag wat hy moet beantwoord wie daarop sal myn en hoekom. Meestal is die korrekte antwoord "almal sal, want vir mynbou gee ons ons munte, wat sal groei en dit is winsgewend vir mynwerkers". Maar dit geld nie vir alle projekte nie.

Byvoorbeeld, een of ander Ministerie van Gesondheid skep môre sy eie geslote blokketting vir dokters (en hulle wil dit hê), wie sal dit myn? Naweekterapeute?

Maar wat sal die voordeel vir mynwerkers later wees, wanneer die belonings verdwyn of skraal word?

Volgens die Skepper se idee sal mense teen daardie tyd in die werklikheid van bitcoin moet glo en mynbou sal begin afbetaal met die bedrag van die fooie wat by elke transaksie ingesluit is. Dit is waar alles gaan: terug in 2012 was alle kommissies nul, mynwerkers het net vir belonings van blokke ontgin. Vandag kan’n transaksie met geen kommissie vir etlike ure in die swembad hang, want daar is mededinging en mense is bereid om vir spoed te betaal.

Dit wil sê, die essensie van mynbou is om betekenislose probleme op te los. Kon al hierdie krag nie vir iets nuttigers gebruik word nie – die soeke na’n geneesmiddel vir byvoorbeeld kanker?

Die essensie van mynbou is om enige rekenaarprobleem op te los. Hierdie taak moet eenvoudig genoeg wees vir netwerkdeelnemers om 'n stabiele waarskynlikheid te hê om 'n antwoord te vind - anders sal transaksies vir ewig bevestig word. Stel jou voor dat jy by die betaalpunt in 'n winkel elke keer 'n halfuur moet wag vir die bank om jou transaksie te bevestig. Niemand sal so 'n bank gebruik nie.

Maar die taak moet terselfdertyd moeilik wees, sodat alle netizens nie die antwoord op een slag vind nie. Want in hierdie geval sal hulle baie blokke met dieselfde transaksies aan die netwerk aankondig en daar sal 'n moontlikheid wees van "dubbele vermorsing", wat ek genoem het. Of nog erger - die verdeling van 'n enkele blokketting in verskeie takke, waarin niemand kan uitvind watter transaksie bevestig is en watter nie.

As 'n beloning van 12,5 BTC slegs een keer elke 10 minute uitgedeel word en slegs een persoon wat die blok gevind het, blyk dit dat ek 'n paar jaar videokaarte moet mors in die hoop dat ek eendag $ 40,000 sal laat val (by die huidige wisselkoers)?

Dit is presies die geval vir bitcoin. Maar dit was nie altyd so nie. Voorheen was die netwerk kleiner, die kompleksiteit is laer, wat beteken dat die waarskynlikheid om eiehandig 'n hash vir 'n nuwe blok te vind hoër is. Maar toe was bitcoin nie so duur nie.

Nou ontgin niemand alleen bitcoins nie. Nou is die deelnemers verenig in spesiale groepe - mynpoele, waar almal saam probeer om die regte hash te vind.

As ten minste een van die groep vind, word die hele beloning tussen die deelnemers verdeel, afhangende van hul bydrae tot die gemeenskaplike werk. Dit blyk dat jy besig is om te myn en jy kry elke week 'n sent uit die totale aandeel.

Maar solo-ontginning is heel moontlik op ander netwerke. Tot onlangs was dit maklik om Ethereum te myn, waar blokke elke 10 sekondes gevind word. Die blokbeloning is baie laer daar, maar die waarskynlikheid om 'n mooi sent te verdien is groter.

So ons gaan duisende videokaarte tevergeefs verbrand en daar is geen uitweg nie?

Ja, maar daar is idees. Die mynbou wat ek beskryf het, is klassiek en word Proof-of-Work (bewys van werk) genoem. Dit wil sê, elke masjien bewys dat dit tot voordeel van die netwerk gewerk het deur betekenislose probleme met 'n gegewe waarskynlikheid op te los.

Maar sommige ouens begin blokkettings maak met ander soorte mynbou. Nou is die tweede gewildste konsep Proof-of-Stake (bewys van spel). In hierdie tipe mynbou, hoe meer "munte" 'n netwerkdeelnemer in sy rekening het, hoe groter is die kans dat hy sy blok in die blokketting sal plaas. Soos die hardste ou in die dorp.

Jy kan aan ander tipes mynbou dink. Soos reeds voorgestel, kan alle rekenaars op die netwerk 'n geneesmiddel vir kanker soek, net jy hoef uit te vind hoe, in hierdie geval, hul bydrae tot die stelsel op te teken. Ek kan tog verklaar dat ek ook deelneem, maar skakel my videokaart af en tel niks.

Hoe kwantifiseer jy elke deelnemer se bydrae om 'n geneesmiddel vir kanker te vind? As jy daarmee vorendag kom - waag dit om jou CancerCoin te sny, 'n hype in die media is vir jou gewaarborg.

Blokketting

Stel jou 'n situasie voor waarin, ten spyte van al ons teorie van waarskynlikheid, twee mynwerkers steeds daarin geslaag het om die regte antwoord op dieselfde tyd te vind. Hulle begin twee absoluut korrekte blokkies oor die netwerk stuur.

Hierdie blokke is gewaarborg om anders te wees, want selfs as hulle wonderbaarlik dieselfde transaksies uit die swembad gekies het, absoluut identiese bome gemaak het en dieselfde ewekansige nommer (nie eens) geraai het nie, sal hul hashes steeds anders wees, aangesien elkeen sy beursienommer sal skryf die blok vir beloning.

Nou het ons twee geldige blokke en weer ontstaan die probleem wie eerste oorweeg moet word. Hoe sal die netwerk in hierdie geval optree?

Die blokketting-algoritme bepaal dat netwerkdeelnemers eenvoudig die eerste korrekte antwoord aanvaar wat hulle bereik. Dan leef hulle op grond van hul eie beeld van die wêreld.

Albei mynwerkers sal hul beloning ontvang, en al die res begin myn, vertrou op die laaste blok wat hulle persoonlik ontvang het, al die res weggooi is weer korrek. Twee weergawes van die korrekte blokketting verskyn op die netwerk. Dit is die paradoks.

Dit is 'n roetine situasie waarin waarskynlikheidsteorie weer help. Die netwerk funksioneer in so 'n verdeelde toestand totdat een van die mynwerkers die volgende blok na een van hierdie kettings vind.

Sodra so 'n blok gevind en in die ketting ingevoeg word, word dit langer en een van die ooreenkomste van die blokkettingnetwerk word ingesluit: onder enige voorwaardes word die langste blokketting as die enigste ware een vir die hele netwerk aanvaar.

Die kort ketting word, ten spyte van al sy korrektheid, deur alle deelnemers aan die netwerk verwerp. Transaksies daaruit word teruggestuur na die poel (indien dit nie in 'n ander bevestig is nie), en die verwerking daarvan begin opnuut. Die mynwerker verloor sy beloning omdat sy blok nie meer bestaan nie.

Met die groei van die netwerk gaan sulke toevallighede van "baie onwaarskynlik" in die kategorie van "wel, soms gebeur dit." Outydse mense sê dat daar gevalle was toe 'n ketting van vier blokke op een slag laat val is.

As gevolg hiervan is drie einde van ketting-onsekerheidsreëls uitgevind:

1. Belonings vir mynbou kan slegs gebruik word na nog 20 bevestigde blokke na ontvangs. Vir Bitcoin is dit ongeveer drie uur.

2. As bitcoins aan jou gestuur is, kan jy dit eers na 1-5 blokke as insette in nuwe transaksies gebruik.

3. Reëls 1 en 2 word net in die instellings van elke kliënt uitgespel. Niemand monitor hul nakoming nie. Maar die langste kettingwet sal steeds al jou transaksies uitwis as jy die stelsel probeer mislei om dit nie af te dwing nie.

Probeer om die blokketting te kul

Noudat jy alles weet oor mynbou, die toestel van die blokketting en die reël van die langste ketting, het jy dalk 'n vraag: is dit moontlik om op een of ander manier spesifiek die blokketting in te haal deur self die langste ketting te maak en sodoende jou vals transaksies te bevestig.

Kom ons sê jy het die kragtigste rekenaar op aarde. Google- en Amazon-datasentrums het tot jou beskikking saamgestel en jy probeer so 'n ketting bereken wat die langste blokketting in die netwerk sal word.

Jy kan nie verskeie blokke van die ketting neem en dadelik bereken nie, want elke volgende blok hang af van die vorige een. Dan besluit jy so vinnig as moontlik om elke blok op jou groot datasentrums te tel parallel met hoe alle ander deelnemers voortgaan om die hoofblokketting te vergroot. Is dit moontlik om hulle in te haal? Moontlik ja.

As jou rekenaarkrag meer as 50% van die krag van alle netwerkdeelnemers is, sal jy met 'n 50% waarskynlikheid vinniger 'n langer ketting kan bou as al die ander saam. Dit is 'n teoreties moontlike manier om die blokketting te mislei deur 'n langer ketting van transaksies te bereken. Dan sal alle transaksies van die regte netwerk as ongeldig beskou word, en jy sal al die belonings insamel en 'n nuwe mylpaal in die geskiedenis van kripto-geldeenheid begin, wat "blockchain-afdeling" genoem word. Een keer, as gevolg van 'n fout in die kode, was dit die geval met Ethereum.

Maar in werklikheid kan geen datasentrum in terme van krag met alle rekenaars in die wêreld vergelyk word nie. Een en 'n half biljoen Chinese met icics, nog een en 'n half biljoen honger Indiërs met mynplase en goedkoop elektrisiteit - dit is 'n groot rekenaarkrag. Niemand in die wêreld kan nog met hulle alleen meeding nie, nie eers Google nie.

Dit is soos om op straat uit te gaan en elke mens in die wêreld te probeer oortuig dat die dollar nou 1 roebel werd is en betyds wees voordat die media jou ontbloot. En as jy dit regkry om almal te oortuig, kan jy die wêreldekonomie in duie laat stort. In teorie, is dit nie moontlik nie? Maar in die praktyk, om een of ander rede, het niemand daarin geslaag nie.

Die blokketting berus ook op hierdie waarskynlikheid. Hoe meer deelnemers-mynwerkers, hoe meer sekuriteit en vertroue in die netwerk. Daarom, wanneer nog 'n groot mynplaas in China gedek word, stort die koers in duie. Almal is bang dat daar iewers in die wêreld 'n bose genie was wat reeds 'n poel mynwerkers met 'n kapasiteit van ~49% versamel het.

Afsluiting

Blockchain is nie 'n streng gedefinieerde stel algoritmes nie. Dit is 'n struktuur om 'n vals netwerk tussen deelnemers te bou, waar niemand iemand kan vertrou nie. Terwyl jy gelees het, het jy waarskynlik meer as een keer die gedagte gehad dat "jy dit so kan doen en dit sal selfs nuttiger wees". Dit beteken dat jy die blokketting verstaan, baie geluk.

Sommige ouens in die wêreld het dit ook verstaan en wou verbeter of aanpas vir 'n paar spesifieke take. Kriptogeldeenhede is nie dieselfde nie, alhoewel daar ook baie van hulle is. Hier is 'n kort lys van sommige van die idees en projekte wat 'n mate van gewildheid verwerf het danksy die herbesinning van die blokketting-idee.

Ethereum

"Ethers" is die tweede gewildste woord wat jy in kripto-hype nuus hoor, naas Bitcoin. Vir gewone mense is dit nog 'n kripto-geldeenheid en 'n manier om die nuutste ding genaamd ICO te doen. Die ontwikkelaars op die webwerf beskryf Ethereum as "'n blockchain-bouer vir jou behoeftes." Dit is ook moontlik, ja.

Maar as jy nog dieper delf, is eter nie net 'n netwerk van munte nie. Dit is 'n groot globale rekenaarmasjien, waar gebruikers die kode van ander mense se programme (slim kontrakte) uitvoer en 'n beloning ontvang vir elke reël wat uitgevoer word. En dit alles is gedesentraliseerd, onvernietigbaar en met al die waarborge van die blokketting.

Ons kan so lank oor Ethereum en slim kontrakte praat dat dit genoeg sal wees vir nog so 'n pos. Daarom sal ons optree in die styl van topbloggers: as hierdie plasing aktief herpos en hertwiet word, en teen Vrydag ten minste 1 500 unieke sienings kry, sal ek 'n opvolg oor Ethereum en slim kontrakte skryf.

Aanbeveel: