Jan. 16th, 2016

a_jelly: (Человек из кирпичиков)

1. Введение


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

2. Некоторые определения


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

-- Защищенность от повторной траты (1)
Цифровые наличные невозможно использовать повторно скопировав

-- Неотслеживаемость и анонимность (2)
Невозможно связать пользователя с покупкой или "купюрой"

-- Оффлайновость платежей (3)
Для проведения платежа продавцу и покупателю нет нужды связываться с банком

-- Передаваемость (4)
Цифровая наличность должна допускать возможность передачи другим пользователям

-- Делимость (5)
Суммы в электронной валюте можно разделить на более мелкие части

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

Заметим, что речь у нас пойдет именно о "фиатной" электронной наличности, т.е. имеющей эквивалент в валюте какого либо государства (рубли, евро, доллары). Таким образом из нашего рассмотрения сразу выпадают: игровые валюты (фантики), биткойны ("цифровое золото") и безналичные электронные деньги (Paypal, Яндекс-деньги, etc).

3. Базовые принципы


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

С другой стороны, становится очевидно, что процесс оплаты в отличии от физического мира не сводится к простой передаче денег за товар "из рук в руки". Т.е. покупателю недостаточно просто передать продавцу флэшку с "деньгами". Нужно выполнить некий криптографический протокол. И, хотя это может показаться невозможным, такой протокол существует. Он основывается на идеях "слепой подписи" придуманной Давидом Чаумом в 1982 году.

Физическая аналогия здесь весьма простая. Предположим вы приходите к нотариусу, и хотите чтобы он заверил определенный документ не зная его содержимого. Вы помещаете в конверт лист с документом и лист копирки. Нотариус делает подпись на конверте и за счет копирки она переносится на документ. Затем вы достаете из конверта лист с готовой подписью. Аналогичную схему с некоторыми модификациями можно применить и в области цифровой наличности.

С одной стороны, можно просто прийти в банк и попросить выдать вам несколько сертификатов подписанных банком, скажем на 100 евро каждый. Но в этом случае банк сможет привязать вашу личность к выданным сертификатам (читай - купюрам). Нам же хочется этого избежать. Соответственно, мы можем создать зашифрованные "заготовки" с номиналом в 100 евро и попросить банк их подписать. Однако в этом случае есть опасность, что мы впишем в графе сумма не 100, а например 1000 евро, и после подписи банком будем иметь купюры в 10 раз большего номинала.

Для решения этой проблемы и разработан алгоритм Чаума. Суть его в следующем:
-- Пользователь генерирует N купюр определенного номинала
-- Маскирует каждый документ особым маскирующим множителем
-- Банк отбирает N-1 купюру и просит пользователя прислать маскирующий множитель для каждого из отобранных документов
-- Пользователь отправляет банку маскирующие множители
-- Банк открывает N-1 документ и убеждается в корректности суммы
-- Банк подписывает оставшуюся 1 купюру и отсылает его пользователю
-- Пользователь удаляет маскирующий множитель, и имеет купюру подписанную банком

Если выбрать N достаточно большим, то вероятность успешно смошенничать для пользователя будет пренебрежимо мала.

4. Развитие системы


Теперь мы можем на основе имеющихся у нас принципов построить более сложную систему, в которой помимо банка и покупателя будет еще и продавец (а куда без него). Самой большой проблемой является обнаружение повторного использования купюры при условии оффлайновости платежей. Действительно, если при каждой покупке продавец должен контактировать с банком, то ему не составит труда проверить, не использовалась ли уже данная "купюра" по своей базе (куда он заносит id каждой предьявленной ему купюры). Но что делать, в случае когда контакт с банком во время покупки невозможен? Очевидно, необходимо проверить купюру на "поддельность" постфактум. Однако, если личность покупателя не установлена, то такая проверка имеет мало смысла.

Одно из решений здесь может состоять в том, что при попытке обмана банк сможет установить личность мошенника. Протокол в этом случае несколько усложняется. Каждая депонированная купюра должна иметь идентификационную строку позволяющую раскрыть личность пользователя создавшего купюру. Однако, если факта мошенничества не было, то личность его не сможет быть раскрыта. Здесь мы не будем детально описывать данный протокол для экономии места. Желающие могут прочесть о нем в книжке Брюса Шнейера "Прикладная криптография". Более продвинутый вариант протокола есть в работе Universal Electronic Cash
Tatsuaki Okamoto, Kazuo Ohta
. Разумеется есть и более современные работы. Просто Окамото, как и Чаум был одним из первопроходцев в данном направлении.

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

5. Имеющиеся недостатки


Несмотря на все достоинства описанной системы она не лишена недостатков. Во-первых, цифровые деньги легко украсть (прямое следствие свойств 2 и 4). В этом они не отличаются от обычных наличных. Скопировав чей-то кошелек мы можем совершенно анонимно (читай безнаказанно) распоряжаться чужими деньгами (та же проблема имеется и с bitcoin-ами). Тут решение как раз лежит на поверхности. Можно хранить деньги в зашифрованном кошельке, или даже специальном устройстве с биометрической авторизацией.

Другой минус состоит в необходимости центрального банка, которому следует доверять во всем, что касается денег (но не нужно доверять в остальных вопросах!). В этом лично я тоже не вижу большой проблемы, т.к. если мы говорим о фиатных деньгах, то доверять центральному банку страны нам приходится так или иначе, не говоря уже о банке в котором хранятся наши личные сбережения. И если центральных банк обычно мало волнуют дела граждан, то банк обычный (равно как и системы типа Visa/Master) имеют слишком много информации о клиенте.

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

6. Децентрализованные аналоги


Возможно ли создать систему, полностью свободную от произвола "центрального банка", и в тоже время удовлетворяющую свойствам 1-5? Может быть и да, но на данный момент такие реализации автору не известны. По неясным причинам, развитие электронных валют сместилось в область peer-to-peer схем, самой популярной их которых является Bitcoin. Целью авторов Bitcoin было создание peer-to-peer платежной системы в которой транзакции не могли бы отменены или заблокированы или оспорены третьей стороной. К сожалению, для достижения этой (в целом разумной и похвальной) цели авторам пришлось поступиться другими требованиями из нашего списка. Прежде всего под удар попали анонимность и оффлайновость.

Кошельки в Bitcoin псевдонимны но не анонимны. История всех транзакций совершенных пользователями публично доступна и если становится известна привязка псевдонима (адрес кошелька) к конкретному человеку, то ВСЕ совершенные им сделки становятся очевидны. В этом коренное отличие криптографической схемы Bitcoin от описанной выше и от обычных денег. В самом деле, если мы передаем кому-либо купюры, а он в свою очередь передает их кому-либо еще, то "история" этой передачи на каждом шаге "стирается". В сети Bitcoin дела обстоят иначе. Все транзакции "с начала времен" публично доступны для анализа. И если даже псевдоним пользователя вскрывается через много лет, его транзакции все равно можно увидеть. Это, безусловно отличное свойство с точки зрения ФБР/ФСБ, но пользователь вряд ли будет рад, когда ему через несколько лет припомнят купленный по случаю фунт травки. По сути, мы имеем аналог внутрибанковской базы данных, только хранящийся открыто, да еще содержащий большое количество совершенно излишней (с точки зрения пользователя) информации. Не стоит воодушевляться и модным принципом "Peer-to-Peer". То, что база хранится на многих клиентах никак не меняет сути сети. С равным успехом ее можно было бы хранить и на одном единственном централизованном сервере. Определение "Peer-to-Peer" относится лишь к проведению работы по доказательству.

Кроме того, для проведения транзакции в сети Bitcoin нужно иметь доступ к сети. Подтверждение транзакции требует значительного (по "компьютерным" меркам) времени. Более того, если не менять текущую архитектуру сети существует теоретический предел скорости выполнения транзакций. На данный момент он составляет 7 (7 Карл!) транзакций в секунду, практический же предел - 3 транзакции в секунду. Сравните с системой Visa или Мaster, которые ежесекундно обрабатывают десятки тысяч транзакций в секунду.

Все это делает перспективы использования Bitcoin в целях розничной торговли весьма и весьма призрачными. И дело на мой взгляд даже не в "пузыре" и других опасениях покупателей и продавцов. Если бы даже нашелся институт, согласившийся обменивать BTC по фиксированному курсу на USD или XAU - это мало помогло бы валюте. Ужасный дизайн системы с точки зрения производительности и конфиденциальности никуда бы де исчез. Имеющийся на данный момент в рядах разработчиков Bitcoin раскол по поводу размера блока как раз является первой тучей на горизонте (а некоторые считают что и "последней каплей") практического применения этой криптовалюты.

January 2017

S M T W T F S
12 34567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2017 01:27 pm
Powered by Dreamwidth Studios