Az NFT-ben rejlő lehetőségek a CryptoPunks-on túl, azaz tokenizáljunk mindent is!

Az NFT-ben rejlő lehetőségek a CryptoPunks-on túl, azaz tokenizáljunk mindent is!

December 15, 2021

Tokenizáljuk a saját tervezésű kabátom! Legyen egyértelműen bizonyítható az eredete és az előállítás időpontja! - csillogó szemekkel kiáltotta fel a Kedvesem, azt követően, hogy felvázoltam neki az NFT-ben rejlő lehetőségeket. Ez volt az a pillanat, amikor megértette, hogy a CryptoPunks-on és a CryptoKitties-en túl másra is használható az NFT (Non-Fungible Tokens). A mérnöki küldetésem fontos elemének tartom az új, korszakalkotó technológiák megismertetését. Korábban nehezen tudtam elképzelni, hogy egy projekt keretein belül együtt fog dolgozni az Ő “couture” és az én “kocka” világom. Az NFT ezt is összehozta… No, de hogyan is jutottunk el a határozott felkiáltásig?! Valahogy így...

Létezik ez az elosztott főkönyvi technológián alapuló rendszer, ami megfelelő titkosítást is tartalmaz. Nevezzük blokkláncnak. Ebbe a főkönyvbe bekerülő jegyzetek megmásíthatatlanok. Valóban megmásíthatatlanok! Nem a közismert védelmi mechanizmusok alkalmazása végett, hanem a rendszer alap működési sajátossága biztosítja a magas fokú biztonságot. Ugyanis globálisan szétszórt, nagyszámú gépen egy azon időpillanatban kellene egy meghatározott jegyzettömbben megváltoztatni a kívánt bejegyzést úgy, hogy minden későbbi jegyzettömb is tudjon erről a módosításról.


Mindez annak köszönhető, hogy ennek a különös főkönyvnek van egy sajátos jegyzettömb sorbarendezési mechanizmusa. Minden újonnan megkezdett jegyzettömb az előző jegyzettömb tartalmának tömörített, minden lényeges elemét tartalmazó összegzésével kezdődik. Minden újonnan megkezdett jegyzettömb pontosan tudja, mi volt a megelőző jegyzettömb tartalma. Így könnyen el lehet hash-elni a csalókat.

Továbbá, egy bejegyzés csak úgy rögzíthető, ha azt a szerző digitálisan is aláírja. Minden egyes lejegyzett adatról pontosan tudható, hogy azt ki rögzítette. Képzeljük el, mintha a jegyzeteinket ujjlenyomatokkal hitelesítenénk. A hitelesítésen túl a főkönyv a bejegyzés létrejöttének az időbélyegét is rögzíti. 

A cél az lenne, hogy ebbe az elosztott főkönyvbe egy “okos” bejegyzést rögzítsünk. Ebben az “okos” bejegyzésben írnánk le azon tényeket, amelyeket megmásíthatatlanul és transzparensen szeretnénk tárolni. Például ilyen a szerzői tulajdonjog bizonyítása. Jelen esetben egy egyedi megrendelésre készülő ruhadarab keletkezésének idejét és eredetét szeretnénk megmásíthatatlanul és transzparensen tárolni. Viszont a pusztán szöveges bejegyzés túl sok teret ad a képzeletnek. Fizikai tárgy révén még okosabb lenne okosba tárolni egy fényképet is róla. Így az “okos” bejegyzésünk már Nagyon Fancy Tartalommá válik... 

Az NFT tokenek elsődleges tulajdonsága az egyediség. Mitől is lesz különleges? Ennek az alkotói kreativitás szab egyedül határt. Az egyediséget meghatározó tulajdonságok, értékek összessége a metaadat. Ezek permanens, megváltoztathatatlan adatok az adott NFT-ről.

Az NFT-k másik fontos tulajdonsága az elérhető mennyiség. Az NFT előállítása közben egyértelműen szükséges meghatározni az adott NFT-ből elérhető példányok számát. Továbbá fontos definiálni, hogy ezen példányok oszthatatlanok vagy támogatott a résztulajdon szerzési lehetősége is (fractional NFT). Utóbbi, egyszerűen fogalmazva egy befektetési megközelítés, ahol egy eszköz költsége megoszlik az egyes érdekelt felek között, akik ezután részesülhetnek  a használati jogokból.

Számos felhasználási területe lehet az NFT-nek. Bármit tokenizálhatunk a segítségével. Bármiből lehet egyedi, digitális érték, ami azonosítható, átadható, de nem másolható. Mi egy fizikai tárgy eredetét akarjuk transzparensen, bárki által, bármikor hozzáférhetően igazolni. Esetünkben az NFT token értékét a fizikai tárgy értéke és egyediessége adja. Mindegyik ruhadarabból egyetlen egy méret és egy példány készül, és ezt rögzítjük egy oszthatatlan NFT tokenben. Az egyedi ruha megrendelője a ruhához kötődő token egyetlen tulajdonosa.

Rendben, tokenizáljunk! - bátran vállaltam a kihívást… Ekkor még csak pusztán elméleti elképzelésem volt arról, hogy technológiailag milyen kihívásokkal állok szemben.

A jelenleg tomboló NFT láz adta, hogy az Ethereum (ETH) hálózatát lenne célszerű használni. Az Ethereum-on fut a legtöbb kripto projekt, nem csak NFT. Viszont, az ETH jelenleg alkalmazásban lévő változatán a tranzakciós díjak időnként szignifikánsak. Igaz, egy egyedi ruha tulajdonjogának átadása egyszeri költség, de ha már digitalizálunk és automatizálunk, akkor jobban behatárolható “közjegyzői” díjat tudok elképzelni, mint a jelenlegi ETH tranzakciós árak.

Az NFT-k, mint digitális tartalmak, tranzakciók keretein belül vándorolnak át egyik tárcából a másikba. Az, hogy az adott digitalizált tartalom kinek a tárcájához tartozik, hova van könyvelve, ez nem más, mint a különös főkönyvben tárolt bejegyzés. Az ETH hálózata másodpercenként 15-45 közötti tranzakció számot tud kezelni. Mondhatni kicsit lassú is.

Az interoperabilitást is fontos tényezőként kezelve megvizsgáltam a Layer 2 megoldásokat és az Etherum forkokat, mint a Binance Smart Chain és a Solana. Elgondolkodtam a Polygon-on is… A Polygon egy protokoll és keretrendszer Ethereum kompatibilis blokklánc hálózatok felépítéséhez és összekapcsolásához. Ezek mind erőteljes megoldások, melyek az NFT-k szemszögéből nézve, inkább az NFT alapú játékok és a metaverzumok támogatására készültek. Amennyiben kicsit jobban megvizsgáljuk az említett hálózatok mögötti infrastruktúrát és figyelembe vesszük az előttem lévő feladat ökológiáját, akkor könnyen beláthatjuk, hogy a hosszútávú fenntarthatóság érdekében környezetbarátabb megoldást célszerű alkalmazni.

Legyen gyors, kedvező tranzakciós díjak mellett támogassa a tokenizációt és az interoperabilitást is. A megoldandó feladatot is szem előtt tartva, végül az Algorand blockchain hálózatát választottam.

Megvan a főkönyv! Már “csak” az okos bejegyzés hiányzik. Az okos szerződés és azon belül a metaadatok rögzítésére, az az NFT megfogalmazására, a legelterjedtebb szabvány az ERC-721. Mint már említettem, az Ethereum a legnagyobb játékos, így a szabványosításban is úttörő. Az interoperabilitás végett célszerű követni ezeket a szabványokat.

Az ERC-721 bevezeti az NFT szabványt, vagyis azt a token típust, amit valaki vagy valami egyedi beazonosítására lehet használni. Ezzel szemben az ERC-1155 Multi Token szabvány, ami az ERC-721 bővített változata, lehetővé teszi, hogy minden token azonosító egy új konfigurálható token típust képviseljen, amely saját metaadatokkal, készlettel és egyéb attribútumokkal rendelkezhet. Ez a kiterjesztés biztosítja, hogy tetszőleges dolog tokenizációja esetén az adott dolgot minél jobban leírják a rögzített metaadatok. Az Algorand hálózatán az ERC-1155-nek megfelelő szabvány neve ARC-0003. A tokenizált kabát az ARC-0003 szabványnak felel meg. 

Adatot tárolni blokklánc hálózaton költséges megoldás. A tranzakciók sebessége és a főkönyv mérete megköveteli, hogy az okos szerződések és a tárolt metadatok a lehető legkisebb helyet foglalják. Ennek érdekében az NFT-k két részből állnak: az intelligens szerződésből és a tényleges műalkotás metaadataiból. Az intelligens szerződést a blokkláncon tároljuk. Az intelligens szerződés tartalmaz egy hivatkozást, amely a digitalizált tartalmat tároló szerverre mutat. Ez az Off-Chain NFT.

A láncon kívüli tárolás magában foglalja a központosított tárhelyszolgáltatókat és az InterPlanetary File System (IPFS) rendszert. A központosított tárolással az a probléma, hogy ha a szerver leáll, vagy az adott szolgáltató feloszlik, akkor a digitális tartalom elveszik. Az IPFS egy biztonságosabb módszer az adatok megtalálására, mivel elosztott, decentralizált megoldást használ. Egy megváltoztathatatlan blokklánchálózaton, mint az Algorand, az IPFS-felhasználók hasheket tölthetnek fel, melyek az IPFS-en tárolt adatokra mutatnak. Mivel ezek csak linkek, így nem jelentenek nagy megterhelést a blokkláncra, szemben a nyers adatokkal.

Amikor egy IPFS-csomópont adatokat kér le a hálózatról, megőrzi az adatokat a helyi gyorsítótárban későbbi felhasználás céljából, így helyet foglal az adott IPFS-csomóponton. Azonban, az IPFS csomópontok időnként törlik a gyorsítótárat, hogy helyet csináljanak az új tartalomnak. Annak érdekében, hogy a tartalom biztosan rögzítve maradjon, célszerű “odatűzni” (pin, pinning) a csomóponthoz. A rögzítés megakadályozza, hogy a törlési folyamat során számunkra fontos adatok törlődjenek a csomópontról. Számos “pinning” szolgáltató érhető el, ezek bizonyos méreten felül fizetős szolgáltatások.

Végezetül már csak egy kihívás maradt. Összekötni a valós és a virtualizált világbeli reprezentációját a kabátnak. Előállítás közben a kabátba be lett varva egy mosható, vasalható NFC chip, melynek tartalma jelszóval levédhető. A jelszavas védelem érdekében az NTAG21x sorozatot célszerű használni. A chip az NFT rögzítését hordozó tranzakció linkjét és az NFT azonosítóját tárolja. ¯\_(ツ)_/¯

Amint azt már fentebb bemutattam, a blokkláncra való íráshoz, a bejegyezni kívánt tartalmat először is digitálisan alá kell írnunk. Ahhoz, hogy alá tudjuk írni szükségünk van egy privát kulcsra, amit az adott blockchain-hez tartozó tárca létrehozásával kapunk meg. A tárca készítésekor célszerű feljegyezni és biztonságosan, nem digitálisan tárolni a “passphrase”-t. Ugyanis a 25 szavas jelmondat birtokában a tárcánk és ezáltal a privát kulcsunk bármikor visszaállítható.

A kripto tárcák csak a privát és a publikus kulcsot tárolják. Az egyenleg lekérdezése és a bírtokolt NFT-ék megjelenítése alkalmával a tárcánk lekérdezi a blockchain-en az adott privát kulcshoz könyvelt adatokat. A könyvelt adatok csak a blockchain-en vannak tárolva. 

Az Algorand nagyon jó dokumentációval rendelkezi. Némi utánajárással magunk is megírhatjuk az okos szerződést és a “sandbox” segítségével azt rögzíteni is tudjuk a blockchain-en. Amennyiben nem kívánunk programozni, elérhetőek alkalmazások, úgynevezett dApps (decentralized applications), melyek segítségével szintén létrehozhatjuk a kívánt digitális tartalmat.

Az NFT létrehozása egy tranzakció, amit a blockchain-en könyvelünk. Ez a tranzakció nyilvános és bárki által visszakereshető a tranzakció azonosítójának ismeretében:

  • a tranzakció azonosítója: EZT2GH3SOI5UIL6RBVGF4E4OWK6GKK2WE7W3ZSKPY2HX4DEGIHVA
  • a publikus link

A tranzakció részletei között található az időbélyeg (timestamp), a rögzített NFT azonosítója (asset ID), a metadata-ra mutató link és a szerző publikus kulcsa. Az NFT részletei között találjuk a metadata hash-t és a tulajdonos publikus kulcsát:

A hash segítségével bizonyíthatjuk, hogy az elérhető tartalom és a közléskor rögzített tartalom megegyező. 


A fenti tranzakcióban rögzített metadata az ARC-0003 szabványnak megfelelően:

A tranzakcióban rögzített metaadat az alábbi képre és további részletekre hivatkozik, valamint tartalmazza a ruhában található NFC chip egyedi azonosítóját is. Kihasználom, hogy az NFC chip azonosítóját tároló memória szegmens nem szerkeszthető. Így tovább erősítem a kötődést a fizikai és a virtualizált lét között.

A további részletek lényegében egy katalógus formájában jelennek meg. Ez a katalógus tartalmazza a kabát paramétereinek részletes leírását és a nagy felbontású képeket. Az “album”-ban található az “images” lista, amelynek a nyolcadik eleme az alábbi kép. A mellékelt tartalom IPFS és SSL protokollon is elérhető. Az IPFS protokoll használatához arra képes böngészőre van szükségünk, például Brave. Egyéb böngésző esetén valamely nyilvános IPFS proxy segítségével tudjuk elérni a megosztott képet.



Vajon jó megoldás, hogy szétválasztottam két JSON-re a metadatát?! Erről sokat lehet eszmecserélni. Neked mi a véleményed? :)

A biztonságos adattárolás érdekében a metadata fájlok és a képek is “pinnelve” vannak egy pinning szolgáltatónál.


Az Algorand “asset management” egyik nagyszerű előnye az, hogy nem tudjuk bárkinek elküldeni az NFT-t, a digitalizált eszköz tulajdonjogát. Ezáltal megelőzhető a nem kívánt tulajdonjog átruházása, például adóssággal terhelt eszköz másra való rákényszerítése. Az “asset tokenization” esetében a fizikai tárgy és digitális példánya együtt jár. Ez viszont logisztikai problémához vezet. Ugyanis a digitális tartalom átküldése másodperc alatt lezajlik, amíg a fizikai szállítás akár több nap is lehet. Így könnyen előállhat az a helyzet, hogy az új tulajdonos már túladott az újonnan vásárolt NFT-n miközben annak fizikai reprezentációja még meg sem érkezett…


Jelen esetben az NFT átadása a fizikai ruhadarab átadásával egyidejűleg történik. A megrendelő a kabátban található NFC chip-ről be tudja olvasni az “asset ID”-t, majd a megfelelő mobiltárca segítségével jelentkezik annak átvételére. A küldő fél csak azt az NFT-t tudja átruházni, amelyre megelőzőleg jelentkeztek. A teljes folyamat kevesebb, mint 4 másodperc alatt jóváíródik és a jelenlegi árfolyamon 0,49 Ft-ba kerül.


Egy okos szerződéssel és a hozzá mellékelt képi bizonyítékokkal sikeresen levédtük a ruhadarab eredetét és keletkezésének időpontját. Egyben az NFT segítségével az átadás/átvétel folyamata és a tulajdon könyvelése is biztosított. Mindezt megmásíthatatlanul és transzparensen tároljuk papír alapú szerződések és közjegyző nélkül.

Véleményem szerint indokolt esetben tokenizáljunk. Nagyobb érték vagy egyedi ötlet levédés esetében látom értelmét. Minden és bármi tokenizációja felesleges.

Amint azt bemutattam, technológiailag a gyakorlatban immáron könnyen megoldható egy egyedi tervezésű ruhadarab, ingatlan, muzeális értékű festmény, lényegében bárminek a tokenizációja. A probléma a teljes jogi háttér hiányában van. Kérdéses, hogy egy hasonló megmásíthatatlan, transzparens és digitális bizonyítékot egy vitás helyzetben hogyan kezel majd a jogrendszer.

Kíváncsian várom!

Németh Kálmán
Cikket írta
Németh Kálmán
DevOps Engineer
Olvasási idő:
Blockchain
Megosztás