Co je NFT?
NFT je zkratka anglického výrazu Non-fungible token, českým termínem Nezastupitelný token. Právě svojí nezastupitelností, kdy NFT identifikují konkrétní aktivum, se liší od kryptoměn. Ty jsou zaměnitelné, stejně jako koruny - pokud půjčujete 1 českou korunu, je vám jedno, kterou konkrétní z peněženky vytáhnete a netrváte na tom, aby se vám vrátila ona totožná. Zkrátka, každá koruna v oběhu reprezentuje tu samou hodnotu - všechny koruny jsou vzájemně zaměnitelné.
Při NFT jde o jedinečný digitální identifikátor spojený s právem na něco, vlastnictvím něčeho, přístupem k něčemu, certifikací pravosti či jinou vlastností. Vlastnictví NFT se váže ke konkrétní peněžence a je zaznamenáno v blockchainu. Dle architektury konkrétního NFT, NFT může být převedeno vlastníkem peněženky na jiné peněženky, což umožňuje NFT převádět, prodávat a obchodovat.
NFT může vytvořit kdokoli a jejich vytvoření vyžaduje jen málo nebo žádné kódovací dovednosti.
NFT obvykle obsahují odkazy na digitální soubory, jako jsou fotografie, videa a zvuk. Tyto soubory v závislosti na principu “přidané-hodnoty” vážící se ke konkrétnímu NFT mohou být uloženy v decentralizovaných i standardních centralizovaných uložištích.
Pro technický náhled do NFT pokračujte na sekci NFTs, o jaký typ dat jde?.
Co je Blockchain?
Slovo blockchain hezky charakterizuje český překlad řetězec bloků. Jde o vrstvení bloků za sebe, kdy každý blok je úložištěm všech událostí proběhlých počas daného časově vymezeného bloku (tzv. Block time). Tyto události jsou podepsány tzv. Hashem bloku (funkce digitálního otisku obsahu), kterým je nezměněnost obsahové stránky bloku snadno verifikovatelná.
Aby nedošlo ke změně jak obsahu bloku tak i jeho hashe, je nezbytné provozovat blockchain jako druh distribuované databáze, kdy bloky jsou ukládány a hashe generovány na více na sobě nezávislých místech (počítačích) současně. Nastane-li rozkol mezi obsahem databází, za pravou je považována ta databáze, která je uložena na největším počtu počítačů.
Kdo je Validátor?
Procesování operací a zápis do blockchainu
Již víme, že blockchain je úložištěm. Takzvanými správci / zapisovateli blockchainu jsou poté validátoři provozující nody sítě. Z hlediska bezpečnosti a zamezení zdvojeným transakcím musí validátoři při zápisu do blockchainu provést určitý důkaz v závislosti na mechanismu konsenzu daného blockchainu.
Z principu správy jsou validátoři tedy i poskytovateli hardwaru pro uložení blockchainových dat. Ekonomický princip udržitelnosti protokolu a potažmo sítě je jednoduchý - prodáván je prostor v blocích, tedy místa pro uložení dat v daném blockchainu.
Ukládání dat (a NFTs) v blockchainu
Již víme, co je blockchain a kdo se o správu blockchainu (a jeho dat) stará. Validátor, provozující validační uzel, je software. Z důvodu robustnosti blockchainového řešení je obvyklé, že existuje několik na sobě nezávislých softwarů, psaných v různých programovacích jazycích, které nezávisle na sobě, libovolnými způsoby, vykonávají svoji funkci a nezávisle na sobě dochází ke stejným závěrům. Z pohledu decentralizace, robustnosti a stability sítě je nezbytné, aby tyto softwary, zvané klienti, byly rozdistribuovány zhruba v rovnoměrném poměru tak, aby v případě chyby v jakémkoli klientu nebyla narušena bezpečnost a funkčnost sítě.
S množstvím rozdílných klientů přichází i rozdílné způsoby ke správě a ukládání dat. Ukládaná data jsou vždy shodná, přičemž struktura jejich uložení může být rozdílná. Co je však shodné, je ukládání dat po blocích. Samotná architektura ukládaných dat ovlivňuje nároky na velikost uložiště, počty I/O, možnou funkcionalitu i nezbytný výkon pro správu. Efektivní optimalizovaná velikost souborů hraje ve světě blockchainu prim, jelikož v rámci globální distribuce se každý přenesený a ukládaný bajt počítá. Velká transakční velikost prodlužuje dobu transferu a zpracování, která ani v kritickém případě nesmí překročit čas bloku (blocktime). Nadměrná velikost dat zapisovaných do blockchainu poté nadměrně a setrvale v čase zvyšuje nároky pro provoz validačních uzlů držících tato data v onom blockchainu (v blockchain jsou držena veškeré transakce od bodu vzniku zvaného genesis do současnosti). Při zájmu o dosažení co nejvyšší decentralizace, objem dat je nutné držet co nejmenší. Vývojáři dnes pracují s metodami, jak blockchainy zpětně pročišťovat o zbytná data (pruning) a do budoucna hledají způsoby, jak se do budoucna bez starších dat kompletně obejít.
V závislosti od konkrétního blockchainu tedy může být zbytné zjišťovat, jak jsou v něm konkrétní data uložena. Spíše bychom se měli zaměřit na cenu uložení dat, kdy daná cena je kvantifikována cenou zápisu těchto dat do blockchainu. Zapsaná data, není-li definováno jinak, nemají expiraci, jsou tedy do blockchainu zapsána napořád. Čtení veřejných dat je zdarma.
Více na stránce Blockchain a decentralizované databázové systémy.
Standardní blockchainy profilované na transakce účetních jednotek nejsou na ukládání velkých dat vhodné. Samotné transakce zde jsou schopny nést jednotky kilobajtů informace. Ukládány a drženy jsou na všech uzlech v síti. Chtěli-li bychom takto do blockchainu uložit například 1GB dat, museli bychom provést velké množství transakcí, z nichž každá bude ukládat v rámci právě těženého bloku pouze oněch pár kilobajtů z našeho gigabajtu. Tento typ ukládání nazýváme on-chain. Samotná cena uložení dat je pak sumou všech transakčních poplatků. Bez ohledu na aktuální cenu transakcí, která je v čase proměnlivá na základě poptávky, transakční poplatky ukládání velkých dat jsou astronomické, jdoucí v závislosti od blockchainu klidně i do statisíců až milionů dolarů.
Ukládání jakýchkoliv dat, vyjma dat jednoduchých transakcí, je tedy z pohledu ceny na veřejných distribuovaných účetních knihách, typu Bitcoin, Ethereum a další, nerealistické. Z pohledu běžného obsahu internetového prostředí - smluv, recenzí, mediálních souborů apod. - je třeba se dívat na blockchainy, které jsou na tento typ velkých dat uzpůsobeny. Jistou alternativou je spojení veřejného blockchainu a dedikovaného úložiště, kdy soubory jsou uloženy centrálně a na veřejném blockchainu poté pouze otisk (hash a metadata) jejich dat umožňující snadnou ověřitelnost pravosti. Tato data jsou uložena ve formě tokenu, který je při správné specifikaci NFT. Typ uložiště pak nazýváme off-chain. Ovšem, i když v takovém případě ochráníme pravost, stále můžeme o daný dokument snadno přijít (např. centralizovaná entita provozující dedikované uložiště jej může zničit). Nejprve si však definujme, proč implementaci blockchainu vůbec při jakémkoliv ukládání dat uvažovat.
Proč ukládat data v blockchainu místo v běžné databázi?
Každý blockchain je databází, avšak ne každá databáze je blockchainem. Jakákoli databáze může skrze API rozhraní umožňovat zápis dat více uživateli, přesto, u běžné databáze je vždy nakonec provozovatel, který má dostatečné pravomoce na zajištění změny dat. Ostatní účastníci přitom mají velmi omezené nástroje, jak na nezměnitelnost dat v databázi dohlížet.
Blockchain je revoluční systém pro bezpečné zaznamenávání transakcí, avšak trpí jednou velkou chybou v utajení. Celým smyslem používání blockchainu je distribuovaná důvěra a schopnost ověřovat transakce v nedůvěryhodném prostředí. I když to zní přesvědčivě, realita je taková, že jej lze použít pouze k šifrování dat s veřejným přístupem. Pokud chce mít uživatel úplnou kontrolu nad svými daty, bude si je muset ponechat lokálně nebo použít externí zařízení.
U veřejné blockchainové databáze jsou práva na změnu dat věcí kolektivní dohody. Databáze není uložena u jednoho konkrétního provozovatele, ale u všech účastníků sítě. Jsou si navzájem supervizory - každý dohlíží na každého - z osobního hlediska si nemusí vzájemně věřit. Důvěru obhospodařuje softwarový prvek.
Princip decentralizovaného nezávislého uložení na více místech při blockchainových aplikacích přináší do databázového řešení prvky, jako je:
- Transparentnost - Každý účastník se může na data podívat, přidávat data mohou pouze oprávnění uživatelé na základě autentizačního podpisu
- Nezměnitelnost - data v databázi nemohou být v průběhu času jakmkoliv způsobem manipulována zákeřným aktérem
- Robustnost a zálohovatelnost - selhání databáze u kteréhokoli účastníka neohrozí běh aplikací pracujících s daty z databáze
- Bezpečnost - blockchainové technologie mají při správném nasazení vlastnosti chránící proti snadnému hacknutí databáze za účelem manipulace dat
Některé body, z výše popsaných, jako například robustnost a zálohovatelnost, je řešitelná i při standardních databázích. Této funkci se říká replikování a často lze najít řešení pro její implementování pod klíčovým slovem “cluster”. Běh v cluster módu v praxi znamená, že data jsou průběžně replikována mezi více databázemi, které jsou ideálně uloženy v rozdílných geo lokacích. Něco podobné se děje v reálném čase při blockchainových sítích - kdykoli chce uzel nějaká data zapsat, vytvoří záznam a rozešle jej všem uzlům v síti, načež na základě konsensuálního algoritmu prověřujícího oprávněnost zápisu poté veškeré uzly v síti daný zápis do sebou spravovaného blockchainu zapíšou. Rozdíl v “replikaci”, je tedy takový, že klasické databáze replikují data na pozadí napříč celou vertikální strukturou, kdežto ty blockchainové prostřednictvím naposledy přidávaných bloků.
Způsoby ukládání dat
-
Centralizované uložiště se zápisem hashe v blockchainu
V tomto scénáři platforma ukládá obsah na tradiční server pronajatý od hostitelské společnosti. Kdykoli je do systému přidán nový dokument, transakce se zaznamená na blockchain a dokument získá svůj vlastní jedinečný hash. Více v bodě hashování sekce ukládání dat.
Doplnění hashe o podmnožinu dat při ukládání na blockchainu
Tento způsob pracuje s hashem na totožném principu, jako je v odstavci výše. Rozdíl je v rozšíření ukládaných informací vyjma hash o dodatečnou podmnožinu dat (metadata), kdy by mělo dojít ke zvýšení transparentnosti, jelikož dodaná podmnožina dat se stává veřejně přístupnou a tedy i snadno kontrolovatelnou.
-
P2P sítě pro sdílení dat
V peer-to-peer systémech jsou soubory uloženy na serverech a discích jednotlivých uživatelů. Každý soubor je adresován svým jedinečným hashem a může být uložen v mnoha kopiích po síti. Stejně jako v Bittorrentu můžete přijímat data z mnoha uzlů najednou, takže i když některé z nich selžou, data zůstanou přístupná.
IPFS je již funkční, ale není dostatečně spolehlivý pro ukládání citlivých dat. Rozhodně nemůže konkurovat předním poskytovatelům hostingu, kteří nabízejí 99,95%+ uptime a dobu odezvy pod 0,5 sekundy.
-
Privátní blockchainy
Kdokoli vytvoří blockchain, stanoví si vlastní poplatky. Namísto používání Etherea si můžete navrhnout vlastní distribuovanou účetní knihu a nastavit poplatky za ukládání dat na nulu. V takovém případě si můžete uložit všechny soubory, které chcete – zdarma. Soukromé blockchainy však mají své nevýhody:
- Centralizace: tvůrci soukromého blockchainu si nad ním udržují plnou kontrolu. Technicky tedy sice jde o blockchain, nicméně velmi vzdálený od ideálu blockchainu bez prostředníků.
- Menší bezpečnost: protože existuje méně uzlů pro ověřování transakcí, soukromý blockchain je méně odolný vůči útokům hackerů, hrubému chování uzlů atd.
- Škálování: nové uzly se nemohou volně připojit k síti, takže růst síťové robustnosti soukromého blockchainu bude trvat déle.
- Nedostatek důvěry: uživatelé nemusí být ochotni svěřit své záznamy platformě, která nemá nulovou kontrolu / roli v daném blockchainu.
Relační databáze vs Souborový systém
Relační databáze ja jakási tabulka držící data především v textové podobě. Oproti tomu, souborový systém je disk držící data ve formě souborů. Velmi nadneseně, relační databáze je Excelový soubor. Souborový systém složka s různými programy a multimediálními soubory (obrázky, videa, zvuky apod.).
Rozdíl Souborového systému oproti distribuovaným databázím je v tom, že souborový systém nemá silné možnosti dotazování. Místo toho lze k souborům přistupovat pouze se znalostí názvu/cesty k souboru. Relační databáze naproti tomu umožňuje jakékoli filtrace a pokročilou práci.
Mezi těmito typy systémů je tedy třeba volit na základě typu a formátu ukládaných dat. Distribuční principy replikace, redundance, transparentnosti, nezměnitelnosti a ověřitelnosti mezi nody zůstávají pro oba typy totožné.
V sekci NFT technicky zjistíme, že NFT jako takové spadá pod tokenový standard, a jako takové má definován způsob uložení přímo v blockchainu. Samotné databázové uložiště tedy z hlediska NFTs není potřeba řešit, přesto, pokud vás problematika decentralizovaných databázových uložišť zajímá, bližší informace se dozvíte v dokumentu Blockchain a decentralizované databázové systémy. V této publikaci se tedy budu dále jen věnovat souborovým systémům.
Decentralizované ukládání souborů
Soubory malých velikostí lze teoreticky uložit v binární podobě s využitím běžných řešení centralizovaných či decentralizovaných databází. Jaká řešení však existují pro soubory větší, kdy je nechceme držet a replikovat mezi servery s centrálním dohledem / nebo jen vyžadujeme vysokou bezpečnost a robustnost?
Sítě založené na decentralizaci nejprve zašifrují citlivá data, poté je rozdělí, a ukládají jednotlivé kusy (fragmenty) na více místech (uzlech). Samotný proces se nazývá sharding a pouze osoba, která má soukromý klíč, který byl použit k zašifrování dat, a současně má přístup k datům, si je může prohlédnout jako celek. Sharding vyvolává otázku, zda jsou znovu sestavená data původní. Chybám při ukládání a opětovném sestavení je zabráněno díky redundanci neboli ukládání extra kopií dat na více uzlech.
Interplanetary file system [IPFS] (Meziplanetární souborový systém)
Interplanetary File System (IPFS) je decentralizovaný souborový systém pro budování nové generace internetu. Filecoin a mnoho oblíbených Web3 projektů je postaveno na IPFS. Někteří tomu říkají pevný disk pro blockchain a Web3, i když jeho síla sahá mnohem dále.
Jde o blockchainovou technologii využívající BitTorrent protokol. Rozděluje data na úlomky a ukládá je do více instancí. Jedná se o peer-to-peer řešení, kde se soubory stahují pouze v případě, že je daná aplikace / osoba potřebuje. Jedná se tedy o řešení úložiště závislé na souborové adrese - přistupovat ke statickým souborům lze pouze se znalostí názvu a cesty souboru.
Zde je přehled decentralizovaných uložišť souborů:
FileCoin
Filecoin je coin, který je druhou vrstvou projektu IPFS (InterPlanetary File System), což je projekt s otevřeným zdrojovým kódem určený k vytvoření trvalého, decentralizovaného způsobu ukládání a sdílení dat. Síť poskytuje decentralizovaný rozbočovač, na kterém ji mohou lidé, kteří mají nadbytečnou úložnou kapacitu, nabídnout těm, kteří tuto kapacitu potřebují. Jednotlivci a firmy platí za ukládání dat na hardware poskytovatele úložiště. Tito poskytovatelé se nazývají „těžaři“ a jsou doprovázeni „sběrateli úložiště“, kteří mají na starosti získávání uložených dat.
Filecoin využívá koncept proof of storage (podobný jako PoW), aby zjistil, zda těžař skutečně provedl své povinnosti v oblasti ukládání/načítání. Koncept má dva prvky: důkaz replikace a důkaz časoprostoru. Proof-of-replication poskytovatelé úložiště používají k prokázání, že uložili jedinečnou sadu dat do prostoru, který vlastní. Proof-of-spacetime umožňuje poskytovatelům úložiště prokázat, že data byla uložena po určitou dobu. Toho lze dosáhnout tím, že poskytovatel úložiště požaduje, aby ukazoval sekvenční instance důkazu replikace.
SiaCoin
SiaCoin poskytuje open source platformu pro vývoj technologie decentralizovaného cloudového úložiště. Soubory v této decentralizované síti lze zašifrovat, rozdělit, uložit a znovu sestavit prostřednictvím soukromých decentralizovaných cloudů. Siacoin se používá pro platby na platformě, které souvisejí s ukládáním a sdílením dat.
Platforma Siacoin umožňuje hostiteli ukládat soubory bezpečně během určené doby a na určeném místě. Host je kompenzován SC mincemi za to, že splnil svou část obchodu. Obchody jsou zajištěny souborovými smlouvami, formou chytrých smluv Siacoinu. Tato smlouva vytváří specifický soubor pravidel, která budou automaticky vynucována bez zásahu jakékoli třetí strany. Siacoin lze těžit a kupovat na burzách, kromě toho je vydělávat poskytováním úložného prostoru.
Storj
Storj je open-source projekt pro vytváření decentralizovaného cloudového úložiště, který se snaží nabídnout decentralizovaný, bezpečný a efektivní způsob správy dat.
Storj je peer-to-peer síť tvořená farmáři a nájemci. Farmáři pronajímají své volné místo na pevném disku a šířku pásma, zatímco nájemci kupují uvedený prostor a šířku pásma pomocí tokenu sítě STORJ.
Arweave
Arweave je protokol spojující lidi, kteří mají volné místo na pevném disku, s těmi jednotlivci a organizacemi, které potřebují trvale ukládat data nebo hostovat obsah. Toho je dosaženo v decentralizované síti, jako je bitcoin, a všechna uložená data jsou podporována udržitelnou dotací, která zajišťuje, že jsou k dispozici navěky.
Přehled služeb pro jednoduché ukládání souborů decentralizovaně
-
NFT.Storage
NFT.Storage je služba dlouhodobého úložiště určená pro off-chain ukládání NFT dat (jako jsou metadata, obrázky a další aktiva) o velikosti až 31 GB na jednotlivé nahrání. Data jsou adresována pomocí IPFS, což znamená, že URI ukazuje na část dat („ipfs://< cid >), kdy < cid > je unikátní identifikátor obsahu (IPFS hash). IPFS URL a CID lze použít v NFT a metadatech, aby bylo zajištěno, že NFT navždy skutečně odkazuje na zamýšlená data.
NFT.Storage ukládá mnoho kopií nahraných dat ve veřejné síti IPFS dvěma primárními způsoby: na vyhrazených serverech IPFS spravovaných NFT.Storage a decentralizovaných na Filecoin. Vzhledem k tomu, že IPFS je standard používaný mnoha různými úložnými službami, je snadné redundantně ukládat data nahraná do NFT.Storage na jakémkoli jiném úložném řešení kompatibilním s IPFS jako je Arweave nebo Storj.
NFTs, o jaký typ dat jde?
Z úvodu publikace víme, že NFT je zkratka pro non-fungitable token (nezaměnitelný token), tedy token reprezentující něco jedinečného. NFT jako takové mohou reprezentovat všechny druhy aktiv, od fyzických (nemovitosti, sběratelské předměty…) přes digitální (postavy, umění, tweety…) až po virtuální. Z toho v principu vychází využívání NFT jako možnosti reprezentovat duševní vlastnictví (IP) prostředictním blockchainu.
Filosofický popis NFT výše nás obeznamuje se vším, co NFT reprezentuje a reprezentovat může, avšak nic neříká o tom, čím je NFT po technické stránce, jakým způsobem co reprezentuje a jak je s reprezentovanými věcmi technicky či legislativně vázáno.
Legislativní rámec nemusíme v současné době nadměrně řešit, jednoduše, není definován. Zaměřím se tedy čistě na technickou stránku NFTs a jejich reprezentaci konkrétních aktiv.
Každá blockchainová síť může k NFT přistupovat jinak.
NFT na Ethereu
NFTs na blockchainu Ethereum, a to jeho první i druhých vrstvách, jsou definovány standardem ERC-721, případně ERC-1155. Jde o bezplatné otevřené standardy (šablony / formáty), které definují minimální rozhraní, které musí smart kontrakt implementovat, aby bylo možné spravovat, vlastnit a obchodovat s tokeny na dané síti.
Dodržování stejných standardů usnadňuje psaní kódu, je předvídatelnější a opakovaně použitelné. Tyto standardy jsou zcela dobrovolné, ale dodržování široce používaného standardu znamená kompatibilitu s širokou škálou aplikací včetně burz, dapps a peněženek.
Hlavní charakteristikou tokenů ERC-721 je, že každý je jedinečný. Když je vytvořen token ERC-721, existuje pouze onen konkrétní vytvořený token o daném identifikátoru a žádný identický.
Token ERC-721 je vytvořen napsáním části kódu v jazyku smart kontraktu, tedy Solidity. Jak již bylo zmíněno, často se vychází ze šablony standardu, prostřednictvím níž se definují jedinečné podrobnosti o tvořeném tokenu, jako je vlastník, název tokenu, symboly atd. Do tvořeného NFT lze rovněž naprogramovat další funkce.
Smart kontrakt pro mintování NFT je tvůrcem nasazen (deploy) do ethereum sítě. Prostřednictvím něj se vymintují definovaná NFTS. Vymintovaná NFTčka z dané kolekce na tento kontrakt posléze odkazují a nesou dále odkaz na metadata (ERC-721 používá datový formát json), která dané NFT blíže definují a konkretizují. Samotný zdrojový kód Smart kontraktu, pohyby jednotlivých NFTček vážící se k onomu kontraktu i jejich metadata lze veřejně sledovat na Etherscanu.
Mintovat NFTčka lze rovněž prostřednictvím prohlížeče s přívětivým uživatelským rozhraním. S takovou možností přišla většina tržišť a řada dalších služeb. Daná přívětivost je nicméně vykoupena určitou svázaností vlastností definovanými rozhraním.
Kontrakt je uložený přímo v blockchainu Etherea. Stejně tak tokeny jednotlivých NFTs, nicméně ty jsou jen jakýmisi schránkami. Jejich důležitým parametrem je Token URI (Uniform Resource Identifier) vedoucí na json soubor s metadaty, Ten je přitom z hlediska datové úspory uložen mimo Ethereum síť. V tomto souboru nalezneme informace identifikující předmět, včetně url odkazu na vizuály, které jsou rovněž uloženy mimo blockchain. Nezměnitelnost dat v tomto externě uloženém json souboru s metadaty lze zjistit porovnáním aktuálního hash s hashem původního souboru uloženého při daném NFT v ethereum síti.
Metadata a další soubory svázané s NFT jsou tedy uloženy mimo Ethereum. Kde konkrétně, lze zjistit na Etherscanu, a to tak, že na smart kontraktu stojícím za mintováním NFT přejdeme na záložku Contract → Read Contract → Token Uri a zadáním pořadového čísla NFT ze série - např. 1 si vytáhneme adresu json souboru. V daném jsonu poté nalezneme i vyjma informací o NFT také adresy na soubory se k němu vážícími.
Jak z odstavců výše vyplývá, samotný NFT token uložený na Ethereu mnoho vnitřních informací nenese. Informace ohledně historie transferu a nakládání s NFT vychází z historie pohybů v ethereum síti vážícími se ke konkrétnímu unikátnímu identifikátoru NFT, počty NFT a raritnost je dána smart kontraktem, skrze nějž byla NFT mintována. Pokud se zajímáme o více než jen svým způsobem statistické informace, je třeba využívat soubory metadat, které nativně načítají i prohlížeče NFTs, jako je např. Etherscan, peněženky nebo tržiště.
Tato data ovšem stojí a padají na externím uložišti, na nějž se NFT odkazuje. Jinými slovy, vzniká zde riziko zániku odkazů (smazání souboru na oné adrese). Z toho důvodu je při NFTčkách zásadní robustní a decentralizované uložení dat a souborů. Obvykle se využívá IPFS.
Z hlediska datového typu, metadata jsou ukládána dle ERC-731 standardu ve formátu json, kdy doplňkové soubory odkazované z daného jsonu (obrázky, videa, zvuky, modely…) mohou být libovolného typu, nicméně je vhodné si prvně zjistit jakýsi standard aplikací (aby byly schopny daný typ souboru načíst), s kterými chceme naše NFT držet kompatibilní.
Z principu jedinečnosti NFT, NFT lze použít jako na blockchainu zapsanou reprezentaci jiné jedinečné věci. Dané NFT je přitom vždy svázané s konkrétní peněženkou, tedy vlastníkem - odtud, NFT lze používat jako důkaz vlastnictví věcí, ke kterým se vážou. Technologie blockchainu poté při dodržení NFT standardů přináší možnosti s NFT nakládat - obchodovat s ním, půjčovat jej, zastavovat naproti půjčce - prostřednictvím funkčních a robustních decentralizovaných aplikací. Tato infrastruktura je hotová, funkční, ověřená časem.
Známou zajímavou myšlenkou je tokenizování reálných statků (a osob) skrze NFTs. Nemovitosti, auta, stroje a podobně. NFTs by nahrazovaly listy vlastnictví, velké technické průkazy, zdravotní dokumenty a další. Pomineme-li riziko ztracení privátních klíčů a tím i možnosti nakládání s daným majetkem, dalším problémem je, že NFT na ethereum síti nechávají řešení uložiště na vývojářích a provozovatelech systémů využívajících daná NFTs. Tedy, vezmeme-li si příklad velkých technických průkazů aut ve formě NFT, provozovatel systému - ministerstvo dopravy - by musel i nadále provozovat vedle NFT na ethereu systém, který by držel veškerá data spojená s NFTs, tedy auty v registru.
Nevýhodou rovněž je, že NFT data nejsou příliš prohledávatelná nebo čitelná jinými smart kontrakty - zde je třeba využívat vlastní node popř. spoléhat se na centralizované služby poskytující přístup k datům blockchainu skrze APIs.
Z pohledu úschovy dat o něco náročnějším schématem je využití NFT jakožto důkazu vlastnictví digitálního díla, zejména uměleckého, jakým může být obraz, animace nebo hudba. Taková díla jsou soubory o větší datové velikosti a tedy není možné je ukládat na blockchainu. V těchto případech se prostřednictvím metadat NFT tokenu na daný soubor odkazuje, přičemž vzniká riziko zániku odkazů (smazání souboru na oné adrese). Z toho důvodu je při těchto NFTčkách zásadní právě decentralizované uložení souboru, k němuž se vztahují. Datový typ takto uloženého souboru svázaného s NFT může být jakýkoli. NFT metadata nelze ovšem v průběhu času aktualizovat.
Z principu transparentnosti sítě jsou NFTčka veřejně dostupná. Tedy, v případě právě umění je přidanou hodnotou NFT osvědčen vlastnictví a práva z toho vycházející (podíl na zisku při používání předmětu apod).
U utility NFTs přinášející práva účastnit se něčeho je vizuál nepodstatný, zde má daná práva definovaná v NFT pouze a jen vlastník peněženky, se kterou je NFT svázáno.
Příklady použití NFT
Při využití NFT je dobré uvažovat robustnost a bezpečnost léty ověřené platformy, jako je ethereum. V mnoha případech může využití této již existující infrastruktury nejen ušetřit náklady s vývojem a provozem vlastního řešení, ale především přinést dodatečné možnosti, které by v uzavřené síti nebyly možné.
Přihlašování
NFT lze používat jako klíč pro přihlášení do systému / přístup k datům. V rámci vlastností lze přitom specifikovat, kdy, ke kterým a jakým způsobem.
Oproti konvenčnímu řešení prostřednictvím autentizačního systému zcela odpadá potřeba vývoje rozhraní, jeho zabezpečení a správy v čase. Namísto toho se implementuje veřejná auditovaná knihovna, která je schopna interagovat s peněženkou a ověřit existenci v ní uloženého konkrétního NFT s vyčtením jeho parametrů.
Provozním nákladem takového řešení je pouze počáteční vymintování NFT, případně transakční náklady spojené s podpisem ověřujících zpráv, je-li to nezbytné.
Přístup k souborům
NFT může nahrazovat majetkové záznamy v běžné databázi, a to tak, že namísto držení předmětů vlastněných uživatelem v databázi má uživatel na svojí peněžence NFTs reprezentující jednotlivé vlastněné položky. Opětovně, jako v případě přihlašování, aplikace poté načítá uživatelova data na základě dostupných NFTs v jeho authentizované peněžence.
NFT pro přístup k dokumentu
Skrze NFT lze monetizovat přístup k materiálům s velmi vysokou přidanou hodnotou, kdy NFT je klíčem k jejich odemknutí. Samotný nákup NFT může být i fundraisingem komunity k vytvoření daných dokumentů. Skrze limitující počet NFTs lze držet exkluzivitu - pouze držitelé NFT tokenu mají přístup k materiálům. Tito uživatelé mají současně možnost skrze NFT přístup veřejně přeprodat s tím, že emitent dostává podíl z ceny přeprodejů.
Ticketing
NFT může reprezentovat vstupenky na kulturní a jiné akce. Díky nativním vlastnostem NFT jsou takové vstupenky nefalšovatelné a snadno obchodovatelné i na sekundárním trhu.
Volba vhodného blockchainu
Při volbě vhodného blockchainového řešení je nezbytné vycházet z typu informací, s nimiž je nakládáno - počínaje jejich velikostí, stupněm utajení, potřebou modifikovatelnosti v čase a dalších. Důležitým prvkem je i jazyk, v nímž lze na blockchainu smart-kontrakty psát, respektive vyvíjet aplikace.
Je třeba brát v úvahu i fakt, že blockchain je relativně novou technologií s neustálým vývojem. Nejen že neustále vznikají nové sítě, velké pokroky se nepřetržitě uvádějí i na stávajících blockchainech.
Jedním ze základních vlastností blockchainu definujících jeho funkcí a možnosti je využívaný konsenzus. Více jak ten je však důležitější sledovat cíle vývojářské komunity, jelikož vývojáři mohou například zamýšlet využití postupně několika typů konsenzového mechanismu, a to vždy v závislosti na aktuální fázi vývoje projektu. Například síť Ethereum z počátku používala mechanismus PoW, při kterém efektivně mintovala nové ETH tokeny výměnou za spálenou energii. Tím vyjma zabezpečení sítě jasně definovala finanční spojený s každým vzniklým Ethereem. Tyto natěžené Eth tokeny v PoW síti se poté staly základním ručením pro validátory operující na PoS konsenzu, na který Ethereum přešlo v září 2021. Přechod na PoS byl nezbytný z hlediska dalšího rozvoje sítě po stránce škálovatelnosti a nových funkcí.
Samotný mechanismus dosahování konsenzu nemá zásadní vliv na funkce blockchainu, ovlivňuje zejména jeho bezpečnost, škálovatelnost a náklady používání. Všechny tyto parametry přitom do ekonomiky používání NFTs vstupují. NFTs původně vznikly na Ethereu, a to jako token standardu ERC-721. Vedle NFTs, na ethereu jsou rovněž polozaměnitelné tokeny standardu ERC-1155. Využívání tokenů ukázalo zájem a potenciál technologie, brzy tak podpora NFTs byla přidána i na další blockchainové sítě se smart kontrakty.
Pro více informací o konsenzech přejděte na stránku Přehled existujících mechanismů konsenzu.
Blockchainy podporující NFTs
Ethereum
- Již několikrát zmiňované Ethereum je v mnohých use-casech průkopníkem. Samotné use-casy a aplikace na této smart-contract platformě utvořily stavební prvky nezbytné pro vznik finančních a právních služeb pro obchodování s majetky, která NFTs mohou reprezentovat. Na Ethereu najdeme populární tržiště NFTs (OpenSea, Rariable, ImmutableX) i umělce.
- Výhodou využívání sítě Etherea je vysoká decentralizovanost a stabilita ověřená časem. Nevýhodou vyšší cena používání sítě vycházející ze schopnosti zpracovávat pouze nízké desítky transakcí za sekundy. Právě škálovatelnost je však prioritou vývojářů a vylepšení v tomto směru bychom se měli dočkat s příchodem upgradu The Surge v průběhu roku 2023.
- Na Ethereu funguje řada druhých vrstev, které se škálovatelností a snižováním transakčních nákladů pomáhají, přičemž si drží bezpečnost první vrstvy Etherea. NFTs lze používat i na těchto druhých vrstvách, jako je Polygon Matic, Arbitrum, Optimistics a další.
- Na Ethereu je podporován programovací jazyk Solidity.
Data na Ethereu:
Ethereu se často nazývá „světový stroj“. Jako takový drží stavy a transakce. používá původní úložiště dat k zaznamenávání stavů (účtů) a transakcí. Databází Etherea je state trie následujících typů:
Modified Merkle Patricia Trie
Rovněž nazývaná jako Radix Trie / Prefix Tree je datová struktura s nejrychlejším nacházením běžných prefixes. Je jednoduchá na implementaci a vyžaduje malou paměť. Ethereum využívá Merkle Tree k efektivnímu ukládání hashe v blocích, Trie je poté používána jako základní datová struktura pro ukládání dat. Modified Merkle Patricia Trie jakožto vylepšená Merkle Tree / Patricia Tree (Trie) je využívána jako hlavní datová struktura Receipt Trie, World State Trie, Account Storage Trie a Transaction Trie.
Struktura Merkel Patricia Trie se skládá zejména ze 3 typů uzlů - extension node (rozšíření), branch node (větev), and leaf node (list). Každý uzel je určen hash (typu sha3) hodnotou obsahu, kdy hash se používá jako klíč.
-
State tries:
Jak již bylo zmíněno, Ethereum State tries dosahuje 4 typů. Každé toto stavové trie je konstruováno pomocí Merkle Patricia Trie a pouze kořenový uzel (horní uzel stavového trie) je uložen v bloku, aby se uspořilo místo. Bližší technické vysvětlení jednotlivých trie je níže.
World State Trie
World state trie je mapování mezi adresami a stavy účtů. Lze na něj pohlížet jako na globální stav, který je neustále aktualizován prováděním transakcí. Zjednodušeně říká, kolik jaký účet drží bohatství.
Síť Ethereum je decentralizovaný počítač a state trie je považováno za pevný disk. Všechny informace o účtech jsou uloženy ve World State trie a informace lze získat dotazem. World state trie úzce souvisí s Account Storage Trie, protože má pole „storageRoot“, které ukazuje kořenový uzel v Account Storage Trie.
-
Account Storage Trie
Account Storage Trie drží data spojená s účtem. Je relevantní pouze pro Contract Account. Data smart kontraktů jsou uložena v Account Storage Trie jako mapování mezi 32bajtovými celými čísly.
Stav účtu drží informace o účtech, například bilance, celkový počet transakcí odeslaných z účtu apod. Má čtyři pole: nonce, balance, storageRoot a codeHash. Jde o leaf uzel ve World State Trie.
Transaction Trie
Transaction Trie zaznamenává transakce na Ethereu. Ethereum je “stavový stroj” a právě prostřednictvím transakcí dochází ke změně stavů. Po zaznamenání transakce v bloku ji nelze již změnit, tedy ani ovlivnit World State Trie. Protože Transaction Trie je konstruován s modifikovanou Merkel Patricia Trie, v bloku se ukládá pouze kořenový uzel. V rámci datového pole transakce se nachází parametry nonce, Gas Price, Gas Limit, Recipient, Value, Data a digitální podpis.
-
(Transaction) Receipt Trie
Transaction Receipt Trie zaznamenává stvrzenky (výsledky) transakcí. Potvrzení je výsledkem úspěšně provedené transakce. Potvrzení obsahuje hash transakce, číslo bloku, množství spotřebovaného gas, adresu smlouvy atd.
V ethereum bloku jsou tedy uloženy tři hlavní stavové trie: world state trie, transaction trie, and receipt trie. Account storage trie pak vytváří Leaf uzel ve world state trie.
-
Solana
- Solana byla od počátku stavěna s cílem vysoké škálovatelnosti a nízkých poplatků za používání. V počtu transakcí Solana nemá konkurenci, překonává i standardní platební sítě, jako je Visa nebo Mastercard. Samozřejmě, v rámci blockchainového trilema s vrcholy decentralizace-bezpečnost-škálovatelnost je tato škálovatelnost vykoupena nižší decentralizací i s ní i bezpečností. Solana je brána jako blockchain vytvořený investičními fondy, cílený na masy. S nízkými poplatky za transakce jsou spojeny i různé útoky a přetížení sítě. Výjimkou nejsou ani několikahodinové výpadky.
- Solana využívá kombinaci mechanismu Proof of Stake (PoS) s proof of history. Nejznámnějším NFT tržištěm na Solaně je Magic Eden.
- Na Solaně jsou podporovány programovací jazyky Rust, C a C++.
-
Tezos
- Počáteční myšlenkou, s kterou byl Tezos tvořen, je samočinná náprava - respektive snadná upgradovatelnost sítě prostřednictvím v protokolu formalizovaného procesu upgradů.
- Finanční nákladnost emitace a správy NFTs na Tezosu je mezi Ethereem a Solanou. Největším tržištěm NFTs je Objkt.
- Tezos je relativně starým blockchaines s ICO provedeném z počátku ICO bubliny v roce 2017. Samotný pozdější vývoj byl kostrbatý z hlediska neshod mezi zakladateli, prvotními investory a nadací. Tyto problémy již byly vyřešeny, avšak Tezos na počátku stály mnoho popularity i času, který projekt doposud plnohodnotně zpět nezískal.
-
Binance Chain (BNB)
- Binance Chain je forkem původního PoW Etherea, kdy společnost Binance navýšila škálovatelnost Etherea snížením počtu validátorů (tedy decentralizace) na 21, z nichž některé (údajne 11 z 21) i sama ovládá. BNB chain tak stojí na Proof of Staked Authority konsenzu (PoSA). Tím šly dolů i transakční náklady. Samotná funkcionalita i vlastnosti NFTs tedy pochází z Etherea.
- Populárními NFT markety na BNB síti jsou Element, Mobox, a PancakeSwap.
-
Cardano
- Cardano je vyvíjeno na principu zdlouhavého akademického výzkumu následně převedeného do praxe, potažmo zapsaného do kódu. Jde o velmi zdlouhavý přístup k vývoji, přesto validní. Na Cardanu jsou sice vyvíjeny a implementovány inovace po delší dobu, avšak fungují. Rizikem je, že ostatní platformy mezitím Cardanu utečou.
- Cardano je psáno v jazyku Haskell, NFT tržiště na platformě jsou na NFT sekci stránky cardanocube.
-
Internet Computer
- Internet Computer (IC) přináší do blockchainu prvky reálného webu. Validátory jsou datacentra, poplatky platí provozovatelé projektů na IC namísto uživatelů - ti používají aplikace na Internet Computeru zdarma.
- Vyjma pro uživatele bezplatných transakcí IC tedy díky využívání datacenter nabízí i dostatečnou škálovatelnost a rychlost aplikací, kterou v datacentrech IC plně hostovány. Jde o jakousi obdobu současného internetu, běžící na upravených protokolech, s biologickou autentizací osob (otisk prstu / obličeje) a nativní měnou ICP plně integrovanou v síti tohoto “internetu”.
-
Flow
- Flow je vysoce škálovatelný blockchain navržený speciálně pro vytváření NFT, her a decentralizovaných aplikací (dApps). Na počátcích hostoval hlavně NBA Top Shot od Dapper labs, studia stojícími původně za Crypto kitties zveřejněné na Ethereu v roce 2017.
- NFT marketplacem na Flow je BloctoBay, avšak Flow NFTs lze tradovat i na marketplacech Etherea, jako je OpenSea nebo rarible.
- Programovacím jazykem je Cadence.
-
Worldwide Asset Exchange (WAX)
- WAX je stavěn jako domov pro hry a web3 aplikace. Založen byl v roce 2017 a k dnešnímu dni hostí na tisíce dApps a řadu NFT tržišť, stejně jako různé blockchainové hry. Je využíván i pro hostování NFTs vlivných značek včetně baseballové sběratelské společnosti Topps, závodního giganta NASCAR, hračkářské společnosti Hot Wheels i několika kultovních klasických filmových franšíz jako Godzilla, Princezna nevěsta a Spiderman.
-
Ela Blockchain Services
- Ela Blockchain Services nabízí zakázkové vytvoření privátních blockchainů, na nichž mohou běžet i NFTs.
Zdroje
- https://blog.logrocket.com/top-7-blockchain-based-databases/
Toto je předběžný veřejný náhled. Publikace je v přípravě.