Autor: Ash Li, Noah Ho

Zdroj: 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

Diskuse o protokolu ERC-6551 se v komunitě postupně ohřívají. Tento protokol přináší pro NFT obrovský potenciál rozšíření. ERC-6551 vytváří jedinečnou smluvní peněženku pro každý NFT prostřednictvím Token Bond Account (TBA), což mu umožňuje držet aktiva a zaznamenávat související akce. To vytváří možnost ověření identity nefunkčních tokenů (NFT) a kombinovaných NFT. Při hlubším zkoumání můžeme zjistit, že ERC-6551 ve skutečnosti poskytuje plně funkční peněženku pro NFT a „klíčem“ této peněženky je samotná NFT. Tento článek zhodnotí standardní historii vývoje NFT a pokryje předchozí pokusy o rozšíření NFT. Protože jádrem TBA je smluvní peněženka, stručně představíme také smluvní peněženku. Nakonec se ponoříme do podrobností implementace protokolu a jeho potenciálních aplikací.

1. Historie a současný stav standardů NFT

Jako speciální kryptoměna a digitální umělecké aktivum poskytuje NFT nový digitální nosič pro umělecká díla a rozšiřuje aplikační scénáře technologie blockchain. Na rozdíl od tradičních zastupitelných tokenů je každý NFT jedinečný a je spojen se specifickými metadaty, jako jsou umělecká díla, herní rekvizity, hudba a další elektronické materiály. Proto lze NFT použít jako certifikát vlastnictví elektronických dat, která mohou lidé shromažďovat nebo obchodovat. Dne 3. května 2014 vytvořil digitální umělec Kevin McCoy první známé dílo NFT „Quantum“. Je to pixelovaný osmiúhelník vyrobený z různých tvarů, prezentovaný psychedelickým způsobem. Nicméně až s příchodem ERC-721 (Ethereum Request for Comments 721) měl NFT skutečně jednotný standard, který vývojářům poskytoval pohodlí pro použití v různých projektech.

ERC-721

ERC-721 je úzce spjat s historií vývoje CryptoPunks. CryptoPunks vyšly v roce 2017 a obsahují 10 000 jedinečných uměleckých obrázků 24x24 pixelů. Právě jeho úspěch přitáhl širokou pozornost vývojářů a komunity, díky čemuž si více lidí uvědomilo obrovský potenciál NFT. Od té doby se stal vzorem pro mnoho projektů NFT a vedl k formulaci standardu ERC-721. Standard založil Dieter Shirley, technický ředitel CryptoKitties. V lednu 2018 William Entriken, Dieter Shirley, Jacob Evans a Nastassia Sachs společně navrhli standard ERC-721. Tento standard nezaměnitelných tokenů implementuje ABI související s tokeny v chytrých smlouvách, čímž pokládá základy pro vytváření, správu a přenos jedinečných digitálních aktiv na Ethereu, otevírá umělce, sběratele a trh s digitálním uměním Nová kapitola.

Hlavní rysy ERC-721 jsou následující:

  • Jedinečnost: Na rozdíl od žetonů ERC-20 (které jsou zastupitelné a každý žeton je identický s každým jiným žetonem) je každý žeton ERC-721 jedinečný.

  • Vlastnictví a převod: Tento standard tokenu umožňuje určit vlastníka jakéhokoli daného tokenu a umožňuje vlastníkovi nebo schválené osobě převést token.

  • Přidružení metadat: Umožňuje přidružit metadata ke každému tokenu, což může zahrnovat obrázek, popis nebo jiné relevantní vlastnosti tokenu.

Aby byl zajištěn jeho status standardu, ERC-721 definuje následující klíčové metody a události:

  • Metody jako balanceOf(), ownerOf(), accept(), getApproved(), setApprovalForAll(), isApprovedForAll(), transferFrom() a safeTransferFrom().

  • a události jako Transfer() a Approval().

Stručně řečeno, standard ERC-721 poskytuje mechanismus pro jedinečná aktiva na Ethereum, zajišťuje jedinečnost a vlastnictví každého aktiva a umožňuje je ověřovat, obchodovat a spravovat. ERC-721, standard pro nezaměnitelné tokeny, dosáhl explozivního úspěchu na poli digitálního umění a sběratelských předmětů. ERC-721 důležitě definuje

Ačkoli to přineslo do aplikací NFT mnoho slavných projektů, stále existují určitá omezení, například nemohou fungovat jako agenti nebo být přímo spojeni s jinými aktivy v řetězci. Za účelem vyřešení těchto problémů komunita navrhla řadu rozšíření a nových standardů, z nichž nejreprezentativnější jsou EIP3664 a EIP3525.

ERC-3664

Již v květnu 2021 navrhl tým DRepublic EIP-3664, protokol rozšíření atributů NFT. Tento návrh důmyslným způsobem řeší omezení běžných standardů NFT, jako jsou ERC-721 nebo ERC-1155, jako je nedostatečná expresivita atributů, potíže s integrací mezi NFT a centralizované ukládání atributů.

Konkrétně EIP-3664 nevyžaduje úpravy stávajících norem ERC-721 a ERC-1155. Dynamicky přidává atributy do NFT pomocí funkce zpětného volání rozhraní IERC721Receiver nebo IERC1155Receiver v metodě mint NFT. Nebo to lze provést přepsáním metody odlévání. Pomocí tohoto protokolu může mít NFT připojen libovolný počet atributů bez omezení.

V EIP-3664 všechny vlastnosti implementují rozhraní IERC3664. Základní atributy zahrnují několik základních polí, jako je ID, jméno, symbol, adresa URI, zůstatek atd., která se používají k popisu metadat NFT. Díky EIP-3664 jsou rozšíření atributů NFT flexibilnější a přizpůsobitelné. Poskytuje standardizovanou metodu implementace pro funkce atributů NFT a hladce se integruje se stávajícím ekosystémem NFT.

ERC-3525

EIP-3525 představuje semi-zastupitelné tokeny (SFT), které lze považovat za aktiva mezi zastupitelnými tokeny (FT) a nezastupitelnými tokeny (NFT). Podobně jako u NFT lze tokeny SFT přenášet neporušené z jedné adresy peněženky na druhou. Ale podobně jako u FT, SFT umožňuje převod pouze části hodnoty mezi různými tokeny. Například je možné přenést jen část „života“ země na jiný pozemek. SFT nepochybně předčí FT z hlediska přizpůsobení a předčí NFT v efektivitě.

ERC3525 umožňuje konstrukci víceúrovňových struktur SFT, podobných ruským matrjoškam, k dosažení komplexnějších virtuálních světů a definování pravidel interakce mezi různými úrovněmi. Pomocí ERC3525 může NFT přenášet jakoukoli digitální měnu. To znamená, že do NFT lze vložit tokeny s ekonomickou hodnotou a dosáhnout tak bohatších funkcí a interakčních metod. Například SFT může obsahovat NFT, který nese hodnotu, a další tokeny mohou být vnořeny do NFT. Prostřednictvím ERC3525 mohou vývojáři definovat pravidla a logiku SFT prostřednictvím chytrých kontraktů a přizpůsobit specifická pravidla chování a transakční pravidla. Díky těmto vlastnostem je ERC3525 jedním z důležitých standardů v oblasti NFT, který poskytuje vývojářům a projektantům více prostoru pro kreativitu.

2. ERC-6551

představit

Aby se zlepšila škálovatelnost a praktičnost NFT, cílem návrhu ERC-6551 je poskytnout každému NFT stejná práva a zájmy jako uživatelům Etherea. To znamená, že NFT může nejen držet aktiva, ale také zaznamenávat transakční historii, což výrazně zvyšuje rozsah jeho použití. Podle tohoto návrhu mohou držitelé NFT vytvořit exkluzivní smluvní peněženku nazvanou TBA (Token Bond Account) pro jejich NFT k provádění různých operací v řetězci. Toho je dosaženo definováním jednotného registru - Registry. Tento registr je určen k přidělování jedinečných a pevných adres účtů smart contract všem NFT a zajišťuje, že kontrola nad účtem zůstane zcela v rukou držitele NFT. Tento návrh je zejména plně kompatibilní se stávajícími standardy ERC-721 nebo 1155 bez jakýchkoli úprav a zároveň se přizpůsobuje většině infrastruktury podporující účty Ethereum.

Tato inovace poskytuje NFT stejné funkce jako účty Ethereum a otevírá mnoho nových aplikačních scénářů pro NFT. Například komplexní aktiva ve skutečnosti, jako jsou postavy ve hrách na hrdiny, auta složená z více částí, diverzifikovaná investiční portfolia a dokonce členské karty, to vše lze prostřednictvím tohoto návrhu převést na formy NFT. Kromě toho je tento návrh nejen kompatibilní se všemi stávajícími standardy pro aktiva v řetězci, ale také poskytuje možnosti rozšíření pro nové standardy aktiv v budoucnu.

Jak bylo uvedeno výše, ERC-6551 umožňuje vytvoření peněženky vyhrazené pro interakce v řetězci pro každé NFT. Tento druh peněženky se liší od peněženek, které běžně používáme na platformách, jako je Metamask. Je to vlastně smluvní peněženka, což je chytrá smlouva nasazená v síti Ethereum. Než se ponoříme do toho, jak je implementována, pojďme nejprve pochopit hlavní rozdíly mezi těmito dvěma peněženkami.

Smluvní účet

Ethereum účet je subjekt, který drží zůstatek Etherea (ETH) a může posílat transakce v síti Ethereum. Účty mohou být řízeny uživateli nebo nasazeny jako chytré smlouvy.

Účty v Ethereu mají 4 pole:

  • nonce: Počítadlo používané k zobrazení počtu transakcí odeslaných externím účtem nebo počtu smluv vytvořených smluvním účtem. Každý účet může provést pouze jednu transakci s daným nonce, aby se zabránilo opakovaným útokům, které se týkají vysílání a opakovaného provedení podepsané transakce vícekrát.

  • zůstatek: Model zůstatkového účetnictví, počet Wei vlastněných touto adresou. Wei je měrnou jednotkou pro Ethereum.

  • codeHash : Tento hash představuje kód účtu na virtuálním počítači Ethereum (EVM). Smluvní účty mají naprogramované úryvky kódu, které mohou provádět různé operace. Tento kód EVM se provede, pokud účet přijme zprávu. Na rozdíl od jiných polí účtu toto nelze změnit. Všechny úryvky kódu jsou uloženy pod odpovídajícím hashem ve stavové databázi pro následné vyhledání. Tato hodnota hash se nazývá codeHash. U externě vlastněných účtů je pole codeHash hash prázdného řetězce.

  • storageRoot: hash úložiště. Merkle Patricia trie 256bitový hash kořenového uzlu, který zakódoval uložený obsah účtu (mapa 256bitových celočíselných hodnot) a zakódoval jako trie jako mapa 256bitového hash Keccak z 256bitového celého čísla klíče pro RLP kódování 256bitové celočíselné hodnoty. Tento Trie zakóduje hash obsahu úložiště tohoto účtu a ve výchozím nastavení je prázdný.

Existují dva typy účtů Ethereum: externí účty (soukromé klíče spravované uživatelem) a smluvní účty.

  1. Externě vlastněné účty (EOA): ovládané soukromým klíčem, jeho codeHash je prázdný. Takové účty mohou odesílat a přijímat kryptoměny a komunikovat s chytrými smlouvami. Naše běžně používaná peněženka Metamask k tomu patří.

  2. Smluvní účet (CA): Neexistuje žádný soukromý klíč a jeho codeHash není prázdný. Jedná se o inteligentní smlouvu nasazenou v síti Ethereum, která ovládá smluvní peněženku prostřednictvím externích účtů interagujících se smlouvou.

V CA existují standardní smluvní peněženky, jako jsou abstraktní peněženky účtů ERC4337, a peněženky typu Native AA, jako jsou řetězce ZkSync a StarkNet, ve kterých nejsou žádné tradiční transakce a všechny účty jsou smluvními účty. V současné době má peněženka problémy s vlastnickými a podpisovými právy. Například je obtížné chránit soukromý klíč. Uživatelé ztratí všechna svá aktiva, pokud ztratí soukromý klíč je příliš vysoký Kromě toho lze manipulační poplatek uhradit pouze v jedné měně prostřednictvím ETH platby.

Bez změny konsensuální protokolové vrstvy může pomoci Ethereu posunout se směrem k abstrakci účtu ERC4337 může realizovat upgrade abstrakce účtu prostřednictvím chytrých kontraktů, od původního zahájení celé transakce až po její zahrnutí do celého blockchainu byla aktualizována a změněna a byla zavedena funkce UserOperation, která popisuje strukturu transakcí odeslaných jménem uživatelů, Bundler zabalí transakce do těchto paměťových fondů, aby se snížily transakční náklady uživatelů , atd. Funkční upgrady.

splnit

Podle standardu ERC-6551 mohou držitelé NFT nasadit nový chytrý kontrakt, konkrétně TBA, na síť Ethereum nebo jiné blockchainy podporované EVM interakcí s registrační smlouvou. Vlastnictví TBA patří držiteli NFT a změní se převodem NFT. Tento TBA může ovládat pouze držák NFT. Kodex TBA, jeho pravidla, vycházejí z výzvy Prováděcí smlouvy.

Následující obrázek ukazuje, jak ERC-6551 funguje: Předpokládejme, že uživatel je držitelem NFT a jeho uživatelský účet vlastní dvě NFT, č. 123 smlouvy A a č. 456 smlouvy B. Uživatelský účet spolupracuje s registrem bez povolení, tj. s registrační smlouvou, a zadává informace o NFT a adresu smlouvy za účelem vytvoření TBA. Když Uživatelský účet zavolá na registrační smlouvu, zadejte informace NFT Tokenu#123a adresu Implementace A (0x321…) a vytvoří se účet A peněženky smlouvy (0x123…). Jeho vlastnictví patří držiteli tokenu NFT#123a jeho funkce a pravidla jsou odvozeny z ustanovení Implementace A. Když Uživatelský účet znovu vyvolá registrační smlouvu a změní vstupní obsah, vygeneruje se další TBA. Ale pro konkrétní NFT a implementační smlouvu může existovat pouze jeden jedinečný odpovídající TBA.

Tvorba a chování TBA zcela závisí na registrační smlouvě a realizační smlouvě. Pravidla v těchto smlouvách určují charakteristiky a funkce TBA. EIP-6551 poskytuje šablony kódu pro tyto smlouvy. Těmto šablonám se budeme hlouběji věnovat v následujících částech. Tyto šablony však nejsou jedinou možností, jejich kód určuje, jak je TBA nasazeno a funkčně implementováno. To poskytuje vývojářům širokou škálu možností rozšíření. Registrační smlouva může například nastavit, které NFT jsou způsobilé k registraci pomocí registrační smlouvy. Implementační smlouva může definovat funkce a pravidla TBA, jako je nastavení denního transakčního limitu TBA nebo specifikace typů aktiv, která může držet.

Prováděcí smlouva

Všechny TBA vytvořené registrací smlouvy si mohou vybrat implementační smlouvu, kterou chtějí pro účet použít. Implementační smlouva zaznamenává funkce a pravidla účtu smart contract. Musí implementovat alespoň následující funkce:

executeCall(): Funkce používaná k provedení jakékoli funkce inteligentní smlouvy, která spolupracuje s externí smlouvou. Chcete-li například prodat zahrnuté aktivum na účtu vázaném na NFT, možná budete muset zavolat funkci ve smlouvě Uniswap. executeCall vám umožňuje volat tuto funkci jménem vašeho smart contract účtu, což vám umožňuje nakupovat, prodávat/vyměňovat jakékoli aktivum, které chcete.

token(): Funkce zobrazení pouze pro čtení, která vrací identifikátor NFT, který vlastní účet vázaný na token. Vrací ID řetězce (zda je NFT v hlavní síti, Polygon, Optimismus atd.), adresu smlouvy NFT a ID tokenu NFT.

owner(): Vrátí adresu vlastníka NFT, který řídí účet vázaný na token. Podle výše uvedeného příkladu by to byla adresa uživatelského účtu.

nonce(): Vrátí aktuální nonce této smart contract peněženky. Každá úspěšná transakce zvýší nonce o 1 s počáteční hodnotou 0.

A konečně, i když nejde o volání funkce, implementační smlouva, která váže účet k tokenu, musí mít funkci accept(), aby bylo možné přijímat nativní aktivum (jako je ETH) přímo na jeho adresu.

Registrovat smlouvu

Následuje inteligentní smlouva Registry napsaná v jazyce Solidity:

Tento kód může ukázat, že parametry potřebné k vytvoření účtu pro určitý NFT zahrnují adresu implementační smlouvy o provedení, chainId id cílového řetězce, tokenContract odpovídající kontraktu, ke kterému NFT patří, tokenId odpovídající id, ke kterému NFT patří, a zmatek hodnota salt. Chcete-li vytvořit účet NFT na základě ukázky Fast Dapp, stačí zadat adresu smlouvy NFT a ID a zbývající pole jsou vygenerována automaticky.

Návrh ERC-6551 je nový tokenový standard, který je podvratným upgradem původního standardu NFT ERC-6551 používá registr bez oprávnění, který je kompatibilní se stávajícím ERC-721 NFT. Registr je inteligentní smlouva, která slouží jako továrna a adresář pro TBA. Kdokoli může vytvořit TBA pro jakýkoli token ERC-721 zavoláním funkce v registru a zaplacením malého poplatku. Inteligentní smlouva registru má dvě funkce:

createAccount: Nasadí nový účet vázaný na tokeny pro daný ERC-721 NFT a konkrétní implementaci.

účet: Funkce zobrazení pouze pro čtení, která vrací adresu účtu vázaného na token pro daný ERC-721 NFT a je dána její implementace.

potenciální aplikace

Od incidentu Azuki se staly NFT s jedním statickým obrazem výrazně méně atraktivní, což způsobilo pokles hodnoty mnoha špičkových projektů. Klíčem k oživení trhu však mohou být NFT, které jsou vysoce interaktivní a komponovatelné. Od blockchainových her, hudby, DID až po metaverze, tato pole jsou plná nekonečného potenciálu.

NFT jsou více než jen aktiva; mají také svou vlastní identitu v řetězci a vlastnosti kontejneru a mohou interagovat s decentralizovanými aplikacemi (Dapps). To znamená, že všechny interakce s NFT jsou zaznamenávány přímo do samotného NFT, nikoli na účet jeho držitele. Navíc, protože NFT jsou založeny na chytrých smlouvách, jejich chování a interakce lze definovat a kontrolovat prostřednictvím smluvních pravidel, což poskytuje flexibilitu a bezpečnost.

Protokol ERC-6551 přinesl revoluční změny v oblasti NFT, přesunul zaměření od uživatelských peněženek k samotnému NFT a poskytl nové možnosti pro transakce, hry, sledovatelnost a správu. S dalším rozvojem NFT nás tento protokol zavede do více personalizované, interaktivní a smysluplné digitální éry.

Zvažte následující čtyři potenciální aplikační směry:

  1. Balení aktiv: NFT může sloužit jako kontejner aktiv, který umožňuje zabalit a obchodovat s více aktivy v jednom NFT. Například hudební album NFT může obsahovat více písňových NFT nebo umělecká sbírka NFT může obsahovat více uměleckých děl NFT. Sběr je tak nejen systematičtější, ale také se snižují poplatky za plyn při obchodování.

  2. Investiční portfolio: NFT lze použít jako nástroj pro správu aktiv, který uživatelům umožňuje ukládat a spravovat více tokenů v TBA. Kromě toho mohou držitelé NFT také pověřit správce třetích stran k provádění transakcí s aktivy a jasně definovat oprávnění správce v inteligentních smlouvách, aby byla zajištěna bezpečnost aktiv.

  3. Správa identit NFT: NFT může zaznamenávat všechny své aktivity v řetězci, což z něj činí skutečnou identitu v řetězci. Uživatelé mohou používat jedinou peněženku ENS k reprezentaci sebe a používat různé TBA k reprezentaci svých rolí v různých komunitách nebo aplikacích.

  4. Modulární NFT: Hlavní NFT může generovat TBA pro ukládání svých komponentních NFT. Například ve hře může být postava NFT vybavena různým zařízením NFT. Díky tomu je realizace Metaverse nejen snadnější, ale lze je také kombinovat s AI a vytvořit tak realističtější NPC postavy.

Stručně řečeno, budoucnost NFT je plná nekonečných možností. Od správy aktiv přes ověřování identity až po modulární herní design budou hrát klíčovou roli v digitálním světě.