Prije Blockchaina postojala je mreža
Prije blockchaina i prije ERC-721 postojao je World Wide Web (ili jednostavno web). Prve komercijalne upotrebe interneta pojavile su se krajem 1980-ih, a 1989. Tim Berners-Lee stvorio je mrežu na vrhu interneta. Web se sastoji od HyperText Transfer Protocol (HTTP), HyperText Markup Language (HTML), Universal Resource Identifiers (URI’s) i web preglednika. HTTP je temeljni protokol za povezivanje svih dijelova zajedno. HTML pruža jezik za stvaranje web mjesta koje korisnici mogu posjetiti. URI identificira resurse poput web stranica, dokumenata i slika koje ljudi mogu koristiti. Preglednici omogućuju korisnicima da posjete i koriste te različite resurse.
Izvorna svrha weba bila je omogućiti istraživačima razmjenu dokumenata i olakšati slobodnu razmjenu ideja. To je ne samo uspjelo iznad svih razumnih očekivanja već je i promijenilo svijet u nekoliko kratkih godina.
Problemi s internetom:
Ograničenja weba postala su očita. Besplatna razmjena ideja nije objasnila digitalno vlasništvo i vlasnička prava. Ako inženjer stvori novi izum softvera i pusti ga na mrežu, ništa u protokolu ne štiti autora – korisnici ga preuzimaju, izvršavaju i kopiraju; izum je namijenjen svrhama koje kreator nikada nije namjeravao i koje možda neće odobriti. Protokol ne pruža mehanizam za financijsku naknadu autoru za korištenje njegovog djela, a protokol čak ne pruža mehanizam koji sprječava nekoga da uzme izumiteljev softver, stavi svoje ime i proda ga kao svoje.
Kako se web razvijao, pojedinci i organizacije koji se žele baviti trgovinom pretraživali su načine kako pokušati zaštititi svoja vlasnička prava, ali nedostatak zaštite ugrađen u sam protokol ograničava mogućnosti.
Svijet blockchaina je drugačiji.
Pokrijte svoju imovinu na Blockchainu
U blockchain okruženju netko posjeduje sredstvo posjedujući privatni ključ. Vlasništvo dokazuju potpisivanjem te imovine javnim digitalnim potpisom stvorenim iz tog privatnog ključa. Blockchains trguju digitalnom valutom u nepovjerljivom, decentraliziranom okruženju, ali korisnici trguju i imovinom izvan digitalne valute. Bilo koja roba ili usluga koja se može predstaviti u softveru može poslužiti kao digitalno sredstvo na blockchainu.
Imovina je klasificirana kao zamjenjiva ili ne-zamjenjiva. Zamjenjiva imovina je tamo gdje je svaka jedinica točno jednaka svakoj drugoj jedinici u svojoj klasi. Američki dolar je zamjenjiv. Ako odete u trgovinu i obavite kupnju, trgovca nije briga koristite li ovaj ili onaj dolar za transakciju jer su svi dolari isti. Nezamjenjiva imovina jedinstvena je u svojoj klasi. Pretpostavimo da odete u restoran i naručite sendvič s piletinom koji košta X iznos, a konobar vam donosi sendvič s ribom koji košta točno X iznos. Njih dvoje nisu zamjenjivi jer iako su iste prirode (oba su sendviči) i imaju potpuno istu vrijednost, uopće nisu ista stvar.
(Klasificirajte Bitcoin kao nezamjenjiv. Iako svaki bitcoin u isto vrijeme ima istu vrijednost, svaki bitcoin sadrži poznatu povijest, a jedan bitcoin potrošen na pranje novca, trgovinu drogom ili druge nezakonite aktivnosti u prošlosti postaje manje poželjan od drugog bitcoin s čistom poviješću.)
ERC-20 i standardi žetona
U mreži Ethereum postoji standard tokena ERC-20 za stvaranje zamjenjive imovine. Kratica ERC označava Ethereum Request for Comment, a broj je jednostavno identifikacijski indeks. Norma ERC-721 stvorena je za obavljanje transakcija s nematerijalnom imovinom (erc721.org).
Standardne funkcije ERC tokena pomalo nalik sučelju u objektno orijentiranom programiranju. Sučelje definira ugovor koji programer mora slijediti za stvaranje objekata. Programeri stvaraju više objekata iz jednog sučelja, ali moraju implementirati svako svojstvo i metodu tog sučelja. Objekti mogu implementirati dodatna svojstva i metode izvan onih definiranih u sučelju. Na primjer, sučelje može definirati “vozilo” sa svojstvima definiranim kao “gume” i “upravljački mehanizam”.
Iz ovog sučelja programeri stvaraju objekte “tricikl”, “motocikl” i “automobil”. Objekti “motocikli” i “automobili” uključuju svojstvo “spremnika za gorivo” koje objektima “tricikl” nije potrebno. Norme ERC tokena djeluju na potpuno isti način.
CryptoKitties i zora ERC-721
Standard ERC-721 uveo je Dieter Shirley od Axiom Zen. Prvotna svrha standarda bila je stvaranje CryptoKitties. CryptoKitties su jedinstvena kolekcionarska digitalna umjetnička djela mačaka. Ne samo da možete posjedovati jedinstvenu kolekciju CryptoKitties, već možete i uzgajati mačke da biste stvorili nove CryptoKitties.
To otvara načine potencijalnog prihoda gdje možete stvoriti nove mačke i prodati ih. Ako imate posebno poželjan CryptoKitty koji bi drugi željeli uzgajati s njihovim, mogli biste zaraditi novac naplaćujući naknade za stud.
Vremenom se sami CryptoKitties možda neće pokazati vrijednijima od hulahopa ili Davy Crockettovih kapa od jelenske kože koji su bili velika pomodnost u djetinjstvu baby boomera. U to je vrijeme vrhunska tehnologija bila crno-bijela televizija. Stvarna vrijednost CryptoKittiesa može se pokazati da oni pružaju dokaz koncepta za nezamjenjivo vlasništvo digitalne imovine.
Ne tako tajni kod
Kôd norme tokena ERC-721 ugovor je koji definira događaje i funkcije. Ovdje su dovoljna opća objašnjenja koda, a detaljne tehničke informacije postoje na Web stranica ERC-721.
Programeri moraju implementirati tri događaja: Transfer (), Approval () i ApprovalForAll (). Prijenosi se aktiviraju kada se promijeni vlasništvo. Odobrenje se aktivira kada se odobrena adresa za ne-nosljivi token (NFT) promijeni ili potvrdi. ApprovalForAll se aktivira kada operater omogući ili onemogući vlasnika.
Funkcije koje programeri moraju implementirati su:
balanceOf () za brojanje svih nefungibilnih tokena (NFT-a) dodijeljenih vlasniku
ownerOf () pronaći vlasnika NFT-a
safeTransferFrom () za prijenos vlasništva nad NFT-om s jedne adrese na drugu adresu i donosi iznimke ako parametri imaju problema
transferFrom () za prijenos vlasništva nad NFT-om
odobriti() za postavljanje ili potvrđivanje odobrene adrese za NFT
setApprovalForAll () kako bi se omogućilo ili onemogućilo odobrenje treće strane (“operatora”) za upravljanje svom imovinom msg.sender-a
getApproved () vraća odobrenu adresu za ovaj NFT ili nultu adresu ako je nema
isApprovedForAll () vraća true ako je operator odobreni operator za vlasnika, u suprotnom vraća false
supportsInterface () vraća true ako ugovor implementira valjani ID sučelja, u suprotnom vraća false
Konačne misli: Devet života novih tehnologija
Od samog početka, ERC-721 pokazuje neka potencijalna ograničenja jednostavno zahvaljujući prirodi digitalne tehnologije. Bilo koji digitalni objekt jednostavno strukturira zbirku bitova i bitovi se mogu mijenjati. Pretpostavimo da ste umjetnik koji je stvorio najveći digitalni portret ikad. Ako netko odluči kopirati portret i na njega nacrtati brkove, biste li to mogli spriječiti jednostavno zato što možete dokazati vlasništvo nad izvornim sredstvom? Posjedujete li novu imovinu izvedenu iz vašeg posjeda? Da sredstvo nije umjetničko djelo već komad izvršnog koda, biste li mogli ograničiti upotrebu tog koda?
Kad se nova tehnologija pojavi na sceni, sve mogućnosti i ograničenja nisu odmah očite. Posljedično, inženjeri mozgaju o potencijalima i izazovima, a ako mozak nije sposoban za oluje, lagane kišice i povremeni naleti često će biti dovoljni. Ono što u ovom trenutku možemo reći je da je ERC-721 promišljen pristup i pruža skromnu nadu u ublažavanju nekih izvornih nedostataka protokola World Wide Web.