Проект uPort – платформа уникальной идентификации пользователей для децентрализованных приложений Эфириума, рассматривается как один из ключевых элементов будущей Web 3.0.

В самом общем виде, идентификатор, он же цифровой паспорт uPort, представляет собой адрес (открытый ключ) в блокчейне Эфириума. Более подробно, uPort – цифровое представление личности (а также приложения, организации, гаджета или бота), способное делать подтвержденные заявления при взаимодействии со смарт-контрактами и другими идентификаторами uPort, как в блокчейне, так и офф-чейн.

Базовая концепция

В основе приложения uPort лежит понятие суверенной идентичности; вот определение этого понятия, данное Джоном Лиличем (John Lilich) из ConsenSys:

Суверенная идентичность – концепция, в которой индивид полностью контролирует данные о своей личности, и единолично определяет, кому открывать свои персональные данные и в каком объеме.

Вопрос о принадлежности персональных данных остается крайне актуальным: кому принадлежат данные пользователя? Имя, дата рождения, опыт работы, которые пользователь размещает на LinkedIn, кто их владелец? То же касается данных о хобби, привычках, посещенных местах, семейном положении, размещенных на Facebook. Конечно, в правилах сетей указано, что собственником данных является пользователь, но на самом деле, он теряет контроль над этими данными, как только они попадают на централизованный сервер и могут использоваться/монетизироваться.

Ввиду запутанности правового статуса, многие сайты предпочитают не хранить персональные данные пользователей, а использовать вместо этого идентификаторы Facebook или Twitter, что не решает проблему, поскольку пользователь уже потерял контроль над своим цифровым идентификатором. К тому же, деактивация акаунта означает потерю идентификатора, а зачастую и репутации.

В традиционных криптографических системах, идентификацию обеспечивает открытый ключ (адрес). Право владения идентификатором обеспечивает закрытый ключ, который контролирует адрес. Эта модель проста и используется уже много лет. Нет необходимости в развитой инфраструктуре – достаточно лишь иметь доступ к адресу. Однако в этой модели есть критический недостаток – утрата приватных ключей (потеря, кража, апокалипсис) необратима. Кроме того, без централизованной инфраструктуры невозможно ни отозвать ключ, ни передать контроль над ним другому лицу.

Смарт-контракты Эфириума обеспечивают максимально общее решение проблемы управления ключами. В Эфириуме, идентификатор представляется адресом смарт-контракта, т. е., традиционным открытым ключом. Поскольку смарт-контракты могут контролироваться другими смарт-контрактами, в них может быть заложена поддержка различных способов восстановления ключей.

Идентификатор uPort - это простой смарт-контракт, который контролируется заменяемым смарт-контрактом контроллера, содержащим логику восстановления ключей и права доступа. Контракт контроллера, в свою очередь, контролируется ключами, хранящимися в смартфоне пользователя.

Здесь есть важная оговорка: uPort не устраняет необходимость доверенных третьих лиц, однако пользователи могут самостоятельно выбирать этих третьих лиц. Пример: потерян смартфон с приложением uPort. Процедура восстановления идентификатора выглядит следующим образом:

  1. Список доверенных лиц сохранен в контракте контроллера.
  2. Приобретен новый смартфон.
  3. Сообщение доверенным лицам о смене открытого ключа.
  4. 2 из 3 узлов подтверждают личность владельца контракту контроллера.
  5. Контракт контроллера восстанавливает открытый ключ.
  6. Готово — идентификатор восстановлен.

uPort Registry: общий доверенный источник

uPort Registry – общий смарт-контракт, который обеспечивает инфраструктуру, требуемую для хранения данных вне блокчейна (офф-чейн), и верификацию всех идентификаторов. В общем, он дает возможность идентификаторам делать простые сообщения о себе.

Когда пользователь создает идентификатор с помощью мобильного приложения uPort, это выглядит как создание профиля владельца. По умолчанию, имя владельца, его фото, аватар и описание – открытая информация. В будущих версиях приложения можно будет сделать закрытой любую часть профиля, но пока профиль можно уподобить эквиваленту профиля Facebook на Эфириуме.

Мобильное приложение Uport App взаимодействует с uPort Registry следующим образом:

  • Создает профиль в виде объекта JSON, согласно спецификациям.

  • Профиль JSON загружается в IPFS (Облачную децентрализованную систему хранения файлов).

  • Хеш профиля, загруженного в IPFS, записывается в блокчейн.

Несмотря на то, данные загружаются через общий контракт, каждый профиль контролируется собственным идентификатором.

Ключевая особенность архитектуры uPort – контракт uPort Registry не содержит данных профиля, это указатель на данные, сохраненные в IPFS. В блокчейне сохраняется только хеш профиля.

Он-чейн и офф-чейн

В чистом мире Эфириума, в котором все приложения и данные находятся в блокчейне, не было бы необходимости в uPort Registry, служащим общим источником проверенных данных. Все проверенные данные находились бы в публичном блокчейне. Однако, в реальном мире, из-за ограничений приватности блокчейна, даже простейшее dApp нуждается в данных, хранящихся офф-чейн. Если приложению нужно отобразить любую информацию о пользователе, кроме его адреса и баланса в сети Эфириума, разработчикам приходится полагаться на uPort Registry, Facebook Connect или собственную централизованную базу данных. Более комплексные варианты обмена приватной информацией могут представлять собой передачу от пользователя к приложению подтвержденной информации о годовом доходе или национальном ИНН.

Возможно, еще одной причиной для включения uPort во вновь разрабатываемые приложения Эфириума станет тот факт, что uPort может заменять обезличенные 20-значные адреса на живых пользователей, которые будут взаимодействовать с реальными людьми, приложениями и ботами.

Разработчики ожидают, что комбинация мобильного приложения uPort с дополнительными библиотеками существенно облегчит знакомство пользователей, не обладающих техническими знаниями, с приложениями Эфириума.