Проект uPort – платформа уникальной идентификации пользователей для децентрализованных приложений Эфириума, рассматривается как один из ключевых элементов будущей Web 3.0.
В самом общем виде, идентификатор, он же цифровой паспорт uPort, представляет собой адрес (открытый ключ) в блокчейне Эфириума. Более подробно, uPort – цифровое представление личности (а также приложения, организации, гаджета или бота), способное делать подтвержденные заявления при взаимодействии со смарт-контрактами и другими идентификаторами uPort, как в блокчейне, так и офф-чейн.
Базовая концепция
В основе приложения uPort лежит понятие суверенной идентичности; вот определение этого понятия, данное Джоном Лиличем (John Lilich) из ConsenSys:
Суверенная идентичность – концепция, в которой индивид полностью контролирует данные о своей личности, и единолично определяет, кому открывать свои персональные данные и в каком объеме.
Вопрос о принадлежности персональных данных остается крайне актуальным: кому принадлежат данные пользователя? Имя, дата рождения, опыт работы, которые пользователь размещает на LinkedIn, кто их владелец? То же касается данных о хобби, привычках, посещенных местах, семейном положении, размещенных на Facebook. Конечно, в правилах сетей указано, что собственником данных является пользователь, но на самом деле, он теряет контроль над этими данными, как только они попадают на централизованный сервер и могут использоваться/монетизироваться.
Ввиду запутанности правового статуса, многие сайты предпочитают не хранить персональные данные пользователей, а использовать вместо этого идентификаторы Facebook или Twitter, что не решает проблему, поскольку пользователь уже потерял контроль над своим цифровым идентификатором. К тому же, деактивация акаунта означает потерю идентификатора, а зачастую и репутации.
В традиционных криптографических системах, идентификацию обеспечивает открытый ключ (адрес). Право владения идентификатором обеспечивает закрытый ключ, который контролирует адрес. Эта модель проста и используется уже много лет. Нет необходимости в развитой инфраструктуре – достаточно лишь иметь доступ к адресу. Однако в этой модели есть критический недостаток – утрата приватных ключей (потеря, кража, апокалипсис) необратима. Кроме того, без централизованной инфраструктуры невозможно ни отозвать ключ, ни передать контроль над ним другому лицу.
Смарт-контракты Эфириума обеспечивают максимально общее решение проблемы управления ключами. В Эфириуме, идентификатор представляется адресом смарт-контракта, т. е., традиционным открытым ключом. Поскольку смарт-контракты могут контролироваться другими смарт-контрактами, в них может быть заложена поддержка различных способов восстановления ключей.
Идентификатор uPort - это простой смарт-контракт, который контролируется заменяемым смарт-контрактом контроллера, содержащим логику восстановления ключей и права доступа. Контракт контроллера, в свою очередь, контролируется ключами, хранящимися в смартфоне пользователя.
Здесь есть важная оговорка: uPort не устраняет необходимость доверенных третьих лиц, однако пользователи могут самостоятельно выбирать этих третьих лиц. Пример: потерян смартфон с приложением uPort. Процедура восстановления идентификатора выглядит следующим образом:
- Список доверенных лиц сохранен в контракте контроллера.
- Приобретен новый смартфон.
- Сообщение доверенным лицам о смене открытого ключа.
- 2 из 3 узлов подтверждают личность владельца контракту контроллера.
- Контракт контроллера восстанавливает открытый ключ.
- Готово — идентификатор восстановлен.
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 с дополнительными библиотеками существенно облегчит знакомство пользователей, не обладающих техническими знаниями, с приложениями Эфириума.