Satura rādītājs:

Kā blokķēde faktiski darbojas
Kā blokķēde faktiski darbojas

Video: Kā blokķēde faktiski darbojas

Video: Kā blokķēde faktiski darbojas
Video: The Best Infantry Fighting Vehicle Ever Seen 2024, Maijs
Anonim

Šis ieraksts ir paredzēts, lai pastāstītu ikvienam, kāpēc tika izgudrota blokķēde, kā darbojas kriptovalūtas un kāpēc tā ir pēdējo gadu skaistākā sistēma no loģikas viedokļa.

Uzreiz brīdināšu, ka zem griezuma ir MILZĪGA teksta lapa un, ja neesi gatavs vienreiz "aizvērt" jautājumu par kriptovalūtu tēmu, pievienojiet ierakstu saviem favorītiem jau tūlīt un rezervējiet laiku)

Blockchain ir tehnoloģija, jauna, dīvaina, nesaprotama, bet šķiet, ka tā maina pasauli, atšķirībā no šiem taviem stāstiem. Acīmredzot viņa ir ar mums ilgu laiku.

Šis ieraksts ir rakstīts tā, it kā tas tiktu stāstīts cilvēkiem, kuri ir ļoti tālu no datoriem un pazīst tos tikai virspusēji, piemēram, iedomājieties, ka viņš gatavojās jūsu vecākiem. Es pat varu to izmest saviem līdzcilvēkiem humanitārajās zinātnēs un būt pārliecināts, ka viņi sapratīs.

Un Oļegs mums visiem palīdzēs šajā sarežģītajā jautājumā. Iepazīstieties!

Ja tev nepatiks Oļegs, es viņu izdzīšu.

Pamati: kāpēc mums ir nepieciešama blokķēde?

Blokķēde tika aprakstīta Satoshi Nakamoto rakstā "Bitcoin: A Peer-to-Peer Electronic Cash System". Tur tikai astoņās lappusēs autors aprakstīja Bitcoin kriptovalūtas pamatus, kas balstījās uz Blockchain algoritmu.

Saraksts, kuru nevar mainīt

Blockchain - bloku ķēde vai, citiem vārdiem sakot, saistīts saraksts. Šādā sarakstā katrs nākamais ieraksts attiecas uz vienu iepriekšējo un tā tālāk pa ķēdi līdz pašam pirmajam. Kā vilciena vagoni, katrs velk līdzi nākamo. Attiecībā uz sarakstiem ir labs Nikita Likhachev raksts par TJ, kur tas pats ir izskaidrots pilnīgi iesācējiem. Līdzības daļēji ņemtas no turienes.

Ņemsim piemēru

Oļega draugi pastāvīgi no viņa aizņemas naudu. Oļegs ir laipns, bet ārkārtīgi aizmāršīgs. Pēc nedēļas viņš vairs neatceras, kurš viņam parādu nav atdevis, taču viņam ir neērti par to visiem jautāt. Tāpēc kādu dienu viņš nolēma pielikt tam punktu, savās mājās uz tāfeles izveidojot draugu sarakstu, kuriem aizņēmās naudu.

Tagad Oļegs vienmēr var aiziet pie dēļa un pārliecināties, ka Makss visu atdeva, bet Vaņa jau 700 rubļus nedod. Kādu dienu Oļegs uzaicina Vaņu iedzert savās mājās. Kamēr Oļegs iet uz tualeti, Vaņa izdzēš ierakstu “Es aizņēmos Vaņai 200 rubļus” un tā vietā ieraksta “Vaņa iedeva 500 rubļus”.

Oļegs, kurš uzticējās savam sarakstam, aizmirst par parādu un zaudē 700 rubļus. Viņš nolemj kaut kā ar to cīnīties. Pagājušajā gadā Oļegs apmeklēja programmēšanas kursus, kur viņam stāstīja par jaukšanu. Viņš atceras, ka jebkuru virkni var pārvērst par nepārprotamu rakstzīmju kopu - hash, un, mainot jebkuru rakstzīmi virknē, tas pilnībā mainīsies.

Punkta pievienošana beigās mainīja galīgo jaucējfunkciju līdz nepazīšanai - jūs varat to izmantot.

Oļegs paņem labi zināmo SHA-256 jaucēju un sajauc ar to katru ierakstu, beigās pievienojot rezultātu. Tagad Oļegs var pārliecināties, ka viņa ierakstus neviens nav mainījis, tos vēlreiz sajaucot un salīdzinot ar zaļo.

Bet EVIL IVAN arī zina, kā izmantot SHA-256, un var viegli mainīt ierakstu kopā ar tā jaucējfunkciju. It īpaši, ja hash ir rakstīts tieši blakus tam uz tāfeles.

Tāpēc lielākai drošībai Oļegs nolemj jaukt ne tikai pašu ierakstu, bet pievienot to kopā ar jaucēju no iepriekšējā ieraksta. Tagad visi turpmākie ieraksti ir atkarīgi no iepriekšējiem. Ja mainīsiet vismaz vienu rindiņu, jums būs jāpārrēķina visu pārējo sarakstā esošo jaucējvērtības.

Bet kādu dienu Ivans piezogas naktī, maina vajadzīgo ierakstu un līdz galam atjaunina visa saraksta jaucējvērtības. Viņam paiet vairākas stundas, bet Oļegs joprojām cieši guļ un nedzird. No rīta Oļegs atklāj absolūti pareizu sarakstu – visas hashes sakrīt. Bet Ivans viņu tik un tā maldināja, lai gan viņš pavadīja bezmiegu nakti. Kā citādi jūs varat pasargāt sevi no Nakts Ivana?

Oļegs nolemj kaut kā sarežģīt savu dzīvi. Tagad, lai sarakstam pievienotu jaunu ierakstu, Oļegs atrisinās ar to saistītu sarežģītu uzdevumu, piemēram, matemātisko vienādojumu. Viņš pievienos atbildi pēdējam jaucējam.

Oļegam labi padodas matemātika, taču pat ieraksta pievienošana prasa desmit minūtes. Neskatoties uz to, pavadītais laiks ir tā vērts, jo, ja Ivans atkal gribēs kaut ko mainīt, viņam būs no jauna jāatrisina vienādojumi katrai rindai, un to var būt desmitiem. Tas prasīs daudz laika, jo vienādojumi katru reizi ir unikāli un saistīti ar konkrētu ierakstu.

Bet saraksta pārbaude ir tikpat vienkārša: vispirms ir jāsalīdzina jaucējvārdi, kā iepriekš, un pēc tam pārbaudiet vienādojumu atrisinājumus ar vienkāršu aizstāšanu. Ja viss saplūst, saraksts netiek mainīts.

Patiesībā ar vienādojumiem viss nav tik labi: datori tos atrisina pārāk labi, un kur glabāt tik daudz unikālu vienādojumu. Tāpēc blokķēdes autori izdomāja vēl skaistāku problēmu: jāatrod tāds skaitlis (nonce), lai visa ieraksta galīgais hash sāktos ar 10 nullēm. Šāds notikums ir grūti atrast, bet rezultātu vienmēr var pārbaudīt tikai ar acīm.

Tagad Oļegs pārbauda visas jaucējzīmes un papildus pārliecinās, ka katra sākas ar norādīto nulles skaitu. Viltīgajam Ivanam, pat bruņotam ar jaudīgu klēpjdatoru, nakts laikā nebūs laika pārrēķināt visus jaucējus, lai tie atbilstu nosacījumam - laika nepietiks.

Šāds saraksts faktiski ir mājas blokķēde uz ceļa. Tās drošību garantē matemātiķi, kuri pierādīja, ka šos hashus nevar aprēķināt kaut kā ātrāk, izņemot ar brutālu spēku. Šāds jaucēju uzskaitījums katram ierakstam ir ieguve, par kuru šodien būs daudz un detalizēti.

Uzticības centralizācija

Mūsu draugiem patika ideja saglabāt viltotu sarakstu "kurš kuru aizņēmās". Viņi arī nevēlas atcerēties, kurš kuram maksāja bārā un cik vēl ir parādā - viss ir rakstīts uz sienas. Jūs apspriedāt šo ideju un nolēmāt, ka tagad jums ir nepieciešams vienots saraksts visiem.

Bet kam būtu jāuztic tik svarīga grāmatvedība? Galu galā, runājot par naudu, priekšplānā izvirzās uzticība. Mēs neuzticēsimies nezināmajam paturēt mūsu naudu. Šim nolūkam mūsu senči izgudroja bankas, kurām laika gaitā sāka uzticēties, jo tās ir nodrošinātas ar licenci, likumiem un Centrālās bankas apdrošināšanu.

Draugu lokā visi viens otram uzticas un var vienkārši izvēlēties atbildīgāko šai lomai. Bet ja jautājums ir par svešiniekiem? Vesela pilsēta, valsts vai visa pasaule, kā tas ir Bitcoin gadījumā? Vispār neviens tur nevienam nevar uzticēties.

Decentralizācija: neviens nevienam neuzticas

Tāpēc viņi nāca klajā ar alternatīvu pieeju: saglabājiet saraksta kopiju ikvienam. Tādējādi uzbrucējam nāktos ne tikai pārrakstīt vienu sarakstu, bet arī ielīst katrā mājā un tur pārrakstīt sarakstus. Un tad izrādās, ka kāds mājās glabājis vairākus sarakstus, par kuriem neviens nezināja. Tā ir decentralizācija.

Šīs pieejas mīnuss ir tāds, ka, lai veiktu jaunus ierakstus, jums būs jāzvana visiem pārējiem dalībniekiem un jāinformē katrs par jaunākajām izmaiņām. Bet, ja šie dalībnieki ir bez dvēseles mašīnas, tā vairs nav nekāda problēma.

Šādā sistēmā nav vienota uzticības punkta un līdz ar to arī kukuļošanas un krāpšanas iespēja. Visi sistēmas dalībnieki darbojas saskaņā ar vienu noteikumu: neviens nevienam neuzticas. Katrs tic tikai tai informācijai, kas ir viņa rīcībā. Šis ir jebkura decentralizēta tīkla galvenais likums.

Darījumi

Pērkot podu veikalā, jūs ievadāt PIN kodu no savas kartes, ļaujot veikalam pajautāt bankai, vai jūsu kontā ir 35 rubļi. Citiem vārdiem sakot, jūs parakstāt darījumu par 35 rubļiem ar savu PIN kodu, kuru banka apstiprina vai noraida.

Mūsu ieraksti par veidu "Es aizņēmos Vaņai 500 rubļus" arī ir darījumi. Bet mums nav bankas, kas pilnvarotu darījumu autoru. Kā mēs varam pārbaudīt, vai Ivans nav pa kluso pievienojis ierakstu "Maksis ir parādā Oļegam 100 500 rubļus"?

Blokķēde šim nolūkam izmanto publisko un privāto atslēgu mehānismu; IT speciālisti jau sen ir izmantojuši tās autorizācijai tajā pašā SSH. Es to paskaidroju uz pirkstiem sadaļā "Ievads šifrēšanā" ierakstā "Drošība, šifrēšana, kiberpanks".

Īsumā par to, kā darbojas šī sarežģītā, bet skaistā matemātika: jūs savā datorā ģenerējat garu pirmskaitļu pāri - publisko un privāto atslēgu. Privātā atslēga tiek uzskatīta par īpaši slepenu, jo tā var atšifrēt to, kas ir publiski šifrēts.

Bet darbojas arī pretējais. Ja kopīgosit publisko atslēgu ar visiem draugiem, viņi varēs šifrēt jebkuru ziņojumu, lai tikai jūs varētu to lasīt, jo jums pieder privātā atslēga.

Bet bez tam publiskajai atslēgai ir noderīgs efekts – ar to jūs varat pārbaudīt, vai dati ir šifrēti ar jūsu privāto atslēgu, neatšifrējot pašus datus. Visas šīs īpašības ir labi aprakstītas "Šifru grāmatā".

Mēs atrodamies decentralizētā internetā, kur nevienam nevar uzticēties. Darījums tiek parakstīts ar privāto atslēgu un kopā ar publisko atslēgu tiek nosūtīts uz īpašu krātuvi - neapstiprinātu darījumu kopu. Tātad jebkurš tīkla dalībnieks var pārliecināties, ka to ierosinājāt jūs, nevis kāds cits vēlas atmaksāt ar jūsu naudu.

Tas nodrošina tīkla atvērtību un drošību. Ja agrāk par to bija atbildīgas bankas, tad blokķēdē par to ir atbildīgi matemātiķi.

Parastajiem lietotājiem, kuri nevēlas izdomāt, kā izsniegt un uzglabāt privātās atslēgas, palīdzēs tiešsaistes maka pakalpojumi. Lai kopētu garas publiskās atslēgas, tur tiek izgatavoti ērti QR kodi. Piemēram Blockchain Wallet, jo tam ir ērta mobilā aplikācija un tas atbalsta divas galvenās kriptovalūtas – BTC un ETH.

Jēdziena "līdzsvars" trūkums

Tāpat kā mūsu dēlis, blokķēde būtībā sastāv tikai no darījumu vēstures. Tajā netiek glabāts katra maciņa atlikums, pretējā gadījumā nāktos izdomāt papildus aizsardzības metodes.

Tikai privātā atslēga apstiprina maka īpašumtiesības. Bet kā citi tīkla dalībnieki var pārliecināties, ka man ir pietiekami daudz naudas pirkšanai?

Tā kā mums nav līdzsvara, jums tas jāpierāda. Tāpēc blokķēdes darījums ietver ne tikai jūsu parakstu un to, cik daudz vēlaties tērēt, bet arī saites uz iepriekšējiem darījumiem, kuros esat saņēmis nepieciešamo naudas summu.

Tas ir, ja vēlaties iztērēt 400 rubļus, jūs izskriet visu savu ienākumu un izdevumu vēsturi un pievienojat savam darījumam tos ienākumus, kuros jums tika piešķirti 100 + 250 + 50 rubļi, tādējādi pierādot, ka jums ir šie 400 rubļi.

Katrs tīkla dalībnieks vēlreiz noteikti pārbaudīs, vai neesat divreiz pievienojis ienākumus. Tos 300 rubļus, ko Makss iedeva pagājušajā nedēļā, tu tiešām vēl neesi iztērējis.

Šādus ienākumus, kas saistīti ar darījumu, blokķēdē sauc par ievadi, un visus naudas saņēmējus sauc par izlaidēm. Visu ievadu summa reti kad ir tieši tāda, kādu vēlaties pārsūtīt vienā reizē - tāpēc viens no izvadiem visbiežāk būs jūs pats. Citiem vārdiem sakot, darījums blokķēdē izskatās šādi: "Man tika doti 3 un 2 BTC, es vēlos pārskaitīt no tiem 4 BTC un atgriezt atlikušo 1 BTC."

Blokķēdes skaistums ir tāds, ka ievades datiem nav jānāk no viena maka. Galu galā tiek pārbaudīta tikai atslēga. Ja zināt visu ievadīto datu privāto atslēgu, varat tos viegli pievienot savam darījumam un norēķināties ar šo naudu. It kā lielveikalā maksātu ar vairākām kartēm, no kurām zini pin kodu.

Tomēr, ja jūs pazaudējat savu privāto atslēgu, jūsu disks nomirst vai jūsu klēpjdators tiek nozagts, jūsu bitkoīni tiks zaudēti uz visiem laikiem. Neviens tos nevar izmantot kā ievadi jauniem darījumiem.

Šī summa uz visiem laikiem būs nepieejama visai pasaulei – it kā sadedzinātu banknošu saišķi. Nav vienas bankas, kur var uzrakstīt iesniegumu ar pases kopiju, un viņš to izdrukās. Tas prasa jaunu bitkoinu papildu izlaišanu "no zila gaisa".

Dubultā tēriņu problēma

Iepriekš es teicu, ka darījumi tiek pievienoti īpašam "neapstiprināto darījumu kopumam". Kāpēc mums ir vajadzīgas kaut kādas starpposma struktūras, ja mums jau faktiski ir gatavi parakstīti darījumi? Kāpēc gan neierakstīt tos tieši blokķēdē?

Jo signāli no punkta A uz punktu B vienmēr iet ar kavēšanos. Divi darījumi var notikt pilnīgi atšķirīgi. Un darījums, kas tika uzsākts pirmais, var vēlāk sasniegt adresātu, jo tas prasīja garāku ceļu.

Tā rezultātā rodas dubulti tēriņi, kad viena un tā pati nauda tika nosūtīta uzreiz diviem adresātiem, par ko viņi pat nenojauta. Tas nav saistīts ar rēķinu nodošanu no rokas rokā.

Decentralizētam tīklam, kurā nevienam nevar uzticēties, šī problēma ir īpaši aktuāla. Lūk, kā pārliecināties, ka viens darījums noteikti bija pirms cita? Palūdziet sūtītājam iešūt nosūtīšanas laiku, vai ne? Bet atceries – nevienam nevar uzticēties, pat sūtītājam ne.

Laiks visos datoros noteikti atšķirsies, un nav garantēta veida, kā tos sinhronizēt. Blokķēdes kopija tiek glabāta katrā tīkla datorā, un katrs dalībnieks uzticas tikai tai.

Kā jūs varat pārliecināties, ka viens darījums tika veikts agrāk par otru?

Atbilde ir vienkārša: tas nav iespējams. Nav iespējams apstiprināt darījuma laiku decentralizētā tīklā. Un šīs problēmas risinājums ir trešā svarīgā blokķēdes ideja, ko Satoši izgudroja un kura, dīvainā kārtā, ir uzrakstīta tieši viņa vārdā – bloki.

Bloki ir blokķēdes mugurkauls

Katrs tīklā strādājošais dators no vispārējā pūla atlasa visus darījumus, kas tam patīk. Parasti tikai par augstāko komisiju, ko viņš par to var nopelnīt. Tāpēc viņš savāc darījumus sev, līdz to kopējais apjoms sasniedz sarunāto limitu. Bitcoin šis bloka lieluma ierobežojums ir 1 MB (pēc SegWit2x tas būs 2 MB), bet Bitcoin Cash - 8 MB.

Visa blokķēde būtībā ir šādu bloku saraksts, kur katrs attiecas uz iepriekšējo. To var izmantot, lai izsekotu jebkuru darījumu visā vēsturē, atritinot blokķēdi pat līdz pirmajam ierakstam.

Tieši šis saraksts tagad sver simtiem gigabaitu un ir pilnībā jālejupielādē visos datoros, kas vēlas piedalīties tīklā (bet tas nav nepieciešams, lai vienkārši izveidotu darījumus un pārskaitītu naudu). Tas tiek lejupielādēts vienādi no visiem tuvākajiem datoriem tīklā, it kā jūs lejupielādējat sēriju no torrentiem, tajā tiek izlaistas tikai jaunas jaunas epizodes ik pēc 10 minūtēm.

Ierakstījis sev darījumus no pūla, dators no tiem sāk sastādīt to pašu neviltojamo sarakstu, ko mēs darījām ieraksta sākumā uz tāfeles mājās.

Tikai viņš to taisa koka formā - jauc ierakstus pa pāriem, tad rezultāts atkal ir pa pāriem un tā tālāk, līdz paliek tikai viens jaucējs - koka sakne, kas tiek pievienota blokam. Kāpēc tieši ar koku - atbildi neatradu, bet pieļauju, ka tā vienkārši ir ātrāk. Vairāk lasiet wiki: Merkles koks.

Tā kā pašreizējā blokķēde jau ir lejupielādēta, mūsu dators precīzi zina, kas tajā ir pēdējais bloks. Viņam vienkārši bloka galvenē jāpievieno saite uz to, tas viss jāsajauc un visiem citiem tīkla datoriem jāpasaka “skat, es izveidoju jaunu bloku, pievienosim to mūsu blokķēdei”.

Pārējiem vajadzētu pārbaudīt, vai bloks ir uzbūvēts saskaņā ar visiem noteikumiem un vai mēs tur neesam pievienojuši nevajadzīgus darījumus, un tad pievienojiet tos mūsu ķēdēm. Tagad visi darījumi tajā ir apstiprināti, blokķēde ir palielināta par vienu bloku un viss iet labi, vai ne?

Bet nē. Tīklā vienlaikus strādā tūkstošiem datoru, un, tiklīdz tie saliek jaunu bloku, tie gandrīz vienlaikus steidz informēt visus, ka viņu bloks tika izveidots pirmais. Un no iepriekšējās sadaļas mēs jau zinām, ka decentralizētā tīklā nav iespējams pierādīt, kurš patiešām bija pirmais.

Kā jau skolā, kad visi risināja kādu grūtu kontroldarbu, reti gadījās, ka pat teicamnieki atbildes saņēma reizē.

Bet, ja cilvēkam ir sarežģīts uzdevums plānot atvaļinājumu tā, lai viņš nokļūtu maija brīvdienās, un biļetes uz jūru ir lētas, tad datoram ir jāpievieno šāds skaitlis (nonce) bloku tā, lai rezultātā SHA-256 hash visam blokam sākas, pieņemsim, 10 nulles. Šī ir problēma, kas ir jāatrisina, lai Bitcoin tīklam pievienotu bloku. Citiem tīkliem uzdevumi var atšķirties.

Tātad mēs nonākam pie kalnrūpniecības koncepcijas, ar kuru visi pēdējos gados ir tik ļoti aizrāvušies.

Kalnrūpniecība

Bitcoin ieguve nav kaut kāds svēts sakraments. Kalnrūpniecība nav jaunu bitkoinu atrašana kaut kur interneta dzīlēs. Kalnrūpniecība ir tad, kad tūkstošiem datoru visā pasaulē dārd pagrabos, iet cauri miljoniem skaitļu sekundē, mēģinot atrast jaucējkodu, kas sākas ar 10 nullēm. Viņiem pat nav jābūt tiešsaistē, lai to izdarītu.

Videokartes ar simtiem paralēlo kodolu šo problēmu atrisina ātrāk nekā jebkurš CPU.

Kāpēc tieši 10 nulles? Un tāpat tam nav jēgas. Tātad Satoshi nāca klajā ar. Jo šī ir viena no tām problēmām, kurai vienmēr ir risinājums, taču to noteikti nevar atrast ātrāk par ilgu vienmuļu variantu uzskaitīšanu.

Ieguves sarežģītība tieši ir atkarīga no tīkla lieluma, tas ir, no tā kopējās jaudas. Ja izveidojat savu blokķēdi un pats to palaidāt mājās divos klēpjdatoros, tad uzdevumam vajadzētu būt vienkāršākam. Piemēram, lai hash sākas tikai ar vienu nulli vai lai pāra ciparu summa būtu vienāda ar nepāra ciparu summu.

Paies vairākas desmitgades, līdz viens dators atradīs jaucējkodu, kas sākas ar 10 nullēm. Bet, ja jūs apvienojat tūkstošiem datoru vienā tīklā un paralēli meklējat, tad saskaņā ar varbūtības teoriju šī problēma tiek atrisināta vidēji 10 minūtēs. Šis ir laiks, kad bitcoin blokķēdē parādās jauns bloks.

Ik pēc 8–12 minūtēm kāds uz zemes atrod šādu jaucējkrānu un saņem privilēģiju visiem paziņot par savu atklājumu, tādējādi izvairoties no problēmas, kurš bija pirmais.

Par atbildes atrašanu dators (no 2017. gada) saņem 12,5 BTC – tādu atlīdzības apjomu bitkoinu sistēma ģenerē "no zila gaisa" un samazinās ik pēc četriem gadiem.

Tehniski tas nozīmē, ka katrs kalnracis savam blokam vienmēr pievieno vēl vienu darījumu - “izveidojiet 12,5 BTC un nosūtiet tos uz manu maku”. Kad dzirdat "Bitkoinu skaits pasaulē ir ierobežots līdz 21 miljonam, tagad viņi jau ir nolīguši 16 miljonus" - tādas ir tīkla radītās atlīdzības.

Apskatiet īstu Bitcoin bloku tiešraidē kādā no specializētajām vietnēm. Ir arī darījumi ar ievadiem un izvadiem, kā arī 18 nulles sākumā un visas iepriekš aprakstītās jaucējkodas.

Tieši kalnrači pievieno jaunos darījumus blokķēdei. Tātad, ja kāds jums saka, ka viņš "izveidos blokķēdi priekš ***", pirmais jautājums, kas viņam ir jāatbild, ir tas, kurš to izmantos un kāpēc. Visbiežāk pareizā atbilde ir “visi darīs, jo ieguvei mēs dodam savas monētas, kas augs un kalnračiem tas ir izdevīgi”. Bet tas neattiecas uz visiem projektiem.

Piemēram, kāda Veselības ministrija rīt izveidos savu slēgto blokķēdi ārstiem (un viņi to vēlas), kurš to raks? Nedēļas nogales terapeiti?

Bet kāds labums no kalnračiem būs vēlāk, kad atlīdzības pazudīs vai kļūs niecīgas?

Saskaņā ar Radītāja ideju, līdz tam laikam cilvēkiem būs jātic bitcoin realitātei, un ieguve sāks atmaksāties ar katrā darījumā iekļauto maksu summu. Šeit viss notiek: 2012. gadā visas komisijas maksas bija nulle, kalnrači ieguva tikai atlīdzību no blokiem. Šodien darījums ar nulles komisijas naudu var karāties baseinā vairākas stundas, jo ir konkurence un cilvēki ir gatavi maksāt par ātrumu.

Tas ir, ieguves būtība ir bezjēdzīgu problēmu risināšanā. Vai visu šo spēku nevarētu izmantot kam lietderīgākam – piemēram, vēža ārstēšanas līdzekļu meklēšanai?

Kalnrūpniecības būtība ir atrisināt jebkuru skaitļošanas problēmu. Šim uzdevumam jābūt pietiekami vienkāršam, lai tīkla dalībniekiem būtu stabila iespēja atrast atbildi – pretējā gadījumā darījumi tiks apstiprināti uz visiem laikiem. Iedomājieties, ka veikalā pie kases katru reizi ir jāgaida pusstunda, līdz banka apstiprinās jūsu darījumu. Tādu banku neviens neizmantos.

Bet uzdevumam jābūt vienlaikus grūtam, lai visi interneta lietotāji uzreiz neatrod atbildi. Jo šajā gadījumā viņi paziņos tīklam daudzus blokus ar vienādiem darījumiem un būs iespēja "dubultā izšķērdēt", ko es minēju. Vai vēl ļaunāk – vienas blokķēdes sadalīšana vairākos zaros, kuros neviens nevar saprast, kurš darījums ir apstiprināts un kurš nē.

Ja atlīdzība 12,5 BTC tiek izsniegta tikai reizi 10 minūtēs un tikai viens cilvēks, kurš atrada bloku, izrādās, ka man vairākus gadus jātērē videokartes, cerot, ka kādu dienu es nometīšu 40 000 $. pašreizējais valūtas kurss)?

Tieši tas attiecas uz bitcoin. Bet ne vienmēr tā bija. Iepriekš tīkls bija mazāks, sarežģītība ir mazāka, kas nozīmē, ka iespēja vienam pašam atrast jaucējkodu jaunam blokam ir lielāka. Bet tad bitkoīns nebija tik dārgs.

Tagad neviens negūst bitkoīnus viens pats. Tagad dalībnieki ir apvienoti īpašās grupās - raktuvju baseinos, kur visi kopā cenšas atrast pareizo hash.

Ja vismaz viens no grupas atrod, tad visa atlīdzība tiek sadalīta starp dalībniekiem atkarībā no viņu ieguldījuma kopējā darbā. Izrādās, ka jūs nodarbojaties ar ieguvi un katru nedēļu saņemat santīmu no kopējās daļas.

Bet solo ieguve ir pilnīgi iespējama citos tīklos. Vēl nesen bija viegli iegūt Ethereum, kur bloki tiek atrasti ik pēc 10 sekundēm. Bloka atlīdzība tur ir daudz zemāka, bet iespēja nopelnīt diezgan santīmu ir lielāka.

Tātad mēs velti dedzināsim tūkstošiem video karšu un nav nekādas izejas?

Jā, bet idejas ir. Manis aprakstītā ieguve ir klasiska un tiek saukta par darba pierādījumu (Proof-of-Work). Tas nozīmē, ka katra iekārta pierāda, ka tā strādāja tīkla labā, risinot bezjēdzīgas problēmas ar noteiktu varbūtību.

Bet daži puiši sāk veidot blokķēdes ar citiem ieguves veidiem. Tagad otrs populārākais jēdziens ir Proof-of-Stake (pierādījums par likmi). Šāda veida ieguvē, jo vairāk tīkla dalībnieka kontā ir “monētu”, jo lielāka iespēja, ka viņš ievietos savu bloku blokķēdē. Tāpat kā skaļākais puisis ciematā.

Varat domāt par citiem kalnrūpniecības veidiem. Kā jau tika ieteikts, visi tīklā esošie datori var meklēt zāles pret vēzi, tikai jums ir jāizdomā, kā šajā gadījumā reģistrēt to ieguldījumu sistēmā. Galu galā es varu paziņot, ka arī es piedalos, bet izslēdziet savu video karti un neskaitiet neko.

Kā jūs kvantitatīvi novērtējat katra dalībnieka ieguldījumu vēža ārstēšanas līdzekļu atrašanā? Ja jūs to izdomājat - uzdrošinieties samazināt savu CancerCoin, ažiotāža medijos jums ir garantēta.

Blockchain

Iedomājieties situāciju, kurā, neskatoties uz visu mūsu varbūtības teoriju, diviem kalnračiem vienlaikus izdevās atrast pareizo atbildi. Viņi pa tīklu sāk sūtīt divus absolūti pareizus blokus.

Šie bloki garantēti atšķirsies, jo, pat ja tie brīnumainā kārtā izvēlētos vienādus darījumus no kopas, izveidojuši absolūti identiskus kokus un uzminējuši vienu un to pašu nejaušības skaitli (nonce), to jaucējvērtības joprojām būs atšķirīgas, jo katrs ierakstīs sava maka numuru bloks par atlīdzību.

Tagad mums ir divi derīgi bloki, un atkal rodas problēma, kurš būtu jāņem vērā pirmais. Kā tīkls rīkosies šajā gadījumā?

Blokķēdes algoritms nosaka, ka tīkla dalībnieki vienkārši pieņem pirmo pareizo atbildi, kas tos sasniedz. Tad viņi dzīvo, pamatojoties uz savu pasaules attēlu.

Abi kalnrači saņems savu atlīdzību, un visi pārējie sāks iegūt raktuves, paļaujoties uz pēdējo bloku, ko viņi personīgi saņēma, izmetot visus pārējos, kas ir atkārtoti pareizi. Tīklā parādās divas pareizās blokķēdes versijas. Tāds ir paradokss.

Šī ir ikdienišķa situācija, kurā atkal palīdz varbūtību teorija. Tīkls darbojas šādā bifurkētā stāvoklī, līdz kāds no kalnračiem atrod nākamo bloku vienai no šīm ķēdēm.

Tiklīdz šāds bloks tiek atrasts un ievietots ķēdē, tas kļūst garāks un tiek iekļauts viens no blokķēdes tīkla līgumiem: jebkuros apstākļos garākā blokķēde tiek pieņemta kā vienīgā patiesā visā tīklā.

Īso ķēdi, neskatoties uz visu tās pareizību, noraida visi tīkla dalībnieki. Darījumi no tā tiek atgriezti pūlā (ja tie nav apstiprināti citā), un to apstrāde sākas no jauna. Kalnracis zaudē atlīdzību, jo viņa bloks vairs nepastāv.

Pieaugot tīklam, šādas sakritības no "ļoti maz ticamas" nonāk kategorijā "nu, dažreiz tas notiek". Veclaiki stāsta, ka bijuši gadījumi, kad nometa uzreiz četru bloku ķēde.

Šī iemesla dēļ ir izgudroti trīs ķēdes beigu nedrošības noteikumi:

1. Atlīdzības par ieguvi var izmantot tikai pēc vēl 20 apstiprinātiem blokiem pēc saņemšanas. Bitcoin tas ir apmēram trīs stundas.

2. Ja jums tika nosūtīti bitkoini, varat tos izmantot kā ievades jaunos darījumos tikai pēc 1-5 blokiem.

3. 1. un 2. noteikums ir tikai norādīts katra klienta iestatījumos. To ievērošanu neviens neuzrauga. Taču garākā ķēdes likums tik un tā iznīcinās visus jūsu darījumus, ja mēģināsit pievilt sistēmu tos neizpildīt.

Mēģina apkrāpt blokķēdi

Tagad, kad jūs zināt visu par ieguvi, blokķēdes ierīci un garākās ķēdes likumu, jums varētu rasties jautājums: vai ir iespējams kaut kā īpaši apsteigt blokķēdi, pats izveidojot garāko ķēdi, tādējādi apstiprinot savus viltotos darījumus.

Pieņemsim, ka jums ir jaudīgākais dators pasaulē. Google un Amazon datu centri ir apvienoti jūsu rīcībā, un jūs mēģināt aprēķināt tādu ķēdi, kas kļūs par garāko blokķēdi tīklā.

Jūs nevarat ņemt un uzreiz aprēķināt vairākus ķēdes blokus, jo katrs nākamais bloks ir atkarīgs no iepriekšējā. Pēc tam jūs nolemjat pēc iespējas ātrāk saskaitīt katru bloku jūsu milzīgajos datu centros paralēli tam, kā visi pārējie dalībnieki turpina palielināt galveno blokķēdi. Vai ir iespējams viņus apdzīt? Iespējams jā.

Ja jūsu skaitļošanas jauda ir lielāka par 50% no visu tīkla dalībnieku jaudas, tad ar 50% varbūtību jūs varēsiet izveidot garāku ķēdi ātrāk nekā visas pārējās kopā. Tas ir teorētiski iespējams veids, kā apmānīt blokķēdi, aprēķinot garāku darījumu ķēdi. Tad visi reālā tīkla darījumi tiks uzskatīti par nederīgiem, un jūs savāksiet visas balvas un sāksiet jaunu pavērsienu kriptovalūtas vēsturē, ko sauc par "blokķēdes sadalīšanu". Reiz koda kļūdas dēļ tas notika ar Ethereum.

Taču patiesībā nevienu datu centru jaudas ziņā nevar salīdzināt ar visiem pasaules datoriem. Pusotrs miljards ķīniešu ar icicsiem, vēl pusotrs miljards izsalkušu indiešu ar ieguves fermām un lētu elektrību – tā ir milzīga skaitļošanas jauda. Neviens pasaulē vēl nevar konkurēt ar viņiem vienatnē, pat Google ne.

Tas ir tāpat kā iziet uz ielas un mēģināt pārliecināt ikvienu cilvēku pasaulē, ka dolārs tagad ir 1 rubļa vērts un esiet savlaicīgi, pirms mediji jūs atmasko. Un, ja jums izdosies pārliecināt visus, jūs varat sabrukt pasaules ekonomiku. Vai teorētiski tas nav iespējams? Bet praksē nez kāpēc nevienam tas neizdevās.

Uz šīs varbūtības balstās arī blokķēde. Jo vairāk dalībnieku-kalnraču, jo lielāka drošība un uzticēšanās tīklam. Tāpēc, kad Ķīnā tiek segta vēl viena liela kalnrūpniecības ferma, likme sabrūk. Visi baidās, ka kaut kur pasaulē ir bijis ļauns ģēnijs, kurš jau bija savācis kalnraču pūli ar ~ 49% jaudu.

Secinājums

Blockchain nav stingri definēts algoritmu kopums. Tā ir struktūra viltus tīkla veidošanai starp dalībniekiem, kur neviens nevar uzticēties nevienam. Lasot, iespējams, ne reizi vien radās doma, ka “var jau arī šādi un būs vēl noderīgāk”. Tas nozīmē, ka jūs saprotat blokķēdi, apsveicam.

Arī daži puiši pasaulē to saprata un vēlējās pilnveidoties vai pielāgoties kādiem konkrētiem uzdevumiem. Kriptovalūtas nav vienādas, lai gan arī to ir daudz. Šeit ir īss saraksts ar dažām idejām un projektiem, kas ir ieguvuši zināmu popularitāti, pateicoties blokķēdes idejas pārdomāšanai.

Ethereum

“Ēteri” ir otrs populārākais vārds, ko dzirdat kripto-hype ziņās pēc Bitcoin. Parastajiem cilvēkiem šī ir vēl viena kriptovalūta un veids, kā paveikt modernāko lietu, ko sauc par ICO. Vietnes izstrādātāji apraksta Ethereum kā "blokķēdes veidotāju jūsu vajadzībām". Tas arī ir iespējams, jā.

Bet, ja jūs rakāties vēl dziļāk, ēteris nav tikai monētu tīkls. Šī ir milzīga globāla skaitļošanas mašīna, kurā lietotāji izpilda citu cilvēku programmu kodu (viedos līgumus), saņemot atlīdzību par katru izpildīto rindiņu. Un tas viss ir decentralizēts, neiznīcināms un ar visām blokķēdes garantijām.

Par Ethereum un viedajiem līgumiem varam runāt tik ilgi, ka pietiks vēl vienam šādam ierakstam. Tāpēc rīkosimies topu emuāru autoru stilā: ja šis ieraksts tiks aktīvi pārpublicēts un retvītojams un līdz piektdienai tas iegūs vismaz 1500 unikālu skatījumu, rakstīšu turpinājumu par Ethereum un viedajiem līgumiem.

Ieteicams: