Аутентификация/авторизация Ethereum

В последнее время я думал о том, как интегрировать Ethereum с другими системами, не относящимися к Ethereum. Было бы плохой идеей импортировать пару ключей Ethereum во внешнее (мобильное/настольное) приложение, которое можно было бы использовать для проверки личности/проведения транзакций Ethereum?

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

Будет ли это соответствовать духу и общей идее Ethereum и/или представлять угрозу безопасности для пользователей?

РЕДАКТИРОВАТЬ:

Ценность использования такого приложения будет заключаться в возможности внешнего подтверждения права собственности на учетную запись Ethereum. Его можно использовать для подтверждения права собственности на актив или выполнения транзакции.

Можно было бы интегрировать смарт-контракты в существующие системы, отличные от Ethereum.

Звучит как в духе Эфириума. Вы должны сгенерировать ключи, которые будут использоваться только с мобильного устройства, дать им достаточно эфира для работы.
Другая идея состоит в том, чтобы попросить пользователя вызвать функцию контракта, которую вы контролируете, из его/ее кошелька с заданным случайным числом, вы регистрируете событие, и ваш сервер проверяет, что событие произошло.
@MikkoOhtamaa, но для этого потребуется потратить эфир, верно? Разве недостаточно будет подписать челлендж с помощью вашего закрытого ключа? Я не уверен, что такой механизм нельзя использовать для взлома закрытого ключа.
@Blady: Единственное, что вам нужно сделать, это заплатить за газ комиссию за транзакцию. Преимущества этого подхода заключаются в том, что он работает с любым кошельком Ethereum, предлагающим взаимодействие с функциями смарт-контракта — вам не нужно извлекать закрытый ключ из вашего кошелька для подписи или реализовывать какой-либо специальный пользовательский интерфейс для подписи.
@Blady Такой механизм нельзя использовать для взлома закрытого ключа, поскольку этот механизм является основой всех функций смарт-контракта Ethereum.
@MikkoOhtamaa см. мою правку для разъяснения намерений
@Blady Вы можете подтвердить право собственности на адрес (закрытый ключ), выполнив вызов смарт-контракта из своего кошелька. Внешнее приложение не требуется. Вы можете поместить логику в функцию смарт-контракта.
@MikkoOhtamaa Я согласен. Однако есть несколько недостатков по сравнению с методом приложения. Во-первых, расходы на газ. Во-вторых, вам придется подождать, пока блок не будет добыт и не будет запущено событие, 13 секунд — это много времени для вычислений. Наконец, вам нужно будет вручную создать транзакцию. Приложение Ann легко заменит эту процедуру.

Ответы (1)

Будет ли это соответствовать духу и общей идее Ethereum и/или представлять угрозу безопасности для пользователей?

Криптографическое подтверждение вашей личности с помощью Ethereum — это вариант использования, который обсуждался довольно много . Подписание предварительно определенного сообщения или случайный вызов, как вы предлагаете, можно было бы использовать в некоторой степени аналогично сегодняшнему «входу через Facebook», который предлагают веб-сайты, но с тем преимуществом, что в этом случае было бы криптографически невозможно подделать чьи-либо учетные данные.

Было бы плохой идеей импортировать пару ключей Ethereum во внешнее (мобильное/настольное) приложение, которое можно было бы использовать для проверки личности/проведения транзакций Ethereum?

Вам нужно будет создать очень, очень безопасное приложение, чтобы людям было удобно помещать в него свой закрытый ключ — было бы плохой идеей когда-либо хранить такой ключ, и более сознательные люди никогда не загрузят свой ключ в приложение. (или даже устройство), подключенное к Интернету. Взлом вашего приложения был бы слишком привлекательной целью, если кто-либо из ваших пользователей вводит закрытые ключи, связанные с учетными записями с высокой стоимостью. Вы можете подтвердить личность, заставив людей подписывать предварительно определенные сообщения с помощью своих аппаратных кошельков и т. д., но сетевые устройства + закрытые ключи, как правило, не являются рекомендуемой комбинацией.