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

Фактически, двумя наиболее известными онлайн-службами, которые реализовали зеленые адреса, были Instawallet и Mt. Gox, и обе в итоге закрылись, так как совершили двойную трату.

Сегодня зеленые адреса практически не используются.

Когда идея была впервые предложена, она привлекла внимание как способ сделать платежи быстрее и без доступа к цепочке блоков.

Затем, однако, люди разочаровались в ней по причине того, что она требует слишком большого доверия банку.



Третий пример применения скриптов биткойнов – это способ совершать эффективные микроплатежи.

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

Например, Боб может быть поставщиком услуг мобильной связи для Алисы, и требует, чтобы она платила небольшую плату за каждую минуту, которую она проговорила со своего телефона.

Создание транзакции биткойнов для каждой минуты, которую Алиса проговорит по телефону, не будет работать.

Это создаст слишком много транзакций с комиссией за каждую транзакцию.

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

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

Оказывается, существует приемлемый способ это сделать.

Мы начинаем с транзакции, которая платит максимальную сумму на адрес MULTISIG, сумму которую Алисе когда-либо потребуется потратить, и этот адрес MULTISIG требует подписи как Алисы, так и Боба, чтобы разблокировать эти монеты.

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

Обратите внимание, что эти транзакции подписаны только Алисой и еще не подписаны Бобом, и они не публикуются в блокчейне.

И Алиса будет продолжать отправлять эти транзакции Бобу каждую минуту, когда она использует эту услугу.

В конце концов, Алиса закончит использовать эту услугу и сообщит Бобу: «Я закончила, пожалуйста, прекратите мое обслуживание».

В этот момент Алиса прекратит подписывать дополнительные транзакции.

Услышав это, Боб скажет: «Отлично. Я отключаю ваш сервис, и я беру последнюю транзакцию, которую вы прислали мне, подписываю ее, и публикую ее в цепочке блоков».

Таким образом, последняя транзакция, которую Боб подписывает, выплачивает ему полностью за предоставленную им услугу и возвращает остальную часть денег Алисе.

Все эти промежуточные транзакции, подписанные Алисой, не попадут в цепочку блоков. И Бобу не нужно их подписывать. Они просто будут отброшены.

Технически все эти транзакции подразумевают возможность двойной траты.

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

На практике, однако, если обе стороны работают нормально, Боб никогда не будет подписывать какую-либо транзакцию, кроме последней, и в этом случае блокчейн фактически не увидит попыток двойной траты.

Здесь есть еще одна сложность: что, если Боб никогда не подпишет последнюю транзакцию?