Обратите внимание, что это не гарантия, основанная на биткойнах.
Это реальная гарантия, и для того, чтобы эта система работала, Боб должен верить, что банк в реальном мире заботится о своей репутации и не будет по этой причине делать двойные траты.
И банк сможет сказать: «Вы можете посмотреть на мою историю. Я давно использую этот зеленый адрес, и я никогда не совершал по нему двойной траты. Поэтому я вряд ли сделаю это в будущем».
Таким образом, Бобу больше не нужно думать о доверии Алисе, о которой он ничего не знает.
Вместо этого он доверяет банку, что они не будут дважды тратить деньги, которые они ему отправили.
Конечно, если банк когда-либо сделает двойную трату, люди перестанут доверять этим зеленым адресам.
Фактически, двумя наиболее известными онлайн-службами, которые реализовали зеленые адреса, были Instawallet и Mt. Gox, и обе в итоге закрылись, так как совершили двойную трату.
Сегодня зеленые адреса практически не используются.
Когда идея была впервые предложена, она привлекла внимание как способ сделать платежи быстрее и без доступа к цепочке блоков.
Затем, однако, люди разочаровались в ней по причине того, что она требует слишком большого доверия банку.
Третий пример применения скриптов биткойнов – это способ совершать эффективные микроплатежи.
Предположим, что Алиса – клиент, который хочет постоянно платить Бобу небольшую сумму денег за некоторую услугу, которую предоставляет Боб.
Например, Боб может быть поставщиком услуг мобильной связи для Алисы, и требует, чтобы она платила небольшую плату за каждую минуту, которую она проговорила со своего телефона.
Создание транзакции биткойнов для каждой минуты, которую Алиса проговорит по телефону, не будет работать.
Это создаст слишком много транзакций с комиссией за каждую транзакцию.
Поэтому, учитывая комиссию за каждую транзакцию, плата Алисы за услуги будет слишком высокой.
Поэтому нам хотелось бы, чтобы все эти небольшие платежи были объединены в один большой платеж в конце.
Оказывается, существует приемлемый способ это сделать.
Мы начинаем с транзакции, которая платит максимальную сумму на адрес MULTISIG, сумму которую Алисе когда-либо потребуется потратить, и этот адрес MULTISIG требует подписи как Алисы, так и Боба, чтобы разблокировать эти монеты.
Теперь, после первой истраченной минуты, когда Алиса использовала услугу, или, когда в первый раз Алисе нужно сделать микроплатеж, она подписывает транзакцию, тратя те монеты, которые были отправлены на адрес MULTISIG, отправляя одну единицу платежа Бобу и возвращая остальные монеты Алисе. После следующей использованной минуты Алиса подписывает еще одну транзакцию, на этот раз отдавая Бобу две единицы и отправляя остальную часть себе.
Обратите внимание, что эти транзакции подписаны только Алисой и еще не подписаны Бобом, и они не публикуются в блокчейне.
И Алиса будет продолжать отправлять эти транзакции Бобу каждую минуту, когда она использует эту услугу.
В конце концов, Алиса закончит использовать эту услугу и сообщит Бобу: «Я закончила, пожалуйста, прекратите мое обслуживание».
В этот момент Алиса прекратит подписывать дополнительные транзакции.
Услышав это, Боб скажет: «Отлично. Я отключаю ваш сервис, и я беру последнюю транзакцию, которую вы прислали мне, подписываю ее, и публикую ее в цепочке блоков».
Таким образом, последняя транзакция, которую Боб подписывает, выплачивает ему полностью за предоставленную им услугу и возвращает остальную часть денег Алисе.
Все эти промежуточные транзакции, подписанные Алисой, не попадут в цепочку блоков. И Бобу не нужно их подписывать. Они просто будут отброшены.
Технически все эти транзакции подразумевают возможность двойной траты.
Таким образом, в отличие от случая с зелеными адресами, где мы специально пытались избежать двойных трат с большой гарантией, в этом протоколе микроплатежей, мы фактически генерируем огромное количество потенциальных двойных трат.
На практике, однако, если обе стороны работают нормально, Боб никогда не будет подписывать какую-либо транзакцию, кроме последней, и в этом случае блокчейн фактически не увидит попыток двойной траты.
Здесь есть еще одна сложность: что, если Боб никогда не подпишет последнюю транзакцию?
Он может просто сказать: «Я хочу, чтобы монеты находились на депонировании навсегда», и в этом случае, монеты не будут расходоваться, но при этом Алиса может потерять сдачу или остаток монет, который она расчитывала получить обратно.
Читать дальше