Bitcoin je často nazývaný dinosaurom medzi kryptomenami. Máme tu dnes predsa kopu lepších a novších krypto projektov s pokročilejšou technológiou. Svet kryptomien je extrémne dynamický a exponenciálne rastúci. Anonymnejšie alebo rýchlejšie kryptomeny s novými funkciami vznikajú neustále. Stáva sa teda Bitcoin dinosaurom na smetisku dejín? Dôveruje toľko ľudí Bitcoinu len preto, že je najstarší? Znamená to však, že je aj zastaraný? V tomto článku vám chcem priblížiť ako fungujú technologické vylepšenia Bitcoinu, ako na seba nadväzujú a aké nás v budúcnosti môžu čakať.
BIP je jeden zo základných pojmov, ak sa rozprávame o technickom vylepšovaní Bitcoinu. Skratka BIP znamená Bitcoin Improvement Proposal. Je to dokument, ktorým sú predstavované funkcie, zmeny alebo obmedzenia, ktoré by mali byť zavedené do protokolu alebo kódu Bitcoinu. BIP by mal obsahovať technickú špecifikáciu novej funkcie a jej zdôvodnenie. Keďže Bitcoin samotný nemá formálnu štruktúru, toto sa stalo štandardom pre komunikovanie návrhov vylepšení. Hocijaký vývojár na svete môže navrhnúť BIP. Či bude aj implementovaný potom závisí len od Bitcoinovej komunity – používateľov, minerov, vývojárov, investorov. Všetky tieto návrhy sú teda verejne dostupné hocikomu.
i
Drobná lekcia z histórie: Prvý BIP vytvoril Amir Taaki. Opísal a zdôvodnil v ňom samotné fungovanie BIP-ov a zaviedol tak dodnes používaný proces na vylepšovanie protokolu Bitcoinu. BIP je inšpirovaný Python Enhancement Proposal, ktorý funguje na podobných princípoch open-source kolaborácie. Amir Taaki je veľmi známy kryptoanarchista, hacktivista a programátor, o ktorom ste už možno počuli. Mohli ste sa s ním totiž stretnúť na podujatiach v Prahe aj v Bratislave.
Existujú rôzne druhy BIP:
i
Deterministic Wallets (HD peňaženky) umožňujú z jedného seedu vygenerovať nekonečno adries. Dnes sú štandardom vo väčšine peňaženiek a určite ste s nimi prišli do kontaktu. Môžete vďaka ním používať Bitcoin anonymnejšie bez toho, aby ste museli zakaždým generovať pár verejného a privátneho kľúča a ukladať si seed.
O soft forkoch a hard forkoch sa toho popísalo už veľa, preto zhrniem len základné rozdiely. Oba typy forkov predstavujú spôsob zavádzania zmien do Bitcoin protokolu.
Soft fork je len dočasná rozdielnosť v sieti spôsobená neaktualizovaným uzly, pracujúcimi bez nových pravidiel. Má spätnú kompatibilitu, keďže staré uzly rozoznajú bloky vytvorené novými. Po implementácii je potrebné pre aktualizované uzly dosiahnuť v sieti väčšinu. Ak sa im to nepodarí, soft fork zlyhal. Na druhej strane, ak sa podarí dosiahnuť konsenzus, v sieti sa uplatnia nové pravidlá. Staré uzly sa tak stanú zbytočnými a sú motivované aktualizovať. Môžeme tiež povedať, že soft forkom sa dajú implementovať najmä obmedzenia. Nie je možné vytvárať zásadné zmeny a nové funkcie. No však aj obmedzením vieme vytvoriť vylepšenie.
Hard fork je permanentný rozdiel, kedy staré uzly nedokážu validovať bloky vytvorené aktualizovanými uzlami. Blockchain sa tak úplne rozdeľuje a vzniká nová paralelná kryptomena so spoločnou históriou, ktorú ťažia uzly s aktualizáciou. Pričom staré uzly stále udržujú originálnu kryptomenu. Hard fork tak umožňuje rýchlu a radikálnu zmenu.
Ako bolo načrtnuté vyššie, zmeny v Bitcoine pre svoju implementáciu vyžadujú konsenzus komunity. Poznáme tak zopár ďalších skratiek:
Pozrime sa teda na nejaké vylepšenia, ktoré sme vyššie spomínanými spôsobmi zaviedli.
Začneme základom, ktorý sa diaľ ešte za čias Satoshiho. Jeden zo soft forkov, ktorý v svojej podstate pridal užitočné obmedzenie je Pay to Script Hash (P2SH). Bol predstavený v BIP 16.
P2SH môžete poznať ako formát adries začínajúci číslom 3, ktorý zaviedol. Ide o soft fork, ktorý mení spôsob skriptu pri transakcii. Bez technických detailov, môžeme si to predstaviť tak, že Bitcoiny sú zamknuté na adresách pomocou nejakého skriptu. Tento skript definuje, za akých podmienok môžu byť prostriedky minuté. POkiaľ teda predtým mohli byť po transakcii bitcoiny utratené hocijako, skript umožňuje pridať podmienku, ktorá to dovoluje len za nejakých okolností. Transakciu s obmedzením považuje za validnú aj starý aj nový klient, takže vidíme jasný príklad soft forku.
Vďaka tomuto soft forku máme možnosť vytvárať napríklad multisignature transakcie. Dlhé skripty sú v P2SH nahradené hashom, takže sa znižuje veľkosť transakcie a tým aj poplatky na strane odosielateľa. Vidíme teda príklad, ako zmena v protokole pomocou obmedzenia soft forkom priniesla výhody a funkcie.
Ďalšie podstatné vylepšenie, ktoré bolo už vyššie spomenuté, je SegWit. Ten priniesol veľa funkcií a vyriešil veľa problémov. Využil práve P2SH na spätnú kompatibilitu. SegWitová peňaženka teda dokázala odoslať transakciu na starší typ adresy – P2SH. Bol teda implementovaný soft forkom.
Segregated Witness, ktorý budem nazývať skrátene SegWit, je vylepšenie protokolu, vďaka ktorému bolo vyriešených niekoľko problémov. Napríklad tvarovateľnosť podpisu transakcie a kapacita bloku. SegWit oddeľuje podpisové dáta nazývané witness z Merkle tree, hashov transakcií, ktoré idú do bloku. Taktiež bola zadefinovaná nová jednotka na veľkosť bloku weight units(WU). Každý blok môže mať najviac 4 milióny WU, čím sa zvýšila možná veľkosť bloku nad 1 MB.
SegWit je ďalší z krokov na ceste k moonu. Master Yoda mal pravdu.
SegWit okrem spomenutých vlastností úspešne aktivoval posledné funkcie, ktoré boli potrebné na bezpečné zavedenie Lightning Network v bitcoinovej sieti.
O Lightning Network (LN) toho bolo tiež napísaného dosť. Ide však o veľmi podstatné vylepšenie prinášajúce úžasné funkcie.
Princíp je jednoduchý – LN je sieť mimo samotnej siete Bitcoinu, v ktorej si dvojica používateľov medzi sebou otvorí kanál tým, že doňho uzamknú nejaké Bitcoiny, obojstranne alebo jednostranne. Tieto uzamknuté Bitcoiny predstavujú kapacitu kanála. Pri transakciách medzi sebou sa aktualizuje stav tohto kanála a v hocijakom momente môže jedna zo strán kanál uzavrieť tým, že aktuálny stav pošle do siete a zapíše sa do blockchainu. Keďže ide o sieť s mnohými používateľmi, nepotrebujeme si s každým novým človekom otvárať nový kanál, no Bitcoiny si nájdu najoptimálnejšiu cestu siete cez už otvorené kanály. Toto všetko sa teda deje off chain – sieť Bitcoinu a blockchain teda nie sú také zaťažované malými transakciami. Škálovateľnosť Bitcoinu vďaka tomu dosahuje novú úroveň. No rovnako však aj súkromie.
Podstatná vlastnosť je, že tieto transakcie v rámci LN sú anonymné. Analýza blockchainu nedokáže tieto transakcie odhaliť a špehovanie samotnej LN siete je veľmi náročné.
Nie je predsa možné vytvoriť kopu uzlov v LN sieti, otvárať kanály a monitorovať tak transakcie?
Martin Habovštiak použil príklad USA a doláru:
Keďže LN je hustá sieť, v ktorej sú kanály automaticky šifrované a využívajú Tor sieť, je skutočne anonymná. Žiaden uzol nevidí viac než svojich susedov – nevidí teda odkiaľ transakcia prišla a kam ide. Má tiež funkciu, ktorá občas zmení poplatok, aby nebolo možné zistiť, ako je transakcia smerovaná. V tomto dizajne sa nedá vytvoriť jeden uzol, ktorý sa pripojí do siete a vie ostatné špehovať. Ani keby sa pripojil na všetky, pretože informácie budú tiecť okolo neho. Pokiaľ by chcel teda odchytiť nejaké signifikantné množstvo transakcií (ktoré sú aj tak šifrované a maskované), musel by mať uzly všade a so všetkými. Na každý čestný uzol by bolo treba mať istý počet špehovačov. Napríklad, ak má čestný uzol otvorených 10 spojení a 9 z nich sú špehujúcie, je teoreticky šanca 90 %, že transakcia prejde cez ne. Avšak nemôžeme zabúdať na kapacitu siete. Čo to znamená? Že špehujúca strana potrebuje 9-násobne viac bitcoinov, ako čestní používatelia LN. Nákup takého ohromného množstva bitcoinov by ich cenu naozaj zvýšil. V prvom rade by však za to boli získané minimálne informácie, ktoré sa nedajú považovať za rozumnú investíciu.
LN prináša famózne funkcie a vlastnosti, ktoré predstavujú širokú tému rozpísanú vo vlastnom článku. V tomto článku sa snažím len načrtnúť, čo LN predstavuje v rámci reťazca vylepšení Bitcoinu a aké pokroky nás teda môžu vďaka nej v budúcnosti čakať. Zrekapitulovali sme si teda, aké vylepšenia má Bitcoin za sebou a poďme sa pozrieť na nejaké, ktoré nás čakajú.
Schnorr signatures pracujú s rovnakými privátnymi a verejnými kľúčmi, no mení sa matematická funkcia, ktorá z kľúča vytvára podpis. Nahrádzajú aktuálny algoritmus ECDSA a prinášajú vyššiu efektívnosť, eleganciu a mnohé benefity. Medzi ne patrí napríklad zlepšenie multisigu, ktorý vďaka Schnorr signatures môže byť rovnako veľký ako normálny podpis. Nie je totiž potreba validovať každý podpis samostatne a multisignatures majú tak konštantnú veľkosť nezávislú od počtu účastníkov. Toto samozrejme prináša aj vyššiu škálovateľnosť a kapacitu.
Okrem iného tiež umožňujú threshold signatures, vďaka ktorým sa zvyšuje súkromie pri multisig transakciách. Threshold podpisy totiž znemožňujú identifikovať, ktorí z účastníkov autorizovali transakciu.
Z týchto podpisov vyplýva ďalšia funkcia – Taproot. Táto funkcia je veľmi zložitá a na jej podrobné vysvetlenie by bol tiež nutný vlastný článok. No však pre pochopenie jej benefitu v tomto kontexte môžeme jej fungovanie simplifikovať tak, ako naznačuje obrázok.
Vďaka Schnorr signatures môžeme agregovať viacero kľúčov do jedného. No však vďaka Taproot máme možnosť namiesto kľúča pridať skript. Napríklad môžeme takto riešiť otvorenie alebo zatvorenie lightning network kanála. Pričom vďaka vyššie spomenutým funkciám je takáto transakcia neodlíšiteľná od klasických transakcií a má rovnakú veľkosť ako obyčajná Bitcoin transakcia. Môžeme si teda predstaviť napríklad situáciu, v ktorej si s niekým otvoríme privátny lighting network kanál a rok si vymieňame transakcie. Nikto sa o nich nedozvie, keďže transakcie išli privátne medzi dvomi LN uzlami. Potom kanál kooperatívne uzavrieme a ktokoľvek to pozoruje v blockchaine vidí len to, že niekto prijal platbu a potom ju minul. Klasická transakcia v Bitcoine. Ďalšia ťažká rana blockchain analýzy! V tomto prípade udelená Taprootom.
Aby toto fungovalo je potrebné implementovať Schnorr signatures a Taproot v jednom soft forku. Problém prečo doteraz neboli implementované je, že ešte donedávna boli Schnorr podpisy patentované.
Agregáciu podpisov sme tu už načrtli. Využíva sa pri viacero správach, ktoré sú digitálne podpísané. Zo všetkých podpisov sa agreguje jeden podpis, správy sa tiež skombinujú, pričom sa dá stále overiť, či sú všetky podpisy platné. Full nody teda môžu agregovať podpisy transakcií a potom overiť, či sedia. Tým je dosiahnutá vyššia efektivita aj škálovateľnosť.
Okrem toho sa vďaka agregácii podpisov stávajú transakcie s viacerými vstupmi lacnejšie. Toto motivuje k používaniu CoinJoin.
Zaplaťte v Alze bitcoinami! Spoločnosť Alza vyšla v ústrety početným žiadostiam zákazníkov a zavádza možnosť uhradiť sumu za nákupy touto najobľúbenejšou virtuálnou menou.
CoinJoin je metóda kombinovania transakcií od viacerých používateľov do jednej, takže je oveľa náročnejšie určiť, kto platil komu. Všetky vstupy a výstupy transakcie sú rovnako veľké a tak sa nedá rozpoznať, ktorý vstup patrí ku ktorému výstupu. Takto sa môžu premiešať bitcoiny viacerých používateľov bez ich identifikovania. CoinJoin podporujú peňaženky zamerané na súkromie, napríklad Wasabi Wallet. Avšak aktuálne vás snaha platiť anonymne takýmto spôsobom vyjde drahšie, ako normálna transakcia. Vďaka agregovateľnosti podpisov sa to však mení.
Overovať agregované podpisy je efektívnejšie ako jednotlivé, preto sa takéto transakcie stávajú lacnejšími. Takže vďaka tejto funkcii sú používatelia motivovaní spojiť svoje transakcie, využiť agregovanie a dosiahnuť tak nižší poplatok. Tu sa dostávame k naozaj fascinujúcemu poznatku – je efektívnejšie a lacnejšie byť anonymný. Agregovateľnosť nižšími poplatkami motivuje použiť CoinJoin a zvýšiť tak anonymitu. Bitcoin vás teda s týmito funkciami v podstate odmeňuje za to, že ste anonymný. Pričom si treba uvedomiť, že všade inde je anonymita niečo, za čo si priplácame – buď priamo alebo implicitne napríklad obmedzeniami.
Zhrnuli sme niekoľko základných vylepšení, ktorými si Bitcoin prešiel a načrtli, ktoré ho čakajú. Podstatné však bolo ukázať, ako na seba tieto vylepšenia nadväzujú a ako funguje systém zmien v bitcoinovom protokole. Skôr, než budeme kritizovať Bitcoin, treba rozumieť technickej nadväznosti jeho funkcií. Napriek tomu, že sa môžu zdať ťažkopádne, fungujú na jasných princípoch s logickou postupnosťou. Každá prináša pôdu na tú nasledujúcu.
Dnešný protokol Bitcoinu je na úplne inej úrovni oproti jeho prvej verzii vytvorenej a udržovanej Satoshim. Satoshi úspešne odovzdal vývoj Bitcoinu do rúk komunity a tak sa jeho kód stále posúva ďalej. Dosiahnutím ďalšej úrovne sa otvára nová. Vylepšenia Bitcoinu sú pohybujúci sa cieľ a predstavujú ešte veľmi dlhú cestu.