Электронные деньги
Хотя «электронные деньги» далеко не новый термин, но так уж получилось, что широкого практического применения они пока не нашли. Исследования в этом направлении продолжаются с 1989 года, но все еще не удалось разработать идеальную систему, отвечающую всем предъявляемым к ней требованиями. И вот, сравнительно недавно, в открытой публикации появились статьи (и тут), описывающие идею построения новых — «компактных электронных денег». Нам она показалась весьма интересной, и мы хотели бы немного о ней рассказать. Чтобы не отягощать изложение множеством технических деталей, постараемся пока вкратце описать устройство, особенности системы и указать риски.
Что же это такое?
Сразу же отметим, что электронные деньги не являются платежными поручениями — это безличностное платежное средство, также как и бумажные деньги. На них не указываются личные данные владельца или номер его счета, то есть ничего кроме номинала. Они обладают собственной стоимостью.
В любых электронных деньгах атомарной единицей платежа является электронная монета. Она, как и бумажная купюра, содержит серийный номер и ЭЦП банка, заверяющую ее подлинность. Так же монета может содержать какую-то дополнительную информацию, в зависимости от системы. Например, различный номинал, если в системе используются монеты различного достоинства. «Электронный вес» монеты 200 байт.
Одной из особенностей же данной системы является «компактность». Электронные монеты объединяются в небольшие «кошельки», например по 100 монет. Кошелек содержит инициализирующие значения для своей сотни монет. И при этом весит порядка 250 байт. Это позволяет не только более эффективно хранить монеты, но и совершать платежи: можно оплатить целым («нераспечатанным») кошельком вместо того, чтобы последовательно выплачивать 100 монет. Целевым устройством для хранения электронных денег этой системы можно рассматривать не только КПК или коммуникатор, но и смарт-карты.
Как это работает.
У пользователя есть личный счет в банке.
- Подключившись к банку посредством Интернет или терминала, пользователь проходит аутентификацию для доступа к счету и запрашивает необходимую сумму.
- Пользователь сам генерирует необходимые электронные кошельки, содержащие инициализирующие значения для будущих серийных номеров (на 100 монет), зашифровывает кошельки по алгоритму «слепой подписи» и пересылает банку.
- Банк убеждается, что кошелек составлен корректно (легитимно).
- Банк не может узнать инициализирующего значения кошелька для серийных номеров, но может внести в него случайность, чтобы пользователь не «подбирал» себе серийные номера. После этого банк подписывает принятый кошелек, заверяя его подлинность, и пересылает обратно пользователю.
Продавец, зная только открытый ключ банка, может самостоятельно проверить подлинность электронных монет. Таким образом, выплата может осуществляться без подключения к банку. В каждом шаге протокола выплаты:
- Продавец высылает каждый раз различный «вопрос» (случайное число) покупателю.
- Покупатель с использованием этого «вопроса», открытого ключа продавца, своего закрытого ключа, подписи банка и сгенерированного серийного номера из кошелька формирует монету, и пересылает продавцу. Только сейчас монете присваивается ее серийный номер и становится открытым, что обеспечивает анонимность пользователя.
- Продавец убеждается, что монета была сформирована корректно, и в случае успешной проверки принимает ее.
Крайне важно, что в этих протоколах пользователь не пересылает свой открытый ключ, т.е. продавец не знает ничего о личности покупателя. Так же принятые монеты «привязываются» к закрытому ключу продавца, и только он сможет их депонировать на свой счет:
- Продавец пересылает принятые электронные монеты в банк вместе с соответствующими «вопросами» (случайными числами протоколов выплаты).
- Банк удостоверившись, что продавец не использовал это случайное число прежде, проверяет монеты идентичным образом, как это делал продавец.
- Далее банк просматривает базу данных на наличие монет с таким же серийным номером. Если монета обнаружилась, то… благодаря тому, что монеты формировались в ответ на разные «вопросы» – они имеют различное представление. Гарантировано, что если имело место незаконное копирование, то факт повторной оплаты уже использованной монетой позволит банку идентифицировать владельца данной монеты. Хотя, если монета попадает в банк в единственном экземпляре, то банку абсолютно ничего не будет известно о том, кто ее потратил, так же как и продавцу. Таким образом, обеспечивается полная анонимность для законопослушных пользователей и неизбежна идентификация мошенников (виновных в копировании).
Особенности системы.
- Компактность хранения монет позволяет иметь с собой наличность в достаточном количестве для повседневных расходов. Даже на смарт-картах.
- Одновременно достигается возможность оплаты online/offline и при этом криптографическими методами обеспечена полная анонимность пользователей системы.
- Даже при осуществлении взаимодействия по открытым каналам связи, перехваченную у пользователя или продавца наличность не удастся потратить или вложить на свой счет без знания секретного ключа.
- В реализации на КПК пользователь контролирует количество выплачиваемых денег, в отличие от кредитки.
- Хранение наличности в цифровом виде позволяет делать резервные копии электронных денег на случай утраты носителя.
- Криптография с открытым ключом требует значительно больших вычислительных ресурсов и временных затрат для взлома/подделки по сравнению с фальсификацией бумажной наличности.
Риски.
Понятно, что банковский счет всегда можно заблокировать, таким образом, пресекая возможность снятия со счета. Но более серьезный риск — это анонимное копирование и выплата, будучи в offline. Еще хуже, если неизвестный каким-то образом завладеет чужой смарт-картой с ПИН-кодом. Такова на текущем этапе развития электронных денег расплата за эффективность. Предполагаемые варианты решения:
- Так как базы данных монет не должны бесконечно разрастаться, то очевидна необходимость добавления временного параметра в кошелек. Снятые со счета монеты более года назад требуют обновления или депонирования обратно на счет, а монеты снятые более месяца (иного промежутка выбранного пользователем) назад не принимаются к оплате offline. В платеже online банк по базе данных может, невзирая на истекший месяц установить была ли сделана копия с монеты или нет, и принять ее. А у злоумышленника будет строго ограниченный временной промежуток, чтоб воспользоваться положением.
- Риски для режима offline достаточно трудно просчитать на текущий момент. Поэтому пока предполагается выплаты в этом режиме осуществлять в ограниченном сегменте платежей: общественный транспорт, газетные киоски, места небольшие кафе и.т.д.
Для опытов «вживую» мы реализовали тестовый прототип такой платежной системы с параметрами «боевой» криптографии, чтобы взглянуть на нее в работе. Выплата 4999 монет с КПК по Bluetooth занимает около 10 с.
Заключение
Система не идеальна, но уже предлагает новые функциональные возможности. Нужны ли, на Ваш взгляд, анонимные электронные деньги? Ждет ли нас подобное в перспективе? Или для повседневных расчетов надежней привычные бумажные деньги? Будем признательны услышать Ваше мнение.
P.S. Если «многобукаф» простительно, и будет интересно, то с удовольствием осветим интересующие моменты в деталях...