Autors: Ešs Li, Noa Ho

Avots: https://www.spectrumlab.io/zh/reports/erc6551%E7%95%B6nft%E7%A2%B0%E4%B8%8A%E5%90%88%E7%B4%84%E9% 8C%A2%E5%8C%85

Diskusijas par protokolu ERC-6551 sabiedrībā pakāpeniski uzkarst. Šis protokols sniedz milzīgu NFT paplašināšanās potenciālu. ERC-6551 izveido unikālu līguma maku katram NFT, izmantojot Token Bond kontu (TBA), ļaujot tam glabāt aktīvus un reģistrēt saistītās darbības. Tas rada iespēju pārbaudīt neaizvietojamo marķieru (NFT) un kombinēto NFT identitāti. Iedziļinoties, mēs varam konstatēt, ka ERC-6551 faktiski nodrošina pilnībā funkcionējošu maku NFT, un šī maka "atslēga" ir pats NFT. Šajā rakstā tiks apskatīta NFT standarta izstrādes vēsture un iepriekšējie mēģinājumi paplašināt NFT. Tā kā TBA kodols ir līgumu maciņš, mēs arī sniegsim īsu ievadu par līgumu maku. Visbeidzot, mēs iedziļināsimies protokola un tā iespējamo lietojumu ieviešanas detaļās.

1. NFT standartu vēsture un pašreizējais statuss

Kā īpašs kriptovalūtas un digitālās mākslas aktīvs NFT nodrošina jaunu digitālo nesēju mākslas darbiem un paplašina blokķēdes tehnoloģijas pielietojuma scenārijus. Atšķirībā no tradicionālajiem viendabīgajiem marķieriem, katrs NFT ir unikāls un saistīts ar konkrētiem metadatiem, piemēram, mākslas darbiem, spēļu rekvizītiem, mūziku un citiem elektroniskiem materiāliem. Tāpēc NFT var izmantot kā elektronisko datu īpašumtiesību sertifikātu, ko cilvēki var vākt vai tirgot. 2014. gada 3. maijā digitālais mākslinieks Kevins Makkojs radīja pirmo zināmo NFT darbu "Quantum". Tas ir pikseļu astoņstūris, kas izgatavots no dažādām formām un atveidots psihedēliskā veidā. Tomēr tikai pēc ERC-721 (Ethereum Request for Comments 721) parādīšanās NFT patiešām bija vienots standarts, kas izstrādātājiem sniedza ērtību tā pielietošanā dažādos projektos.

ERC-721

ERC-721 un CryptoPunks izstrādes vēsture ir cieši saistīta. CryptoPunks tika palaists 2017. gadā un sastāv no 10 000 unikālu 24 x 24 pikseļu mākslas attēlu. Tieši tā panākumi ir piesaistījuši plašu izstrādātāju un sabiedrības uzmanību, liekot lielākam skaitam cilvēku apzināties NFT milzīgo potenciālu. Kopš tā laika tas ir kļuvis par daudzu NFT projektu projektu un ir par pamatu ERC-721 standarta izstrādei. Standartu izveidoja Dīters Šērlijs, CryptoKitties CTO. 2018. gada janvārī Viljams Entrikens, Dīters Šērlijs, Džeikobs Evanss un Nastasija Saksa kopīgi ierosināja ERC-721 standartu. Šis neaizvietojamais marķiera standarts ievieš ar marķieriem saistītus ABI viedos līgumos, liekot pamatu unikālu digitālo aktīvu izveidei, pārvaldībai un pārsūtīšanai vietnē Ethereum, atverot jaunu nodaļu māksliniekiem, kolekcionāriem un digitālās mākslas tirgum.

Galvenās ERC-721 iezīmes ir šādas:

  • Unikalitāte: Atšķirībā no ERC-20 marķieriem (kas ir aizstājami un katrs marķieris ir tieši tāds pats kā jebkurš cits marķieris), katrs ERC-721 marķieris ir unikāls.

  • Īpašumtiesības un nodošana: šis marķiera standarts ļauj identificēt jebkura dotā marķiera īpašnieku un ļauj īpašniekam vai apstiprinātām personām nodot marķieri.

  • Metadatu saistīšana: ļauj saistīt metadatus ar katru marķieri, kas var ietvert attēlu, aprakstu vai citus atbilstošus marķiera rekvizītus.

Lai nodrošinātu tā standarta statusu, ERC-721 definē šādas galvenās metodes un notikumus:

  • balanceOf()、ownerOf()、approve()、getApproved()、setApprovalForAll()、isApprovedForAll()、transferFrom() 和 safeTransferFrom() 等方法.

  • Kā arī tādi notikumi kā Transfer() un Approval().

Īsāk sakot, ERC-721 standarts nodrošina mehānismu unikāliem Ethereum aktīviem, nodrošinot katra līdzekļa unikalitāti un īpašumtiesības un ļaujot tos pārbaudīt, tirgot un pārvaldīt. ERC-721, kas ir neaizvietojamo žetonu standarts, ir guvis ievērojamus panākumus digitālās mākslas un kolekcionējamo priekšmetu jomā. ERC-721 nosaka

Tomēr, lai gan NFT lietojumprogrammās ir ieviesti daudzi ievērojami projekti, joprojām pastāv daži ierobežojumi, piemēram, tie nevar darboties kā starpniekserveri vai būt tieši saistīti ar citiem ķēdes aktīviem. Lai risinātu šīs problēmas, kopiena ir ierosinājusi vairākus paplašinājumus un jaunus standartus, no kuriem reprezentatīvākie ir EIP3664 un EIP3525.

ERC-3664

Jau 2021. gada maijā DRepublic komanda ierosināja EIP-3664 — NFT īpašuma paplašinājuma protokolu. Šis priekšlikums gudrā veidā atrisina tādu galveno NFT standartu kā ERC-721 vai ERC-1155 ierobežojumus, piemēram, nepietiekamu atribūtu izteiksmi, grūtības ar NFT integrāciju un centralizētu atribūtu krātuvi.

Konkrēti, EIP-3664 nav nepieciešamas izmaiņas esošajos ERC-721 un ERC-1155 standartos. Tas dinamiski pievieno NFT rekvizītus, izmantojot IERC721Receiver vai IERC1155Receiver interfeisa atzvanīšanas funkciju NFT kaltuves metodē. Vai arī varat pārrakstīt liešanas metodi. Izmantojot šo protokolu, NFT var bez ierobežojumiem pievienot neierobežotu skaitu atribūtu.

Programmā EIP-3664 visi rekvizīti īsteno IERC3664 saskarni. Pamatatribūti ietver vairākus pamata laukus, piemēram, ID, nosaukumu, simbolu, URI adresi, atlikumu utt., ko izmanto, lai aprakstītu NFT metadatus. Izmantojot EIP-3664, NFT īpašuma paplašinājumi kļūst elastīgāki un pielāgojamāki. Tas nodrošina standartizētu NFT atribūtu funkciju ieviešanas metodi un nemanāmi integrējas esošajā NFT ekosistēmā.

ERC-3525

EIP-3525 ievieš daļēji aizstājamus marķierus (SFT), kurus var uzskatīt par aktīviem starp aizstājamajiem marķieriem (FT) un neaizvietojamiem marķieriem (NFT). Līdzīgi kā NFT, arī SFT marķierus var neskartus pārsūtīt no vienas maka adreses uz citu. Bet līdzīgi kā FT, SFT ļauj pārsūtīt tikai daļēju vērtību starp dažādiem marķieriem. Piemēram, uz citu zemes gabalu ir iespējams pārcelt tikai daļu no zemes "lietderīgā mūža". Neapšaubāmi, SFT pārspēj FT pielāgojamības ziņā un NFT efektivitātes ziņā.

ERC3525 ļauj uzbūvēt daudzlīmeņu SFT struktūras, līdzīgas krievu ligzdošanas lellēm, lai panāktu sarežģītāku virtuālo pasauli un definētu mijiedarbības noteikumus starp dažādiem līmeņiem. Izmantojot ERC3525, NFT var pārnēsāt jebkuru digitālo valūtu. Tas nozīmē, ka NFT var iegult marķierus ar ekonomisku vērtību, nodrošinot bagātīgākas funkcijas un mijiedarbības veidus. Piemēram, SFT var saturēt NFT, kas nes vērtību, un citus marķierus var ligzdot NFT. Izmantojot ERC3525, izstrādātāji var definēt SFT noteikumus un loģiku, izmantojot viedos līgumus, un pielāgot tam īpašus uzvedības noteikumus un darījumu noteikumus. Šīs funkcijas padara ERC3525 par vienu no svarīgiem standartiem NFT jomā, nodrošinot vairāk radošās telpas izstrādātājiem un projektu ballītēm.

2. ERC-6551

iepazīstināt

Lai uzlabotu NFT mērogojamību un praktiskumu, ERC-6551 priekšlikuma mērķis ir katram NFT piešķirt tādas pašas tiesības un intereses kā Ethereum lietotājiem. Tas nozīmē, ka NFT var ne tikai turēt aktīvus, bet arī reģistrēt darījumu vēsturi, kas ievērojami palielina tā piemērošanas jomu. Saskaņā ar šo priekšlikumu NFT īpašnieki var izveidot īpašu līguma maku ar nosaukumu TBA (Token Bond Account), lai viņu NFT varētu veikt dažādas ķēdes darbības. Tas tiek panākts, definējot vienotu reģistru - Reģistrs. Šis reģistrs īpaši piešķir unikālas un fiksētas viedā līguma kontu adreses visiem NFT un nodrošina, ka konta kontrole pilnībā ir NFT turētāja rokās. Ir vērts atzīmēt, ka šis priekšlikums ir pilnībā savietojams ar esošajiem ERC-721 vai 1155 standartiem bez jebkādām izmaiņām, kā arī pielāgojas lielākajai daļai infrastruktūras, kas atbalsta Ethereum kontus.

Šis jauninājums nodrošina NFT ar tādu pašu funkcionalitāti kā Ethereum kontiem, paverot daudzus jaunus NFT lietojumprogrammu scenārijus. Piemēram, sarežģītus reālās pasaules līdzekļus, piemēram, lomu spēļu varoņus, automašīnas, kas sastāv no vairākām daļām, daudzveidīgus ieguldījumu portfeļus un pat reģistrācijas biedru kartes, izmantojot šo priekšlikumu, var pārvērst NFT formā. Turklāt šis priekšlikums ir ne tikai savietojams ar visiem esošajiem ķēdes aktīvu standartiem, bet arī sniedz iespēju paplašināt jaunus aktīvu standartus nākotnē.

Kā minēts iepriekš, ERC-6551 ļauj izveidot seifu, kas paredzēts mijiedarbībai ķēdē katram NFT. Šis maciņš atšķiras no makiem, ko mēs parasti izmantojam tādās platformās kā Metamask. Tas faktiski ir līguma maciņš, tas ir, viedais līgums, kas izvietots Ethereum tīklā. Pirms iedziļināties tajā, kā tas tiek darīts, vispirms sapratīsim galvenās atšķirības starp diviem makiem.

Līguma konts

Ethereum konts ir vienība, kurai ir Ether (ETH) atlikums un kas var nosūtīt darījumus Ethereum tīklā. Kontus var kontrolēt lietotāji vai izvietot kā viedos līgumus.

Ethereum kontā ir 4 lauki:

  • nonce : skaitītājs, kas parāda ārējo kontu nosūtīto darījumu skaitu vai līguma kontā izveidoto līgumu skaitu. Katrs konts var izpildīt tikai vienu darījumu ar noteiktu nejauši izvēlētu numuru, lai novērstu atkārtošanas uzbrukumus, kas ietver apraidi un parakstīta darījuma atkārtotu izpildi vairākas reizes.

  • atlikums : bilances uzskaites modelis, šai adresei piederošā Wei summa. Wei ir Ethereum mērvienība.

  • codeHash : šī jaucējkoda apzīmē konta kodu Ethereum virtuālajā mašīnā (EVM). Līguma kontos ir ieprogrammēti koda fragmenti, kas var veikt dažādas darbības. Ja konts saņem īsziņas zvanu, tiek izpildīts šis EVM kods. Atšķirībā no citiem konta laukiem to nevar mainīt. Visi koda fragmenti tiek saglabāti saskaņā ar atbilstošo jaucējkodu valsts datu bāzē turpmākai izguvei. Šo jaucējvērtību sauc par codeHash. Ārējiem kontiem lauks codeHash ir tukšas virknes jaukšana.

  • storageRoot: krātuves jaucējkods. Merkles Patricia trie saknes mezgla 256 bitu jaucējkods ir iekodējis konta krātuves saturu (256 bitu veselu skaitļu kartēšana) un ir kodēts kā trie kā kartējums no Keccak 256 bitu 256 bitu veselu skaitļu atslēgu uz RLP kodētām 256 bitu integer vērtībām. Šis Trie kodē šī konta krātuves satura jauktu un pēc noklusējuma ir tukšs.

Ir divu veidu Ethereum konti: ārējie konti (lietotāja pārvaldītās privātās atslēgas) un līgumu konti.

  1. Ārēji piederoši konti (EOA): kontrolē privāta atslēga, kuras kods Hash ir tukšs. Šādi konti var sūtīt un saņemt kriptovalūtas un mijiedarboties ar viedajiem līgumiem. Mūsu parasti lietojamais Metamask maks pieder šai kategorijai.

  2. Līguma konts (CA): nav privātās atslēgas, un tā kodsHash nav tukšs. Tas ir vieds līgums, kas izvietots Ethereum tīklā un kas kontrolē līguma maku, mijiedarbojoties ar līgumu, izmantojot ārējos kontus.

CA ir standarta līgumu maki, piemēram, ERC4337 kontu abstrakcijas maki, un Native AA tipa maki, piemēram, ZkSync un StarkNet ķēdes, kurās nav tradicionālu darījumu un visi konti ir līguma konti. Pašlaik ir problēmas ar maka īpašumtiesībām un paraksta tiesībām, piemēram, ja lietotāji pazaudēs savas privātās atslēgas, ir arī problēmas ar paraksta algoritmiem, kuriem ir maz atļauju.

Nemainot konsensa protokola slāni, tas var palīdzēt Ethereum virzīties uz konta abstrakciju, izmantojot viedos līgumus, un atjaunināt procesu no sākotnējā darījuma uzsākšanas līdz tā iekļaušanai visā blokķēdē, lai aprakstītu lietotāju vārdā nosūtīto darījumu struktūru un samazinātu darījumu kopuma izmaksas. pabeigt, lai panāktu tādu funkciju uzlabojumus kā sociālā atveseļošanās.

paveikt

Saskaņā ar ERC-6551 standartu NFT turētāji var izvietot jaunu viedo līgumu TBA Ethereum tīklā vai citās EVM atbalstītās blokķēdes, mijiedarbojoties ar reģistra līgumu. TBA īpašumtiesības pieder NFT turētājam un mainīsies līdz ar NFT nodošanu. Šo TBA var kontrolēt tikai NFT īpašnieks. TBA kods, tas ir, tā noteikumi, nāk no Ieviešanas līguma aicinājuma.

Šajā diagrammā parādīts, kā darbojas ERC-6551: Pieņemsim, ka lietotājs ir NFT īpašnieks un viņa lietotāja kontam pieder divi NFT — līguma A Nr. 123 un līguma B #456. Lietotāja konts mijiedarbojas ar bezatļautu reģistru, reģistra līgumu, un ievada NFT informāciju un ieviešanas līguma adresi, lai izveidotu TBA. Kad Lietotāja konts izsauc reģistrācijas līgumu, tas ievada marķiera#123NFT informāciju un ieviešanas A adresi (0x321…), un tiks izveidots līguma maka konts A (0x123…). Tās īpašumtiesības pieder NFT marķiera#123turētājam, un tā funkcijas un noteikumi ir atvasināti no A ieviešanas noteikumiem. Kad Lietotāja konts vēlreiz izsauc reģistrācijas līgumu un maina ievadi, tiek ģenerēta cita TBA. Tomēr konkrētam NFT un ieviešanas līgumam var būt tikai viens unikāls atbilstošs TBA.

TBA izveide un darbība ir pilnībā atkarīga no reģistrācijas līguma un ieviešanas līguma. Šo līgumu noteikumi nosaka TBA īpašības un funkcijas. EIP-6551 nodrošina kodu veidnes šiem līgumiem. Turpmākajās sadaļās mēs padziļināti izpētīsim šīs veidnes. Tomēr šīs veidnes nav vienīgās iespējas, un to kods nosaka, kā TBA tiek izvietots un kādas funkcijas tā īsteno. Tas nodrošina izstrādātājiem plašu paplašināšanas iespēju klāstu. Piemēram, reģistra līgumā var noteikt, kuri NFT ir piemēroti reģistrācijai, izmantojot šo reģistra līgumu. Ieviešanas līgumā var definēt TBA funkcijas un noteikumus, piemēram, noteikt TBA ikdienas darījumu limitu vai norādīt aktīvu veidus, ko tas var turēt.

Ieviešanas līgums

Visas TBA, kas izveidotas, izmantojot reģistra līgumu, var izvēlēties ieviešanas līgumu, ko tās vēlas izmantot šim kontam. Ieviešanas līgumā tiek ierakstītas viedā līguma konta funkcijas un noteikumi. Tam ir jāīsteno vismaz šādas funkcijas:

executeCall(): funkcija, ko izmanto, lai izpildītu patvaļīgas viedā līguma funkcijas, kas mijiedarbojas ar ārējiem līgumiem. Piemēram, lai pārdotu ietvertu aktīvu kontā, kas saistīts ar NFT, iespējams, būs jāizsauc funkcija Uniswap līgumā. executeCall ļauj veikt šīs funkcijas izsaukumu viedā līguma konta vārdā, ļaujot jums pirkt, pārdot/apmainīt jebkuru aktīvu, kuru vēlaties.

token(): tikai lasāma skata funkcija, kas atgriež tā konta identifikatoru, kuram pieder ar pilnvaru saistītais NFT. Tas atgriež ķēdes ID (neatkarīgi no tā, vai NFT atrodas tīklā, daudzstūris, optimisms utt.), NFT līguma adresi un NFT pilnvaras ID.

īpašnieks(): atgriež tā īpašnieka adresi, kurš kontrolē ar pilnvaru saistītā konta NFT. Ievērojot iepriekš minēto piemēru, tā būtu lietotāja konta adrese.

nonce(): atgriež šī viedā līguma maka pašreizējo nonce. Katrs veiksmīgs darījums palielina nonce par 1 ar sākotnējo vērtību 0.

Visbeidzot, lai gan tas nav funkcijas izsaukums, ar pilnvaru saistītā konta ieviešanas līgumā ir jābūt saņemšanas() funkcijai, lai varētu saņemt vietējos līdzekļus (piemēram, ETH) tieši uz savu adresi.

Reģistrācijas līgums

Zemāk ir Solidity rakstītais reģistra viedais līgums:

Šis kods parāda, ka parametri, kas nepieciešami, lai izveidotu kontu NFT, ietver ieviešanas izpildes līguma adresi, ķēdes ID mērķa ķēdes ID, marķiera līgumu, kas atbilst līgumam, kuram pieder NFT, marķiera ID, kas atbilst id, kuram pieder NFT, un neskaidrības vērtības sāls. Saskaņā ar Fast Dapp demonstrāciju, lai izveidotu NFT kontu, ir jāievada tikai NFT līguma adrese un ID, un pārējie lauki tiek ģenerēti automātiski. Darbības ir salīdzinoši vienkāršas.

ERC-6551 priekšlikums ir jauns marķiera standarts, kas ir traucējošs jauninājums sākotnējam NFT standartam ERC-6551 izmanto bezatļaujas reģistru, kas ir saderīgs ar esošo ERC-721 NFT. Reģistrs ir vieds līgums, kas darbojas kā TBA rūpnīca un direktorijs. Ikviens var izveidot TBA jebkuram ERC-721 marķierim, izsaucot reģistra funkciju un samaksājot nelielu maksu. Reģistra viedajam līgumam ir divas funkcijas:

createAccount: izvieto jaunu ar pilnvaru saistīto kontu konkrētam ERC-721 NFT un noteiktai ieviešanai.

konts: tikai lasāma skata funkcija, kas atgriež tā konta adresi, kas ir saistīts ar marķieri konkrētam ERC-721 NFT, ņemot vērā tās ieviešanu.

Iespējamie pielietojumi

Kopš Azuki incidenta atsevišķu statisku attēlu NFT pievilcība ir ievērojami samazinājusies, izraisot daudzu labāko projektu vērtības samazināšanos. Tomēr NFT, kas ir ļoti interaktīvi un saliekami, var būt tirgus atveseļošanās atslēga. Sākot ar blokķēdes spēlēm, mūziku, DID un beidzot ar metaversu, šie lauki ir pilni ar bezgalīgu potenciālu.

NFT ir vairāk nekā tikai līdzekļi; tiem ir arī sava ķēdes identitāte un konteinera īpašības, kas ļauj tiem mijiedarboties ar decentralizētām lietojumprogrammām (Dapps). Tas nozīmē, ka visas mijiedarbības ar NFT tiek reģistrētas tieši pašā NFT, nevis tā turētāja kontā. Turklāt, tā kā NFT pamatā ir viedie līgumi, to uzvedību un mijiedarbību var definēt un kontrolēt ar līguma noteikumiem, nodrošinot elastību un drošību.

Protokols ERC-6551 ir ieviesis revolucionāras izmaiņas NFT jomā, novirzot uzmanību no lietotāju makiem uz pašu NFT, nodrošinot jaunas iespējas darījumiem, spēlēm, izsekojamībai un pārvaldībai. NFT attīstoties tālāk, šis protokols mūs novedīs personalizētākā, interaktīvākā un jēgpilnākā digitālajā laikmetā.

Apsveriet šādus četrus iespējamos lietojumus:

  1. Līdzekļu iesaiņošana: NFT var izmantot kā līdzekļu konteineru, kas ļauj iepakot un tirgot vairākus aktīvus vienā NFT. Piemēram, mūzikas albumā NFT var būt vairāki dziesmu NFT, vai mākslas kolekcijā NFT var būt vairāki mākslas darbu NFT. Tas ne tikai padara savākšanu sistemātiskāku, bet arī samazina maksu par gāzi tirdzniecībā.

  2. Investīciju portfelis: NFT var izmantot kā aktīvu pārvaldības rīku, kas ļauj lietotājiem vienā TBA glabāt un pārvaldīt vairākus marķierus. Turklāt NFT turētāji var arī pilnvarot trešo pušu pārvaldniekus veikt darījumus ar aktīviem un viedajos līgumos skaidri definēt pārvaldnieku pilnvaras, lai nodrošinātu aktīvu drošību.

  3. NFT identitātes pārvaldība: NFT var reģistrēt visas savas darbības ķēdē, padarot to par patiesu ķēdes identitāti. Lietotāji var izmantot vienu ENS maku, lai pārstāvētu sevi, un izmantot dažādas TBA, lai pārstāvētu savas lomas dažādās kopienās vai lietojumprogrammās.

  4. Moduļu NFT: galvenais NFT var ģenerēt TBA tā komponentu NFT glabāšanai. Piemēram, spēlē varonis NFT var būt aprīkots ar dažādu NFT aprīkojumu. Tas ne tikai padara iespējamu metaversu, bet arī to var apvienot ar AI, lai izveidotu reālistiskākus NPC rakstzīmes.

Īsāk sakot, NFT nākotne ir pilna ar bezgalīgām iespējām. No līdzekļu pārvaldības līdz identitātes pārbaudei līdz moduļu spēļu dizainam, tiem būs galvenā loma digitālajā pasaulē.