Биткойн-платежи в автономном режиме

Насколько безопасны и эффективны офлайн-транзакции биткойнов или платежи через Bluetooth или NFC? Сценарий оплаты через ваш мобильный (офлайн) и получатель проверяет транзакцию.

И как я могу подтвердить свои платежи (отправитель), так как я только оффлайн устройство. И онлайн является получателем.

Ответы (4)

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

К сожалению, поскольку биткойн основан на сети, если вы не можете подключиться к сети [через Интернет], вы ничего не можете подтвердить, но как отправителю транзакции вам это не нужно. Вы можете/должны просто предположить, что ввод израсходован, потому что после того, как эта транзакция будет создана, она может быть опубликована в любое время как действительная (при условии, что ее вводы еще не израсходованы).

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

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

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

Если приемник также находится в автономном режиме, все становится сложнее. Это может работать, если обе стороны ранее были в сети и установили между собой платежный канал. В качестве альтернативы, если монеты достаточно старые, получатель был в сети ранее и полагает, что отправитель не пойдет на многое, чтобы дважды потратить, он может получить монеты в автономном режиме.

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

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

По моему опыту, это работает так: сумма согласовывается, продавец показывает вам qr-код биткойна, вы отправляете сумму, продавец подтверждает, что транзакция была отправлена, все готово.

Я понимаю Ваш вопрос немного по-другому: Вы, возможно, спрашиваете, как сообщить сети, что Вы отправили деньги?
Вы можете createrawtransactionв своем телефоне отправить его через Bluetooth на приемник, а приемник отправит его в сеть ( sendrawtransaction). Конечно, это команды биткойн(d)/(-Qt), но, возможно, вы их использовали.
Он также может предоставить вам какой-то туннель <-> (получатель) <-> интернет, чтобы вы могли отправить свою транзакцию самостоятельно.