Частина 1. Види Access keys та Accounts в NEAR

--

Що це таке та чому це мене повинно турбувати?

Accounts

NEAR Protocol володіє системою імен облікових записів, де кожен обліковий запис має ідентифікатор(який ми можемо розглядати як ім’я користувача) та може бути створений явно чи неявно.

Ідентифікатор облікового запису можливо представити у вигляді імені аккаунту, яке легко запам’ятати(Human readable), який схожий на доменні імена, до прикладу lburday.near.

Приклад Human readable формату та звичайного.

Існують певні правила слідуючи яким можливо створити легкочитаємий формат гаманцю, а саме:

  • мінімальна довжина більше 2 символів;
  • максимальна довжина не більше 64 символів;
  • account ID складається з частин та розделений “.”;
  • частина account ID може бути розділена символами “_” чи “-”.

Обліковий запис верхнього рівня(Top level account), можна створити виключно обліковим записом реєстратора. Відповідно тільки NEAR може створити гаманець lburday.near та тільки lburday.near може створити app.lburday.near. і так далі.

За створення легкочитаємого формату необхідно сплатити комісію розміром в 0.1 NEAR.

Явне створення облікового запису

Ми явно створюємо облікові записи на різних рівнях використовуючи гаманець NEAR чи інші, до прикладу MyNearWallet.. Це або облікові записи верхнього рівня (TLA), або субакаунти, що належать до TLA і далі нижче по ієрархії.

Після створення облікового запису другого рівня ми можемо використовувати NEAR-CLI для створення субакаунтів дочірніх рівнів(третього, четвертого і т.д.) таких, як app.lburday.near, test.lburday.near та інші.

Цікаво скільки можна створити субакаунтів? Оскільки загальна довжина імені облікового запису має бути меншою ніж 64 символи то ми можемо створити скільки завгодно субакаунтів поки не вичерпаємо цей ліміт. Важливо зауважити, якщо ми створюємо гаманець в мережі .near то ця кількість дорівнюватиме 59 символам(64–5)

Неявне створення облікового запису

Ми можемо створювати облікові записи неявно, генеруючи KeyPair, використовуючи його відкритий ключ для резервування ідентифікатора облікового запису. Щойно ми надішлемо трохи NEAR на цей ідентифікатор облікового запису (потрібна мінімальна сума), він буде створений і діятиме, як звичайний обліковий запис, доки його не буде видалено.

Якщо ви створюєте неявний обліковий запис без Seed фрази, ви повинні мати на увазі, що ви не зможете його відновити чи імпортувати в гаманець. Якщо обліковий запис буде стоврений за допомогою Seed фрази то ви зможете імпортувати його та використовувати з гаманця(Near Wallet, MyNearWallet чи інші).

Для чого нам потрібні неявні облікові записи?

Ось декілька сценаріїв використання неявних облікових записів.

  1. Приклад централізованого обміну.
  • Централізована біржа дозволяє користувачам реєструватися та входити на свою платформу. Їм потрібен спосіб, щоб користувачі вносили кошти на рахунок, який потім могли використовувати для торгівлі на платформі.
  • Біржа створює неявний обліковий запис і пов’язує його з обліковим записом користувача. Це означає, що біржа контролює public та private ключі неявного облікового запису.
  • Біржа надає користувачеві NEAR адресу облікового запису, щоб він міг здійснити депозит і почати торгувати на біржі. Коли користувач хоче вивести кошти, він повинен подати запит на вивід. Біржа обробляє запит і надсилає вказану суму з неявного балансу облікового запису користувача на бажану адресу вказану у виводі.
Схематичний приклад

Як ми можемо бачити, біржі видають користувачам звичайні NEAR адреси, оскільки аккаунти імена яких легко прочитати та запам’ятати коштуватимуть їм додаткових 0.1 NEAR.

2. Приклад на основі Near Drop

Near Drop — дозволяє надсилати кошти на контракт Linkdrop, який створюватиме «Drop»(роздача вказаної кількості монет) та можливість отримання по згенерованому URL.

  • У випадку коли Near Drop намагається приєднати нового користувача(у якого нема NEAR гаманця) буде згенеровано новий неявний ідентифікатор облікового запису, який діє як тимчасовий обліковий запис, додає до нього суму депозиту та генерує посилання.
  • Користувач отримує посилання, яке здійснює переадресацію до гаманця NEAR, де гаманець визначає, що це є Near Drop і надає користувачу змогу створити обліковий запис з іменем, обрати метод відновлення та отримати вкладений депозит.
  • Потім неявний обліковий запис видаляється, а користувач володіє щойно створеним новим гаманцем.
Схематичний приклад

Додаткова інформація

GAS або комісійний збір

Усе, що робиться в блокчейні, потребує газу для оплати використаних обчислювальних ресурсів і ресурсів зберігання. Плата за газ NEAR надзвичайно низька та зрозуміла.

Ціна на газ зазвичай залишається постійною та фіксованою для кожного блоку, але може змінюватися від блоку до блоку. Якщо блоки заповнюються більш ніж наполовину, то ціна на газ зростає.

YoctoNear

Всі операції з токенами у системі проводяться в YoctoNear(скорочено yN). Відповідно до міжнародної системи SI. Yocto — це префікс одиниці для 10^-24.

1 NEAR = 1,000,000,000,000,000,000,000,000 YoctoNear

Токен NEAR можна розділити на 24 знаки після коми і отримаємо YoctoNear.

Приведені вище одиниці використовуються в NEAR-CLI та SDK(iOS/Android/Web) для вказання оплати за специфічний GAS, за amount під час надсилання NEARs чи інші параметри.

Частина 2. Смарт контракти, відмінності між Full Access key та Functional Call в NEAR

--

--