Как конечный пользователь платит за свои транзакции в Dapp?

Я только начинаю знакомиться с блокчейнами, но одна вещь меня смущает.

Если бы мне нужно было создать Dapp, предлагающий услугу для пользователей, чтобы пользователям не нужно было платить за использование услуги, как можно было бы оплатить транзакционные сборы за выполнение вычислений?

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

Спасибо заранее за вашу помощь. Пожалуйста, не стесняйтесь исправлять что-либо из вышеперечисленного.

Ответы (2)

Чтение из блокчейна бесплатно. Запись в блокчейн — нет.

Почему? Запись данных в цепочку требует сохранения данных в блоке. Майнеры должны добывать этот блок, а добыча требует затрат (электричество и т. д.).

Если бы вы были так склонны, вы могли бы написать контракт, отправить ему немного эфира, и ваши функции контракта отправят отправителю транзакции часть этого эфира, когда они вызывают функцию. Т.е. субсидировать людей, использующих ваш контракт.

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

Сейчас это невозможно в продакшене Ethereum. Конечный пользователь должен оплатить расходы на газ, чтобы выполнить транзакцию с вашим сервисом.

Однако через несколько лет Serenity планируется запустить с EIP 101 (черновик). Это позволило бы контрактам платить за газ для звонящего, среди многих других функций.