Musil Blockchain

Blockchainové aplikace

Blockchainové aplikace se navenek příliš neliší od klasických webových aplikací. Jediná, ale zato zásadní odlišnost se nachází ve způsobu, jakým jsou v těchto aplikacích ukládána data a informace.

Zatímco v klasických webových aplikacích jsou veškerá uživatelská data uložená na centrálním serveru, v případě blockchainových aplikací jsou tyto data ukládána v distribuované síti tisíců počítačů. Všechna data jsou tím pádem řádové tisíckrát zálohována, a je téměř nemožné s nimi neoprávněně manipulovat nebo je měnit.

Právě tato možnost spolehnout se, že "co už bylo jednou uloženo, nebude nikdy vymazáno," spolu s naprosto svobodným přístupem k těmto datům a volností s nimi interagovat, dává možnost vzniknout aplikacím, které by na "klasickém" internetu vzniknout nemohly.

První, a stále ještě nejrozšířenější blockchainovou aplikací jsou kryptoměny. V nich přidaná hodnota blockchainu spočívá v tom, že díky distribuovanému ukládání informací, kdo vlastní kolik dané kryptoměny ("stavů konta"), je z měny jako takové odstraněn jeden centralizovaný prvek, který nad ní má výsadní kontrolu a je potřeba mu důvěřovat.

Kryptoměny ale nejsou jedinou aplikací, jsou pouze tou první. V současné době se raketovým tempem rozvíjí koncept blockchainových platforem pro decentralizované aplikace. Decentralizované aplikace se vyznačují tím, že si po svém spuštění žijí vlastním životem, protože nejsou nikým vlastněny. Tyto platformy disponují vlastním programovacím jazykem, a umožňují tedy takřka neomezené možnosti využití technologie blockchainu jako distribuovaného úložiště dat.

Nejrozšířenější blockchainovou platformou je v současnosti Ethereum, které svým jednoduchým programovacím jazykem Solidity umožňuje tvorbu nových aplikací téměř komukoliv. Právě na ethereové platformě jsou vytvořené všechny zde prezentované aplikace.


Interakce s blockchainovými aplikacemi

Aplikace využívající ke svému chodu blockchainové úložiště dat jsou teprve na svém začátku, dnes je setkání s nimi spíše výjimkou než pravidlem. Proto není jejich používání a interagování s nimi pro průměrného uživatele vůbec snadné. Internetové prohlížeče v současnosti většinou nepodporují přímou komunikaci s blockchainem, ta je tedy možná až po stažení prohlížečových rozšíření.

Prohlížečovým rozšířením komunikujícím s ethereovým blockchainem je například MetaMask. Ten v současnosti podporuje prohlížeče Chrome, Firefox a Opera. Rozšíření je volně ke stažení na stránkách metamask.io, kde se nezapomeňte pokochat oranžovou liškou. Jelikož pro interakci se všemi zde umístěnými aplikacemi je nezbytné mít MetaMask nainstalovaný a správně nastavený, věnuji tomu i krátké video:


Vývojová prostředí a knihovny

Již v takto rané fázi vývoje ethereové platformy je k dispozici několik open-source vývojových prostředí, které velmi zjednodušují tvorbu aplikací. Nejzákladnější z nich je Remix, který nabízí možnost psaní kódu ve formě smart kontraktů a následnou interakci s těmito kontrakty. Vývojové prostředí Superblocks je velmi užitečné pro tvorbu kompletních aplikací, kromě smart kontraktů je zde možné vytvářet i uživatelské prostředí, které bude s danou blockchainovou aplikací komunikovat. Většina zde umístěných aplikací byla vytvořena právě s využitím Superblocks. Pro opravdu seriózní vývoj je možné doporučit prostředí Truffle, které disponuje řadou pokročilých funkcí, včetně automatického testování kontraktů.

Podobně jako v jiných programovacích jazycích, i v Solidity již byly vytvořeny knihovny pro specifické účely a obsahující komunitou prověřený kód. V oblasti smart kontraktů je používání takových knihoven obzvláště užitečné, protože jednou zveřejněný kontrakt už nelze měnit, každá chyba tedy může být velmi drahá. Nejobsáhlejší a nejpoužívanější knihovnou pro programování na ethereové platformě je OpenZeppelin, s jehož pomocí je napsání bezpečného smart kontraktu o mnoho jednodušší.


Nevýhody blockchainových řešení

Pohled na věc nikdy není úplný a nestranný, pokud se spolu s výhodami nezmiňují i nevýhody. Blockchainové aplikace jsou v současné době zužovány řadou problémů, o kterých je třeba diskutovat, aby mohly být co nejdříve a co nejlépe vyřešeny.

V první řadě je třeba zmínit, že za současného stavu technologie je použití blockchainu výhodné pouze pro velmi úzkou skupinu aplikací, ve většině ostatních nedává žádný ekonomický ani praktický smysl. Je tomu například proto, že blockchain jako úložiště dat je velmi drahé a velmi pomalé řešení, ve srovnání s databázovými službami například od Googlu nebo Amazonu. Každé zapisování dat na blockchain je spojeno s nenulovým poplatkem, a rychlost zápisu se i u nejrychlejších platforem pohybuje v řádu sekund, což má k ideálnímu uživatelskému zážitku daleko.

Velkou překážkou pro větší rozšíření je i nedostatečné seznámení veřejnosti s touto technologií, což spolu s nedostatečnou infrastrukturou a složitými uživatelskými prostředími znamená, že široká veřejnost nemá o takové služby zájem. V budoucnu budou tedy stejně jako vývojáři aplikací potřeba i popularizátoři této technologie. Tento web se snaží o obojí.