Из того, что я исследовал, кажется, что все методы, позволяющие пользователю зарегистрироваться и войти в приложение Ethereum, очень громоздки для пользователя. Каковы наилучшие методы разрешения регистрации и входа в систему, которые соответствуют следующим критериям:
Способ регистрации и входа в систему не должен быть громоздким; то есть: простые, как обычные методы имени пользователя/пароля или facebook и google oauth.
Метод регистрации не должен взимать с пользователя никаких эфириумов (газа) — получение чьих-то денег только за регистрацию оттолкнет большинство людей.
Метод регистрации и входа в систему не должен заставлять пользователя прыгать через обручи, такие как:
а) ввод электронной почты
б) загрузка мобильного приложения
в) ввод адреса кошелька
г) ожидание подтверждения аутентификации
д) повторный ввод кода на экране регистрации, и т.п.
Дополнительное программное обеспечение, такое как MetaMask или Mist, не требуется. (Может быть, это невозможно?)
Цель состоит в том, чтобы устранить как можно больше препятствий для привлечения пользователей к децентрализованному приложению.
Насколько я знаю, всегда легко и удобно использовать механизм ключей PGP для аутентификации пользователей в DAPP, созданных с использованием Ethereum. Можно использовать адрес учетной записи в качестве имени пользователя и позволить пользователю подписать некоторые данные своим закрытым ключом для проверки. Эта статья может помочь вам в этом процессе.
Чтобы облегчить пользователям задачу, вы можете разрешить пользователям хранить свой закрытый ключ на стороне клиента (например, встроить его в приложение, которое они используют после регистрации и т. д. — не забудьте уведомить пользователя о сохранении закрытого ключа, если в любом случае приложение удален)
ОБНОВЛЕНИЕ . Как обсуждалось в комментариях ниже, если вы хотите использовать традиционную систему учетных записей пользователей, используйте традиционную таблицу пользователей с именами пользователей, связанными с адресом учетной записи, и для подключения к сети ethereum используйте web3.js (см. этот вопрос ) - Однако это снова происходит для доверенного стороннего механизма.
Что касается № 4, это определенно возможно, но вам придется сделать выбор между полностью централизованным и децентрализованным подходом.
MetaMask децентрализован (конечные пользователи владеют закрытыми ключами), но расширение Chrome потребует от пользователей преодоления большего количества препятствий, чтобы начать работу.
Есть немного более централизованные решения, такие как Fortmatic , которые позволяют конечным пользователям напрямую взаимодействовать с dapps в любом браузере, не требуя загрузки расширения Chrome.
В целом для децентрализованных приложений не так много тяги — я бы предпочел предоставить лучший пользовательский опыт и получить поддержку для вашего приложения, прежде чем рассматривать возможность добавления децентрализованного подхода в качестве опции.
Вы можете использовать адрес Ethereum в качестве уникального идентификатора для учетной записи пользователя. Затем вы можете потребовать от держателя закрытого ключа, который сопоставляется с этим адресом, подписать сообщение, которое вы затем можете проверить.
Можно проверить, было ли сообщение подписано определенным закрытым ключом , не зная секретного ключа .
Я написал сообщение в блоге о подписании сообщения некоторое время назад.
Проблема с этим подходом заключается в простоте и приемлемости для сообщества. Ранее я создал протокол входа в систему, который работал, как описано выше. Проблема в том, что для этого требуется либо подписать сообщение, независимое от вашего dapp (сложное, барьер для входа), либо пользователь, предоставляющий свой закрытый ключ в той или иной форме (необработанный, ключевой файл, мнемоника и т. д.) для вашей службы, чтобы вы могли предоставить сообщение подписание.
Когда я сделал это, «сообщество» разозлилось, потому что это было угрозой безопасности (будь я мошенником).
TL;ДР; Это можно сделать, но все будут стонать о безопасности/децентрализации.
Я знаю, что это слишком старая ветка, но, поскольку я столкнулся с той же проблемой, я хотел бы ответить на нее.
Концепция цифровой подписи, которую использует блокчейн, является очень известной технологией, но, к сожалению, она не используется обычными людьми (например, пользователями Facebook). Представьте себе мобильное приложение для проверки подлинности, которое имеет следующие функции:
Составные части:
Регистрация:
Авторизоваться:
Подписание сделки:
Примечание:
bool verifyDigitalSig(digitalSig, publikey)
который является методом получения.login-first
подход в отличие от wallet-first
.Посмотрите, поможет ли это.
Джейсон Кокран
Джейсон Кокран
Ачала Диссанаяке
Джейсон Кокран
Джейсон Кокран
Ачала Диссанаяке
Джейсон Кокран
Джейсон Кокран
Ачала Диссанаяке
Томислав Марковский
Ачала Диссанаяке