Ця стаття є коротким описом того, як ERC-6551 дозволяє будь-якому NFT володіти будь-яким типом криптоактиву.
Давайте почнемо з того, що насправді відбувається з більшістю NFT.
NFT в Ethereum — це лише записи даних у смарт-контрактах, які повідомляють вам, хто є власником NFT, хто може передавати NFT і як виглядають метадані NFT. Ось функція, яка повертає інформацію про певний NFT:
Отримайте власника даного NFT
Отримайте tokenURI певного NFT
Отримайте адресу гаманця, де схвалено даний NFT
Коли ви карбуєте NFT, ви просто встановлюєте значення власника введення даних (адресу гаманця). Коли ви передаєте NFT, ви просто змінюєте вартість власника (адресу гаманця). Наступні два зображення є пов’язаними кодами налаштувань власності в контракті ERC721:
Функція монетного двору в контракті ERC721
Функція передачі в контракті ERC721
Більшість контрактів NFT такі прості. Як ми бачили вище, немає коду, який би дозволяв цим NFT володіти іншими NFT, токенами ETH або ERC20.
Розумні контракти не можна змінити, тож як ERC-6551 дозволяє будь-якому NFT володіти іншими активами?
Відповідь: реєстр + контрактний гаманець.
Розумний контрактний гаманець (CA wallet) — це просто смарт-контракт, який може отримувати NFT, ERC20 або ETH і додатково виконувати довільні транзакції. Ці контрактні гаманці мають власні адреси (як і всі розумні контракти).
Якщо ви не знайомі з реєстрами, ви можете розглядати їх як окремі смарт-контракти, які зберігають інформацію. Реєстр ERC-6551 містить: інформацію про те, які NFT зіставляються з якими гаманцями смарт-контрактів, а також використовує проксі-сервер для створення гаманця смарт-контрактів (не має значення, чи знаєте ви це).
Код договору реєстру?
Наприклад, Azuki #4567 може зіставлятися з гаманцем смарт-контракту за адресою 0x243F4E0d556EFD1006c52E85A6ddFb6748A4C0b7. Один NFT може контролювати кілька контрактних облікових записів, але кожен контрактний рахунок належить лише одному NFT, як показано на малюнку нижче:
Ну, тепер у нас є реєстр, який може створювати гаманці для NFT і зв’язувати NFT з гаманцями, і цей прив’язаний до NFT гаманець тепер можна використовувати як звичайний гаманець. Цей гаманець може переказувати ETH, купувати NFT або обмінювати токени ERC20, звичайно, транзакцію має ініціювати власник NFT.
Я хочу повторити, що ці NFT-гаманці є розумними контрактами. Вони схожі на гаманці з кількома підписами тим, що хтось повинен викликати функцію в контракті, щоб гаманець виконав певні дії. Для гаманців ERC-6551 власник NFT викличе uteCall на гаманці, щоб ініціювати транзакцію.
Отже, що такого особливого в цих гаманцях, прив’язаних до NFT? Коли змінюється власник, який контролює NFT, водночас змінюється і контроль над гаманцем. Керування NFT означає, що ви контролюєте все в гаманці, пов’язаному з NFT, і NFT перетвориться з одного активу на об’єднаний пакет активів.
TL;DR: ERC-6551 дозволяє всім NFT мати гаманець за допомогою реєстру та гаманця смарт-контракту. Реєстр створює контрактний гаманець і пов’язує контрактний гаманець із NFT. Контрактні гаманці можуть містити інші активи, і лише власник NFT може виконувати транзакції на цьому гаманці.
Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Поглиблений аналіз основних принципів ERC-6551
Написав: @0xCygaar Переклав: MetaCat
Ця стаття є коротким описом того, як ERC-6551 дозволяє будь-якому NFT володіти будь-яким типом криптоактиву.
Давайте почнемо з того, що насправді відбувається з більшістю NFT.
NFT в Ethereum — це лише записи даних у смарт-контрактах, які повідомляють вам, хто є власником NFT, хто може передавати NFT і як виглядають метадані NFT. Ось функція, яка повертає інформацію про певний NFT:
Отримайте власника даного NFT
Отримайте tokenURI певного NFT
Отримайте адресу гаманця, де схвалено даний NFT
Коли ви карбуєте NFT, ви просто встановлюєте значення власника введення даних (адресу гаманця). Коли ви передаєте NFT, ви просто змінюєте вартість власника (адресу гаманця). Наступні два зображення є пов’язаними кодами налаштувань власності в контракті ERC721:
Функція монетного двору в контракті ERC721
Функція передачі в контракті ERC721
Більшість контрактів NFT такі прості. Як ми бачили вище, немає коду, який би дозволяв цим NFT володіти іншими NFT, токенами ETH або ERC20.
Розумні контракти не можна змінити, тож як ERC-6551 дозволяє будь-якому NFT володіти іншими активами?
Відповідь: реєстр + контрактний гаманець.
Розумний контрактний гаманець (CA wallet) — це просто смарт-контракт, який може отримувати NFT, ERC20 або ETH і додатково виконувати довільні транзакції. Ці контрактні гаманці мають власні адреси (як і всі розумні контракти).
Якщо ви не знайомі з реєстрами, ви можете розглядати їх як окремі смарт-контракти, які зберігають інформацію. Реєстр ERC-6551 містить: інформацію про те, які NFT зіставляються з якими гаманцями смарт-контрактів, а також використовує проксі-сервер для створення гаманця смарт-контрактів (не має значення, чи знаєте ви це).
Код договору реєстру?
Наприклад, Azuki #4567 може зіставлятися з гаманцем смарт-контракту за адресою 0x243F4E0d556EFD1006c52E85A6ddFb6748A4C0b7. Один NFT може контролювати кілька контрактних облікових записів, але кожен контрактний рахунок належить лише одному NFT, як показано на малюнку нижче:
Ну, тепер у нас є реєстр, який може створювати гаманці для NFT і зв’язувати NFT з гаманцями, і цей прив’язаний до NFT гаманець тепер можна використовувати як звичайний гаманець. Цей гаманець може переказувати ETH, купувати NFT або обмінювати токени ERC20, звичайно, транзакцію має ініціювати власник NFT.
Я хочу повторити, що ці NFT-гаманці є розумними контрактами. Вони схожі на гаманці з кількома підписами тим, що хтось повинен викликати функцію в контракті, щоб гаманець виконав певні дії. Для гаманців ERC-6551 власник NFT викличе uteCall на гаманці, щоб ініціювати транзакцію.
Отже, що такого особливого в цих гаманцях, прив’язаних до NFT? Коли змінюється власник, який контролює NFT, водночас змінюється і контроль над гаманцем. Керування NFT означає, що ви контролюєте все в гаманці, пов’язаному з NFT, і NFT перетвориться з одного активу на об’єднаний пакет активів.
TL;DR: ERC-6551 дозволяє всім NFT мати гаманець за допомогою реєстру та гаманця смарт-контракту. Реєстр створює контрактний гаманець і пов’язує контрактний гаманець із NFT. Контрактні гаманці можуть містити інші активи, і лише власник NFT може виконувати транзакції на цьому гаманці.