Sisukord:

Kuidas plokiahel tegelikult töötab
Kuidas plokiahel tegelikult töötab

Video: Kuidas plokiahel tegelikult töötab

Video: Kuidas plokiahel tegelikult töötab
Video: Dinosaur Toy Movie: Operation Mystery Island #actionfigures #dinosaurs #jurassicworld #toymovie 2024, Mai
Anonim

See postitus on mõeldud kõigile rääkima, miks plokiahel leiutati, kuidas krüptorahad töötavad ja miks see on loogika seisukohalt viimaste aastate ilusaim süsteem.

Hoiatan kohe, et lõike all on SUUR leht teksti ja kui sa ei ole valmis krüptovaluutateemalist küsimust lõplikult "sulgema", siis lisa kohe sissekanne oma lemmikute hulka ja broneeri aeg)

Plokiahel on tehnoloogia, uus, kummaline, arusaamatu, kuid tundub, et see muudab maailma, vastupidiselt nendele teie lugudele. Ilmselt on ta meiega pikka aega.

See postitus on kirjutatud nii, nagu räägitaks seda inimestele, kes on arvutitest väga kaugel ja tunnevad neid vaid pealiskaudselt, näiteks kujutage ette, et ta valmistus teie vanemate jaoks. Ma võin selle isegi oma kaashumanitaarteaduste poole visata ja olla kindel, et nad mõistavad.

Ja Oleg aitab meid kõiki selles keerulises asjas. Saage tuttavaks!

Kui sulle Oleg ei meeldi, viskan ta välja.

Põhitõed: miks me vajame plokiahelat?

Plokiahelat kirjeldati Satoshi Nakamoto artiklis "Bitcoin: A Peer-to-Peer Electronic Cash System". Seal kirjeldas autor vaid kaheksal leheküljel Bitcoini krüptovaluuta põhitõdesid, mis põhinesid Blockchaini algoritmil.

Nimekiri, mida ei saa muuta

Plokiahel - plokkide ahel või teisisõnu lingitud loend. Sellises loendis viitab iga järgmine kirje ühele eelmisele ja nii edasi ahelas kõige esimeseni. Nagu rongivagunid, veab igaüks järgmist kaasa. Nimekirjade kohta on hea Nikita Likhachevi artikkel TJ-s, kus sama selgitatakse ka täiesti algajatele. Analoogiad on osaliselt võetud sealt.

Võtame näite

Olegi sõbrad laenavad temalt pidevalt raha. Oleg on lahke, kuid äärmiselt unustav. Nädal hiljem ta enam ei mäleta, kes talle võlga ei tagastanud, kuid tal on piinlik seda kõigilt küsida. Seetõttu otsustas ta ühel päeval sellele lõpu teha, koostades oma kodus tahvlile nimekirja sõpradest, kellele ta raha laenas.

Nüüd võib Oleg alati minna tahvli juurde ja veenduda, et Max tagastaks kõik, kuid Vanya ei anna juba 700 rubla. Ühel päeval kutsub Oleg Vanya oma koju jooma. Sel ajal, kui Oleg tualetti läheb, kustutab Vanja kirje “Laenasin Vanja eest 200 rubla” ja kirjutab selle asemele “Vanya andis 500 rubla”.

Oma nimekirja usaldanud Oleg unustab võla ja kaotab 700 rubla. Ta otsustab selle vastu kuidagi võidelda. Eelmisel aastal käis Oleg programmeerimiskursusel, kus talle räägiti räsimisest. Ta mäletab, et iga stringi saab muuta ühemõtteliseks märgikogumiks – räsi ja mis tahes tähemärgi muutmine stringis muudab seda täielikult.

Punkti lisamine lõppu muutis lõpliku räsi tundmatuseni – saate seda kasutada.

Oleg võtab tuntud SHA-256 räsi ja räsib sellega iga kirje, lisades tulemuse lõpus. Nüüd saab Oleg veenduda, et keegi pole tema kirjeid muutnud, räsides need uuesti ja võrreldes rohelisega.

Kuid EVIL IVAN teab ka, kuidas kasutada SHA-256 ja saab hõlpsasti muuta kirjet koos selle räsiga. Eriti kui räsi on tahvlil kohe selle kõrval kirjas.

Seetõttu otsustab Oleg suurema turvalisuse huvides räsida mitte ainult kirjet ennast, vaid lisada selle koos eelmise kirje räsiga. Nüüd sõltuvad kõik järgmised kirjed eelmistest. Kui muudate vähemalt ühte rida, peate ümber arvutama kõigi teiste allolevate loendi räsi.

Kuid ühel päeval hiilib Ivan öösel ligi, muudab vajalikku kirjet ja värskendab kogu loendi räsisid lõpuni. Tal kulub mitu tundi, kuid Oleg magab endiselt sügavalt ega kuule. Hommikul avastab Oleg täiesti õige nimekirja – kõik räsid ühtivad. Kuid Ivan pettis teda niikuinii, kuigi ta veetis sellel unetu öö. Kuidas muidu saate end Night Ivani eest kaitsta?

Oleg otsustab oma elu kuidagi keerulisemaks teha. Nüüd, et lisada loendisse uus kirje, lahendab Oleg sellega seotud keeruka ülesande, näiteks matemaatilise võrrandi. Ta lisab vastuse lõppräsi.

Oleg on matemaatikas hea, kuid isegi sissekande lisamiseks kulub kümme minutit. Vaatamata sellele on kulutatud aeg seda väärt, sest kui Ivan tahab jälle midagi muuta, tuleb tal iga rea võrrandid uuesti lahendada ja neid võib olla kümneid. See võtab palju aega, sest võrrandid on iga kord kordumatud ja seotud konkreetse kirjega.

Kuid loendi kontrollimine on sama lihtne: kõigepealt tuleb võrrelda räsi nagu varem ja seejärel kontrollida võrrandite lahendusi lihtsa asendusega. Kui kõik ühtlustub, siis nimekirja ei muudeta.

Tegelikkuses pole võrranditega asjad nii hästi: arvutid lahendavad need liiga hästi ja kuhu nii palju unikaalseid võrrandeid talletada. Seetõttu tulid plokiahela autorid välja ilusama probleemiga: tuleb leida selline arv (nonce), et kogu rekordi lõplik räsi algaks 10 nulliga. Sellist nonce'i on raske leida, kuid tulemust saab alati vaid silmadega kontrollida.

Nüüd kontrollib Oleg kõiki räsi ja lisaks tagab, et igaüks algab määratud arvu nullidega. Kaval Ivanil, isegi võimsa sülearvutiga relvastatud, pole aega öö jooksul kõiki räsisid ümber arvutada, et need tingimust rahuldaksid - aega ei jätku.

Selline nimekiri on tegelikult kodune plokiahel. Selle ohutuse tagavad matemaatikud, kes tõestasid, et neid räsi ei saa kuidagi kiiremini arvutada, välja arvatud toore jõuga. Selline iga kirje räside loetlemine on kaevandamine, millest täna on palju ja üksikasjalikult juttu.

Usalduse tsentraliseerimine

Meie sõpradele meeldis idee pidada võltsnimekirja "kes kellele laenas". Samuti ei taha nad meenutada, kes kelle eest baaris maksis ja kui palju nad veel võlgu on – kõik on seinal kirjas. Arutasite seda ideed ja otsustasite, et nüüd on vaja kõigi jaoks ühte nimekirja.

Kellele tuleks aga usaldada nii oluline raamatupidamine? Raha puhul tuleb ju esikohale usaldus. Me ei usalda tundmatut oma raha hoidma. Selleks leiutasid meie esivanemad pangad, mida aja jooksul hakati usaldama, sest nende taga on keskpanga litsents, seadused ja kindlustus.

Sõprusringkonnas usaldavad kõik üksteist ja sellesse rolli saab lihtsalt kõige vastutusrikkama valida. Aga mis siis, kui küsimus puudutab võõraid? Terve linn, riik või kogu maailm, nagu Bitcoini puhul? Üldiselt ei saa seal keegi kedagi usaldada.

Detsentraliseerimine: keegi ei usalda kedagi

Nii leidsid nad alternatiivse lähenemisviisi: hoidke kõigi jaoks nimekirja koopia. Seega ei peaks ründaja mitte ainult ühte nimekirja ümber kirjutama, vaid ka igasse majja sisse hiilima ja seal nimekirjad ümber kirjutama. Ja siis selgub, et kellelgi oli kodus mitu nimekirja, millest keegi ei teadnud. See on detsentraliseerimine.

Selle lähenemisviisi negatiivne külg on see, et uute kirjete tegemiseks peate helistama kõigile teistele osalejatele ja teavitama neid viimastest muudatustest. Aga kui need osalejad on hingetud masinad, ei ole see probleem üldse.

Sellises süsteemis puudub ühtne usalduspunkt ja seega ka altkäemaksu ja petmise võimalus. Kõik süsteemis osalejad tegutsevad üheainsa reegli järgi: keegi ei usalda kedagi. Igaüks usub ainult seda teavet, mis tema käsutuses on. See on iga detsentraliseeritud võrgu peamine seadus.

Tehingud

Poest potti ostes sisestate oma kaardilt PIN-koodi, mis võimaldab poel pangast küsida, kas teie kontol on 35 rubla. Ehk siis allkirjastad oma pin-koodiga 35-rublase tehingu, mille pank kinnitab või lükkab tagasi.

Meie kirjed tüübist "laenasin Vanjat 500 rubla" on samuti tehingud. Aga meil pole panka, mis tehingute autorit volitaks. Kuidas kontrollida, et Ivan pole vaikselt lisanud kirjet "Max võlgneb Olegile 100 500 rubla"?

Plokiahel kasutab selleks avalike ja privaatvõtmete mehhanismi, IT-spetsialistid on neid pikka aega kasutanud autoriseerimiseks samas SSH-s. Selgitasin seda näppudel rubriigis "Sissejuhatus krüptimisse" postituses "Turvalisus, krüpteerimine, küberpunk".

Lühidalt selle keerulise, kuid ilusa matemaatika toimimisest: genereerite oma arvutis pikkade algarvude paari – avaliku ja privaatvõtme. Privaatvõtit peetakse ülisalajaseks, kuna see suudab avalikult krüpteeritu dekrüpteerida.

Kuid toimib ka vastupidine. Kui jagate avalikku võtit kõigi oma sõpradega, saavad nad kõik sõnumid nende jaoks krüpteerida, nii et ainult teie saate seda lugeda, kuna privaatne võti kuulub teile.

Kuid lisaks sellele on avalikul võtmel kasulik mõju - sellega saate kontrollida, kas andmed on teie privaatvõtmega krüpteeritud, ilma andmeid ise dekrüpteerimata. Kõik need omadused on hästi kirjeldatud "šifrite raamatus".

Oleme detsentraliseeritud Internetis, kus kedagi ei saa usaldada. Tehing allkirjastatakse privaatvõtmega ja koos avaliku võtmega saadetakse spetsiaalsesse salvestusruumi – kinnitamata tehingute kogumisse. Seega saab iga võrgustiku liige veenduda, et selle algatasite teie, mitte keegi teine ei taha teie raha eest tasuda.

See tagab võrgu avatuse ja turvalisuse. Kui varem vastutasid selle eest pangad, siis plokiahelas vastutavad selle eest matemaatikud.

Tavakasutajatele, kes ei taha aru saada, kuidas privaatvõtmeid väljastada ja säilitada, aitavad veebipõhised rahakotiteenused. Pikkade avalike võtmete kopeerimiseks tehakse seal mugavad QR-koodid. Näiteks Blockchain Wallet, kuna sellel on mugav mobiilirakendus ja see toetab kahte peamist krüptovaluutat – BTC ja ETH.

"tasakaalu" kontseptsiooni puudumine

Nagu meie plaat, koosneb plokiahel sisuliselt ainult tehingute ajaloost. See ei salvesta iga rahakoti saldot, vastasel juhul peaksime leiutama täiendavaid kaitsemeetodeid.

Ainult privaatvõti kinnitab rahakoti omandiõigust. Aga kuidas saavad teised võrgustiku liikmed veenduda, et mul on ostmiseks piisavalt raha?

Kuna meil pole tasakaalu, peate seda tõestama. Seetõttu ei sisalda plokiahela tehing mitte ainult teie allkirja ja seda, kui palju soovite kulutada, vaid ka linke varasematele tehingutele, mille käigus saite vajaliku summa raha.

See tähendab, et kui soovite kulutada 400 rubla, siis jooksete läbi kogu oma tulude ja kulude ajaloo ning lisate tehingule need sissetulekud, kus teile anti 100 + 250 + 50 rubla, tõestades sellega, et teil on need 400 rubla.

Iga võrgustiku liige kontrollib veel kord kindlasti, et te pole kaks korda sissetulekut lisanud. Et need 300 rubla, mille Max eelmisel nädalal andis, pole sa tõesti veel kulutanud.

Selliseid tehinguga kaasnevaid sissetulekuid nimetatakse plokiahelas sisenditeks ja kõiki raha saajaid väljunditeks. Kõikide sisendite summa on harva täpselt sama, mida soovite korraga üle kanda – seetõttu on kõige sagedamini üks väljunditest teie ise. Teisisõnu näeb plokiahelas tehing välja selline: "Mulle anti 3 ja 2 BTC, tahan neilt 4 BTC-d üle kanda ja ülejäänud 1 BTC tagasi tagastada."

Plokiahela ilu seisneb selles, et sisendid ei pea tulema ühest rahakotist. Kontrollitakse ju ainult võtit. Kui teate kõigi sisendite privaatvõtit, saate need hõlpsalt oma tehingule lisada ja selle rahaga maksta. Justkui maksaksid supermarketis mitme kaardiga, mille pin-koodi tead.

Kui aga kaotate oma privaatvõtme, teie ketas sureb või teie sülearvuti varastatakse, lähevad teie bitcoinid igaveseks kaotsi. Keegi ei saa neid kasutada uute tehingute sisenditena.

See summa jääb kogu maailmale igaveseks kättesaamatuks – justkui põletaksite pangatähtede kimbu. Pole ühtegi panka, kuhu saaks kirjutada avalduse koos passi koopiaga ja ta prindib selle välja. See nõuab uute bitcoinide täiendavat vabastamist "õhust".

Kahekordne kulutamise probleem

Eespool ütlesin, et tehingud lisatakse spetsiaalsesse "kinnitamata tehingute kogumisse". Milleks on vaja mingit vaheolemit, kui meil on tegelikult juba valmis allkirjastatud tehingud? Miks mitte kirjutada need otse plokiahelasse?

Sest signaalid punktist A punkti B lähevad alati hilinemisega. Kaks tehingut võivad toimuda täiesti erineval viisil. Ja esimesena algatatud tehing võib adressaadini jõuda hiljem, sest see võttis pikema tee.

Sellest tuleneb topeltkulu, kui sama raha saadeti kahele adressaadile korraga, mida nad isegi ei osanud arvata. See ei ole arvete käest kätte andmine.

Detsentraliseeritud võrgu puhul, kus kedagi ei saa usaldada, on see probleem eriti terav. Siit saate teada, kuidas veenduda, et üks tehing oli kindlasti enne teist? Paluge saatjal sinna lähetusaeg sisse õmmelda, eks? Kuid pidage meeles – te ei saa kedagi usaldada, isegi mitte saatjat.

Kõigi arvutite aeg on tingimata erinev ja nende sünkroonimiseks pole garanteeritud võimalust. Plokiahela koopia salvestatakse igasse võrgus olevasse arvutisse ja iga osaleja usaldab ainult seda.

Kuidas saate veenduda, et üks tehing oli teisest varasem?

Vastus on lihtne: see on võimatu. Detsentraliseeritud võrgus ei saa tehingu toimumise aega kuidagi kinnitada. Ja lahendus sellele probleemile on kolmas oluline plokiahela idee, mille Satoshi leiutas ja mis kummalisel kombel on otse tema nimes kirjas – plokid.

Plokid on plokiahela selgroog

Iga võrgus töötav arvuti valib üldisest kogumist kõik talle meeldivad tehingud. Tavaliselt ainult kõrgeima vahendustasu eest, mida ta selle pealt teenida saab. Nii kogub ta tehinguid enda jaoks, kuni nende kogumaht jõuab kokku lepitud piirini. Bitcoinis on see ploki suuruse piirang 1 MB (pärast SegWit2x on see 2 MB) ja Bitcoin Cashis - 8 MB.

Kogu plokiahel on sisuliselt selliste plokkide loend, kus igaüks viitab eelmisele. Seda saab kasutada mis tahes tehingu jälgimiseks kogu ajaloo jooksul, kerides plokiahela lahti isegi esimese kirjeni.

Just see loend kaalub nüüd sadu gigabaite ja tuleb täielikult alla laadida kõikidesse arvutitesse, mis soovivad võrgus osaleda (kuid see pole vajalik lihtsalt tehingute tegemiseks ja raha ülekandmiseks). See laaditakse alla samamoodi kõigist lähimatest võrgus olevatest arvutitest, justkui laadite torrentidest sarja alla, siis iga 10 minuti järel ilmub selles ainult uusi uusi episoode.

Olles enda jaoks basseinist tehinguid tippinud, hakkab arvuti nendest koostama samasugust vääramatut nimekirja, nagu tegime kodus postituse alguses tahvlil.

Ainult tema teeb selle puu kujul - räsib kirjed paarikaupa, siis on tulemus jälle paarikaupa ja nii kuni jääb alles üks räsi - puu juur, mis lisatakse plokki. Miks just puuga - vastust ma ei leidnud, aga oletan, et nii on lihtsalt kiirem. Loe edasi wikist: Merkle puu.

Kuna praegune plokiahel on juba alla laaditud, teab meie arvuti täpselt, mis viimane plokk selles on. Ta peab lihtsalt lisama ploki päisesse selle lingi, räsima selle kõik ja ütlema kõigile teistele võrgus olevatele arvutitele: "Vaata, ma tegin uue ploki, lisame selle oma plokiahelasse".

Ülejäänud peaksid kontrollima, et plokk oleks üles ehitatud kõikide reeglite järgi ja et me poleks sinna lisanud tarbetuid tehinguid ning need siis oma kettidesse lisama. Nüüd on kõik selles tehtud tehingud kinnitatud, plokiahelat suurendatakse ühe ploki võrra ja kõik läheb hästi, kas pole?

Kuid mitte. Tuhanded arvutid töötavad korraga võrgus ja niipea, kui nad uue ploki kokku panevad, tormavad nad peaaegu korraga kõigile teatama, et nende plokk loodi esimesena. Ja eelmisest jaotisest teame juba, et detsentraliseeritud võrgus on võimatu tõestada, kes tegelikult oli esimene.

Nagu kooliski, juhtus harva, kui kõik lahendasid keerulist testi, et isegi suurepärased õpilased võtsid vastused korraga.

Aga kui inimese jaoks on keeruline ülesanne planeerida puhkust nii, et ta jõuaks maipühadele ja piletid merele on odavad, siis arvuti jaoks on see number (nonce) lisada selle lõppu. blokki nii, et selle tulemusel algab kogu ploki SHA-256 räsi, oletame, et 10 nulli. See on probleem, mis tuleb Bitcoini võrku ploki lisamiseks lahendada. Teiste võrkude puhul võivad ülesanded erineda.

Nii jõuamegi kaevandamise kontseptsioonini, millest kõik on viimastel aastatel nii kinnisideeks olnud.

Kaevandamine

Bitcoini kaevandamine ei ole mingisugune püha sakrament. Kaevandamine ei seisne uute bitcoinide leidmises kusagilt Interneti sügavustest. Kaevandamine on see, kui tuhanded arvutid üle maailma sumisevad keldrites, läbides miljoneid numbreid sekundis, püüdes leida räsi, mis algab 10 nulliga. Nad ei pea selleks isegi võrgus olema.

Sadade paralleeltuumadega videokaardid lahendavad selle probleemi kiiremini kui ükski protsessor.

Miks täpselt 10 nulli? Ja niisama pole sellel mõtet. Nii et Satoshi mõtles välja. Sest see on üks nendest probleemidest, millele lahendus on alati olemas, aga kindlasti ei leia seda kiiremini kui pikk monotoonne variantide loetlemine.

Kaevandamise keerukus sõltub otseselt võrgu suurusest, see tähendab selle koguvõimsusest. Kui loote oma plokiahela ja käivitate selle ise kodus kahel sülearvutil, peaks ülesanne olema lihtsam. Näiteks nii, et räsi algab ainult ühe nulliga või nii, et paarisnumbrite summa on võrdne paaritute summaga.

10 nulliga algava räsi leidmiseks kulub ühel arvutil mitu aastakümmet. Aga kui ühendada tuhanded arvutid ühte võrku ja paralleelselt otsida, siis tõenäosusteooria kohaselt lahendatakse see probleem keskmiselt 10 minutiga. See on aeg, mil bitcoini plokiahelasse ilmub uus plokk.

Iga 8–12 minuti järel leiab keegi maa peal sellise räsi ja saab privileegi oma leiust kõigile teada anda, vältides sellega probleemi, kes oli esimene.

Vastuse leidmise eest saab arvuti (2017. aasta seisuga) 12,5 BTC - see on bitcoini süsteemi poolt "õhust" genereeritav tasu, mis väheneb iga nelja aasta järel.

Tehniliselt tähendab see, et iga kaevandaja lisab oma plokki alati veel ühe tehingu – “loo 12,5 BTC ja saada need minu rahakotti”. Kui kuulete "bitcoinide arv maailmas on piiratud 21 miljoniga, siis nüüd on nad palganud juba 16 miljonit" - need on võrgustiku loodud hüved.

Minge vaadake tõelist Bitcoini plokki ühel pühendatud saidil. Samuti on tehingud sisendite ja väljunditega ning alguses koguni 18 nulli ja kõik ülalkirjeldatud räsid.

Kaevurid lisavad tekkivad tehingud plokiahelasse. Nii et kui keegi ütleb teile, et ta teeb *** jaoks plokiahela, siis esimene küsimus, millele ta peab vastama, on see, kes selle kaevandab ja miks. Kõige sagedamini on õige vastus "kõik teevad, sest kaevandamiseks anname oma mündid, mis kasvavad ja see on kaevurite jaoks kasulik". Kuid see ei kehti kõigi projektide kohta.

Näiteks mõni tervishoiuministeerium loob homme oma kinnise plokiahela arstidele (ja nad tahavad seda), kes selle kaevandab? Nädalavahetuse terapeudid?

Aga mis kasu on kaevuritel hiljem, kui preemiad kaovad või muutuvad vähemaks?

Looja idee kohaselt peavad inimesed selleks ajaks bitcoini reaalsusesse uskuma ja kaevandamine hakkab end ära tasuma iga tehinguga kaasnevate tasude võrra. Siia kõik läheb: 2012. aastal olid kõik vahendustasud nulli, kaevurid kaevandasid ainult plokkidest saadud preemiaid. Täna võib null vahendustasuga tehing mitu tundi basseinis rippuda, sest konkurents on ja kiiruse eest ollakse nõus maksma.

See tähendab, et kaevandamise olemus seisneb mõttetute probleemide lahendamises. Kas kogu seda jõudu ei saaks kasutada millekski kasulikumaks – näiteks vähiravimite otsimiseks?

Kaevandamise olemus on mis tahes arvutusprobleemi lahendamine. See ülesanne peaks olema piisavalt lihtne, et võrgustikus osalejatel oleks stabiilne tõenäosus vastust leida – vastasel juhul kinnitatakse tehingud igaveseks. Kujutage ette, et poe kassas peate iga kord pool tundi ootama, kuni pank teie tehingu kinnitab. Sellist panka ei kasuta keegi.

Kuid ülesanne peab olema samal ajal raske, et kõik netikoijad ei leiaks vastust korraga. Sest sel juhul annavad nad võrku teada paljudest samade tehingutega plokkidest ja tekib "topeltraiskamise" võimalus, mida mainisin. Või veel hullem – ühe plokiahela jagamine mitmeks haruks, milles keegi ei saa aru, milline tehing on kinnitatud ja milline mitte.

Kui 12,5 BTC suurune preemia jagatakse välja ainult üks kord iga 10 minuti järel ja ploki leidis ainult üks inimene, siis selgub, et pean videokaarte mitu aastat raiskama lootuses, et ühel päeval kukun 40 000 dollarit. praegune vahetuskurss)?

Täpselt nii on see bitcoini puhul. Kuid see ei olnud alati nii. Varem oli võrk väiksem, keerukus väiksem, mis tähendab, et tõenäosus üksi uuele plokile räsi leida on suurem. Aga siis ei olnud bitcoin nii kallis.

Nüüd ei kaevanda keegi bitcoine üksi. Nüüd on osalejad ühendatud spetsiaalsetesse rühmadesse - kaevandusbasseinidesse, kus kõik koos püüavad leida õiget räsi.

Kui vähemalt üks grupp leiab, jagatakse kogu preemia osalejate vahel, olenevalt nende panusest ühisesse töösse. Selgub, et tegelete kaevandamisega ja saate iga nädal kogu aktsiast sendi.

Kuid üksi kaevandamine on teistes võrkudes täiesti võimalik. Kuni viimase ajani oli lihtne kaevandada Ethereumi, kus plokke leitakse iga 10 sekundi järel. Plokitasu on seal palju väiksem, kuid tõenäosus teenida päris senti on suurem.

Nii et me põletame tuhandeid videokaarte asjata ja pääsu pole?

Jah, aga ideid on. Kaevandamine, mida ma kirjeldasin, on klassikaline ja kannab nimetust Proof-of-Work (töötõend). See tähendab, et iga masin tõestab, et töötas võrgu hüvanguks, lahendades etteantud tõenäosusega mõttetuid probleeme.

Kuid mõned poisid hakkavad plokiahelaid looma teist tüüpi kaevandamisega. Nüüd on populaarsuselt teine kontseptsioon Proof-of-Stake (panuse tõestamine). Seda tüüpi kaevandamise puhul, mida rohkem on võrgus osaleja kontol "münte", seda tõenäolisem on, et ta sisestab oma ploki plokiahelasse. Nagu küla häälekaim mees.

Võite mõelda ka teist tüüpi kaevandamisele. Nagu juba soovitatud, võivad kõik võrgus olevad arvutid otsida vähiravimit, kuid peate välja mõtlema, kuidas sel juhul nende panust süsteemi salvestada. Võin ju deklareerida, et osalen ka, aga lülita oma videokaart välja ja ei loe midagi.

Kuidas hinnata iga osaleja panust vähiravimite leidmisel? Kui sa selle peale tuled – julge oma Vähimünti kärpida, on meedias hüpe sulle garanteeritud.

Plokiahel

Kujutage ette olukorda, kus kogu meie tõenäosusteooriale vaatamata suutsid kaks kaevurit siiski korraga õige vastuse leida. Nad hakkavad üle võrgu saatma kahte absoluutselt õiget plokki.

Need plokid on garanteeritult erinevad, sest isegi kui nad valisid imekombel basseinist samad tehingud, tegid absoluutselt identsed puud ja arvasid ära sama juhusliku arvu (nonce), on nende räsid ikkagi erinevad, sest igaüks kirjutab oma rahakoti numbri plokk tasu eest.

Nüüd on meil kaks kehtivat plokki ja jälle kerkib probleem, kellega tuleks esimesena arvestada. Kuidas võrk sel juhul käitub?

Plokiahela algoritm väidab, et võrgus osalejad lihtsalt aktsepteerivad esimest õiget vastust, mis nendeni jõuab. Siis nad elavad oma maailmapildi alusel.

Mõlemad kaevurid saavad oma tasu ja kõik ülejäänud hakkavad kaevandama, tuginedes viimasele isiklikult saadud plokile, jättes kõrvale kõik ülejäänud on uuesti õiged. Võrku ilmub õigest plokiahelast kaks versiooni. Selline on paradoks.

See on rutiinne olukord, kus tõenäosusteooria aitab taas. Võrk toimib sellises kaheharulises olekus, kuni üks kaevandajatest leiab ühele neist ahelatest järgmise ploki.

Niipea kui selline plokk leitakse ja ahelasse sisestatakse, muutub see pikemaks ja kaasatakse üks plokiahela võrgustiku kokkulepetest: mis tahes tingimustel aktsepteeritakse pikima plokiahelat kui ainuõiget kogu võrgu jaoks.

Lühikese ahela lükkavad kõik võrgus osalejad vaatamata selle korrektsusele tagasi. Sellest tehtud tehingud tagastatakse kogumisse (kui neid pole teises kinnitatud) ja nende töötlemine algab uuesti. Kaevur kaotab oma tasu, kuna tema plokki enam ei eksisteeri.

Võrgustiku kasvuga lähevad sellised "väga ebatõenäolised" kokkusattumused kategooriasse "noh, mõnikord juhtub". Vanamehed räägivad, et oli juhtumeid, kui neljast klotsist koosnev kett sai korraga maha visatud.

Seetõttu on leiutatud kolm ahela lõpu ebaturvalisuse reeglit:

1. Kaevandamise preemiaid saab kasutada alles pärast veel 20 kinnitatud plokki saamist. Bitcoini puhul on see umbes kolm tundi.

2. Kui sulle saadeti bitcoine, saad neid uutes tehingutes sisenditena kasutada alles 1-5 ploki järel.

3. Reeglid 1 ja 2 on lihtsalt iga kliendi seadetes välja toodud. Keegi ei jälgi nende järgimist. Kuid pikima ahela seadus kustutab ikkagi kõik teie tehingud, kui proovite süsteemi petta, et see neid ei jõusta.

Püüab plokiahelat petta

Nüüd, kui teate kaevandamisest, plokiahela seadmest ja pikima ahela reeglist kõike, võib teil tekkida küsimus: kas pikima ahela ise tehes on võimalik kuidagi konkreetselt plokiahelast mööduda, kinnitades sellega oma võltsitud tehinguid.

Oletame, et teil on kõige võimsam arvuti maailmas. Google'i ja Amazoni andmekeskused on teie käsutuses kokku pandud ja proovite arvutada sellist ahelat, millest saab võrgu pikim plokiahel.

Te ei saa võtta ja kohe arvutada mitut ahela plokki, sest iga järgmine plokk sõltub eelmisest. Seejärel otsustate võimalikult kiiresti üles lugeda iga ploki oma tohututes andmekeskustes paralleelselt sellega, kuidas kõik teised osalejad jätkavad peamise plokiahela suurendamist. Kas neist on võimalik mööduda? Tõenäoliselt jah.

Kui teie arvutusvõimsus on üle 50% kõigi võrgus osalejate võimsusest, siis 50% tõenäosusega suudate pikema ahela kiiremini üles ehitada kui kõik teised kokku. See on teoreetiliselt võimalik viis plokiahela petmiseks, arvutades välja pikema tehinguahela. Seejärel loetakse kõik tegeliku võrgu tehingud kehtetuks ja te kogute kõik preemiad ja alustate krüptoraha ajaloos uut verstaposti, mida nimetatakse "plokiahela jagunemiseks". Kunagi oli see koodivea tõttu Ethereumi puhul nii.

Kuid tegelikkuses ei saa ühtki andmekeskust võimsuse poolest võrrelda kõigi maailma arvutitega. Poolteist miljardit hiinlast icicsiga, veel poolteist miljardit nälgivat indiaanlast kaevandusfarmide ja odava elektriga – see on tohutu arvutusvõimsus. Mitte keegi maailmas ei suuda nendega üksi võistelda, isegi mitte Google.

See on nagu minna tänavale ja püüda veenda iga inimest maailmas, et dollar on nüüd väärt 1 rubla ja ole õigel ajal enne, kui meedia sind paljastab. Ja kui teil õnnestub kõiki veenda, võite maailma majanduse kokku kukkuda. Kas teoreetiliselt pole see võimalik? Kuid praktikas ei õnnestunud see millegipärast kellelgi.

Sellel tõenäosusel toetub ka plokiahel. Mida rohkem osalejaid-kaevureid, seda suurem on võrgu turvalisus ja usaldus. Seega, kui Hiinas kaetakse veel üks suur kaevandusfarm, kukub määr kokku. Kõik kardavad, et kusagil maailmas oli kuri geenius, kes oli juba kogunud ~ 49% võimsusega kaevurite basseini.

Järeldus

Blockchain ei ole rangelt määratletud algoritmide kogum. See on struktuur osalejatevahelise võltsvõrgustiku loomiseks, kus keegi ei saa kedagi usaldada. Tõenäoliselt tekkis sul lugedes rohkem kui korra mõte, et “sa saad nii teha ja sellest on veel rohkem kasu”. See tähendab, et saate plokiahelast aru, palju õnne.

Mõned poisid maailmas mõistsid ka seda ja tahtsid end mõne konkreetse ülesande jaoks täiustada või kohandada. Krüptovaluutad ei ole samad, kuigi ka neid on palju. Siin on lühike nimekiri ideedest ja projektidest, mis on tänu plokiahela idee ümbermõtestamisele populaarsust kogunud.

Ethereum

"Eetrid" on Bitcoini järel populaarsuselt teine sõna, mida krüptohüpe-uudistes kuulete. Tavainimeste jaoks on see järjekordne krüptoraha ja viis teha kõige trendikamat asja nimega ICO. Saidi arendajad kirjeldavad Ethereumit kui "teie vajaduste jaoks plokiahela koostajat". See on ka võimalik, jah.

Kui aga kaevata veelgi sügavamale, pole eeter ainult müntide võrgustik. See on tohutu ülemaailmne arvutusmasin, kus kasutajad täidavad teiste inimeste programmide koodi (nutikad lepingud), saades tasu iga täidetud rea eest. Ja kõik see on detsentraliseeritud, hävimatu ja kõigi plokiahela garantiidega.

Ethereumist ja nutikatest lepingutest võime rääkida nii kaua, et sellest piisab teiseks selliseks postituseks. Seega tegutseme tippblogijate stiilis: kui seda postitust aktiivselt uuesti postitada ja retweetida ning reedeks saab see vähemalt 1500 kordumatut vaatamist, kirjutan Ethereumist ja nutikatest lepingutest järje.

Soovitan: