blockchain

Osnove bitcoina: Blockchain, zgoščevanje in rudarjenje ... o moj!

Nadaljujemo z brisanjem prahu iz arhivov s tem delom iz Daz Bea, ki je bil prvič objavljen na Mediumu julija 2021. Za večjo jasnost je bilo narejenih nekaj manjših popravkov ... uživajte.

Morda ste novi v bitcoinu ali pa ste bili že nekaj časa v zajčji luknji, vendar nikoli niste zares razumeli, kaj se dogaja v zakulisju, v verigi blokov. Upam, da bom razkril skrivnost verige blokov, zgoščevanja, rudarjenja bitcoinov in porazdeljenih knjig v enem preprostem članku. Pripnite se, veliko moramo opraviti.

SHA256 Zgoščevanje

Omrežje bitcoin uporablja algoritem SHA256 za izvajanje funkcij zgoščevanja. Ste že zmedeni? Ne skrbite, to je lahko zelo zapleteno in veliko nad mojo plačo, vendar bom razložil osnove, kolikor bom lahko.

Zgoščevanje si predstavljajte kot ustvarjanje digitalnega prstnega odtisa nabora podatkov. Podatki gredo v algoritem (vhod), algoritem dela svojo čarovnijo in izpljune vrsto alfanumeričnih znakov (izhod). Pri zgoščevanju je res kul to, da ni pomembno, koliko podatkov preženete skozi algoritem, izhod je vedno enake dolžine, 64 šestnajstiških znakov za algoritem SHA256.

Slika 1 prikazuje zgoščevalno funkcijo SHA256 (od tukaj bomo to imenovali zgoščevanje) z imenom »Daz«. »Daz« je vhod in 3445748836aa04e53fd5de81c41c4a370f0cf52004659abf87920abc0da1bbaf je izhod ...
Enostavno, kajne?

številka 1
Slika 1. Zgoščena vrednost imena »Daz«

Zdaj bom spremenil veliko začetnico "D" v malo črko "d" (slika 2), da pokažem, da ena preprosta, majhna sprememba vnosa povzroči popolnoma nov rezultat. Vhod=daz, izhod = ae5e9de1ed5510933a86705cb253b3cbd0b0891e70217c7a64603869aeaac093. Kot lahko vidite iz našega novega rezultata, so liki v primerjavi z izvirnikom popolnoma drugačni. Med obema ni opaznega vzorca.

posnetek zaslona 2023 07 15 pri 10.22.51 am
Slika 2. Zgoščena vrednost imena »daz« z malo črko »d«

Kot smo že omenili, je rezultat zgoščene vrednosti dolg 64 znakov. To je vedno tako, ne glede na velikost podatkov, ki jih vstavimo v algoritem. Na sliki 3 v vhod prilepim celoten članek iz Wikipedije o Fender Stratocasters, izhod pa ostane dolg 64 znakov. Ta funkcija bi ostala resnična, če bi skozi algoritem dali celotno vsebino interneta, vsakič 64 znakov.

fender hash
Slika 3. Zgoščena vrednost članka iz Wikipedije o Fender Stratocaster (vir: https://en.wikipedia.org/wiki/Fender_Stratocaster)

Značilnost zgoščevalne funkcije SHA256 je, da če bi znova zgoščevali povsem isti nabor podatkov, bi vsakič dobili isti zgoščeni podatek. To je nekaj, kar se po vsem svetu pogosto uporablja za primerjavo številnih velikih naborov podatkov, da se zagotovi njihova točnost. Primerjava zgoščenih rezultatov je lažja kot primerjava celotne vsebine znak za znakom. Ta funkcija je osnova verige blokov bitcoinov. Potopimo se v naslednji košček te uganke ... Bloki.

Bloki in rudarjenje

Zgoščevalno funkcijo SHA256 lahko uporabimo za začetek sestavljanja podatkov. Za vsak blok imamo vhod (niz podatkov) in tem podatkom dodamo nekaj razlikovalnih lastnosti, kot je na primer številka bloka. In poženemo ga skozi zgoščevalno funkcijo.

Na sliki 4 lahko vidimo, da imamo nekaj podatkovnih polj, kot je blok #, nonce (o tem bomo kmalu govorili), in trenutno je naše podatkovno polje prazno. Hash teh vključujočih polj podatkov je: 0000f727854b50bb95c054b39c1fe5c92e5ebcfa4bcb5dc279f56aa96a365e5a

blok 1 hash
Slika 4. Primer bloka 1

Opazili boste razlikovalno lastnost te zgoščene vrednosti, opazili boste, da so vsi 4 glavni znaki ničle. To ni naključje. Vidite, izhodna zgoščena vrednost algoritma SHA0 je dejansko zelo velika številka. V vsakdanjem življenju smo navajeni uporabljati številski sistem, imenovan base256. To pomeni, da je naš številski sistem sistem, ki temelji na številih od 10 do 0.

Obstaja več različnih številskih sistemov, zlasti v računalništvu. Base2 je še en pogost sistem številčenja, morda bolj poznate izraz dvojiško. Osnova 2 ali binarni je številski sistem, ki se običajno uporablja za osnovno strukturo računalniških sistemov, sestavljen iz števil 0 in 1.

Izhod algoritmov SHA256 bitcoin je v Base16, znan tudi kot šestnajstiški. Osnova 16 preprosto uporablja številski sistem osnove 10 od 0 do 9 in ta sistem razširja s črkami a skozi do f z malimi črkami, da ustvarite enakovreden številski sistem z vrednostmi od 0 do 15, ki so prikazane v tabeli 1.

figura2.26
Tabela 1: Sistem številčenja z osnovo 16 (šestnajstiški).

Zakaj uporabljati base16? Preprosto uporabljamo osnovo 16 zaradi jedrnatosti. Način predstavitve izjemno velikih števil ob zmanjšanju skupne količine znakov.

Zdaj pa predstavimo 2 nova izraza, povezana z rudarjenjem bitcoinov. Težavnost in cilj. Težavnost in cilj sta načina, na katera protokol bitcoin nadzoruje, kako težko je najti bloke. Tega sem se do neke mere dotaknil v enem svojih prejšnjih člankov o Prilagoditev težavnosti, to lahko preberete tukaj.

Za zdaj preprosto razumite, da ima program, ki ga uporabljamo za to predstavitev, popravljeno "tarča" da je izhodna zgoščevalna funkcija pod določeno ciljno številko, zaradi česar je enkratno številko težje najti. Za protokol bitcoin je ciljna se prilagodi vsaka 2 tedna, da se uravnava povprečna sprostitev hitrosti blokov 1 x blok vsakih 10 minut, saj je v omrežje Bitcoin vložena več računske moči, bloki so rešeni hitreje, protokol gleda nazaj na prejšnje bloke iz leta 2016 in prilagodi težavnost rudarskih blokov z znižanjem ciljne vrednosti, zaradi česar je težje najti enkratne bloke.

V tem članku se ne bomo preveč zapletali v to, prihranili ga bomo za kdaj drugič. Danes se bomo bolj osredotočili na nonce in kako zgraditi blockchain.

Nazaj k našemu primeru v Slika 4. Zdaj pa dodamo nekaj podatkov v ta blok. Dodal bom stavek "Pozdravljen, svet". Ko dodam te podatke, boste opazili, da je ozadje postalo rdeče (slika 5), ​​program zdaj ni zadovoljen z našim blokom. Spomnite se na sliki 4, da se je zgoščevanje tega nabora podatkov začelo s 4 x začetnimi ničlami. Ta posebni program, ki ga izvajam, zahteva, da mora biti zgoščena vrednost vedno pod ciljno vrednostjo, pri čemer se izhodna zgoščena vrednost začne s 0 vodilnimi ničlami, pri čemer je ta številka v svoji polni obliki base4: 0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

pozdravljen svet blok 1
Slika 5. Sprememba podatkov je razveljavila blok.

Ko sem spremenil podatke z dodajanjem »Hello World«, je algoritem SHA256 zagotovil novo zgoščeno vrednost, in kot lahko vidimo, se moja nova zgoščena vrednost ne začne s 4 začetnimi ničlami, izhodna zgoščena vrednost je nad našo ciljno vrednostjo in je zato neveljavna.

V tem je temeljna resnica algoritmov SHA256 ali obstaja nabor podatkov, ki je bil enkrat vključen v kombinaciji z mojimi drugimi podatki znotraj bloka, kar bi povzročilo izhodno zgoščeno vrednost pod mojo ciljno številko. Morda je res več kot en odgovor, pravzaprav jih je verjetno veliko. Vendar pa je težava (igra beseda) v tem, kateri podatki bi lahko rešili težavo?

Tukaj je Neskončno pride v poštev. Če razdelimo moj nabor podatkov znotraj bloka, imamo številko bloka (1) in podatke (Hello World) ter dodatno polje, imenovano nonce (trenutno z vrednostjo: 72608). Kaj pa, če bi obstajal nabor podatkov, ki bi jih lahko vključil kot vrednost nonce, ki bi, ko bi bil dodan ostalim podatkom, povzročil zgoščevanje, ki bi izpolnjevalo zahteve mojega programa, da izhodni zgoščeni rezultat povzroči število, manjše od 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Lepa stvar pri kriptografiji je, da tega ni mogoče izračunati ročno. Moja edina možnost je, da poskušam poljubno ugibati, kateri podatki bi lahko bili. Ali lahko spremenim vrednost nonce na 1? Ali spremeniti v 2? ali lahko poskusim 2456395697 ali 45628496902074?…….. Morda bom tukaj nekaj časa.

Ali pa lahko uporabimo moč mojega računalnika. Računalniško zmožnost hitre obdelave informacij lahko uporabimo, da začnemo ugibati, katere podatke bi lahko vključili v polje »Nonce«, ki bi, ko bi bili izvedeni skozi zgoščevalno funkcijo, povzročili izhodno zgoščevanje pod 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.

Če v svojem programu izberem »Moje«, bo moj računalnik začel ugibati vrednosti za nonce, ni drugega načina za izračun te vrednosti, razen ugibanja in preverjanja, ugibanja in preverjanja, dokler ne najdemo vrednosti nonce, ki doseže rezultat pod našo ciljno vrednostjo.

Ko je rešitev najdena, program preveri rezultat in blok ponovno postane zelen. Srečno je. Ta postopek lahko traja nekaj časa, odvisno od tega, kako težko je najti nabor podatkov, ki se ujema. To je, preprosto povedano, znano kot rudarstvo. »Kopljemo« po kombinacijah podatkov, da bi našli rešitev matematičnega problema. Trudimo se najti vrednost nonce, ki v povezavi z našimi podatki ustvari vnaprej določeno zahtevo (v našem primeru izhodni hash pod osnovo16 Numerična vrednost 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF). Slika 6 prikazuje, kako to izgleda za naš primer, na mojem namiznem računalniku je trajalo približno 3 sekunde. Enkratna številka je bila številka 24894.

zdravo svet minirano
Slika 6. Rudarjenje novega nonce za izpolnitev zgoščevalne funkcije s 4 x začetnimi ničlami.

Čestitamo! Izkopali smo naš prvi blok.

Blockchain

Blokovna veriga je…….počakaj…….veriga blokov. To je veriga blokov, tako kot prvi blok, ki smo ga rudarili zgoraj, vendar z nekaj razlikami.

Niz podatkov se vnese v blok 1, ta blok rudarimo, da odkrijemo nonce, da zadostimo zahtevi glede težavnosti (izhodna zgoščena vrednost pod ciljno vrednostjo). To ustvari zgoščeno vrednost in naš blok je dokončan. Nato ustvarimo nov blok. V ta novi blok bomo vključili novo podatkovno polje. Podatkovno polje, v katerega vključimo izhodni hash obravnavnega bloka kot vhodni podatki v nov blok.

Vidimo lahko v Slika 7, da imamo verigo 2 blokov. Prvi blok je kopija naših zgornjih primerov, vendar imamo označeno novo polje »Prejšnja« ki vsebuje nove podatke. Blok 1 je naš blok geneze, vsebuje poljubne informacije v polju prev. Blok je rudarjen in pridobljen je naš hash teh podatkov.

V bloku 2 vključimo izhodno zgoščeno vrednost iz bloka 1 kot vhodne podatke v naš novi blok. Te podatke postavimo v polje »Prejšnji«. V ta drugi blok dodamo nove podatke, ki jih želimo vključiti, in ta blok rudarimo. Oba najina bloka sta zadovoljna.

blockchain x2 blokov
Slika 7. Gradnja verige blokov. Izhodni razpršilec bloka 1 je dodan v polje »Prejšnji« bloka 2.

Zdaj pa se vrnimo nazaj in nekaj spremenimo v bloku 1. Dodal bom piko “.” do podatkov. Zdaj lahko na sliki 8 vidimo, da celotna veriga blokov ni zadovoljna. Oba bloka sta rdeča. Spremenil sem podatke in prekinil verigo. Zgoščena vrednost bloka 1 ni več pod ciljno vrednostjo. Dodajanje pike ».« Podatki je povzročil nov hash z vrednostjo nad našo ciljno vrednostjo 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF in zato ni združljiv z zahtevami programa. Toda izhod bloka 1 je tudi vhod v blok 2, s čimer tudi razveljavi zgoščenost bloka 2. Prekinili smo verigo.

blockchain dodaj piko
Slika 8. Sprememba v bloku 1 je prekinila verigo.

Blok ponovnega rudarjenja 1 je razrešil program za blok 1, vendar pa so bili podatki v bloku 2 spremenjeni zaradi spremembe novega izhodnega zgoščevanja iz bloka 1, še vedno ni zadovoljen (slika 9).

dodaj piko moje 1
Slika 9. Ponovno smo rudarili blok 1, vendar blok 2 še vedno ni zadovoljen.

Zdaj moramo ponovno rudariti tudi blok 2, da zagotovimo skladnost z zahtevo glede težavnosti. Slika 10 prikazuje, da imamo spet 2 x srečna bloka, ko smo ponovno naredili delo za 2 bloka. "Delo" je izraz za opis računalniške moči, ki jo uporabljamo v procesu rudarjenja. Morda ste že slišali za izraz Dokazilo o delu prej, ki se nanaša na ta koncept varovanja verige blokov bitcoinov skozi proces porabe energije ... delo.

dodaj piko moje 2
Slika 10. Ponovno rudarjenje blokov 1 in nato 2. Program je znova zadovoljen.

Upoštevajte potrebo po rudarjenju blokov po vrstnem redu. Ponovno rudarjenje bloka 2, preden bi opravili potrebno delo za blok 1, bi povzročilo, da bi morali ponovno rudariti blok 2.

Zdaj imamo osnovo za našo verigo blokov, dodamo lahko 3. in nato 4. blok, pri čemer rudarimo vsak blok z novimi vhodnimi podatki, pri čemer izhodni zgoščeni blok 2 vodi do vnosa bloka 3, izhod bloka 3 pa vodi do vnosa bloka 4 in tako naprej in tako naprej.

Če je naša veriga blokov zdaj dolga 4 bloke in znova poskusimo spremeniti podatke v bloku 1. To bo razveljavilo celotno verigo. Potem bi morali ponovno rudariti blok 1, nato blok 2, nato blok 3….. vidite, kam grem s tem?

Zdaj dobro razumemo verigo blokov in dele, ki morajo iti skupaj, da ustvarijo verigo. Zdaj pa razširimo to razmišljanje in si oglejmo porazdeljeno verigo blokov.

Porazdeljena veriga blokov in konsenz

Ena izmed čudovitih stvari pri verigi blokov bitcoinov je porazdeljena knjiga. Kmalu bomo prišli do "knjige" strani stvari, za zdaj pa si preprosto oglejmo porazdeljeno verigo blokov, da bi razumeli koncept.

Recimo, da sem imel verigo blokov, ki je vsebovala niz blokov, pri čemer je vsak blok vseboval nekaj podatkov. Ti podatki so bili zgoščeni in povezani v verigo, kot smo videli zgoraj, da tvorijo verigo blokov. Kopijo te verige blokov hranim v svojem računalniku. Kaj pa, če bi bilo treba zapiske primerjati z nekom drugim? Kaj pa, če je bila celovitost teh podatkov zame res pomembna in sem želel zagotoviti, da vanje ne bodo posegali? Kaj pa, če bi želel biti prepričan, da so podatki, ki jih imam, resnična in pravilna različica te serije podatkov? Bilo bi priročno, če bi obstajala natančna kopija te verige blokov, s katero bi primerjal svojo različico…. Prav?

Tukaj pride do izraza lepota porazdeljene verige blokov. Kaj če bi nekomu drugemu dal kopijo svoje verige blokov, da bi lahko šel kadar koli primerjati zapiske. Kaj če bi napisal program, ki bi to naredil namesto mene samodejno. Lahko bi nenehno primerjal moj nabor podatkov z mojimi prijatelji in označil kakršna koli neskladja.

Da navedem pomanjšan primer. Recimo, da sem imel verigo blokov, dolgo samo 3 bloke, ki je vsebovalo nekaj zelo pomembnih podatkov, na katerih sem delal. Te podatke bi lahko zavaroval v porazdeljeni verigi blokov tako, da bi hranil kopijo doma (slika 11 — Peer A) in dal kopijo nekomu drugemu ali preprosto hranil kopijo v svojem računalniku v pisarni (slika 11 — Peer B).

razdeljeno 1.
Slika 11. Primer porazdeljene verige blokov — Peer A je doma in Peer B je pisarna.

Če pustim računalnik prižgan in odklenjen in se pojavi nečesen igralec (povsod so) in spremeni podatke v bloku 2 (lahko opazite razlike?). Lahko bi ponovno rudarili vsak blok od 2 do 4, tako da je moja kopija verige blokov videti v redu v smislu verige in funkcij zgoščevanja za vsak blok. Vendar, ko se vrnem k svojemu porazdeljenemu programu blockchain, ta označi, da se moja različica resnice razlikuje od tiste v mojem službenem računalniku? Hitra primerjava pokaže, da se je zgoščevanje dejansko spremenilo vse od bloka 2 do bloka 4. (Slika 12). Obe verigi sta sami po sebi videti v redu, obe sta zeleni, vendar je moj računalniški program, ki primerja vsako distribuirano različico, označil neskladje med hashi in me opozoril, da se ne ujemata.

razdeljeno 2
Slika 12. Podatki so bili spremenjeni v bloku 2 verige blokov Peer A, bloki so bili ponovno rudarjeni. Zgoščene vrednosti iz bloka 2 so zdaj drugačne.

Toda katera različica je pravilna? Nemogoče je povedati, če ne vem, katero različico je napadalec spremenil.

Potem bi bilo logično, da bi bilo priročno, če bi imel še eno različico za primerjavo. En izvod bom hranil doma (Slika 13a — Vrstnik A), en izvod v pisarni (Slika 13b — Vrstnik B) in še en izvod doma pri tašči (Slika 13c — Vrstnik C).

soglasni peer a
Slika 13a — Različica verige blokov Peer A

soglasni vrstnik b
Slika 13b — Različica verige blokov Peer B

soglasni peer c
Slika 13c — Različica verige blokov Peer C

Zdaj pa zlobni igralec spet udari, spet spremenijo podatke na moji domači različici PC-ja in ponovno rudarijo vse bloke doma. Toda zdaj imam mehanizem soglasja, s katerim lahko primerjam različice. Imam sistem glasovanja. Imam 3 kopije resnice. Vrstnik A (slika 14a) mi govori eno, druga 2 (slika 14b) pa se strinjata o drugačni različici resnice.

brez konsenza peer a
Slika 14a — Različica Peer A (sprememba v bloku 2)

brez konsenza peer b&c
Slika 14b — Vrstni B in C sta v konsenzu.

Temu soglasju lahko do neke mere zaupam s predpostavko, da nečedni akter ne bi mogel:

  1. Pozna fizično lokacijo mojih blokovnih verig
  2. Bodite sposobni vdreti, spremeniti podatke in ponovno rudariti 2 od 3 nizov te verige blokov.

Čeprav je zgornji scenarij možen, ni zelo verjeten.

Tako lahko zanemarim svojo domačo različico, varnostno kopiram to različico z različicami iz moje pisarne in taščine različice in sem varen, ker sem obnovil PRAVILNO različico resnice. Hvala bogu za tašče in blockchain tehnologijo.

Zdaj pa si predstavljajte, da imam 10 tisoč računalnikov (vozlišč), naključno porazdeljenih po vsem svetu, ki poganjajo to verigo blokov (navsezadnje so ti podatki zame precej posebni). Ta slab igralec bi moral izslediti več kot 50 % teh vozlišč in spremeniti vsako njihovo različico, da bi vzbudil dvom o tem, katera različica verige je prava. To je zelo malo verjetno, če ne nemogoče. Točno tako deluje bitcoin blockchain. Omrežje naključno razporejenih vozlišč, ki jih vodijo navadni ljudje, na programski opremi na svojih računalnikih ali majhnih poceni namenskih strojnih napravah, ki shranjujejo različico resnice in med seboj ohranjajo poštenost. Zaradi tega je bitcoin decentraliziran in nezaupljiv. Nobena stran ne nadzoruje blockchaina, upravlja ga skupnost udeležencev.

Toda Daz, kaj pa sam bitcoin? Kaj pa kovanci? Kaj pa Ledger?

Bitcoini in Ledger

Glede na znanje, ki smo ga do zdaj zgradili o verigi blokov, je razumevanje glavne knjige tako preprosto, kot da lahko formatiramo nabor podatkov, s katerim smo se igrali. Do sedaj smo se igrali z besedilnim poljem. In kolikor pomembna je informacija, da je "Daz precej rad", se izkaže, da nikogar drugega ne zanima.

Toda koristno bi bilo, če bi uporabili "podatkovno polje", da bi začeli beležiti nekaj koristnega, kot so transakcije. Predstavljajmo si, da imamo zdaj verigo blokov, porazdeljeno med veliko vozlišči, vendar si bomo samo ogledali vrstnike A in B, da bi dobili idejo, toda v resnici obstaja na tisoče vozlišč, ki poganjajo isto verigo blokov. V našem primeru smo podatkovno polje s prostim besedilom zamenjali z nizom transakcijskih polj. Slika 15 prikazuje bloka 4 in 5 od Peer A in Peer B in lahko vidimo, da je zdaj v vsakem bloku serija transakcijskih podatkov.

knjiga 1
Slika 15 — Peer A in Peer B s transakcijskimi podatki znotraj verige blokov.

V bloku 4 lahko vidimo, da je nekdo z imenom Rick poslal znesek v višini 62.19 $ nekomu z imenom Isla. To je bila ena transakcija med 5 skupnimi transakcijami, vključenimi v ta blok. Blok podatkov je zgoščen in rudarjen točno tako, kot smo videli prej.

Naš zlobni igralec znova udari, ime mu je Sam in od Ricka je prejel 97.13 $. Sam pozna nekaj kodiranja in se odloči, da želi ukrasti nekaj $$ od Ricka, odloči se spremeniti svojo različico resnice in spremeni znesek transakcije na 97,000.13 $. Ponovno rudari svojo različico (slika 16), vendar je neuporabna. Ogromna količina vozlišč v omrežju vidi, da je to različica resnice, ki ni v soglasju z večino, to različico pa omrežje zavrača. Dober poskus Sam.

sam proti ricku
Slika 16. Sam poskuša ogoljufati Ricka tako, da spremeni znesek transakcije. Mreža konsenza to zavrača.

Vidimo lahko cel kup transakcij med strankami, toda kako vemo, da je imel Rick sploh 97.13 $ za porabiti?

Coinbase — The Genesis Block

Če ste že nekaj časa med bitcoin skupnostjo, ste nedvomno slišali za zloglasni blok geneze. Satoshi Nakamoto (zloglasni ustvarjalec bitcoina s psevdonimom) je rudaril prvi blok, ki je vseboval nagrado za blok v višini 50 bitcoinov. Nagrade za bloke tvorijo bazo kovancev za bitcoin, z drugimi besedami, če želite porabiti kovance, jih je treba najprej dati v obtok. Blok Bitcoin Genesis se je dejansko štel kot blok "0" in prvih 50 bitcoinov je bilo dejansko neporabljenih, toda od bloka 1 naprej so tvorili zbirko kovancev.

Kovanci so uvedeni z vsakim blokom po strogo nadzorovanem urniku izdajanja. Ta urnik izdaje je 1 blok približno vsakih 10 minut. Vsakih 210,000 blokov se nagrada za blok prepolovi. Od tega pisanja julija 2021 znaša nagrada za blok 6.25 BTC vsakih ~10 minut. Trenutno je v obtoku 18.7 milijona dolarjev bitcoinov, zadnji 21-milijonti bitcoin pa naj bi bil izrudarjen leta 2140.

Blok 1 je vzpostavil začetno bazo kovancev, nadaljnje rudarjenje nadaljnjih blokov pa se razširi na bazo kovancev prek nagrad za bloke. Če pogledamo naš primer, začnem z blokom številka 1, to tvori mojo zbirko kovancev.

Če pogledamo naš primer verige blokov (slika 17), lahko vidimo, da sem se v našem prvem bloku nagradil s 100 USD. Deloma zato, ker sem dober tip, delno pa zato, ker sem jaz tisti, ki je rudaril prvi blok. Ko se premaknemo v blok 2, začnem porabljati svoje kovance.

Program bo vedno preverjal, ali rezultati mojih transakcij (kovanci, ki jih porabim) ne presegajo mojega stanja v zbirki kovancev. Podatke o transakcijah vključim v blok 2 in ta blok tudi rudarim, nagrajen sem z več kovanci kot nagrada za blok za blok 2.

Od tu naprej se veriga blokov gradi naprej, pri čemer hrani porazdeljeno kopijo glavne knjige med vozlišči in ta vozlišča uveljavljajo pravila, ki jih določi program. Blok 3 je vključen z več transakcijami, ko drugi uporabniki začnejo opravljati transakcije. Lucas tudi rudari, rešuje težavnostno uganko za blok 3 in za ta blok je nagrajen z nagrado za blok. In naprej in naprej veriga raste.

coinbase 1
Slika 17. Baza kovancev je zdaj dodana v verigo blokov

Kot je dosledno, če so podatki spremenjeni, tudi moj en preprost znak, ne glede na to, ali gre za same izhode zgoščevanja ali transakcijske podatke, če je veriga nekoga zunaj konsenza z večino, se preprosto zavrne.

Kar zadeva stanje, če poskušam porabiti več od svojega stanja, bo omrežje zavrnilo transakcijo. V našem prejšnjem primeru Sama, ki je poskušal spremeniti, koliko mu je Rick poslal, je vgrajen še en sloj varnosti, imenovan kriptografija javnega in zasebnega ključa, ki bo predmet naslednjega članka. Dejansko je nemogoče, da bi Sam uredil ta vnos, razen če ima tudi Rickov zasebni ključ.

Če poskusim spremeniti zgodovino, bo omrežje zavrnilo zgodovino s primerjavo zgoščenih vrednosti vsakega bloka. Vozlišča so vir resnice in poskrbijo, da so vsi pošteni.

Rudarji porabijo računalniško moč za reševanje kriptografskih ugank za vsak blok, za svoj trud pa so nagrajeni z nagrado za blok. Rudarjenje je nujna funkcija bitcoin blockchaina, brez rudarjenja ni vrednosti in varnosti.

Rudarji morajo porabiti energijo za reševanje blokov, to je resnično podcenjena lastnost varnosti Bitcoina. V tem članku smo obširno govorili o rudarjenju in obnavljanju blokov, kjer se izvajajo spremembe. Kar je res pomembno omeniti, je ogromna količina računske moči, vložene v protokol Bitcoin vsako minuto vsakega dne. Če bi to izjemno obsežno omrežje potrebovalo 10 minut, da bi našlo zadnji blok, koliko časa bi trajalo za slabega igralca, ki deluje sam, da bi sam našel nadomestni nonce za rudarjenje bloka, da bi spremenil podatke v njem. Koliko energije bi morala zajeti nacionalna država, da bi spremenila zgodovino verige blokov Bitcoin? In skupaj s prejšnjo točko o javnih in zasebnih ključih, ki varujejo glavno knjigo, je edina stvar, ki bi jo slabi akter lahko dosegel, dvojna poraba kovancev, ki jih že imajo, in bi morali imeti več računske moči z razpoložljivo energijo, da bi prehiteli celotno preostalo omrežje. To je tako rekoč nemogoče.

To tudi pomaga razložiti, zakaj je Bitcoin edino digitalno sredstvo, ki mu je vredno posvetiti svoj čas, saj zmaga samo v smislu omrežnih učinkov. Primerjajte razpršitveno stopnjo Bitcoina s katerim koli drugim protokolom in bledi bodo v primerjavi.

Za nadaljnje primere vseh teh funkcij toplo priporočamo branje naše knjige B je za Bitcoin, na voljo prek Amazona. Popeljali vas bomo skozi vse to in še veliko, veliko več, za poglobljen, a dostopen uvod v vse, kar morate vedeti o Bitcoinu.

Zaključek

Tukaj smo opisali poenostavljeno različico delovanja omrežja bitcoin. Porazdeljene knjige, zgoščevanje, verige blokov, vozlišča in rudarji delujejo v harmoniji, da zagotovijo popolnoma nezaupljivo, proti cenzuri odporno, odprtokodno, odprto knjigo, odprto denarno omrežje. Nihče ne more spremeniti glavne knjige, nihče ne more ustaviti transakcij, nihče ne more razveljaviti transakcij in nihče ne more dvojno porabiti svojih kovancev. Ni nič drugega kot briljanten in popolnoma revolucionira svetovne finance.

Celotna zgodovina transakcij je na voljo vsakomur, ki jo lahko izpraša in preveri. Očitno za razliko od naših današnjih primerov bitcoin blockchain ne prikazuje identitete ljudi, ki opravljajo transakcije, ampak samo njihove naslove. Naslovi bodo tema naslednjega članka, to je prevelika tema, da bi jo obravnavali danes.

V tem članku sem uporabil neverjetno interaktivno platformo, ki jo je zgradil Anders Brownworth, ki je poučeval blockchain na MIT. Obisk tukaj, pojdite in se igrajte ter globlje razumejte koncepte, ki smo jih obravnavali v tem članku, veliko globlje boste razumeli, če se poigrate z vsem tem. Anders ima tudi zelo dobro video vadnico s to vsebino, ki pomaga utrditi učenje.

Če berete tole, ste v smislu sprejemanja bitcoinov že pred ostalimi. Institucionalna posvojitev prihaja in prihaja hitro, še vedno imamo čas, da vodimo velike fante. S svojimi članki poskušam pomagati povprečnemu Joeju, da se izobrazi o tej tehnologiji, da bi nam lahko koristila. Največ bomo imeli koristi mi, fantje v strelskih jarkih, ki se borijo za plače. Začnite s povprečenjem stroškov v dolarjih v bitcoin, kupite nekaj vsak dan/vsak teden. Obravnavajte bitcoin kot svoj varčevalni račun in zajahajte val, to je najtežji denar, kar jih je kdaj obstajalo, in vsak dan eksponentno raste. (Ne samo za finančne nasvete, izobraževanje in zabavo)

Veselo zlaganje, hvala za branje

Daz Bea
Twitter @dazbea

Priporočeno branje:
B je za Bitcoin
“Obvladovanje Bitcoina”- Andreas M. Antonopoulos
Blockchain Demo – Anders Brownworth

Pustite komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena *

slika urejeno 3 4203740775
Soustanovitelj, glavni operativni direktor