Uvod v ERC-721: žeton CryptoKitty

Cryptokitties so nam pokazali, da je mogoče ustvarjanje kriptokolekcionarjev, skladnih z ERC-721, pot naprej, ko gre za razširjeno splošno sprejemanje. V tem priročniku poglejmo, kaj pomeni ERC-721 in kako deluje.

Pred približno 10 meseci so vsi v kripto prostoru naleteli na enega najbolj nenavadnih naslovov doslej.

Uvod v ERC-721: žeton CryptoKitty

Zamisel o kripto mačkah je zelo preprosta. Na vrhu verige blokov Ethereum ustvarite svojo lastno digitalno mačko, nato pa lahko zanje skrbite, jih vzrejate, dražite itd. Ljudje so se množice lotili kriptokitijev in kmalu so se v rednih novinskih publikacijah začele pogovarjati o kriptokiticijah in ethereumu..

Ustvarjanje standardov žetonov

Glede na spletno stran Ethereuma, “Ethereum je decentralizirana platforma, ki izvaja pametne pogodbe: aplikacije, ki delujejo natanko tako, kot je programirana, brez kakršne koli možnosti izpada, cenzure, goljufije ali vmešavanja tretjih oseb. Te aplikacije delujejo na prilagojenem blockchainu, izjemno zmogljivi skupni globalni infrastrukturi, ki lahko premika vrednost in predstavlja lastništvo nepremičnine. “

Poenostavljeno povedano, Ethereum bo postal decentraliziran super-računalnik, v katerem lahko kdor koli in kjer koli izposodi nekaj računalniške moči in ustvari decentralizirane aplikacije (Dapps), ki se lahko izvajajo na vrhu platforme Ethereum.

Te Dappe poganjajo pametne pogodbe, ki so kodirane z uporabo solidity programskega jezika. Te pametne pogodbe se bodo samoizvajale s posebnimi navodili, napisanimi v njihovi kodi, ki se izvršijo ob izpolnjevanju določenih pogojev.

Pri delovanju teh decentraliziranih aplikacij je treba upoštevati še eno stvar.

Dapps financirajo ICO. ICO ali začetne ponudbe kovancev so kriptovalutna različica začetnih javnih ponudb ali IPO. Vendar pa so ICO v primerjavi z IPO veliko bolj podjetnikom prijazne. Da bi bili na kratko, ko gre za ICO, razvijalci dajejo žetone v zameno za sredstva.

Žeton je predstavitev nečesa v njegovem določenem ekosistemu. Lahko je vrednost, delež, volilna pravica ali kar koli drugega. Žeton ni omejen na določeno vlogo; lahko ima veliko vlog v svojem naravnem ekosistemu, kot so:

  • Cestnina: Žeton lahko deluje kot prehod na Dapp. V bistvu boste morali za dostop do Dappa držati žetone.
  • Volilne pravice: Žetoni lahko imetnike tudi usposobijo za določeno glasovalno pravico. Pomislite na EOS, če imate žetone EOS, boste lahko glasovali za proizvajalce blokov.
  • Izmenjava vrednosti: To je ena najpogostejših vlog žetonov v ekosistemu. Žetoni lahko pomagajo ustvariti notranji ekonomski sistem znotraj aplikacije.
  • Izboljšanje uporabniške izkušnje: Žeton lahko imetnikom omogoči tudi obogatitev uporabniške izkušnje v okviru določenega okolja. Npr. V Brave (spletni brskalnik) bodo imetniki BAT (žetoni, ki se uporabljajo v Brave) dobili pravice za obogatitev izkušnje strank z uporabo njihovih žetonov za dodajanje oglasov ali drugih storitev, ki temeljijo na pozornosti na platformi Brave..
  • Valuta: Lahko se uporablja kot hranilec vrednosti, ki se lahko uporablja za izvajanje transakcij znotraj in zunaj danega ekosistema.

Zdaj že vemo, kako pomembni so žetoni, vendar so se vsi ICO v zgodnjih dneh soočali z resnimi ovirami.

Token ovire

V prvih dneh se je zdelo, da vsak žeton ICO skuša “na novo izumiti kolo”, kar zadeva izvedbo. Vsak od teh žetonov je imel svoj seznam funkcij. Zdaj je to privedlo do številnih novih težav.

Za ustvarjanje zdravega ekosistema na vrhu Ethereuma je nujno, da lahko Dapps, zgrajen na njem, nemoteno komunicira med seboj. Kaj pa se bo zgodilo, če imamo dva žetona, recimo Token Alpha in Token Beta, in oba imata različno strukturo pametnih pogodb?

Da bosta oba žetona medsebojno delovala, bodo morali razvijalci natančno preučiti obe pogodbi in natančno določiti, kako bodo ti žetoni medsebojno delovali.

Zdaj to v resnici ne pomeni dobre prilagodljivosti, kajne?

Če obstaja 100 različnih žetonov s 100 različnimi pogodbami, potem bo za zožitev vseh kvalifikacij in pogojev, potrebnih za zagotovitev, da bodo prenosi med vsemi temi žetoni potrebni, treba ogromno zapletenih izračunov. To sploh ni idealen scenarij.

Nekaj ​​je bilo treba storiti in 19. novembra 2015 je Fabian Vogelsteller iznašel genialno rešitev.

Po Wikipediji je ERC-20 “seznam pravil, ki jih mora izvajati žeton Ethereum, ki razvijalcem omogoča, da programirajo, kako bodo novi žetoni delovali znotraj ekosistema Ethereum. Standard žetona ERC-20 je postal priljubljen pri podjetjih za množično financiranje, ki se ukvarjajo s primeri začetne ponudbe kovancev (ICO), zaradi enostavnosti uvajanja, skupaj s potencialom za interoperabilnost z drugimi standardi žetonov Ethereum.”

Da bo poenostavljeno, je ERC-20 vodnik po pravilih in predpisih, ki bo pomagal ustvariti načrt pametnih pogodb s sedežem v Ethereumu za ustvarjanje njihovih žetonov. “ERC” pomeni “Ethereum Request for Comment”, medtem ko je številka ’20’ številka, dodeljena tej zahtevi..

Poglejmo, kaj gradi temelje ERC20:

  • totalSupply
  • ravnotežje
  • prenos
  • prenosOd
  • odobriti
  • dodatek

To so pravila in funkcije, ki jih morajo nujno imeti žetoni ERC20. Lahko pa imajo tudi naslednje 3 neobvezne značilnosti.

  • Ime žetona
  • Simbol
  • Decimalno (do 18)

Žetoni ERC-20 so odgovorni za standarde žetonov vseh ICO. Ker pa se v glavnem uporabljajo kot plačilni sistem, morajo imeti žetoni ERC-20 še eno funkcijo … .fungibility.

Kaj je zamenljivost?

Pomanjkanje zamenljivosti je velik problem, ki ga morajo kriptovalute rešiti.

Po poročanju Investopedije “Zamenljivost je dobrina ali zamenljivost sredstva z drugim posameznim blagom ali sredstvi iste vrste.

Torej, kaj je zamenljivo in kaj ne.

Če si od prijatelja izposodite 100 USD in mu vrnete še bankovec za 100 dolarjev, je popolnoma v redu. Pravzaprav lahko prijatelju podarite 2 bankovca za 50 dolarjev ali celo 10 za 10 dolarjev. Popolnoma v redu bo, ker so dolarji (ali papirnate valute na splošno) večinoma zamenljivi.

Po drugi strani pa kaj … zbirateljski material?

Npr. Recimo, da ste iz nekega razloga en dan slikali prijatelja Picassa? Kaj se bo zgodilo, če ji boste morali vrniti neko drugo Picassovo sliko, ko jo boste morali vrniti? Še huje, kaj pa če namesto, da vrnete sliko, vrnete sliko v manjših kosih?

Kakor koli že, imeli boste srečo, če vas ne bo iztrebila.

Zakaj je temu tako?

Za razliko od valute slike in kakršne koli zbirateljske predmete niso zamenljive.

Valuta dejansko pridobi večjo vrednost zaradi svoje zamenljivosti. Bolj kot je valuta splošno sprejeta in sprejeta, več ljudi jo bo uporabljalo in s tem večja bo njena zaznana vrednost.

Ta enačba pa se popolnoma spremeni, ko valuto zamenjate z zbirateljskimi predmeti. Zbirateljstvo dobi svojo vrednost le zaradi svoje edinstvenosti in redkosti.

Uvod v ERC-721: žeton CryptoKitty

Ta baseball karta iz leta 1952 legendarnega Mickeyja Mantla je na dražbi prejela kar 1,13 milijona dolarjev. Zdaj bi šlo res toliko, če bi bilo na voljo približno 100 drugih kartic “Mickey Mantle 1952”?

Tukaj je bistvena bistvena razlika med ERC-20 in ERC-721.

ERC-721

Standard žetona ERC-721 pomaga ustvariti nezamenljive žetone. V mnogih pogledih je po funkcionalnosti precej podoben ERC-20. Ta podobnost obstaja iz dveh razlogov:

  • Prvič, razvijalci lažje opravijo prehod. Ker vsi razvijalci ethereuma že poznajo ERC-20, se jim ne bo treba naučiti kopice novih stvari
  • Uporabnikom, ki lahko te žetone shranjujejo v navadne denarnice in jih trgujejo na borzah, olajša življenje.

ERC-721 pridobi svoje nezamenljive lastnosti z zajemanjem lastništva nad tem žetonom. Zato so funkcije prevzemanja lastništva vključene v standard ERC-721.

Funkcije ERC-721

Standard ERC-721 opredeljuje naslednje funkcije: ime, simbol, totalSupply, balanceOf, ownerOf, odobritev, prevzem lastništva, prenos, tokenOfOwnerByIndex in tokenMetadata. Določa tudi dva dogodka: prenos in odobritev.

Preden se lotimo razprav o posameznih funkcijah, morate vedeti, kaj mislimo pod lastništvom žetonov in ustvarjanjem žetonov funkcij ERC-721

Lastništvo žetonov

Ko kupite žetone ERC-20, bodo vaše lastniške pravice zapisane v pametnih pogodbah. Pametna pogodba vsebuje tudi podatke o tem, koliko žetonov bo imel vsak naslov po dogovoru … in to je to. Stvar je v tem, da teh pogodb ni treba skrbeti za določene žetone, ker so zamenljivi, zato so vsi enaki.

Vendar vrednost enega žetona ERC-721 zaradi enakovrednosti ni enaka drugemu žetonu ERC-721. Dodajanje naslova in stanja pogodbi ne bo dovolj, dodati je treba tudi edinstvene podatke o lastništvu žetona.

Ustvarjanje žetona

Ustvarjanje žetonov v žetonih ERC-20 je približno ravnovesje žetonov. Torej, vse, kar morate storiti, je, da nastavite zgornjo mejo in se prepričate, da ljudje ne morejo ustvariti več žetonov od zgornje meje. V primerjavi s tem je ustvarjanje žetonov ERC-721 veliko bolj zapleteno. Standard ERC-721 vzdržuje vrsto žetonov in vsak posamezen žeton se v matriko doda ločeno.

Pogodba je opredeljena tako:

pogodba ERC721 {

// ERC20 združljive funkcije

ime funkcije () konstanta vrne (ime niza);

simbol funkcije () konstanta vrne (simbol niza);

funkcija totalSupply () konstantno vrne (uint256 totalSupply);

funkcija balanceOf (naslov _owner) konstantne donose (uint saldo);

// Funkcije, ki opredeljujejo lastništvo

funkcija ownerOf (uint256 _tokenId) konstantne vrnitve (naslov lastnika);

odobritev funkcije (naslov _to, uint256 _tokenId);

funkcija takeOwnership (uint256 _tokenId);

prenos funkcije (naslov _to, uint256 _tokenId);

funkcija tokenOfOwnerByIndex (naslov _owner, uint256 _index) konstantno vrne (uint tokenId);

// Metapodatki žetonov

funkcija tokenMetadata (uint256 _tokenId) vrne konstanto (niz infoUrl);

// Dogodki

prenos dogodkov (naslov indeksiran _od, naslov indeksiran _to, uint256 _tokenId);

odobritev dogodka (naslov indeksiran _ lastnik, naslov indeksiran _ odobren, uint256 _tokenId);

}

Zdaj pa poglejmo vsako od teh funkcij. Krik Geraldu Nashu za podatki.

# 1 ime ()

Ta funkcija se uporablja za določanje imena žetona za zunanje pogodbe in aplikacije. Poglejmo, kako to deluje.

pogodba Blockgeeks {

ime funkcije () konstanta vrne (ime niza) {

vrnitev "Preberite Blockgeeks";

}

}

# 2 simbol ()

Funkcija symbol () pomaga pri identifikaciji žetona, tako da ustvari svojo okrajšavo in simbol. Funkcija zagotavlja tudi združljivost s standardom žetona ERC20.

pogodba Blockgeeks {

simbol funkcije () konstanta vrne (simbol niza) {

vrnitev "BG";

}

}

# 3 skupajDobava ()

Funkcija totalSupply () določa skupno število žetonov, ki so na voljo v pogodbi, in vrne tudi skupno število kovancev, ki so na voljo v verigi blokov. Zaloga ni nujno stalna.

pogodba Blockgeeks {

// To je lahko poljubno število

uint256 private totalSupply = 1000000000;

funkcija totalSupply () konstantni donosi (uint256 dobava) {

vrnitev totalSupply;

}

}

# 4 ravnotežje ()

Ta funkcija se uporablja za iskanje števila žetonov, ki jih ima določen naslov.

pogodba Blockgeeks {

preslikava (naslov => uint) zasebna stanja;

function balanceOf (address _owner) konstantne donose (uint balance)

{

povratne bilance [_owner];

}

}

Lastniške funkcije

Zdaj smo prišli do lastniških funkcij žetonov ERC-721. Dve posebni področji, na katerih žetoni ERC-721 kažejo svojo edinstveno kakovost, sta lastništvo in ustvarjanje. Oglejmo si oba področja in kako se v teh kategorijah obneseta tako ERC-20 kot ERC-721.

Lastniške funkcije so naslednje:

  • ownerOf ()
  • odobri ()
  • prevzemi lastništvo()
  • prenos ()
  • tokenOfOwnerByIndex ()

# 1 lastnik ()

Namen te funkcije je vrniti naslov lastnika žetona. Ker je vsak žeton ERC721 nezamenljiv in edinstven, se na njega v blokovni verigi sklicuje prek njegovega edinstvenega ID-ja..

Lastnika žetona lahko enostavno določite z uporabo ID-ja.

pogodba Blockgeeks {

preslikava (uint256 => naslov) private tokenOwners;

preslikava (uint256 => bool) zasebni žetonExists;

function ownerOf (uint256 _tokenId)

stalni donosi (lastnik naslova) {

require (tokenExists [_tokenId]);

vrni tokenOwners [_tokenId];

}

}

# 2 odobritev ()

Ta funkcija odobri ali podeli dovoljenje drugemu subjektu za prenos žetona v imenu lastnika.

Razumimo to na primeru.

Če ima Alice 1 BG, lahko pokliče funkcijo odobritve za svojega prijatelja Boba. Ko bo klic uspešen, bo Bob prevzel popolno lastništvo in pozneje v imenu Alice izvajal operacije nad žetonom.

pogodba Blockgeeks {

preslikava (naslov => preslikava (naslov => uint256)) dovoljeno;

funkcija odobri (naslov _to, uint256 _tokenId) {

zahteva (msg.sender == ownerOf (_tokenId));

zahteva (msg.sender! = _to);

dovoljeno [msg.sender] [_ to] = _tokenId;

Odobritev (msg.sender, _to, _tokenId);

}

}

# 3 prevzem lastništva ()

Ideja funkcije takeOwnership () je, da deluje kot funkcija umika. Zunanja stranka ga lahko pokliče, da vzame žetone iz računa drugega uporabnika. Če torej Alice dovoli Bobu, da ima v lasti določeno količino žetonov, in mu želi, da te žetone umakne iz stanja drugega uporabnika, bo uporabila funkcijo takeOwnership ().

pogodba Blockgeeks {

funkcija takeOwnership (uint256 _tokenId) {

require (tokenExists [_tokenId]);

naslov oldOwner = ownerOf (_tokenId);

naslov newOwner = msg.sender;

zahtevajo (newOwner! = oldOwner);

zahteva (dovoljeno [oldOwner] [newOwner] == _tokenId);

stanja [oldOwner] – = 1;

tokenOwners [_tokenId] = newOwner;

stanja [newOwner] + = 1;

Prenos (oldOwner, newOwner, _tokenId);

}

}

# 4 prenos ()

Funkcija transfer () je še ena metoda, ki se uporablja za prenos žetonov. Lastniku žetona omogoča, da ga pošlje drugemu uporabniku, podobno kot samostojni kriptovaluti. Ta prenos se lahko začne samo, če je bil prejemnemu računu že odobren lastnik žetona s strani pošiljatelja.

pogodba Blockgeeks {

preslikava (naslov => preslikava (uint256 => uint256)) zasebni lastnikTokens;

funkcija removeFromTokenList (lastnik naslova, uint256 _tokenId) private {

za (uint256 i = 0; ownerTokens [lastnik] [i]! = _tokenId; i ++) {

ownerTokens [lastnik] [i] = 0;

}

}

prenos funkcije (naslov _to, uint256 _tokenId) {

naslov currentOwner = msg.sender;

naslov newOwner = _to;

require (tokenExists [_tokenId]);

zahteva (currentOwner == ownerOf (_tokenId));

Zahtevaj (currentOwner! = newOwner);

require (newOwner! = naslov (0));

removeFromTokenList (_tokenId);

stanja [oldOwner] – = 1;

tokenOwners [_tokenId] = newOwner;

stanja [newOwner] + = 1;

Prenos (oldOwner, newOwner, _tokenId);

}

}

# 5 tokenOfOwnerByIndex () [neobvezno]

Vsak lastnik nezamenljivega žetona ima lahko hkrati več žetonov. Kot smo že povedali, se na vsak žeton sklicuje njegov edinstveni ID, zato je lahko vsakemu uporabniku zares težko slediti posameznim žetonom, ki jih imajo v lasti.

Da bi poenostavili ta postopek in ga poenostavili, pogodba vodi evidenco ID-jev vsakega žetona, ki ga ima vsak uporabnik. Zaradi tega je mogoče vsak posamezen žeton, ki je v lasti uporabnika, pridobiti s svojim indeksom na seznamu (matriki) žetonov v lasti uporabnika.

Funkcija tokenOfOwnerByIndex nam omogoča, da v tej metodi pridobimo žeton.

pogodba Blockgeeks {

preslikava (naslov => preslikava (uint256 => uint256)) zasebni lastnikTokens;

funkcija tokenOfOwnerByIndex (naslov _owner, uint256 _index) konstantno vrne (uint tokenId) {

vrni ownerTokens [_owner] [_ index];

}

}

Metapodatki

Metapodatki so skupek podatkov, ki dajejo večji značaj in osebnost glavnim podatkom. Metapodatki služijo številnim pomembnim namenom, kot so opis podatkov, brskanje po podatkih, prenos podatkov, metapodatki imajo pomembno vlogo pri upravljanju z digitalnimi viri. Metapodatki igrajo ključno vlogo v digitalnem informacijskem sistemu.

V ERC-721 funkcija tokenMetada () pomaga pri določanju metapodatkov žetona.

pogodba Blockgeeks {

preslikava (uint256 => niz) tokenLinks;

funkcija tokenMetadata (uint256 _tokenId) vrne konstanto (niz infoUrl) {

vrni tokenLinks [_tokenId];

}

}

Dogodki

Dogodki se sprožijo vsakič, ko jih pokliče pogodba in se po odpovedi predvajajo v vseh poslušnih programih.

Programi zunaj pogodbe poslušajo dogodke, tako da lahko izvršijo kodo v njej takoj, ko se sproži. Standard ERC-721 obravnava dva dogodka:

  • Prenos ()
  • Odobritev ()

# 1 Prenos

Kadarkoli žeton zamenja lastnika, se ta dogodek sproži. Vsakič, ko se lastništvo žetona premakne z ene osebe na drugo, se ta dogodek sproži. Podrobno opisuje naslednje:

  • Kateri račun je poslal žeton
  • Kateri račun je prejel žeton
  • Kateri žeton je bil prenesen (s preverjanjem ID-ja)

<div slog ="ozadje: #ffffff; preliv: samodejno; širina: samodejno; obroba: polno siva; meja-širina: .1em .1em .1em .8em; oblazinjenje: .2em .6em;"><pred slog ="marža: 0; višina črte: 125%">pogodba Blockgeeks {

odobritev dogodka (naslov indeksiran _ lastnik, naslov indeksiran _ odobren, uint256 _tokenId);

}

pred>div>

# 2 Odobritev

Ta drugi dogodek se sproži vsakič, ko uporabnik dovoli, da drug uporabnik prevzame lastništvo določenega žetona. Dogodek podrobno opisuje, kateri račun je trenutno lastnik žetona in kateri račun v prihodnosti dobi dovoljenje za njegovo lastništvo. Prav tako preveri ID žetona, da ugotovi, kateri žeton je bil odobren za prenos lastništva.

pogodba Blockgeeks {

odobritev dogodka (naslov indeksiran _ lastnik, naslov indeksiran _ odobren, uint256 _tokenId);

}

ERC-271 in prihodnost

Cryptokitties na svojem vrhuncu so postali dobro in resnično virusni. Pravzaprav je bila to tretja pogodba o Ethereumu, ki je najbolj lačna plina.

Uvod v ERC-721: žeton CryptoKitty

Vendar je postal preveč priljubljen za svoje dobro. Kmalu je popolnoma zamašil mrežo Ethereum, ki preprosto ni bila pripravljena zadovoljiti ogromnega povpraševanja

Uvod v ERC-721: žeton CryptoKitty

Stvari so postale tako slabe, da je bilo podjetje Axiom, tudi podjetje, ki stoji za kriptokitami, prisiljeno zvišati svoje porodne stroške. Tako so povedali v svojem medijskem članku:

Navdušenje in posvojitev, ki smo jo videli v tem tednu, je bilo izjemno in ne bi mogli biti srečnejši! Vendar je mreža Ethereum popolnoma polna. Edini način, da CryptoKitties prepreči zaostajanje, je zvišanje cen plina, da se lahko vse transakcije hitro zaključijo. Vemo, da bodo povišane cene pomenile, da boste nekateri morali upočasniti svoj vzrejni režim in nad tem smo neverjetno razočarani. Kdo pa ve? Mogoče bo ta upočasnitev samo pomenila, da vam bodo mačke, ki jih že imate, všeč toliko bolj.

Iz celotne te epizode smo se naučili dve neprecenljivi lekciji:

  • Ethereum še ni pripravljen za obsežne Dapove
  • Po kripto zbirateljskih predmetih je ogromno povpraševanja.

Razširimo drugo točko.

Vsesplošno sprejemanje prek ERC-721

Ne pozabimo, da Cryptokitties, eden najuspešnejših Dappov vseh časov, ni odpravil nobenih težav v ekosistemu in tudi v sistem ni prinesel revolucionarne uporabnosti. To je preprost rekreacijski Dapp, ki je uporabnikom omogočil, da gojijo in gojijo svoje muce.

Mogoče je tu prava pot do splošnega sprejemanja.

Zgodovina nas je naučila, da so ljudje večkrat sprejeli in sprejeli novo tehnologijo z vozilom, ki morda sploh ni bil predvideni cilj (teh tehnologij).

Vzemimo precej ustrezen primer.

Jeff Bezos, najbogatejši človek na svetu, ima neto vrednost, ki presega 150 milijard dolarjev. Svoje bogastvo je ustvaril z ustanovitvijo Amazona, zlahka največjega spletnega mesta za e-poslovanje na svetu.

Tržnica igralnih konzol je vredna 50 milijard dolarjev, Sonyjeva Playstation pa je lastnica 53% trga deliti. PlayStation slavno uporablja diske Blu Ray.

Ogromna priljubljenost Amazona in PS4 je vse posledica njegovega smešnega splošnega sprejemanja.

Vendar lahko ugibate, kaj je sploh prineslo splošno sprejeto e-poslovanje in Blu Ray?

Pornografska industrija.

Resno. Poišči.

Prepričani smo, da pornografska industrija ni bila predvideni trg e-trgovine in Blu Raya, ko sta oba začela.

ERC721 – Zaključek

erc 721 in kriptokitije

Zbirateljski predmeti ERC-721 so nam pokazali preizkušen način za uveljavitev splošnega kripto. Pred tem pa moramo opraviti še veliko dela. Ob tem je zamisel o ustvarjanju nezamenljivih zbirateljskih predmetov na verigi blokov veliko obljubljati in bo sčasoma postajala vse bolj izpopolnjena.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map