с блокчейном.
Смотрите. Что бы взаимодействовать с смарт-контрактом необходимо использовать web3(это пример), для того что бы вызывать те или иные функции контракта. Без таких инструментов обычный юзер может разве что просто слать эфир на кошельки.
Это реализуемо к примеру на сайте используя метамаск. Юзер нажимает кнопку на сайте, web3 формирует транзакцию и вызов функции контракта. Юзеру остаётся только подтвердить(подписать) транзакцию в метамаске, нажав ещё одну кнопку. Готово, взаимодействие с контрактом произведено. Такой вариант выглядит логично.
А если я пишу бота в любую соцсеть? Или десктоп/мобайл эпп?
Там нет никакого метамаска который отвечает за подпись. Юзер выбирает действие, web3 формирует транзакцию, но не может подписать пока не имеет на руках секретный ключ от кошелька юзера.
Варианты:
1. Юзер обязан сообщить свой ключ приложению. Но это рушит парадигму блокчейна. Что если юзер не доверяет сервису?
2. Сервис сам создает юзеру кошелёк. Но тогда каждый эпп, каждая биржа, каждый магазин будет выдавать кошельки. Более того, юзеру теперь нужно скинуть ту сумму, которую он готов потратить, на кошелек сервиса, а потом с этого кошелька совершить оплату или взаимодействие с контрактом.
Я всё верно понимаю? В таком случае выходит что каждый сервис сам себе банк, он выдаёт свои(!) кошельки и ждёт что их будут юзать. И получается что десктоп-эпп я не могу написать не порождая кошельков для каждого юзера или не заставляя сообщить мне ключ. Может я упустил что-то?
ну все примерно так, поэтому, если возможно, стоит впиливать поддержу metamask/ledger/trezor кстати 1 вариант отстой
Обсуждают сегодня