February 3, 2022

Вход в web 3.0, а также про ICP.

Версия в виде Telegram поста: https://t.me/blind_dev/700

Много раз замечал такие фразы:

"авторизация через Метамаск - точка доступа в web 3.0, альтернатива логинам и паролям устаревших централизованных систем".

Они верны, но лишь частично:

1. MetaMask поддерживает не все сети, а упускать тот же Near, Solana в качестве web 3.0 - нельзя.

Да тот-же BTC является частью web 3.0, хоть и там нет децентрализованных приложений...

2. Сама работа с сетями неудобная, но об этом уже писал:

Надо вручную их переключать или, если это сайт позволяет, нажимать на кнопку.

3. MetaMask не поддерживает децентрализованные методы входа без Seed фраз.

4. И не поддерживает домены в качестве ядра, т. е. их настройку, копирование вместо адреса, просмотр профилей и т. д.

Да: переводить по ENS доменам можно, но это лишь часть функционала.

5. Может что ещё...

Есть несколько путей развития:

1. MetaMask для EVM сетей, Keplr для Cosmos сетей, Near wallet для Near, Fantom для Solana и пр...

2. Единый кошелёк, например, XDeFi wallet (о нём писал и планирую обзор) и rabby wallet, о котором недавно узнал (ещё не пробовал, поэтому не уверен, что он может значиться мультикриптовалютным кошельком по типу XDeFi).

А что-за децентрализованный метод входа без seed фраз?

Сразу скажу, что они все равно используются в фоне, ну или приватные ключи, но пользователь их не вводит часто (лишь в крайнем случае использует).

Один из таких методов - отпечаток пальца, скан глаза и т. д. (будем называть их словом "отпечаток").

1. Отпечаток можно преобразовать в цифровой ключ.

2. Сформировать этот ключ локально.

3. С его помощью авторизовываться.

Я не знаю, как реализовано преобразование (локально ли) в ICP, но суть в том, что это есть:

1. Идём на https://nns.ic0.app/v2/.

2. Нажимаем на Login - попадаем на https://identity.ic0.app/#authorize;

3. Жмём "Create an Internet Identity Anchor".

И вводим название устройства, после чего нажимаем "Create".

4. Подтверждаете пинкодом, паролем или отпечатком пальца.

5. Вводите капчу (Для чего это здесь, не знаю):

6. Копируете ваш id. Он нужен, чтоб вы могли добавить новые устройства и, вроде, восстановить...

После сохранения нажимаем "Continue".

7. Нажимаем use seed phrase, а далее copy.

8. Нажимаем auth.

9. Вы можете добавить устройство, но это требует какого-то ключа безопасности.

Переходим к странице входа на втором устройстве, нажимаем use a new device и переходим по указанной ссылке на первом с подтверждением авторизации второго устройства.

10. Возвращаемся на https://nns.ic0.app/v2/ и нажимаем "Login".

11. Клик по кнопке "Proceed".

12. Нажав на main попадаем сюда:

13. Выбрав "New transaction" можно выбрать стейкинг или отправку ICP.

14. Также находим такое:

Address: bc02c9bdfd1218de757535805161f7ede2f854d5550104420a13775a3b22ec24

Неудобно, что в поле есть и слово address, но его просто удалить.

15. И пример формы отправки средств (добавляется только адрес получателя):

Вывод

ICP реализовали интересную систему, но она скорее основана на устройствах, а не на отпечатке.

Минус в том, что он позволяет авторизовываться и по пинкоду / паролю, что может быть гораздо менее надёжно...

Как предлагаю реализовать?

1. Переносимый файл.

2. Расшифровка только путём авторизации через отпечаток пальца, скан глаза и пр...

3. Если надо добавить новое устройство, происходит создание слепка на новом устройстве с последующим добавлением его в файл на старом.

Естественно с подтверждением путём авторизации, а также со сравнением цифрового слепка отпечатка на обоих устройствах.

Это было бы удобно, но не факт, что реализуемо по описанному мной методу:

Всё же я не разбираюсь в железках и тонкостях авторизации, поэтому могу многие детали упускать.

Только считаю, что всё же это возможно сделать в том или ином формате.

Пусть даже ICP станет шлюзом входа во множество блокчейнов...

Благодарю за внимание.

Буду рад сообщениям, обсуждениям и мнениям в @blind_dev_chat