Obsah:

Ako vlastne blockchain funguje
Ako vlastne blockchain funguje

Video: Ako vlastne blockchain funguje

Video: Ako vlastne blockchain funguje
Video: WW1 - War On Two Wheels 2024, Apríl
Anonim

Tento príspevok má všetkým povedať, prečo bol blockchain vynájdený, ako fungujú kryptomeny a prečo je to z pohľadu logiky najkrajší systém za posledné roky.

Hneď vás upozorním, že pod výrezom je OBROVSKÝ hárok textu a ak nie ste pripravení otázku na tému kryptomien raz a navždy „uzavrieť“, pridajte si záznam do obľúbených hneď teraz a rezervujte si čas)

Blockchain je technológia, nová, zvláštna, nepochopiteľná, no zdá sa, že mení svet, na rozdiel od týchto vašich príbehov. Očividne je tu s nami už dlho.

Tento príspevok je napísaný tak, ako keby sa hovorilo ľuďom, ktorí majú k počítačom veľmi ďaleko a poznajú ich len povrchne, predstavte si napríklad, že sa pripravoval na vašich rodičov. Môžem to dokonca hodiť svojim humanitným vedám a byť si istý, že to pochopia.

A Oleg nám všetkým v tejto ťažkej záležitosti pomôže. Zoznámte sa!

Ak sa ti Olega nepáči, vyhodím ho.

Základy: prečo potrebujeme blockchain?

Blockchain bol opísaný v článku Satoshiho Nakamota „Bitcoin: Peer-to-Peer Electronic Cash System“. Len na ôsmich stranách tam autor opísal základy kryptomeny Bitcoin, ktorá bola založená na algoritme Blockchain.

Zoznam, ktorý nemožno zmeniť

Blockchain - reťaz blokov alebo inými slovami prepojený zoznam. V takomto zozname každý ďalší záznam odkazuje na jeden predchádzajúci a tak ďalej v reťazci k úplne prvému. Ako vozne vlaku, každý ťahá so sebou ďalší. Pokiaľ ide o zoznamy, existuje dobrý článok od Nikitu Likhachev o TJ, kde je to isté vysvetlené pre úplných nováčikov. Analógie sú čiastočne prevzaté odtiaľ.

Vezmime si príklad

Olegovi priatelia si od neho neustále požičiavajú peniaze. Oleg je milý, ale mimoriadne zábudlivý. O týždeň si už nepamätá, kto mu dlh nevrátil, no je mu trápne sa na to všetkých pýtať. Jedného dňa sa preto rozhodol s tým skoncovať tým, že si doma na tabuli vytvoril zoznam priateľov, ktorým požičal peniaze.

Teraz môže Oleg vždy ísť k tabuli a uistiť sa, že Max všetko vrátil, ale Vanya už nedáva 700 rubľov. Jedného dňa Oleg pozve Vanyu na drink k nemu domov. Zatiaľ čo Oleg ide na záchod, Vanya vymaže záznam „Požičal som si 200 rubľov pre Vanyu“a namiesto neho napíše „Vanya dal 500 rubľov“.

Oleg, ktorý dôveroval svojmu zoznamu, zabudne na dlh a stratí 700 rubľov. Rozhodne sa s tým nejako bojovať. Minulý rok sa Oleg zúčastnil kurzu programovania, kde mu povedali o hašovaní. Pamätá si, že akýkoľvek reťazec sa dá premeniť na jednoznačnú množinu znakov – hash a zmenou ktoréhokoľvek znaku v reťazci sa to úplne zmení.

Pridanie bodky na koniec zmenilo výsledný hash na nepoznanie – môžete ho použiť.

Oleg vezme známy hash SHA-256 a zahašuje s ním každý záznam a na koniec pridá výsledok. Teraz sa Oleg môže uistiť, že nikto nezmenil jeho záznamy tým, že ich znova zahašuje a porovná so zeleným.

Ale EVIL IVAN tiež vie, ako používať SHA-256 a môže ľahko zmeniť položku spolu s jej hashom. Najmä ak je hash napísaný hneď vedľa na tabuli.

Pre väčšiu bezpečnosť sa preto Oleg rozhodne zahašovať nielen samotný záznam, ale pridať ho spolu s hashom z predchádzajúceho záznamu. Teraz všetky nasledujúce položky závisia od predchádzajúcich. Ak zmeníte aspoň jeden riadok, budete musieť prepočítať hash všetkých ostatných nižšie v zozname.

Jedného dňa sa však Ivan v noci prikradne, zmení záznam, ktorý potrebuje, a aktualizuje hash pre celý zoznam až do konca. Trvá mu to niekoľko hodín, ale Oleg stále tvrdo spí a nepočuje. Ráno Oleg objaví úplne správny zoznam – všetky hashe sa zhodujú. Ale Ivan ho aj tak oklamal, hoci na tom strávil bezsennú noc. Ako sa inak môžete chrániť pred Nočným Ivanom?

Oleg sa rozhodne nejako si skomplikovať život. Teraz, ak chcete pridať nový záznam do zoznamu, Oleg vyrieši zložitý problém s ním spojený, napríklad matematickú rovnicu. Odpoveď doplní do konečného hashu.

Oleg je dobrý v matematike, ale aj pridanie záznamu trvá desať minút. Napriek tomu ten strávený čas stojí za to, pretože ak bude chcieť Ivan opäť niečo zmeniť, bude musieť nanovo riešiť rovnice pre každý riadok, ktorých môžu byť desiatky. Zaberie to veľa času, pretože rovnice sú zakaždým jedinečné a spojené s konkrétnym záznamom.

Ale kontrola zoznamu je rovnako jednoduchá: najprv musíte porovnať hashe ako predtým a potom skontrolovať riešenia rovníc jednoduchou substitúciou. Ak všetko konverguje, zoznam sa nezmení.

V skutočnosti to s rovnicami nie je také dobré: počítače ich riešia príliš dobre a kam uložiť toľko jedinečných rovníc. Autori blockchainu preto prišli s krajším problémom: treba nájsť také číslo (nonce), aby výsledný hash celého záznamu začínal 10 nulami. Taký nonce sa hľadá ťažko, no výsledok sa dá vždy skontrolovať len očami.

Teraz Oleg overuje všetky hashe a navyše sa ubezpečuje, že každý začína určeným počtom núl. Prefíkaný Ivan, aj keď vyzbrojený výkonným notebookom, nestihne za noc prepočítať všetky hashe tak, aby splnili podmienku - času nebude dosť.

Takýto zoznam je v skutočnosti domácim blockchainom na kolene. Jeho bezpečnosť zaručujú matematici, ktorí dokázali, že tieto hashe sa nedajú vypočítať akosi rýchlejšie, okrem hrubej sily. Takýmto vymenovaním hashov pre každý záznam je ťažba, o ktorej dnes bude veľa a podrobne.

Centralizácia dôvery

Našim priateľom sa páčila myšlienka viesť falošný zoznam „kto si koho požičal“. Tiež si nechcú pamätať, kto za koho zaplatil v bare a koľko ešte dlhujú - všetko je napísané na stene. Prediskutovali ste túto myšlienku a rozhodli ste sa, že teraz potrebujete jeden zoznam pre všetkých.

Komu by však malo byť zverené také dôležité vedenie účtovníctva? Keď ide o peniaze, do popredia sa dostáva dôvera. Nebudeme dôverovať neznámemu, že si naše peniaze nechá. Na to naši predkovia vymysleli banky, ktorým sa postupom času začalo dôverovať, pretože za nimi stojí licencia, zákony a poistenie od centrálnej banky.

V kruhu priateľov si všetci dôverujú a do tejto úlohy si jednoducho vyberiete toho najzodpovednejšieho. Ale čo ak sa otázka týka cudzincov? Celé mesto, krajina alebo celý svet, ako je to v prípade Bitcoinu? Vo všeobecnosti tam nikto nemôže nikomu dôverovať.

Decentralizácia: nikto nikomu neverí

Preto prišli s alternatívnym prístupom: ponechať kópiu zoznamu pre každého. Útočník by teda musel nielen prepísať jeden zoznam, ale aj vplížiť sa do každého domu a prepísať tam zoznamy. A potom sa ukáže, že niekto mal doma niekoľko zoznamov, o ktorých nikto nevedel. Toto je decentralizácia.

Nevýhodou tohto prístupu je, že na vytvorenie nových záznamov budete musieť zavolať všetkým ostatným účastníkom a informovať každého z nich o najnovších zmenách. Ale ak sú títo účastníci bezduchými strojmi, prestáva to byť žiadny problém.

V takomto systéme neexistuje jediný bod dôvery, a teda možnosť podplácania a podvádzania. Všetci účastníci systému konajú podľa jediného pravidla: nikto nikomu neverí. Každý verí len tým informáciám, ktoré má k dispozícii. Toto je hlavný zákon každej decentralizovanej siete.

Transakcie

Pri kúpe hrnca v obchode zadávate PIN kód z vašej karty, vďaka čomu môže obchod požiadať banku, či máte na účte 35 rubľov. Inými slovami, svojim PIN kódom podpíšete transakciu za 35 rubľov, ktorú banka potvrdí alebo zamietne.

Naše záznamy typu „Požičal som si Vanyu 500 rubľov“sú tiež transakcie. Ale nemáme banku autorizujúcu autora transakcií. Ako môžeme skontrolovať, či Ivan potichu nepridal záznam „Max dlhuje Olegovi 100 500 rubľov“?

Blockchain na to využíva mechanizmus verejných a súkromných kľúčov, IT špecialisti ich už dlho používajú na autorizáciu v rovnakom SSH. Vysvetlil som to na prstoch v príspevku „Bezpečnosť, šifrovanie, kyberpunk“v sekcii „Úvod do šifrovania“.

Stručne o tom, ako táto zložitá, no krásna matematika funguje: na počítači vygenerujete pár dlhých prvočísel – verejný a súkromný kľúč. Súkromný kľúč sa považuje za supertajný, pretože dokáže dešifrovať to, čo je zašifrované na verejnosti.

Ale funguje to aj naopak. Ak zdieľate verejný kľúč so všetkými svojimi priateľmi, budú môcť pre nich zašifrovať akúkoľvek správu, aby ste si ju mohli prečítať iba vy, keďže vlastníte ten súkromný.

Okrem toho má však verejný kľúč užitočný účinok – pomocou neho môžete skontrolovať, či boli údaje zašifrované vašim súkromným kľúčom, bez toho, aby ste museli dešifrovať samotné údaje. Všetky tieto vlastnosti sú dobre opísané v „Knihe šifier“.

Sme na decentralizovanom internete, kde sa nedá nikomu dôverovať. Transakcia je podpísaná súkromným kľúčom a spolu s verejným kľúčom je odoslaná do špeciálneho úložiska – fondu nepotvrdených transakcií. Každý člen siete si tak môže overiť, že ste to boli vy, kto to inicioval, a nie niekto iný chce zaplatiť vašimi peniazmi.

To zaisťuje otvorenosť a bezpečnosť siete. Ak za to boli zodpovedné skoršie banky, tak v blockchaine sú za to zodpovední matematici.

Bežným používateľom, ktorí nechcú vymýšľať, ako vydávať a uchovávať súkromné kľúče, pomôžu služby online peňaženky. Na kopírovanie dlhých verejných kľúčov sú tam vytvorené pohodlné QR kódy. Napríklad Blockchain Wallet, pretože má pohodlnú mobilnú aplikáciu a podporuje dve hlavné kryptomeny – BTC a ETH.

Nedostatok konceptu "rovnováhy"

Rovnako ako naša doska, blockchain v podstate pozostáva iba z histórie transakcií. Neuchováva zostatok každej peňaženky, inak by sme museli vymýšľať ďalšie spôsoby ochrany.

Vlastníctvo peňaženky potvrdzuje iba súkromný kľúč. Ako však môžu ostatní členovia siete zabezpečiť, aby som mal dostatok peňazí na nákup?

Keďže nemáme žiadnu bilanciu, musíte to dokázať. Blockchain transakcia teda zahŕňa nielen váš podpis a koľko chcete minúť, ale aj odkazy na predchádzajúce transakcie, v ktorých ste dostali požadované množstvo peňazí.

To znamená, že ak chcete minúť 400 rubľov, prejdete si celú históriu príjmov a výdavkov a pripojíte k svojej transakcii tie príjmy, pri ktorých ste dostali 100 + 250 + 50 rubľov, čím preukážete, že máte týchto 400 rubľov.

Každý člen siete si opäť určite skontroluje, či ste nepripojili príjem dvakrát. Že tých 300 rubľov, ktoré dal Max minulý týždeň, ste naozaj ešte neminuli.

Takéto príjmy spojené s transakciou sa v blockchaine nazývajú vstupy a všetci príjemcovia peňazí sa nazývajú výstupy. Súčet všetkých vstupov je zriedka presne rovnaký, ako chcete naraz preniesť – preto budete jedným z výstupov najčastejšie vy. Inými slovami, transakcia na blockchaine vyzerá tak, že „dostal som 3 a 2 BTC, chcem z nich previesť 4 BTC a zvyšný 1 BTC vrátiť späť.“

Krása blockchainu spočíva v tom, že vstupy nemusia pochádzať z jednej peňaženky. Kontroluje sa predsa len kľúč. Ak poznáte súkromný kľúč všetkých vstupov, môžete ich ľahko pripojiť k svojej transakcii a zaplatiť týmito peniazmi. Ako keby ste platili v supermarkete viacerými kartami, z ktorých poznáte PIN kód.

Ak však stratíte svoj súkromný kľúč, odumrie vám disk alebo vám ukradnú notebook, vaše bitcoiny budú navždy stratené. Nikto ich nemôže použiť ako vstupy pre nové transakcie.

Táto suma bude navždy nedostupná celému svetu – ako keby ste spálili zväzok bankoviek. Neexistuje jediná banka, kde by ste mohli napísať žiadosť s kópiou pasu a on vám ju vytlačí. To si vyžaduje dodatočné uvoľnenie nových bitcoinov „z ničoho“.

Problém s dvojitými výdavkami

Vyššie som povedal, že transakcie sa pridávajú do špeciálneho „poolu nepotvrdených transakcií“. Prečo potrebujeme nejaký druh sprostredkovateľskej entity, ak už máme v skutočnosti hotové podpísané transakcie? Prečo ich nenapísať priamo do blockchainu?

Pretože signály z bodu A do bodu B idú vždy s oneskorením. Dve transakcie môžu prebiehať úplne odlišnými spôsobmi. A transakcia, ktorá bola iniciovaná ako prvá, sa môže dostať k príjemcovi neskôr, pretože to trvalo dlhšie.

Dochádza tak k dvojnásobnému míňaniu, kedy sa dvom adresátom naraz posielali tie isté peniaze, o ktorých by ani len netušili. Toto nie je odovzdávanie účtov z ruky do ruky.

Pre decentralizovanú sieť, v ktorej nemožno nikomu dôverovať, je tento problém obzvlášť akútny. Takto sa ubezpečíte, že jedna transakcia bola určite pred druhou? Požiadajte odosielateľa, aby do toho všil čas odoslania, však? Ale pamätajte - nemôžete dôverovať nikomu, dokonca ani odosielateľovi.

Čas na všetkých počítačoch sa bude nevyhnutne líšiť a neexistuje žiadny zaručený spôsob, ako ich synchronizovať. Kópia blockchainu je uložená na každom počítači v sieti a každý účastník dôveruje iba jemu.

Ako sa môžete uistiť, že jedna transakcia prebehla skôr ako druhá?

Odpoveď je jednoduchá: je to nemožné. Neexistuje spôsob, ako potvrdiť čas transakcie v decentralizovanej sieti. A riešením tohto problému je tretia dôležitá myšlienka blockchainu, ktorú Satoshi vynašiel a ktorá je, napodiv, vysvetlená priamo v jeho mene – bloky.

Bloky sú chrbtovou kosťou blockchainu

Každý pracovný počítač v sieti vyberie zo všeobecného fondu ľubovoľné transakcie, ktoré sa mu páčia. Väčšinou len za najvyššiu províziu, ktorú na tom dokáže zarobiť. Zhromažďuje teda pre seba transakcie, kým ich celková veľkosť nedosiahne dohodnutý limit. V Bitcoine je tento limit veľkosti bloku 1 MB (po SegWit2x to bude 2 MB) a v Bitcoin Cash - 8 MB.

Celý blockchain je v podstate zoznam takýchto blokov, kde každý odkazuje na predchádzajúci. Dá sa použiť na sledovanie akejkoľvek transakcie v celej histórii, odvíjanie blockchainu až po úplne prvý záznam.

Práve tento zoznam teraz váži stovky gigabajtov a musí sa úplne stiahnuť do všetkých počítačov, ktoré sa chcú zapojiť do siete (nie je to však potrebné na jednoduché vytváranie transakcií a prevod peňazí). Sťahuje sa rovnako zo všetkých najbližších počítačov v sieti, ako keby ste sťahovali sériu z torrentov, každých 10 minút v nej vychádzajú len nové nové epizódy.

Po zadaní transakcií z fondu pre seba začne počítač z nich skladať rovnaký nesfalšovateľný zoznam, aký sme robili na začiatku príspevku na nástenke doma.

Iba on to robí vo forme stromu - hašuje záznamy po pároch, potom je výsledok opäť v pároch a tak ďalej, až kým nezostane iba jeden hash - koreň stromu, ktorý sa pridá do bloku. Prečo práve so stromom - odpoveď som nenašiel, ale predpokladám, že takto je to jednoducho rýchlejšie. Prečítajte si viac na wiki: Strom Merkle.

Keďže aktuálny blockchain je už stiahnutý, náš počítač presne vie, aký je v ňom posledný blok. Stačí naň pridať odkaz do hlavičky bloku, všetko zahašovať a povedať všetkým ostatným počítačom v sieti „pozri, vytvoril som nový blok, pridáme ho do nášho blockchainu“.

Zvyšok by mal skontrolovať, či je blok postavený podľa všetkých pravidiel a či sme tam nepridali zbytočné transakcie, a potom ich pridať do našich reťazcov. Teraz sú v ňom potvrdené všetky transakcie, blockchain je navýšený o jeden blok a všetko ide dobre, nie?

Ale nie. Tisíce počítačov súčasne pracujú v sieti a len čo zostavia nový blok, takmer súčasne sa ponáhľajú informovať všetkých, že ich blok bol vytvorený ako prvý. A z predchádzajúcej časti už vieme, že v decentralizovanej sieti sa nedá dokázať, kto bol naozaj prvý.

Tak ako v škole, keď všetci riešili ťažký test, málokedy sa stalo, že aj výborní žiaci brali odpovede naraz.

Ale ak je pre človeka ťažká úloha naplánovať si dovolenku tak, aby sa dostal na májové prázdniny, a letenky k moru sú lacné, tak pre počítač je pripísať takéto číslo (nonce) na koniec blok, takže výsledkom je, že hash SHA-256 pre celý blok začína povedzme 10 núl. Toto je problém, ktorý je potrebné vyriešiť, aby sa do bitcoinovej siete pridal blok. Pre iné siete sa úlohy môžu líšiť.

Dostávame sa teda k pojmu ťažba, ktorým je v posledných rokoch každý taký posadnutý.

Baníctvo

Ťažba bitcoinov nie je nejaký druh posvätnej sviatosti. Ťažba nie je o hľadaní nových bitcoinov niekde v hlbinách internetu. Ťažba je, keď tisíce počítačov po celom svete bzučia v pivniciach, prechádzajú miliónmi čísel za sekundu a snažia sa nájsť hash, ktorý začína 10 nulami. Na to ani nemusia byť online.

Grafické karty so stovkami paralelných jadier riešia tento problém rýchlejšie ako ktorýkoľvek CPU.

Prečo práve 10 núl? A práve tak to nedáva zmysel. Satoshi teda prišiel s. Pretože toto je jeden z problémov, na ktorý sa vždy nájde riešenie, no určite sa nedá nájsť rýchlejšie ako dlhé monotónne vymenovanie možností.

Zložitosť ťažby priamo závisí od veľkosti siete, teda od jej celkového výkonu. Ak si vytvoríte vlastný blockchain a spustíte ho sami doma na dvoch notebookoch, potom by úloha mala byť jednoduchšia. Napríklad tak, aby hash začínal iba jednou nulou, alebo aby sa súčet párnych číslic rovnal súčtu nepárnych.

Bude trvať niekoľko desaťročí, kým jeden počítač nájde hash začínajúci 10 nulami. Ak však skombinujete tisíce počítačov do jednej siete a paralelne budete hľadať, potom sa podľa teórie pravdepodobnosti tento problém vyrieši v priemere za 10 minút. Toto je čas, keď sa v bitcoinovom blockchaine objaví nový blok.

Každých 8-12 minút niekto na zemi nájde takýto hash a dostane privilégium oznámiť svoj objav každému, čím sa vyhne problému, kto bol prvý.

Za nájdenie odpovede dostane počítač (od roku 2017) 12,5 BTC – to je výška odmeny, ktorá je generovaná bitcoinovým systémom „z ničoho“a klesá každé štyri roky.

Technicky to znamená, že každý miner si do svojho bloku vždy pridá ďalšiu transakciu – „vytvor 12,5 BTC a pošli mi ich do peňaženky“. Keď počujete "počet bitcoinov na svete je obmedzený na 21 miliónov, teraz si najali 16 miliónov" - to sú odmeny, ktoré generuje sieť.

Choďte si pozrieť skutočný živý bitcoinový blok na jednej z vyhradených stránok. Existujú tiež transakcie so vstupmi a výstupmi a až 18 núl na začiatku a všetky vyššie opísané hashe.

Sú to baníci, ktorí pridávajú vznikajúce transakcie do blockchainu. Ak vám teda niekto povie, že „vyrobí blockchain pre ***“, prvá otázka, na ktorú musí odpovedať, je, kto a prečo na ňom bude ťažiť. Najčastejšie je správna odpoveď „všetci budú, pretože za ťažbu dávame svoje coiny, ktoré budú rásť a je to pre ťažiarov výhodné“. Neplatí to však pre všetky projekty.

Napríklad nejaké ministerstvo zdravotníctva zajtra vytvorí svoj vlastný uzavretý blockchain pre lekárov (a chcú ho), kto ho bude ťažiť? Víkendoví terapeuti?

Aký úžitok však budú mať baníci neskôr, keď odmeny zmiznú alebo budú mizivé?

Podľa predstavy Stvoriteľa dovtedy ľudia budú musieť veriť realite bitcoinu a ťažba sa im začne vyplácať výškou poplatkov zahrnutých v každej transakcii. Tu ide všetko: ešte v roku 2012 boli všetky provízie nulové, ťažiari ťažili len za odmeny z blokov. Dnes môže transakcia s nulovou províziou visieť v bazéne aj niekoľko hodín, pretože je tu konkurencia a ľudia sú ochotní zaplatiť za rýchlosť.

To znamená, že podstata ťažby je v riešení nezmyselných problémov. Nedalo by sa všetku túto silu využiť na niečo užitočnejšie – napríklad na hľadanie lieku na rakovinu?

Podstatou ťažby je vyriešiť akýkoľvek výpočtový problém. Táto úloha by mala byť dostatočne jednoduchá, aby mali účastníci siete stabilnú pravdepodobnosť nájdenia odpovede – inak budú transakcie potvrdené navždy. Predstavte si, že pri pokladni v obchode musíte zakaždým pol hodiny čakať, kým vám banka transakciu potvrdí. Takúto banku nikto nevyužije.

Úloha však musí byť zároveň ťažká, aby odpoveď nenašli všetci naraz. Pretože v tomto prípade oznámia do siete veľa blokov s rovnakými transakciami a vznikne možnosť „dvojitého odpadu“, ktorý som spomínal. Alebo ešte horšie – rozdelenie jediného blockchainu na niekoľko vetiev, v ktorých nikto nevie zistiť, ktorá transakcia je potvrdená a ktorá nie.

Ak sa odmena 12,5 BTC rozdá len raz za 10 minút a iba jedna osoba, ktorá blok našla, ukáže sa, že musím plytvať grafickými kartami niekoľko rokov v nádeji, že jedného dňa prepadnem 40 000 $ (na aktuálny výmenný kurz)?

To je presne prípad bitcoinu. Ale nebolo to tak vždy. Predtým bola sieť menšia, zložitosť je nižšia, čo znamená, že pravdepodobnosť, že sám nájde hash pre nový blok, je vyššia. Ale potom bitcoin nebol taký drahý.

Teraz nikto neťaží bitcoiny sám. Teraz sú účastníci zjednotení v špeciálnych skupinách - mining pooloch, kde sa všetci spoločne snažia nájsť správny hash.

Ak nájde aspoň jeden zo skupiny, potom sa celá odmena rozdelí medzi účastníkov v závislosti od ich prínosu k spoločnému dielu. Ukazuje sa, že ťažíte a každý týždeň dostanete cent z celkového podielu.

Ale sólo ťažba je celkom možná na iných sieťach. Až donedávna bolo ľahké ťažiť Ethereum, kde sa bloky nachádzajú každých 10 sekúnd. Bloková odmena je tam oveľa nižšia, ale pravdepodobnosť, že zarobíte pekný cent, je vyššia.

Takže budeme márne spáliť tisíce grafických kariet a neexistuje žiadna cesta von?

Áno, ale existujú nápady. Ťažba, ktorú som opísal, je klasická a volá sa Proof-of-Work (proof of work). To znamená, že každý stroj dokazuje, že fungoval v prospech siete riešením nezmyselných problémov s danou pravdepodobnosťou.

Niektorí chlapci však začínajú vytvárať blockchainy s inými typmi ťažby. Teraz je druhým najpopulárnejším konceptom Proof-of-Stake (dôkaz o vklade). Pri tomto type ťažby platí, že čím viac „coinov“má účastník siete na svojom účte, tým je pravdepodobnejšie, že vloží svoj blok do blockchainu. Ako najhlasnejší chlap v dedine.

Môžete myslieť na iné typy ťažby. Ako už bolo naznačené, všetky počítače v sieti môžu hľadať liek na rakovinu, len vy musíte prísť na to, ako v tomto prípade zaznamenať ich prínos do systému. Koniec koncov, môžem vyhlásiť, že sa tiež zúčastňujem, ale vypnite svoju grafickú kartu a nič nepočítajte.

Ako kvantifikujete príspevok každého účastníka k nájdeniu lieku na rakovinu? Ak na to prídete – odvážte sa znížiť svoj CancerCoin, mediálny humbuk vám je zaručený.

Blockchain

Predstavte si situáciu, že napriek všetkej našej teórii pravdepodobnosti sa dvom baníkom podarilo nájsť správnu odpoveď súčasne. Po sieti začnú posielať dva absolútne správne bloky.

Tieto bloky sú zaručene odlišné, pretože aj keby si nejakým zázrakom vybrali rovnaké transakcie z poolu, vytvorili absolútne identické stromy a uhádli rovnaké náhodné číslo (nonce), ich hash sa bude stále líšiť, keďže každý si zapíše číslo svojej peňaženky. blok za odmenu.

Teraz máme dva platné bloky a opäť nastáva problém, koho treba zvážiť ako prvého. Ako sa bude správať sieť v tomto prípade?

Algoritmus blockchainu uvádza, že účastníci siete jednoducho akceptujú prvú správnu odpoveď, ktorá sa k nim dostane. Potom žijú na základe vlastného obrazu sveta.

Obaja baníci dostanú svoju odmenu a všetci ostatní začnú ťažiť, pričom sa spoliehajú na posledný blok, ktorý osobne dostali, pričom všetky ostatné sú správne vyradené. V sieti sa objavujú dve verzie správneho blockchainu. Taký je paradox.

Ide o rutinnú situáciu, v ktorej opäť pomáha teória pravdepodobnosti. Sieť funguje v takomto rozdvojenom stave, kým jeden z ťažiarov nenájde ďalší blok jedného z týchto reťazcov.

Akonáhle je takýto blok nájdený a vložený do reťazca, stáva sa dlhším a je zahrnutá jedna z dohôd blockchainovej siete: za každých podmienok je najdlhší blockchain akceptovaný ako jediný pravdivý pre celú sieť.

Krátky reťazec napriek všetkej jeho správnosti odmietajú všetci účastníci siete. Transakcie z neho sa vracajú do poolu (ak neboli potvrdené v inom) a ich spracovanie sa začína odznova. Baník príde o odmenu, pretože jeho blok už neexistuje.

S rastom siete takéto náhody z „veľmi nepravdepodobných“idú do kategórie „dobre, niekedy sa to stane“. Starovekí hovoria, že sa vyskytli prípady, keď naraz spadla reťaz zo štyroch blokov.

Z tohto dôvodu boli vynájdené tri pravidlá neistoty na konci reťazca:

1. Odmeny za ťažbu je možné použiť až po ďalších 20 potvrdených blokoch po obdržaní. Pre bitcoiny sú to asi tri hodiny.

2. Ak vám boli zaslané bitcoiny, môžete ich použiť ako vstupy v nových transakciách až po 1-5 blokoch.

3. Pravidlá 1 a 2 sú presne uvedené v nastaveniach každého klienta. Nikto nesleduje ich dodržiavanie. Zákon o najdlhšom reťazci však stále vymaže všetky vaše transakcie, ak sa pokúsite oklamať systém, aby ich nevynucoval.

Pokus o podvádzanie blockchainu

Teraz, keď viete všetko o ťažbe, zariadení blockchainu a pravidle najdlhšieho reťazca, možno vás napadne otázka: je možné nejako konkrétne predbehnúť blockchain tým, že si sami vytvoríte najdlhší reťazec, čím potvrdíte svoje falošné transakcie?

Povedzme, že máte najvýkonnejší počítač na svete. Dátové centrá Google a Amazon máte k dispozícii a snažíte sa vypočítať taký reťazec, ktorý sa stane najdlhším blockchainom v sieti.

Nemôžete vziať a okamžite vypočítať niekoľko blokov reťazca, pretože každý ďalší blok závisí od predchádzajúceho. Potom sa čo najrýchlejšie rozhodnete počítať každý blok vo vašich obrovských dátových centrách paralelne s tým, ako všetci ostatní účastníci pokračujú v zvyšovaní hlavného blockchainu. Je možné ich predbehnúť? Pravdepodobne áno.

Ak je váš výpočtový výkon viac ako 50% výkonu všetkých účastníkov siete, potom s 50% pravdepodobnosťou budete môcť vybudovať dlhší reťazec rýchlejšie ako všetci ostatní dohromady. Toto je teoreticky možný spôsob, ako oklamať blockchain výpočtom dlhšieho reťazca transakcií. Potom budú všetky transakcie skutočnej siete považované za neplatné a vy pozbierate všetky odmeny a začnete nový míľnik v histórii kryptomien, ktorý sa nazýva „blockchain division“. Raz, kvôli chybe v kóde, to bol prípad Etherea.

V skutočnosti sa však žiadne dátové centrum nedá z hľadiska výkonu porovnávať so všetkými počítačmi na svete. Jeden a pol miliardy Číňanov s icicsom, ďalšia jeden a pol miliardy hladných Indov s ťažobnými farmami a lacnou elektrinou – to je obrovská výpočtová sila. Nikto na svete im zatiaľ nemôže sám konkurovať, dokonca ani Google.

Je to ako ísť von na ulicu a snažiť sa presvedčiť každého človeka na svete, že dolár má teraz hodnotu 1 rubeľ a byť včas, kým vás médiá odhalia. A ak sa vám podarí presvedčiť všetkých, môžete skolabovať svetovú ekonomiku. Teoreticky to nie je možné? Ale v praxi sa to z nejakého dôvodu nikomu nepodarilo.

Na tejto pravdepodobnosti spočíva aj blockchain. Čím viac účastníkov-baníkov, tým väčšia bezpečnosť a dôvera v sieť. Preto, keď je v Číne pokrytá ďalšia veľká ťažobná farma, sadzba sa zrúti. Každý sa bojí, že niekde na svete bol zlý génius, ktorý už zhromaždil zásobu baníkov s kapacitou ~ 49 %.

Záver

Blockchain nie je striktne definovaný súbor algoritmov. Ide o štruktúru na budovanie falošnej siete medzi účastníkmi, kde nikto nemôže nikomu dôverovať. Pri čítaní vás určite neraz napadla myšlienka, že „takto sa to dá a bude to ešte užitočnejšie“. To znamená, že rozumiete blockchainu, blahoželám.

Niektorí chlapi vo svete to tiež pochopili a chceli sa zlepšiť alebo prispôsobiť na nejaké špecifické úlohy. Kryptomeny nie sú rovnaké, aj keď ich je tiež veľa. Tu je krátky zoznam niektorých nápadov a projektov, ktoré si získali určitú popularitu vďaka prehodnoteniu myšlienky blockchainu.

Ethereum

„Étery“sú po Bitcoine druhým najpopulárnejším slovom, ktoré počujete v krypto-hype správach. Pre bežných ľudí je to ďalšia kryptomena a spôsob, ako urobiť najtrendovejšiu vec s názvom ICO. Vývojári na stránke popisujú Ethereum ako „tvorcu blockchainu pre vaše potreby“. Aj to je možné, áno.

Ak sa však ponoríte ešte hlbšie, éter nie je len sieť mincí. Ide o obrovský globálny počítačový stroj, kde používatelia spúšťajú kód programov iných ľudí (inteligentné zmluvy) a dostávajú odmenu za každý vykonaný riadok. A to všetko je decentralizované, nezničiteľné a so všetkými zárukami blockchainu.

O Ethereu a smart kontraktoch sa môžeme baviť tak dlho, že to bude stačiť na ďalší takýto príspevok. Preto budeme konať štýlom top blogerov: ak bude tento príspevok aktívne repostovať a retweetovať a do piatku získa aspoň 1500 unikátnych zobrazení, napíšem pokračovanie o Ethereu a smart kontraktoch.

Odporúča: