🇨🇿 Cardano je první projekt, který se buduje jako mission-critical

CZ překlad:

Cardano je první projekt, který se buduje jako mission-critical

Napsali jsme další článek o tom, že Cardano se buduje jako mission-critical projekt využívající formální metody vývoje. Nabízíme volný překlad klíčových bodů:

Mission-critical projekt si můžete představit jako takový projekt, který musí spolehlivě běžet, neboť jeho výpadek či chyba by znamenala ohrožení buďto ekonomické, nebo v horším případě ztrátu zdraví či života. Takové systémy se vyvíjí pro letecký průmysl, nemocnice, jaderné elektrárny, rakety, ale třeba i pro banky či burzy.

Veřejná distribuovaná síť musí běžet 24/7 a je budovaná s tím, že se na ni jednou budou moci lidé spolehnout a svěřit jí své bohatství skrze mince či tokenizované asety. Taková síť nesmí selhat, takže se dá považovat za mission-critical.

Zdrojový kód takových systémů se tak musí psát s velkou pečlivostí. Nejde jen tak sebrat průměrné vývojáře, popsat jim problém a nechat je něco naprogramovat. Výsledek může být solidní, ale je velká šance, že v něm budou kritické chyby, kterou jednou mohou vyústit v selhání. Pohlídat kvalitu zdrojového kódu, respektive výsledného programu je ve skutečnosti dost složitý proces. A to zejména v dnešní uspěchané době a velkému konkurenčnímu boji. Dnes se prvně dodá a čeká se na potenciální úspěch. Až pak se věci opravují, či rozšiřují (často obojí současně).

Cardano zvolilo cestu formální metody vývoje. Na začátku se dali dohromady výzkumnící, vědci a matematici z různých oborů. Pro blockchain jich potřebujete celou řadu, například odborníky na kryptografii, distribuované sítě, počítačovou bezpečnost, modelování hrozeb, teorii her, ekonomy, operační systémy a samozřejmě softwarové architekty a programátory. Jelikož je tým mezinárodní, někdo musí tyto lidi dobře řídit.

Tito lidé si na začátku sednou a začnou přemýšlet, jak dané problémy nejlépe vyřešit. Mohou udělat matematické modely, nebo přijít s nějakým konceptem a ten v praxi testovat. Je běžné, že se věci zahodí a začne se znovu. V IOHK také pár hotových klientů zahodili a začali je budovat od začátku jinak. Výsledkem práce vědců a výzkumníků jsou studie. Ty pak jdou na nějaké review a to nejlépe od lidí, kteří jsou také v dané oblasti experti. Ideálně od lidí, kteří vás nemají rádi a chtějí vám vaši práci rozcupovat na kousky. Vy pak můžete jejich kritiku akceptovat a práci opravit, nebo dokázat, že nemají pravdu. Na základě studie pak vznikne specifikace, což může být nějaký design, či popis postupů krok za krokem. Dají se popsat celé algoritmus řečí matematiky. Programátoři pak specifikace převezmou a snaží se napsat kód programu tak, aby co nejvíce odpovídal specifikaci. Napsáním kódu to však nekončí. Součástí práce je také to, že se dokáže, že se kód chová opravdu tak, jak říká specifikace. Ne každý programátor je schopný číst specifikace, kteří vědci produkují. Takže vůbec dát dohromady takový tým jakým je dnes IOHK je relativně vělký úspěch a ve světě krypta je to ojedinělé. I velcí IT giganti by měli dost práce dát takový tým dohromady.

Tento postup je velice časově náročný a drahý, pokud bychom ho porovnali s tím, jak se běžně software vyvíjí v komerčních firmách. Specifikace se píší velice vzácně. Většinou se píše jen design, který jen popisuje problém a navrhuje řešení. Někdy se jen “stručně” zadá práce a nechá se na vývojářích, aby napsali kód.

Cardano zvolilo tento přístup, neboť týmu došlo, že blockchain není něco, co by jen měli udělat a spustit. Dnes není těžké vytvořit další blockchain či smart kontrakt platformu. Většina věcí se dá zkopírovat. Kdo chce věci dělat od základu znovu a lépe, může se alespoň inspirovat z chyb svých předchůdců. Kdyby Cardano udělal jen další blockchain, asi by nás to nikam moc neposunulo. Cardano zvolilo tento přístup proto, aby dodali za současných technických podmínek to nejlepší, co je možné. Proto se dané problémy prvně zkoumají a až poté se píše kód. Dá se totiž s velkou mírou jistoty očekávat, že výsledek bude dobrý. Problémem distribuovaných konsensuálních sítí je hlavně to, že neškálují (+ mnoho dalších problémů…). Pokud mají škálovat, je ideální prozkoumat do detailu síťové možnosti a navrhnout konsensus tak, aby maximálně využil nabízené možnosti a počítal s budoucím vylepšením TCP/IP sítě. A to se bavíme jen o konsensu. Cardano formalizovalo také UTXO model, ledger, peněženku a všechny další věci, které je potřeba dodat. Dokonce jako první formalizovali PoW Bitcoinu, aby dokázali, že je bezpečný. Z této práce pak vyšel Ouroboros. Bylo snadné matematicky dokázat, že je Ouroboros stejně bezpečný jako PoW Bitcoinu.

Čekali jsme dlouho, ale v roce 2020 se dočkáme. Když to vyjde, budeme mít běžící bezpečný, škálovatelný a decentralizovaný projekt. Kvalita se samozřejmě musí projevit v praxi a síť musí pár let bezpečně běžet. V tomto kontextu jsme vlastně na samém začátku. Nicméně síť bude dodaná v produkční kvalitě a nebude potřeba vylepšovat existující kód. Ten se bude jen rozšiřovat (hlavně se bude dále posouvat škálování v éře Basho). To může být nakonec výhoda oproti konkurenci, neboť tam se buď neděje skoro nic, nebo se síť spustila a teď se vylepšuje pod tíhou problémů (často se řeší samotná decentralizace). Ani tento přístup není zárukou toho, že se síť spustí a pohodově poběží. Problémy mohou nastat, takže nebuďte překvapení, pokud se něčeho takového dočkáme. Je to běžné, jen neznalí lidé za každou chybou vidí velký problém a důvod k pomluvě. Ale držme palce, ať se nic zlého nestane. IOHK má silný tým a je schopný vše vyřešit. Protokol není něco, co můžete jednou dodat a říct, že máte hotovo. Svým způsobem práce nikdy neskončí.