Blockchain Libra z pohledu geeka – rychlost transakcí, požadavky na node a fungování

0
(0)
Dariusz Matuszyński
Dariusz Matuszyński
Jsem zakladatelem portálu Kryptomagazin.cz, o kryptoměnách na české scéně nebylo prakticky nic, a tak jsem se rozhodl to napravit. Mám rád myšlenku decentralizace, trochu toho cypherpunku a kryptoanarchie. Krypto odvětví je můj svět, kde se denně pohybuji a pracuji, nemohu to tedy již nazvat koníčkem nebo zálibou. Rád vás na vašem kryptomagazínu vždy uvítám :)

Na medium jsme našli šílený rozbor geeka, který se prokopal 26-stránkovým technickým dokumentem popisujícím protokol, který se má stát platformou pro Libra coin (a další digitální aktiva). Má úctyhodných 53 autorů! Pojďme se podívat, co vše odhalil.

Upozornění: Text je určen geekům a pro většinu krypto nadšencu bude příliš složitý. Máte 3 možnosti:

Jednoduchý článek: Libra – vše co jste chtěli vědět (a nebáli jste se zeptat)

A naní už pojďme geekovat.

Abstrakt

Protokol Libra umožňuje skupině replik, takzvaným validátorům, patřícím různým autoritám společně udržovat databázi programovatelných zdrojů (resources).

Autoři zde nechodí kolem horké kaše — systém bude ovládán seshora skupinou autorit. Všimněme si však, ze se mluví o „programovatelných zdrojích“, nikoliv pouze o digitální měně.

Tyto zdroje patří různým uživatelským účtům autentifikovaným pomocí asymetrické kryptografie a podléhají pravidlům specifikovaným vývojáři těchto zdrojů.

Dle užití obecných slov jako “zdroje” mám podezření, že se jedná o daleko víc než stablecoin.

Transakce jsou založeny na předdefinovaných a v budoucích verzích také uživatelsky definovaných smart kontraktech v novém programovacím jazyce zvaném Move. Move používáme pro definici klíčových mechanismů blockchainu, jako je například měna nebo členství ve skupině validátorů.

OK, začíná to být zajímavé. Užití vlastního jazyka pro smart kontrakty povede ke spoustě otázek kolem množství jeho „fíčur“ a následně robustnosti vůči nepřátelským kontraktům. Otázkou také bude, jak vývojářsky přívětivý tento jazyk bude a do jaké míry bude Libra schopna uchránit vývojáře smart kontraktů před náchylností k dělání chyb.

Tyto klíčové mechanismy umožňují vytvořit unikátní model správy (governance), který zpočátku staví na stabilitě a reputaci současných institucí, ale postupně přechází na plně otevřený systém.

Zní to tak, že Libra Association bude federací, která se může vyvíjet pomocí hlasování a nějaké formy reputace.

1) Úvod

Tento ekosystém nabídne novou globální měnu, Libra coin, plně krytou košem bankovních vkladů a dluhopisů od vysoce kvalitních centrálních bank.

Libra je obecný protokol pro krypto aktiva a prvním z nich bude stablecoin.

S postupem času se možnost členství má stát plně otevřené a založené pouze na množství Libry v držbě daného člena.

To silně připomíná Proof of Stake. Plánem zřejmě je otevřít členství po 5 letech a doufat, že mezitím vyřeší problémy s Proof of Stake… Očekávám, že se dostanou do stejných potíží jako Ethereum!

Asociace zveřejnila plán na přechod k permissionless systému.

Jsem si celkem jistý, že tohle by byla první distribuovaná síť na světě, která by přešla od  permissioned k permissionless. Síť jako celek snad může přejít na PoS, ale kvůli nutnosti udržovat pevný kurz vůči koši světových měn musí existovat skupina entit, které udržují spojení s tradičním světem financí. Toto zůstane místem centralizované kontroly sítě prostřednictvím Libra Association.

Validátoři se střídají ve vedení procesu přijímáni transakcí. Validátor, který je právě „vůdcem“, navrhuje transakce ostatním validátorům – jedná se o transakce odeslané klienty přímo jemu, ale i o transakce odeslané nepřímo prostřednictvím jiných validátorů. Všichni validátoři uskuteční transakce a vytvoří autentifikovanou datovou strukturu, která obsahuje aktualizovanou historii účetní knihy (ledger). Validátoři hlasují o autentifikátorovi této struktury v rámci protokolu konsenzu.

To vypadá jako Practical Byzantine Fault Tolerance, dobře známý 20 let starý algoritmus, do kterého pravděpodobně přidali pár zlepšení. V sekci 5 zjišťujeme, že algoritmus nazvali LibraBFT a jedná se o variantu protokolu konsenzu HotStuff.

Při realizaci transakce Ti ve verzi i je výstupem protokolu konsenzu signatura úplného stavu databáze ve verzi ivčetně celé historie—pro autentifikaci odpovědí na dotazy klientů.

Toto je hodné pozornosti, protože to znamená, že noví validátoři by měli mít možnost přidat se do sítě a synchronizovat se bez toho, že by museli „přehrávat“ celou historii blockchainu. To však jenom za předpokladu, že důvěřují již zapojeným validátorům.

2) Logický datový model

Protokol Libra používá pro kódování stavu účetní knihy datový model založený na uživatelských účtech.

Z pohledu datových struktur se Libra spíše podobá Ethereum či Ripple než Bitcoinu. UTXO model má své plusy a mínusy: na jedné straně víc soukromí a robustnější historie transakcí díky jednoduchosti output-based historie, na straně druhé se s ním hůř pracuje při složitých smart kontraktech. Takže volba účtového modelu dává smysl – Facebook soukromí uživatelů moc netrápí, ale o smart kontrakty evidentně zájem má.

Protokol Libra nespojuje účty s identitou v reálném světě. Uživatel si může vytvořit vícero účtů tak, že si vygeneruje vícero párů klíčů. Účty pod kontrolou daného uživatele nic inherentně nespojuje. Tato schéma následuje příklady Bitcoinu a Etherea a poskytuje uživatelům pseudonymitu.

To zní překvapivě dobře, ale jsem zvědavý, jestli to bude platit i o Libra Coinu jako aktivu… Bude zajímavé sledovat, jak otevřený bude systém vůči vývojářům, kteří budou chtít tvořit aplikace zachovávající soukromí.

Každý zdroj má typ přiřazený v modulu. Typy zdrojů jsou nominální a skládají se ze jména typu a jména adresy modulu deklarujícího daný zdroj.

Vypadá to, že si můžete vygenerovat adresu, která může mít přiřazené libovolné množství aktiv, pokud každé aktivum má své unikátní jméno.

Realizace transakce T i vytvoří a nový stav S i a k němu execution status code, spotřebu „benzinu“ (pozn. překl. gas usage, termín gas se používá také v Ethereu), a seznam událostí (event list).

Tak a teď víme, jak má být systém chráněn před vyčerpáním výpočetních zdrojů (resource exhaustion attacks). Zdá se, že bude účtovat poplatky za užívání podobným způsobem jako Ethereum.

V historii účetní knihy neexistuje koncept bloku transakcí.

Zajímavé; v protokolu Libra vlastně neexistuje blockchainová datová struktura—bloky jsou spíše virtuální / logickou konstrukcí používanou validátory za účelem koordinace potvrzených snapshotů stavu systému. První věta sekce dává větší smysl:

Všechna data v Libra Blockchainu jsou uložena v jedné verzované databázi. Číslo verze je 64-bitové nezáporné celé číslo a odpovídá počtu transakcí, které systém uskutečnil.

Každé krypto aktivum, se kterým jsem se doposud setkal, funguje na abstraktní rovině stejně: máme stav systému, uskuteční se transakce, která je de facto přechodovou funkcí mezi stavy, a systém je v novém stavu.

libra-state

Účelem dávkování transakcí do kontejnerů (bloků) je především řazení v čase (timestamping). To je důležité u permissionless sítí, kde jsou data autentifikována pomocí dynamic multiparty membership signatures, kde se mohou validátoři volně připojovat a odpojovat ze sítě. Jelikož Libra provozuje permissioned systém, může použít efektivnější algoritmus konsenzu, který nepotřebuje balit transakce do dávek, protože je daleko méně pravděpodobné, že by došlo k přepsání historie.

V úvodní verzi protokolu Libra bude uživatelům přístupná pouze omezená podmnožina funkcionality jazyku Move. Zatímco budou v Move definovány klíčové koncepty sytému, jako měna Libra, uživatelé nebudou moci publikovat vlastní moduly obsahující typy zdrojů. Tento přístup umožní jazyku Move a příslušným nástrojům dozrát na základě zkušeností s implementací klíčových konceptů předtím, než bude zpřístupněn uživatelům. Tento přístup zatím odkládá řešení problémů škálovaní inherentních pro platformy obecných smart kontraktů, zejména výkon transakcí a ukládání dat.

Tohle působí podobně jako plány na „otevřené členství validátorů“ zmiňované dříve. Nevypadá to, že by Facebook vyřešil kterýkoliv z obrovských problémů, na kterých Ethereum pracuje už roky.

Pro regulaci poptávky po výpočtové kapacitě protokol Libra účtuje transakční poplatky denominované v Libra coinech.

Zajímavost: Libra coin je zřejmě nativní jednotkou protokolu, podobně jako ETH je nativní jednotkou Etherea. To vede k dalším otázkám ohledně pseudonymní povahy Libry; je možné získat mince bez AML/KYC? Pokud ne, tak to vypadá, že nebudete moci použít jakoukoliv funkcionalitu systému anonymně. Podle toho, co jsem se dočetl o peněžence Calibra, bude vyžadovat AML/KYC. Tak jsem zvědavý, jestli vzniknou přístupy do systému, které nebudou pod podrobnou kontrolou.

Systém je designován tak, aby měl nízké poplatky za běžného provozu, když je k dispozici dostatečná kapacita.

Velmi vágní věta, která vzbuzuje mnoho otázekco jsou nízké poplatky? Co je běžný provoz? Co je dostatečná kapacita?

3) Provádění transakcí

…mnoho částí jádra logiky blockchainu je definováno pomocí Move,
včetně účtování poplatků za užití. Abychom předešli „zacyklení“, VM vypíná účtování poplatků pro komponenty jádra.

To zní poměrně nebezpečně, ale autoři poznamenávají, že komponenty jádra musí být napsané defenzivně kvůli prevenci DoS útoků.

Klíčovou vlastností Move je možnost definovat uživatelské typy zdrojů… typový systém Move poskytuje pro zdroje speciální bezpečnostní záruky. Zdroj nikdy nemůže být zkopírován, pouze přesunut. Tyto záruky jsou vynucovány staticky samotnou Move VM. To umožňuje reprezentovat Libra coin jako typ zdroje v jazyce Move.

To zodpovídá předchozí otázku, zda je Libra coin nativním aktivem jako ETH nebo BTC. Předpokládám, že tyto mince jsou pouze výchozím a jediným typem zdroje, který bude v systému zpočátku povolen a ostatní zdroje se přidají později.

Zásobníkový bytecode Move má méně instrukcí, než by měl abstraktnější jazyk zdrojového kódu. Každá instrukce má navíc jednoduchou sémantiku vyjádřitelnou pomocí ještě menšího počtu atomických kroků. To zmenšuje složitost specifikace protokolu Libra a zjednodušuje hledání chyb v implementaci.

Tohle vypadá dobře promyšlené; doufejme, že bezpečnost jejich skriptovacího jazyka bude lépe prověřená, než tomu bylo u Etherea.

4) Autentifikované datové struktury a úložiště dat

Protokol Libra používá Merkleův strom jako autentifikovanou datovou strukturu pro historii účetní knihy… konkrétně jsou stromy vytvářeny přístupem Merkle tree accumulator, který také umožňuje efektivní operaci připojení (append).

Opět vidíme, že „Libra Blockchain“ ve skutečností není blockchain. Je skutečně zvláštní, že tento protokol je velmi dobře navržený a přitom mu říkají blockchain přesto, že datovou strukturou pro historii účetní knihy je množina podepsaných stavů knihy. Validátoři zaznamenávají každý stav knihy a všechny její historické stavy jsou uloženy v Merkleových stromech, ale pořád nevidím propojené seznamy dat utvářejících řetězec, a už vůbec ne řetězec bloků.

Autentifikátorem účtu je hash jeho serializované reprezentace. Tato reprezentace vyžaduje přepočítáni autentifikátoru přes celý účet po jakékoliv jeho modifikaci. Náročnost této operace je O(n), kde n je délka reprezentace celého účtu v bytech.

Hmmm, tohle by mohl být vektor DoS útoků, pokud nebudou zavedena omezení na velikost dat uložených v jednom účtu.

Očekáváme, že postupem času se růst dat uložených v účtech může stát problémem. Analogicky k transakčním poplatkům, které regulují používaní výpočetních zdrojů, předpokládáme potřebu systému platby „nájmu“ za datové úložiště. Zvažujeme širokou škálu přístupů k mechanismu nájmu, který by nejvíc vyhovoval potřebám našeho ekosystému.

Další nevyřešený problém. Už se nemůžu dočkat memů “the rent is too damn high!”.

Hlasování musí zůstat poctivé během epochy a také během určité doby po epoše, aby bylo umožněno klientům se synchronizovat s novou konfigurací. Klient, který je offline déle než tuto dobu, se musí resynchronizovat pomocí nějakého externího zdroje pravdy, aby získal checkpoint, kterému důvěřuje.

Au. Není jasné, jak je “tato doba” dlouhá, ale pokud je epocha kratší než jeden den, tak zřejmě tato doba také. Téměř to vypadá, že protokol konsenzu není dostatečně robustní, aby se účastníci mohli odpojovat a připojovat dle libosti.

5) Konsenzus odolný vůči byzantským chybám (Byzantine Fault Tolerant Consensus)

LibraBFT předpokládá množinu 3f + 1 hlasů rozdělených mezi validátory, kteří mohou být poctiví nebo byzantští (nespolehliví). LibraBFT zůstává bezpečný a brání útokům jako double spend nebo fork za podmínky, že nejvíc f hlasů je pod kontrolou byzantských validátorů.

Stejně jako PBFT tento algoritmus konsenzu dokáže zvládnout 33% nespolehlivých validátorů. Modifikace algoritmu HotStuff vypadají promyšleně:

  • Odolnost vůči nedeterministickým bugům díky tomu, že validátoři podepisují stav bloku a ne jenom sekvenci transakcí.
  • Časovače (pacemakers) emitují explicitní time-outy, a validátoři sa spoléhají na kvorum časovačů aby se posunuli do dalšího kolato by mělo vylepšit živost (liveness) sytému.
  • Nepředvídatelný mechanizmus volby vůdce omezuje DoS útoky vůči vůdci.
  • Agregované signatury zachovávají identitu validátorů, kteří podepisují certifikáty kvora pro hlasování o přijetí bloku.

6) Síť

Každý validátor v protokolu Libra si udržuje plný přehled o členech sítě a připojuje se přímo k jakémukoliv validátorovi se kterým potřebuje komunikovat. Validátor, ke kterému není možné navázat přímé spojení, se považuje za byzantskou chybu a spadá do kvóty byzantských chyb tolerovaných systémem.

Takový systém bude hodně náročné škálovat, když začne přesahovat pár stovek validátorů.

7) Implementace Libra Core

Bezpečnost blockchainu Libra závisí od správné implementace validátorů, programů v jazyce Move a Move VM. Probíhají práce na řešení těchto záležitostí.

To je hezké shrnutí této sekce, i když už napsali implementaci v Rustu, což vypadá jako slušný začátek z pohledu výkonnosti a bezpečnosti.

8) Výkonnost

Očekáváme, že při spuštění bude protokol Libra podporovat 1 000 platebních transakcí za sekundu při 10-sekundovém zdržení mezi odesláním a finálním potvrzením transakce.

Jelikož validátorů bude zhruba 100 a všichni budou vzájemně propojeni, 10-sekundový „block time“ zní realisticky.

Minimální požadavky pro uzel (node).

  • 40 Mbps připojení
  • 1 commodity CPU
  • 16 TB SSD

Dříve byla zmíněna možnost validátora vykonat úvodní synchronizaci od nuly jako alternativa vůči důvěře v podepsané stavy od jiných validátorů. Očekávám, že pokud se Libra začne reálně používat, vykonání takové synchronizace se stane velmi nepraktickým a bezpečnostní model uzlů se bude hodně spoléhat na důvěru vůči validátorům.

9) Implementace politiky ekosystému Libra v Move

Rezerva [Libra coinu] je klíčovým mechanizmem pro uchování hodnoty. Díky této rezervě je každá mince plně krytá stabilními a likvidními aktivy. Kontrakt Libra coinu umožňuje asociaci razit nové mince, když poptávka roste a likvidovat je, když poptávka klesá. Asociace nestanovuje měnovou politiku. Pouze razí a likviduje mince v závislosti od poptávky od autorizovaných prodejců. Uživatelé se nemusejí obávat, že by asociace způsobila inflaci, či znehodnotila měnu: aby mohly být vyraženy nové mince, musí v rezervě existovat příslušný vklad ve fiat měnách.

Dobře, teď mluvíme o událostech, které se dějí mimo sítě. Jak bylo dříve řečeno ve whitepaperu, síť není schopna vykonávat skripty, které používají jako vstup data, která nejsou obsáhnuta ve stavu sítě. Takže pokud úryvek výše používá slova jako „(ne)moci“ nebo „muset“, jedná se o politiku Libra Association, nebo její smluvní závazky, o kterých síť samotná nic neví.

Algoritmus konsenzu se spoléhá na Move modul pro správu skupiny validátorů, který udržuje aktuální seznam validátorů a alokuje jim hlasy. Libra Blockchain zpočátku udělí hlasy pouze zakládajícím členům.

Za předpokladu, že validátoři hlasují o změnách seznamu validátorů, zdá se, že by to mohlo vést k podobnému problému, jaký nastává u systémů s Proof of Stakelong range útokům (přepsání dlouhodobé nebo úplné historie, pozn. překl.). Pokud je zkompromitováno dostatečné množství soukromých klíčů zakládajících členů, může útočník přepsat historii účetní knihy od počátku? Pokud ano, budou ji ostatní validátoři akceptovat? Není jasné, zda protokol konsenzu umožňuje přepis starých stavů, nebo povoluje pouze připisování nových (append-only).

Nedořešené otázky

Jak funguje správa organizace?

Zde vidíme, že členové Libra Association tvoří radu a pro schválení změn je nutná 2/3 většina. Pouze členové rady mohou razit či likvidovat Libra coiny, ale pravděpodobně mohou prosadit jakoukoliv změnu, pokud najdou dostatečnou shodu.

Je požadováno AML/KYC?

Zřejmě ne na úrovni protokolu samotného, ale Calibra wallet uvádí, že uživatelé budou ověřováni přes státem vydané ID. A také to vypadá, že Calibra wallet bude přinejmenším v nejbližší době jedinou peněženkou, takže není jasné jestli bude vývojářům povoleno spouštět na síti Libra aplikace, které nedodržují stejné standardy jako Calibra.

Co jsou nízké poplatky? Co je běžný provoz? Co je dostatečná kapacita?

FAQ Calibra Wallet slibuje nízké poplatky, ale to se může dostat do konfliktu s provozem protokolu v obdobích vysokého zatížení sítě.

Transakční poplatky budou nízké a transparentní, zvlášť pokud posíláte peníze mezinárodně. Díky nízkým poplatkům Calibra pomůže lidem šetřit svými penězi.

Bude Libra skutečně otevřena pro vývojáře?

Podle plánu na přechod k permissionless konsenzu:

Libra Blockchain bude otevřený pro všechnykaždý spotřebitel, vývojář nebo firma může používat síť Libra, budovat nad ní své produkty a vytvářet přidanou hodnotu svými službami. Otevřený přístup zaručuje nízké bariéry pro vstup a povzbuzuje k inovaci a zdravé konkurenci, která prospívá spotřebitelům.

Jsem skeptický vůči tomu, že na této platformě budou vývojáři moci vytvářet libovolné technicky validní aplikace, které si vymyslí. Nic z toho, co jsem četl, mne neutvrzuje v tom, že tento systém bude odolný vůči cenzuře, ale všechno ukáže až čas!

Co číst dále?

Libra – vše co jste chtěli vědět (a nebáli jste se zeptat)

Překlad: Radoslav K.

Zdroj: medium.com

Klikni na hvězdičky pro hodnocení!

Průměrné hodnocení 0 / 5. Počet hlasujících 0

Buď první kdo článek ohodnotí

Přihlásit k odběru
Upozornit na
guest
0 Komentáře
Zpětná vazba na text v článku
Zobrazit všechny komentáře
spot_img