Turinys:

Kaip blokų grandinė iš tikrųjų veikia
Kaip blokų grandinė iš tikrųjų veikia

Video: Kaip blokų grandinė iš tikrųjų veikia

Video: Kaip blokų grandinė iš tikrųjų veikia
Video: Facial Prosthetics Bring Art And Design Together 2024, Gegužė
Anonim

Šis įrašas skirtas visiems papasakoti, kodėl buvo išrasta blokų grandinė, kaip veikia kriptovaliutos ir kodėl tai yra pati gražiausia pastarųjų metų sistema logikos požiūriu.

Iškart perspėsiu, kad po pjūviu yra DILŽIS teksto lapas ir jei nesate pasiruošę kartą ir visiems laikams „uždaryti“klausimo kriptovaliutų tema, jau dabar pridėkite įrašą prie mėgstamiausių ir rezervuokite laiką)

Blockchain yra technologija, nauja, keista, nesuprantama, bet atrodo, kad ji keičia pasaulį, priešingai nei šios jūsų istorijos. Matyt, ji pas mus jau seniai.

Šis įrašas parašytas taip, tarsi jis būtų pasakojamas žmonėms, kurie labai toli nuo kompiuterių ir juos pažįsta tik paviršutiniškai, pavyzdžiui, įsivaizduokite, kad jis ruošėsi jūsų tėvams. Aš netgi galiu tai atmesti savo kolegoms humanitariniams mokslams ir būti tikras, kad jie supras.

Ir Olegas mums visiems padės šiuo sunkiu klausimu. Susitikti!

Jei Olegas tau nepatinka, aš jį išvarysiu.

Pagrindai: kodėl mums reikia „blockchain“?

Blokų grandinė buvo aprašyta Satoshi Nakamoto straipsnyje „Bitcoin: A Peer-to-Peer Electronic Cash System“. Ten vos aštuoniuose puslapiuose autorius aprašė Bitcoin kriptovaliutos pagrindus, kurie buvo paremti Blockchain algoritmu.

Sąrašas, kurio pakeisti negalima

Blockchain - blokų grandinė arba, kitaip tariant, susietas sąrašas. Tokiame sąraše kiekvienas kitas įrašas nurodo vieną ankstesnį, ir taip toliau grandinėje iki paties pirmojo. Kaip traukinio vagonai, kiekvienas tempia kitą. Kalbant apie sąrašus, yra geras Nikitos Likhačiovo straipsnis apie TJ, kur tas pats paaiškinamas visiškai naujokams. Analogijos iš dalies paimtos iš ten.

Paimkime pavyzdį

Olego draugai nuolat iš jo skolinasi pinigų. Olegas malonus, bet nepaprastai užmaršus. Po savaitės jis jau neprisimena, kas jam negrąžino skolos, tačiau gėdijasi apie tai visų klausinėti. Todėl vieną dieną jis nusprendė padaryti tašką savo namuose lentoje sudarydamas draugų, kuriems pasiskolino pinigų, sąrašą.

Dabar Olegas visada gali eiti į lentą ir įsitikinti, kad Maksas viską grąžino, bet Vania jau neduoda 700 rublių. Vieną dieną Olegas pakviečia Vaniją išgerti į savo namus. Kol Olegas eina į tualetą, Vania ištrina įrašą „Už Vaniją pasiskolinau 200 rublių“ir vietoje jo rašo „Vanya davė 500 rublių“.

Savo sąrašu pasitikėjęs Olegas pamiršta skolą ir praranda 700 rublių. Jis nusprendžia kažkaip su tuo kovoti. Praėjusiais metais Olegas lankė programavimo kursus, kur jam buvo pasakyta apie maišą. Jis prisimena, kad bet kurią eilutę galima paversti nedviprasmišku simbolių rinkiniu – maiša, o pakeitus bet kurį eilutės simbolį, jis visiškai pasikeis.

Pabaigoje pridėjus tašką galutinė maiša pasikeitė neatpažįstamai – galite jį naudoti.

Olegas paima gerai žinomą maišą SHA-256 ir sumaišo kiekvieną įrašą, pridėdamas rezultatą pabaigoje. Dabar Olegas gali įsitikinti, kad jo įrašų niekas nepakeitė, dar kartą juos maišydamas ir palygindamas su žaliuoju.

Tačiau EVIL IVAN taip pat žino, kaip naudoti SHA-256 ir gali lengvai pakeisti įrašą kartu su maiša. Ypač jei maiša yra parašyta prie pat lentos.

Todėl, siekdamas didesnio saugumo, Olegas nusprendžia maišyti ne tik patį įrašą, bet ir pridėti jį kartu su maiša iš ankstesnio įrašo. Dabar visi šie įrašai priklauso nuo ankstesnių. Jei pakeisite bent vieną eilutę, turėsite perskaičiuoti visų kitų žemiau esančiame sąraše esančių maišos vertes.

Tačiau vieną dieną Ivanas prisėlina naktį, pakeičia jam reikalingą įrašą ir atnaujina viso sąrašo maišą iki galo. Jis užtrunka kelias valandas, bet Olegas vis dar kietai miega ir negirdi. Ryte Olegas atranda visiškai teisingą sąrašą – visos maišos sutampa. Bet Ivanas vis tiek jį apgavo, nors praleido bemiegę naktį. Kaip kitaip apsisaugoti nuo Nakties Ivano?

Olegas nusprendžia kažkaip apsunkinti savo gyvenimą. Dabar, norėdamas į sąrašą įtraukti naują įrašą, Olegas išspręs su juo susijusią sudėtingą problemą, pavyzdžiui, matematinę lygtį. Jis pridės atsakymą prie paskutinės maišos.

Olegas puikiai išmano matematiką, bet net įrašui pridėti prireikia dešimties minučių. Nepaisant to, praleistas laikas yra vertas, nes jei Ivanas vėl norės ką nors pakeisti, jis turės iš naujo išspręsti kiekvienos eilutės lygtis, kurių gali būti dešimtys. Tai užtruks daug laiko, nes lygtys kiekvieną kartą yra unikalios ir susijusios su konkrečiu įrašu.

Tačiau patikrinti sąrašą taip pat paprasta: pirmiausia reikia lyginti maišas, kaip ir anksčiau, o tada patikrinti lygčių sprendinius paprastu pakeitimu. Jei viskas susilieja, sąrašas nesikeičia.

Iš tikrųjų su lygtimis viskas nėra taip gerai: kompiuteriai jas išsprendžia per gerai, o kur saugoti tiek daug unikalių lygčių. Todėl blokų grandinės autoriai sugalvojo gražesnę problemą: reikia rasti tokį skaičių (nonce), kad galutinis viso įrašo maišas prasidėtų nuo 10 nulių. Tokį niekšybę sunku rasti, bet rezultatą visada galima patikrinti tiesiog akimis.

Dabar Olegas patikrina visas maišas ir papildomai užtikrina, kad kiekviena prasidėtų nurodytu nulių skaičiumi. Gudrus Ivanas, net ginkluotas galingu nešiojamuoju kompiuteriu, neturės laiko per naktį perskaičiuoti visų maišų, kad jie atitiktų sąlygą - laiko neužteks.

Tiesą sakant, toks sąrašas yra namų blokų grandinė. Jos saugumą garantuoja matematikai, įrodę, kad šių maišų kažkaip greičiau neįmanoma apskaičiuoti, nebent žiauria jėga. Toks maišos surašymas kiekvienam įrašui yra kasyba, apie kurią šiandien bus daug ir išsamiai.

Pasitikėjimo centralizavimas

Mūsų draugams patiko idėja sudaryti netikrą sąrašą „kas kam pasiskolino“. Jie taip pat nenori prisiminti, kas už ką sumokėjo bare ir kiek dar yra skolingi - viskas parašyta ant sienos. Aptarėte idėją ir nusprendėte, kad dabar jums reikia vieno sąrašo visiems.

Tačiau kam turėtų būti patikėta tokia svarbi buhalterija? Juk kalbant apie pinigus, iškyla pasitikėjimas. Mes nepasitikėsime, kad nepažįstamieji pasiliks savo pinigus. Tam mūsų protėviai išrado bankus, kuriais laikui bėgant imta pasitikėti, nes juos remia centrinio banko licencija, įstatymai ir draudimas.

Draugų rate visi vieni kitais pasitiki ir šiam vaidmeniui galima tiesiog išsirinkti atsakingiausią. Bet ką daryti, jei klausimas yra apie nepažįstamus žmones? Visas miestas, šalis ar visas pasaulis, kaip yra Bitcoin atveju? Apskritai niekas ten negali niekuo pasitikėti.

Decentralizacija: niekas niekuo nepasitiki

Taigi jie sugalvojo alternatyvų būdą: pasilikti sąrašo kopiją visiems. Taigi, užpuolikas turėtų ne tik perrašyti vieną sąrašą, bet ir įlįsti į kiekvieną namą ir ten perrašyti sąrašus. Ir tada paaiškėja, kad kažkas namuose laikė kelis sąrašus, apie kuriuos niekas nežinojo. Tai yra decentralizacija.

Šio metodo trūkumas yra tas, kad norėdami įvesti naujus įrašus, turėsite paskambinti visiems kitiems dalyviams ir informuoti kiekvieną iš jų apie naujausius pakeitimus. Bet jei šie dalyviai yra bedvasės mašinos, tai nustoja būti problema.

Tokioje sistemoje nėra vieno pasitikėjimo taško, taigi ir kyšininkavimo bei sukčiavimo galimybės. Visi sistemos dalyviai veikia pagal vieną taisyklę: niekas niekuo nepasitiki. Kiekvienas tiki tik ta informacija, kurią turi savo žinioje. Tai yra pagrindinis bet kurio decentralizuoto tinklo dėsnis.

Sandoriai

Pirkdami puodą parduotuvėje, įvedate PIN kodą iš savo kortelės, leidžiant parduotuvei paklausti banko, ar jūsų sąskaitoje yra 35 rubliai. Kitaip tariant, jūs pasirašote operaciją už 35 rublius su savo PIN kodu, kurį bankas patvirtina arba atmeta.

Mūsų įrašai „pasiskolinau Vaniją 500 rublių“taip pat yra sandoriai. Bet mes neturime banko, leidžiančio sandorių autorių. Kaip patikrinti, ar Ivanas tyliai nepridėjo įrašo „Maksas skolingas Olegui 100 500 rublių“?

„Blockchain“tam naudoja viešųjų ir privačių raktų mechanizmą, IT specialistai jau seniai juos naudoja autorizuodami tame pačiame SSH. Tai paaiškinau ant pirštų skilties „Šifravimo įvadas“įraše „Sauga, šifravimas, kiberpankas“.

Trumpai apie tai, kaip veikia ši sudėtinga, bet graži matematika: savo kompiuteryje sukuriate porą ilgų pirminių skaičių – viešąjį ir privatųjį raktą. Privatus raktas laikomas ypač slaptu, nes jis gali iššifruoti tai, kas užšifruota viešai.

Tačiau veikia ir priešingai. Jei bendrinsite viešąjį raktą su visais savo draugais, jie galės užšifruoti bet kurį jiems skirtą pranešimą, kad tik jūs galėtumėte jį perskaityti, nes jums priklauso privatus.

Tačiau be to, viešasis raktas turi ir naudingą poveikį – su juo galite patikrinti, ar duomenys buvo užšifruoti jūsų privačiu raktu, neiššifruodami pačių duomenų. Visos šios savybės puikiai aprašytos „Šifrų knygoje“.

Esame decentralizuotame internete, kuriame niekuo negalima pasitikėti. Sandoris pasirašomas privačiu raktu ir kartu su viešuoju raktu siunčiamas į specialią saugyklą – nepatvirtintų operacijų telkinį. Taigi bet kuris tinklo narys gali patikrinti, ar tai inicijavote jūs, o ne kas nors kitas nori atsiskaityti jūsų pinigais.

Tai užtikrina tinklo atvirumą ir saugumą. Jei anksčiau už tai buvo atsakingi bankai, blokų grandinėje už tai atsakingi matematikai.

Paprastiems vartotojams, nenorintiems išsiaiškinti, kaip išduoti ir saugoti privačius raktus, padės internetinės piniginės paslaugos. Norint nukopijuoti ilgus viešuosius raktus, ten daromi patogūs QR kodai. Pavyzdžiui, „Blockchain Wallet“, nes turi patogią mobiliąją aplikaciją ir palaiko dvi pagrindines kriptovaliutas – BTC ir ETH.

Trūksta sąvokos „pusiausvyra“

Kaip ir mūsų lenta, „blockchain“iš esmės susideda tik iš operacijų istorijos. Joje nesaugomas kiekvienos piniginės likutis, antraip tektų sugalvoti papildomų apsaugos būdų.

Tik privatus raktas patvirtina piniginės nuosavybės teisę. Bet kaip kiti tinklo nariai gali įsitikinti, kad turiu pakankamai pinigų pirkti?

Kadangi mes neturime pusiausvyros, turite tai įrodyti. Todėl „blockchain“operacija apima ne tik jūsų parašą ir tai, kiek norite išleisti, bet ir nuorodas į ankstesnes operacijas, kuriose gavote reikiamą pinigų sumą.

Tai yra, jei norite išleisti 400 rublių, perbėgate visą savo pajamų ir išlaidų istoriją ir prie operacijos pridedate pajamas, kuriose jums buvo duota 100 + 250 + 50 rublių, taip įrodydami, kad turite šiuos 400 rublių.

Kiekvienas tinklo narys dar kartą būtinai patikrins, ar du kartus nepridėjote pajamų. Tų 300 rublių, kuriuos Maksas davė praėjusią savaitę, tu tikrai dar neišleidai.

Tokios su sandoriu susijusios pajamos blokų grandinėje vadinamos įvestimis, o visi pinigų gavėjai – išvestimis. Visų įėjimų suma retai būna lygiai tokia pati, kokią norite perkelti vienu metu – todėl vienas iš išėjimų dažniausiai būsite jūs pats. Kitaip tariant, operacija blokų grandinėje atrodo taip: „Man buvo duoti 3 ir 2 BTC, noriu iš jų pervesti 4 BTC, o likusį 1 BTC grąžinti atgal“.

„Blockchain“grožis yra tas, kad įvestis nebūtinai turi būti iš vienos piniginės. Juk tikrinamas tik raktas. Jei žinote visų įvestų privatų raktą, galite lengvai juos pridėti prie operacijos ir sumokėti šiais pinigais. Tarsi prekybos centre mokėtum keliomis kortelėmis, iš kurių žinai pin kodą.

Tačiau jei pametate privatų raktą, jūsų diskas miršta arba nešiojamasis kompiuteris bus pavogtas, jūsų bitkoinai bus prarasti amžiams. Niekas negali jų naudoti kaip įvesties naujiems sandoriams.

Ši suma visam pasauliui bus neprieinama amžinai – tarsi sudegintum pluoštą banknotų. Nėra nei vieno banko, kur galėtum parašyti prašymą su paso kopija, o jis atsispausdins. Tam reikia papildomai „iš oro“išleisti naujus bitkoinus.

Dvigubo išlaidų problema

Aukščiau sakiau, kad operacijos įtraukiamos į specialų „nepatvirtintų sandorių telkinį“. Kam mums reikalingas koks nors tarpinis subjektas, jei jau turime jau paruoštas pasirašytas operacijas? Kodėl jų neparašius tiesiai į blokų grandinę?

Kadangi signalai iš taško A į tašką B visada eina su vėlavimu. Du sandoriai gali vykti visiškai skirtingais būdais. O pirma inicijuota operacija gavėją gali pasiekti vėliau, nes tai nuėjo ilgesniu keliu.

Dėl to išleidžiama dvigubai, kai tie patys pinigai buvo išsiųsti dviem adresatams iš karto, apie ką jie net nenutuoktų. Tai ne tam, kad perduotų sąskaitas iš rankų į rankas.

Decentralizuotame tinkle, kuriame niekuo negalima pasitikėti, ši problema yra ypač opi. Štai kaip įsitikinti, kad viena operacija tikrai buvo ankstesnė už kitą? Paprašykite siuntėjo susiūti išsiuntimo laiką, tiesa? Tačiau atminkite – niekuo negalima pasitikėti, net siuntėju.

Laikas visuose kompiuteriuose būtinai skirsis ir nėra garantuoto būdo juos sinchronizuoti. Blockchain kopija saugoma kiekviename tinklo kompiuteryje ir kiekvienas dalyvis pasitiki tik ja.

Kaip įsitikinti, kad viena operacija buvo ankstesnė už kitą?

Atsakymas paprastas: tai neįmanoma. Neįmanoma patvirtinti operacijos decentralizuotame tinkle laiko. Ir šios problemos sprendimas yra trečioji svarbi „blockchain“idėja, kurią sugalvojo Satoshi ir kuri, kaip bebūtų keista, yra išrašyta būtent jo vardu – blokai.

Blokai yra blokų grandinės pagrindas

Kiekvienas tinklo veikiantis kompiuteris iš bendro telkinio pasirenka bet kokias jam patinkančias operacijas. Paprastai tik už didžiausią komisinį atlyginimą, kurį jis gali uždirbti. Taigi jis renka sandorius sau, kol bendras jų dydis pasiekia sutartą ribą. Bitcoine šis bloko dydžio limitas yra 1 MB (po SegWit2x bus 2 MB), o Bitcoin Cash – 8 MB.

Visa blokų grandinė iš esmės yra tokių blokų sąrašas, kuriame kiekvienas nurodo ankstesnįjį. Jis gali būti naudojamas sekti bet kokią operaciją per visą istoriją, išvynioti blokų grandinę net iki pirmojo įrašo.

Būtent šis sąrašas dabar sveria šimtus gigabaitų ir turi būti visiškai atsisiųstas į visus kompiuterius, kurie nori prisijungti prie tinklo (tačiau tai nėra būtina norint tiesiog sukurti operacijas ir pervesti pinigus). Iš visų artimiausių tinklo kompiuterių jis parsisiunčiamas taip pat, lyg serialas atsisiunčiamas iš torrentų, jame kas 10 minučių išleidžiami tik nauji nauji epizodai.

Įvedęs sau operacijas iš fondo, kompiuteris iš jų pradeda sudaryti tą patį nepakartojamą sąrašą, kaip mes darėme įrašo pradžioje lentoje namuose.

Tik jis padaro medžio pavidalu - sumaišo įrašus poromis, tada rezultatas vėl poromis ir taip, kol lieka tik viena maiša - medžio šaknis, kuri pridedama prie bloko. Kodėl būtent su medžiu – atsakymo neradau, bet manau, kad taip tiesiog greičiau. Skaitykite daugiau wiki: Merkle medis.

Kadangi dabartinė blokų grandinė jau buvo atsisiųsta, mūsų kompiuteris tiksliai žino, koks yra paskutinis blokas. Jam tereikia bloko antraštėje pridėti nuorodą į jį, sumaišyti viską ir pasakyti visiems kitiems tinklo kompiuteriams „žiūrėk, aš sukūriau naują bloką, įtraukime jį į savo blokų grandinę“.

Likusieji turėtų patikrinti, ar blokas pastatytas pagal visas taisykles ir ar ten nepridėjome nereikalingų operacijų, o tada įtraukti jas į savo grandines. Dabar visi sandoriai jame pasitvirtino, blockchain padidintas vienu bloku ir viskas klostosi gerai, ar ne?

Bet ne. Tinkle vienu metu dirba tūkstančiai kompiuterių ir vos sumontavę naują bloką beveik vienu metu puola visiems pranešti, kad jų blokas buvo sukurtas pirmas. O iš ankstesnės dalies jau žinome, kad decentralizuotame tinkle neįmanoma įrodyti, kas iš tikrųjų buvo pirmasis.

Kaip ir mokykloje, kai visi sprendė sunkų testą, retai pasitaikydavo, kad net puikūs mokiniai atsakinėjo vienu metu.

Bet jei žmogui sudėtinga užduotis suplanuoti atostogas, kad jis sulauktų gegužės švenčių, o bilietai į jūrą nebrangūs, tai kompiuteriui tokį skaičių (nonce) reikia pridėti prie pabaigos. blokas, kad dėl to viso bloko SHA-256 maiša prasidėtų, tarkime, 10 nulių. Tai yra problema, kurią reikia išspręsti norint pridėti bloką prie Bitcoin tinklo. Kitų tinklų užduotys gali skirtis.

Taigi mes priėjome prie kasybos sampratos, kuria pastaraisiais metais visi buvo taip apsėsti.

Kasyba

Bitcoin kasyba nėra koks nors šventas sakramentas. Kasyba – tai ne naujų bitkoinų paieška kažkur interneto gelmėse. Kasyba yra tada, kai tūkstančiai kompiuterių visame pasaulyje dūzgia rūsiuose, per sekundę perkelia milijonus skaičių ir bando rasti maišą, prasidedantį 10 nulių. Jiems net nereikia prisijungti prie interneto, kad tai padarytų.

Vaizdo plokštės su šimtais lygiagrečių branduolių išsprendžia šią problemą greičiau nei bet kuris procesorius.

Kodėl būtent 10 nulių? Ir tiesiog taip, tai neturi prasmės. Taigi Satoshi sugalvojo. Nes tai viena iš tų problemų, kuriai sprendimas visada yra, bet jo tikrai nepavyks rasti greičiau nei ilgas monotoniškas variantų išvardijimas.

Kasybos sudėtingumas tiesiogiai priklauso nuo tinklo dydžio, ty nuo jo bendros galios. Jei sukursite savo blokų grandinę ir patys ją paleisite namuose dviejuose nešiojamuosiuose kompiuteriuose, tada užduotis turėtų būti paprastesnė. Pavyzdžiui, kad maiša prasidėtų tik vienu nuliu, arba kad lyginių skaitmenų suma būtų lygi nelyginių skaitmenų sumai.

Prireiks kelių dešimtmečių, kol vienas kompiuteris ras maišą, prasidedantį 10 nulių. Bet jei sujungiate tūkstančius kompiuterių į vieną tinklą ir ieškote lygiagrečiai, tada, remiantis tikimybių teorija, ši problema išsprendžiama vidutiniškai per 10 minučių. Tai laikas, kai bitcoin blokų grandinėje atsiranda naujas blokas.

Kas 8–12 minučių kas nors žemėje randa tokį maišą ir gauna privilegiją visiems pranešti apie savo atradimą, taip išvengiant problemos, kas buvo pirmasis.

Už atsakymo suradimą kompiuteris (2017 m. duomenimis) gauna 12,5 BTC – tiek atlygio, kurį bitkoinų sistema generuoja „iš oro“ir mažėja kas ketverius metus.

Techniškai tai reiškia, kad kiekvienas kalnakasys prie savo bloko visada prideda dar vieną operaciją - „sukurkite 12,5 BTC ir nusiųskite juos į mano piniginę“. Kai išgirsti „bitkoinų skaičius pasaulyje ribojamas iki 21 milijono, dabar jie jau pasamdė 16 milijonų“– tokį atlygį generuoja tinklas.

Eikite ir pamatykite tikrą Bitcoin bloką vienoje iš tam skirtų svetainių. Taip pat yra operacijos su įvestimis ir išvestimis, o pradžioje net 18 nulių ir visos aukščiau aprašytos maišos.

Būtent kalnakasiai įtraukia naujas operacijas į blokų grandinę. Taigi, jei kas nors jums pasakys, kad „sukurs blokų grandinę ***“, pirmas klausimas, kurį jis turi atsakyti, yra tai, kas jį užmins ir kodėl. Dažniausiai teisingas atsakymas yra „visi padarys, nes kasybai atiduodame savo monetas, kurios augs ir kalnakasiams tai bus pelninga“. Tačiau tai galioja ne visiems projektams.

Pavyzdžiui, kokia nors Sveikatos apsaugos ministerija rytoj sukurs savo uždarą blokų grandinę gydytojams (o jie to nori), kas ją išmins? Savaitgalio terapeutai?

Bet kokia bus nauda kalnakasiams vėliau, kai atlygis išnyks arba taps menkas?

Pagal Kūrėjo sumanymą, iki to laiko žmonės turės patikėti bitkoino realumu ir kasyba pradės atsipirkti į kiekvieną operaciją įtrauktų mokesčių suma. Čia viskas vyksta: dar 2012 m. visi komisiniai buvo nuliniai, kalnakasiai kasdavo tik už atlygį iš blokų. Šiandien sandoris su nuliniu komisiniu gali kabėti baseine kelias valandas, nes yra konkurencija ir žmonės noriai moka už greitį.

Tai yra, kasybos esmė yra beprasmių problemų sprendimas. Ar negalima visos šios galios panaudoti kam nors naudingesniam – pavyzdžiui, vaistų nuo vėžio paieškoms?

Kasybos esmė yra išspręsti bet kokią skaičiavimo problemą. Ši užduotis turėtų būti pakankamai paprasta, kad tinklo dalyviai turėtų stabilią tikimybę rasti atsakymą – kitu atveju sandoriai bus patvirtinti amžinai. Įsivaizduokite, kad prie kasos parduotuvėje kiekvieną kartą turite laukti pusvalandį, kol bankas patvirtins jūsų operaciją. Niekas tokiu banku nesinaudos.

Tačiau užduotis turi būti kartu ir sunki, kad atsakymo nerastų visi internautai iš karto. Nes tokiu atveju į tinklą paskelbs daug blokų su vienodomis operacijomis ir bus galimybė „dvigubai švaistyti“, ką minėjau. Arba dar blogiau – vienos blokų grandinės padalijimas į kelias šakas, kuriose niekas negali suprasti, kuris sandoris patvirtintas, o kuris ne.

Jei 12,5 BTC atlygis išdalinamas tik kartą per 10 minučių ir tik vienas asmuo, radęs bloką, paaiškėja, kad turiu kelerius metus švaistyti vaizdo plokštes, tikėdamasis, kad vieną dieną numesiu 40 000 USD dabartinis valiutos kursas)?

Būtent taip yra bitkoinų atveju. Bet taip buvo ne visada. Anksčiau tinklas buvo mažesnis, sudėtingumas mažesnis, o tai reiškia, kad tikimybė vienam rasti maišą naujam blokui yra didesnė. Bet tada bitkoinas nebuvo toks brangus.

Dabar niekas negauna vien bitkoinų. Dabar dalyviai susivieniję į specialias grupes – kasybos baseinus, kuriuose visi kartu bando rasti tinkamą maišą.

Jei bent viena grupė randa, visas atlygis dalijamas dalyviams, atsižvelgiant į jų indėlį į bendrą darbą. Pasirodo, jūs kasate ir kiekvieną savaitę gaunate po centą iš visos akcijos.

Tačiau solo kasyba yra visiškai įmanoma kituose tinkluose. Dar visai neseniai buvo lengva iškasti Ethereum, kur blokeliai randami kas 10 sekundžių. Bloko atlygis ten yra daug mažesnis, tačiau tikimybė uždirbti gražų centą yra didesnė.

Vadinasi, veltui deginsime tūkstančius vaizdo plokščių ir nėra išeities?

Taip, bet idėjų yra. Mano aprašyta kasyba yra klasikinė ir vadinama darbo įrodymu (darbo įrodymas). Tai yra, kiekviena mašina įrodo, kad ji dirbo tinklo naudai, spręsdama beprasmes problemas su tam tikra tikimybe.

Tačiau kai kurie vaikinai pradeda kurti blokų grandines su kitomis kasybos rūšimis. Dabar antra pagal populiarumą koncepcija yra „Proof-of-Stake“(įrodymas). Šio tipo kasybos metu kuo daugiau „monetų“tinklo dalyvis turi savo paskyroje, tuo didesnė tikimybė, kad jis įdės savo bloką į blokų grandinę. Kaip garsiausias vaikinas kaime.

Galite galvoti apie kitus kasybos tipus. Kaip jau buvo pasiūlyta, visi tinkle esantys kompiuteriai gali ieškoti vaistų nuo vėžio, tik jums reikia išsiaiškinti, kaip šiuo atveju užfiksuoti jų indėlį į sistemą. Juk galiu deklaruoti, kad ir aš dalyvauju, bet išjungti vaizdo plokštę ir nieko neskaičiuoti.

Kaip kiekybiškai įvertinate kiekvieno dalyvio indėlį ieškant vaistų nuo vėžio? Jei sugalvosite – išdrįskite sumažinti savo CancerCoin, ažiotažas žiniasklaidoje jums garantuotas.

Blockchain

Įsivaizduokite situaciją, kai, nepaisant visos mūsų tikimybių teorijos, du kalnakasiai vis tiek sugebėjo vienu metu rasti teisingą atsakymą. Jie pradeda siųsti du visiškai teisingus blokus per tinklą.

Garantuojama, kad šie blokai bus skirtingi, nes net jei jie per stebuklą pasirinko tas pačias operacijas iš baseino, padarė visiškai identiškus medžius ir atspėjo tą patį atsitiktinį skaičių (nonce), jų maišos vis tiek skirsis, nes kiekvienas įrašys savo piniginės numerį. blokas už atlygį.

Dabar turime du galiojančius blokus ir vėl iškyla problema, į ką pirmiausia reikėtų atsižvelgti. Kaip tinklas elgsis šiuo atveju?

Blockchain algoritmas teigia, kad tinklo dalyviai tiesiog priima pirmąjį teisingą atsakymą, kuris juos pasiekia. Tada jie gyvena remdamiesi savo pasaulio paveikslu.

Abu kalnakasiai gaus savo atlygį, o visi likusieji pradės kasti, pasikliaudami paskutiniu bloku, kurį jie asmeniškai gavo, o visus likusius išmesdami iš naujo teisingai. Tinkle pasirodo dvi tinkamos blokų grandinės versijos. Toks yra paradoksas.

Tai įprasta situacija, kurioje vėl padeda tikimybių teorija. Tinklas veikia tokioje dvišakėje būsenoje, kol vienas iš kalnakasių suranda kitą bloką vienoje iš šių grandinių.

Kai tik toks blokas randamas ir įterpiamas į grandinę, jis tampa ilgesnis ir įtraukiama viena iš blockchain tinklo sutarčių: bet kokiomis sąlygomis ilgiausia blokų grandinė yra priimama kaip vienintelė teisinga visame tinkle.

Trumpąją grandinę, nepaisant viso jos teisingumo, atmeta visi tinklo dalyviai. Sandoriai iš jo grąžinami į telkinį (jei jie nebuvo patvirtinti kitame), o jų apdorojimas pradedamas iš naujo. Kalnakasys netenka atlygio, nes jo bloko nebėra.

Plečiantis tinklui, tokie sutapimai iš „labai mažai tikėtinų“patenka į kategoriją „na, kartais taip atsitinka“. Senoliai pasakoja, kad pasitaikydavo atvejų, kai iš karto numeta keturių kaladėlių grandinė.

Dėl šios priežasties buvo išrastos trys grandinės pabaigos nesaugumo taisyklės:

1. Atlygį už kasybą galima panaudoti tik gavus dar 20 patvirtintų blokų. Bitcoin atveju tai yra maždaug trys valandos.

2. Jei jums buvo išsiųsti bitkoinai, juos naudoti kaip įvestis naujose operacijose galite tik po 1-5 blokų.

3. 1 ir 2 taisyklės yra tiesiog nurodytos kiekvieno kliento nustatymuose. Niekas nekontroliuoja jų laikymosi. Tačiau ilgiausios grandinės įstatymas vis tiek sunaikins visas jūsų operacijas, jei bandysite apgauti sistemą, kad jos nevykdytų.

Bandoma apgauti blokų grandinę

Dabar, kai žinote viską apie kasybą, blokų grandinės įrenginį ir ilgiausios grandinės taisyklę, jums gali kilti klausimas: ar įmanoma kaip nors konkrečiai aplenkti blokų grandinę, pačiam susidarius ilgiausią grandinę ir taip patvirtinti savo netikras operacijas.

Tarkime, kad turite galingiausią kompiuterį žemėje. „Google“ir „Amazon“duomenų centrai yra jūsų dispozicijoje ir jūs bandote apskaičiuoti tokią grandinę, kuri taps ilgiausia blokų grandine tinkle.

Negalite imti ir iš karto apskaičiuoti kelių grandinės blokų, nes kiekvienas kitas blokas priklauso nuo ankstesnio. Tada nusprendžiate kuo greičiau suskaičiuoti kiekvieną bloką savo didžiuliuose duomenų centruose kartu su tuo, kaip visi kiti dalyviai toliau didina pagrindinę blokų grandinę. Ar įmanoma juos aplenkti? Tikriausiai taip.

Jei jūsų skaičiavimo galia yra didesnė nei 50% visų tinklo dalyvių galios, tada su 50% tikimybe galėsite sukurti ilgesnę grandinę greičiau nei visos kitos kartu sudėjus. Tai teoriškai galimas būdas apgauti blokų grandinę apskaičiuojant ilgesnę operacijų grandinę. Tada visos tikrojo tinklo operacijos bus laikomos negaliojančiomis, o jūs surinksite visus atlygius ir pradėsite naują kriptovaliutų istorijos etapą, vadinamą „blockchain divizija“. Kartą dėl kodo klaidos taip buvo su Ethereum.

Tačiau iš tikrųjų joks duomenų centras negali būti lyginamas pagal galią su visais pasaulio kompiuteriais. Pusantro milijardo kinų su icicsu, dar pusantro milijardo alkanų indų su kasybos ūkiais ir pigia elektra – tai didžiulė skaičiavimo galia. Niekas pasaulyje dar negali konkuruoti su jais vieni, net Google.

Tai tarsi išėjimas į gatvę ir bandymas įtikinti kiekvieną pasaulio žmogų, kad doleris dabar vertas 1 rublio, ir spėkite, kol žiniasklaida jus nepaskels. O jei pavyks visus įtikinti, gali sugriūti pasaulio ekonomika. Teoriškai argi tai neįmanoma? Tačiau praktiškai niekam kažkodėl nepavyko.

Blockchain taip pat remiasi šia tikimybe. Kuo daugiau dalyvių – kalnakasių, tuo daugiau saugumo ir pasitikėjimo tinklu. Todėl, kai Kinijoje padengiamas kitas didelis kasybos ūkis, rodiklis žlunga. Visi bijo, kad kažkur pasaulyje buvo piktasis genijus, kuris jau buvo surinkęs kalnakasių baseiną ~ 49% pajėgumu.

Išvada

Blockchain nėra griežtai apibrėžtas algoritmų rinkinys. Tai struktūra, skirta sukurti netikrą tinklą tarp dalyvių, kur niekas negali niekuo pasitikėti. Skaitant tikriausiai ne kartą kilo mintis, kad „gali taip padaryti ir bus dar naudingiau“. Tai reiškia, kad jūs suprantate „blockchain“, sveikiname.

Kai kurie pasaulio vaikinai taip pat tai suprato ir norėjo tobulėti ar prisitaikyti prie kokių nors specifinių užduočių. Kriptovaliutos nėra vienodos, nors jų taip pat yra daug. Pateikiame trumpą kai kurių idėjų ir projektų, kurie sulaukė populiarumo pergalvojant blockchain idėją, sąrašas.

Ethereum

„Eteriai“yra antras pagal populiarumą žodis, kurį girdite kriptovaliutų naujienose po Bitcoin. Paprastiems žmonėms tai dar viena kriptovaliuta ir būdas padaryti madingiausią dalyką, vadinamą ICO. Svetainės kūrėjai apibūdina „Ethereum“kaip „blockchain kūrėją jūsų poreikiams“. Tai taip pat įmanoma, taip.

Bet jei kastitės dar giliau, eteris nėra tik monetų tinklas. Tai didžiulė pasaulinė skaičiavimo mašina, kurioje vartotojai vykdo svetimų programų kodą (išmaniąsias sutartis), gaudami atlygį už kiekvieną įvykdytą eilutę. Ir visa tai decentralizuota, nesunaikinama ir su visomis blokų grandinės garantijomis.

Apie Ethereum ir išmaniąsias sutartis galime kalbėti tiek ilgai, kad užteks dar vienam tokiam įrašui. Todėl elgsimės geriausių tinklaraštininkų stiliumi: jei šis įrašas bus aktyviai repostuojamas ir retvitinamas, o iki penktadienio jis sulauks bent 1500 unikalių peržiūrų, parašysiu tęsinį apie Ethereum ir išmaniąsias sutartis.

Rekomenduojamas: