1976 год. 27 страничный доклад, откуда появилась криптовалюта.
Введение
Криптовалюты, такие как Bitcoin и Ethereum, нередко воспринимаются как революция конца 2000-х, возникшая внезапно. Однако идеи, лежащие в их основе – цифровая наличность, шифрование транзакций, анонимность пользователей – зародились значительно раньше в работах криптографов. Ещё в 1980-х годах исследователи предлагали протоколы «электронных денег», которые задолго до появления термина криптовалюта решали проблемы передачи ценности в цифровой форме без потери важных свойств наличных денег: анонимности, невозможности подделки и двойной траты.
Данное исследование представляет собой подробный обзор становления криптовалютных технологий, основанный на анализе ключевых научных статей 1980–90-х годов. В них были предложены фундаментальные концепции: слепые подписи для обеспечения анонимности платежей, специальные протоколы предотвращения двойного расходования (double spending) и даже попытки создать автономные электронные кошельки, способные работать офлайн. Мы рассмотрим идеи каждой из этих работ, проследим их влияние на появление современных криптовалют, а также обсудим экономические и социальные аспекты, сопровождавшие эволюцию цифровых денег.
Исследование структурировано следующим образом. Сначала в разделе «Истоки цифровой наличности и слепые подписи» изложены идеи Дэвида Чаума (David Chaum) – пионера электронной наличности, предложившего системы транзакций без идентификации личности. Далее в разделе «Неотслеживаемые электронные деньги и проблема двойной траты» анализируются протоколы, гарантирующие анонимность платежа до тех пор, пока пользователь не попытается потратить одну и ту же «монету» дважды. Раздел «Оффлайн-кошельки и наблюдатели» посвящён решениям для автономных платежей без постоянного подключения к банку, включая концепцию встроенных наблюдающих устройств (observers) в электронных кошельках. В разделе «Делимость и универсальность электронных денег» обсуждаются идеи делимых цифровых монет и схем, позволяющих разменивать электронную наличность на более мелкие номиналы. Отдельно выделен раздел «Криптографические основы: от RSA к эллиптическим кривым», показывающий развитие математических инструментов, сделавших криптовалюты практичными (например, появление криптосистем на эллиптических кривых). В разделе «Анонимность vs. закон: идеальное преступление и справедливые слепые подписи» рассмотрен конфликт между приватностью транзакций и возможностью злоупотреблений, а также способы его разрешения (концепция fair blind signatures). Наконец, в разделе «Связь с Bitcoin, Ethereum и современным миром» проводится связь между рассмотренными научными достижениями и архитектурой современных криптовалют, анализируется их социально-экономический эффект. В Заключении подводятся итоги: ранние научные идеи стали фундаментом, на котором построены современные децентрализованные валюты, и многие из проблем, поднятых криптографами прошлого, остаются актуальными по сей день.
В тексте приводятся ссылки на оригинальные работы и источники, подтверждающие ключевые моменты. Исследование написано в научно-популярном стиле: мы стремимся объяснить даже сложные криптографические протоколы понятным языком, не жертвуя при этом точностью и глубиной анализа.
Истоки цифровой наличности и слепые подписи.
Появление концепции электронных денег (digital cash) обычно связывают с работами Дэвида Чаума – исследователя, заложившего основы приватности в цифровых транзакциях. Ещё в 1982 году Чаум предложил механизм слепой цифровой подписи (blind signature)
scytale.digital. Слепая подпись позволяла подписывать электронные «банкноты» так, чтобы банк не видел их содержимого. Идея заключалась в следующем: пользователь подготавливает некий«билет»(число, представляющее электронную монету) искрывает его при помощи случайного фактораперед тем, как банк его подпишет. Банк цифровой подписью гарантирует подлинностьмонеты, но из-за наложенного скрывающего (ослепляющего) множителя не знает её точного значенияgroups.csail.mit.edugroups.csail.mit.edu. После получения подписанного билета пользователь устраняет случайный множитель (раз«ослепляет» подпись) – и в итоге получает действительную электронную монету с подписью банка, которую можно предъявлять к оплате. Благодаря этому при последующем предъявлении монеты банк видит только еёподпись, но не может сопоставить её с конкретным актом выпуска (эмиссии) для данного пользователяgroups.csail.mit.edu. По сути, получилось цифровое подобие«непронумерованных банкнот», которые нельзя связать с конкретным владельцем.
В статье Чаума 1985 года «Security without Identification: Transaction Systems to Make Big Brother Obsolete» (в пер. «Безопасность без идентификации: транзакционные системы, которые сделают Большого Брата ненужным») изложена философия и технические принципы такой системы
cs.ru.nlcs.ru.nl. Чаум указывает на опасность«досье-общества», где все покупки и платежи граждан отслеживаются, и предлагает альтернативу:цифровые псевдонимыи анонимные платежиcs.ru.nlcs.ru.nl. Каждый человек может иметь уникальный псевдоним для взаимодействия с каждым отдельным учреждением или торговцем, исключая глобальный идентификатор вроде номера паспорта или соцстрахованияcs.ru.nl. Например, при открытии счёта в банке клиент получает случайный идентификатор – псевдоним, – который не связан с его именем. Далее с этим банком он всегда действует под данным псевдонимом. При платежах же могут использоватьсяразовые псевдонимы– фактически,одноразовые цифровые монеты, подписанные банком, как описано выше. Важнейшее свойство такой схемы: транзакциине содержат идентифицирующей информации о плательщике, что решает проблему слежки за финансовой активностью граждан. Банк знает, что подписал некую монету на сумму X и впоследствии её кто-то предъявил, но не может установить, что монету предъявил именно тот же самый клиент, который её получил – подпись слепаяgroups.csail.mit.edu. Это обеспечивало бынепрослеживаемость платежей: даже сговорившись, магазин и банк не смогут раскрыть, кто именно и что купил за данную электронную купюруgroups.csail.mit.edu.
Чаум отмечал, что цифровые деньги в виде просто последовательностей бит копировать очень легко, и потому без дополнительных мер любой мог бы тратить одну «банкноту» бесконечно, клонируя её файл. В упомянутой статье 1985 г. он наметил пути решения этой проблемы, не отказываясь от анонимности. Один способ – онлайн-проверка каждой монеты банком при платеже, чтобы убедиться, что тот же серийный номер не был уже погашен ранее
groups.csail.mit.edu. Однако постоянное обращение к центральной базе данных, по словам Чаума, подходит для крупной покупки, но «слишком дорого, если человек просто покупает газету»groups.csail.mit.edu. Поэтому требовались способы предотвратитьдвойную тратубез тотального онлайн-контроля. Решение, найденное Чаумом совместно с соавторами, заключалось в том, чтобыпревратить попытку двойного расходования в саморазоблачение злоумышленника. Электронная монета формировалась так, что при её однократном использовании анонимность сохраняласьбезусловно, но стоило попытаться потратить ту же самую монету дважды – и из данных двух платежей можно извлечь зашифрованную идентичность плательщикаgroups.csail.mit.edu. Иначе говоря, каждый электронный «доллар» снабжался криптографическим блоком, уникальным для владельца, но раздельно ни один платеж не раскрывал этот блок полностью. Только если с одним и тем же «долларом» пришли два разных получателя (что означает мошенничество со стороны плательщика), эти два блока можно совместить и узнать, кто был изначальным владельцем монеты. В Scientific American (1992) Чаум образно писал, что двойная трата может«выявить цифровую подписанную исповедь, которую не сможет подделать даже банк»groups.csail.mit.edu. Таким образом, честный пользователь остаётся анонимен, а нарушитель – напротив, гарантированно будет разоблачён.
Важно, что уже в этих ранних работах затрагиваются социальные аспекты цифровых денег. Чаум подчёркивает конфликт между приватностью индивида и потребностью организаций предотвращать злоупотребления
cs.ru.nlcs.ru.nl. Он показывает, что грамотное использование криптографии способно убрать необходимость этого конфликта – дать людям контроль над информацией о себе, не лишая банки и продавцов защиты от мошенничестваcs.ru.nlcs.ru.nl. Именно такое видение легло в основу первой реальной системы цифровой наличностиDigiCash, основанной Чаумом. В 1989 году он создал компанию DigiCash Inc. и запустил валютуeCash, которая использовала слепые подписи для выпуска анонимных электронных банкнотscytale.digital. В начале 1990-х eCash пилотно внедрили несколько банков (например, Амстердамский банк предоставил ограниченному числу клиентов электронные кошельки DigiCash для платежей). Технология работала: в офисных автоматах можно было покупать кофе за цифровые гульдены, не раскрывая свою личностьgroups.csail.mit.edu. Однако широкого распространения DigiCash не получила – сказывались как ограниченная инфраструктура (нужны были специальные программы-кошельки, сотрудничество банков и продавцов), так инедоверие регуляторов. Как отмечал позже сам Чаум, помимо технологических трудностей были и политические: банкам и властям было непривычно и даже пугающе появление неподконтрольных транзакций. DigiCash, опередившая своё время, в итогеобанкротилась в 1998 году, не набрав достаточной поддержки банковscytale.digital. Тем не менее, её наследие огромно: Чаумовские принципы легли в основу всего направления«privacy-focused»криптовалют, таких как Monero и Zcash, которые уже в 2010-х реализовали похожие идеи в децентрализованном форматеscytale.digital. Более того, сама возможность существованиязащищённых, анонимных транзакцийстала неотъемлемой частью концепции криптовалют – это то «зерно», которое Чаум посеял еще в 1980-хscytale.digital.
Подытоживая, ключевые идеи первых работ по цифровой наличности заключались в следующем:
- Анонимность через криптографию: использование слепых подписей позволило отделить процесс выдачи электронных денег от личности получателя, создавнепрослеживаемые цифровые банкнотыgroups.csail.mit.edu.
- Псевдонимы вместо идентификаторов: для взаимодействия с разными организациями пользователь может применять разные цифровые имена, что предотвращает сбор единого досьеcs.ru.nl.
- Механизм против двойной траты без тотального контроля: введение крипто-приёмов, где повторное использование одной монеты автоматически раскрывает злоумышленника, сохраняя приватность добропорядочных плательщиковgroups.csail.mit.edu.
- Практическая реализация: создание DigiCash продемонстрировало, что технология работает, хотя и выявило экономические сложности – от отсутствия массового спроса (на тот момент) до настороженного отношения регулирующих органов, боявшихся «идеального укрытия» для незаконных финансовых операций.
Эти новаторские работы сформировали основу, от которой отталкивались последующие исследователи, стремясь устранить оставшиеся ограничения электронных денег – в частности, зависимость от постоянного соединения с банком и неудобства работы с фиксированными номиналами.
Неотслеживаемые электронные деньги и проблема двойной траты.
Одной из важнейших работ, развивших идеи Чаума, стала статья «Untraceable Electronic Cash» (1988) Д. Чаума, А. Фиата и М. Наора
nakamotoinstitute.org. В ней был описан протокол электронной наличности, обеспечивающийнеотслеживаемость платежейпри условии честного использования, и раскрывающий личность плательщика только при мошенничестве. Ключевая идея, как частично упоминалось выше, состояла в разделенииидентификаторамонеты на две части, хранящиеся в её структуре. При обычном платеже ни одна из частей полностью не выдается, и связь монеты с владельцем не раскрывается. Но если попытаться потратить монету дважды, второй получатель неизбежно получит недостающую часть идентификатора, и тогда банк, сравнив два экземпляра данных, сможет вычислить оригинального владельца монетыnakamotoinstitute.org.До двойной траты – полная анонимность; после двойной траты – полная деанонимизация виновника.В описании Хэла Финни (Hal Finney) – одного из ранних криптоэнтузиастов – схема Чаума-Фиата-Наора позволяет пользователю оставаться анонимным, пока он не потратит цифровую купюру более одного раза, но если он всё же совершит двойную трату, то его личность будет раскрытаnakamotoinstitute.org.
Авторы также формализовали процесс выдачи (эмиссии) и оплаты электронных монет. Пользователь (назовём её Алиса) открывает счёт в банке традиционным образом, подтверждая свою личность (это нужно, чтобы банк знал, с кого спрашивать деньги в случае мошенничества)
nakamotoinstitute.org. Далее Алиса запрашивает у банка, скажем, 100 цифровых долларов. Банк списывает со счёта 100 обычных долларов и подписывает слепым образом 100 «электронных банкнот» – например, 100 последовательностей бит, предоставленных Алисойnakamotoinstitute.org. Каждая такая банкнота содержит в себе зашифрованный идентификатор Алисы, устроенный так, что выявляется только если две копии банкноты поступят на погашение. Когда Алиса платит цифровой монетой Бобу (продавцу), Боб может проверить подлинность монеты, убедившись в цифровой подписи банкаnakamotoinstitute.org. Он не узнает ничего о том, кто её потратил – там нет ни имени, ни номера счета Алисы. Затем Боб относит (или отсылает) полученную монету в банк для депонирования на свой счётnakamotoinstitute.org. Банк при получении проверяет подпись и сериал (скрытый или частично скрытый) монеты. Если эта монета еще не была ранее депонирована, банк зачисляет её Бобу. Если же вдруг обнаружится, что такой же уникальный номер уже был предъявлен (что означало бы, что Алиса дала копию монеты еще кому-то) – банк, сверив два экземпляра, вычислит из них личность Алисы и сможет принять меры. Таким образом,не требовалось онлайн-подтверждения каждого платежа; проверка на двойную трату происходит постфактум при поступлении монеты в банк, и только в случае злоупотребления нарушается анонимность плательщика.
Эта схема заложила краеугольный камень цифровой наличности: баланс между приватностью и безопасностью системы. С одной стороны, банк не способен отслеживать, где клиент тратит свои электронные деньги – он видит только, что некоторая законная монета вернулась от кого-то, но не может связать её с конкретным снятием. С другой стороны, сама структура монеты препятствует её неоднократному использованию под страхом раскрытия личности. Эта идея – анонимность до первого мошенничества – стала базовой для всех последующих систем электронного кэша. Более того, она наглядно показала, что криптография может выполнять роль «третьей стороны», следящей за честностью транзакций, вместо обычного институционального надзора. Если в обычных наличных расчётах предотвратить двойную трату легко (банкнота физически одна и не копируема), то в цифровых нужен либо банк-посредник на каждую сделку, либо умная криптосхема, как у Чаума-Фиата-Наора. Их работа доказала жизнеспособность последнего подхода, избежав присутствия банка в каждом расчёте.
Следует отметить, что хотя схема и называлась «неотслеживаемые электронные деньги», она подразумевала существование централизованного эмитента – банка. Анонимность касалась маршрута покупатель–продавец, но не исключала доверия к банку: банк выпускает деньги и ведёт учёт использованных номеров (для выявления повторов). На тот момент это не воспринималось как проблема, так как целью было обеспечить приватность пользователей перед банком и торговцами, а не устранить сам банк. Однако уже тогда зазвучали вопросы: что если сам банк захочет обмануть систему, или если он закроется? Можно ли сделать электронные деньги устойчивымидаже к сбою или злонамеренности самого эмитента? Эти вопросы пока оставались за кадром – предполагалось, что банк – благонадёжная сторона. Тем не менее, последующие исследования начали искать варианты, позволяющие уменьшить роль центрального посредника.
Работа Чаума, Фиата и Наора имела огромный резонанс в сообществе. Она фактически стала стандартной моделью электронной наличности, которую далее модифицировали и оптимизировали. Появилось понятие «парадигма Чаума–Фиата–Наора», на которую ссылаются в исследованиях как на основу (например, более поздние статьи прямо говорят: «наша схема основана на парадигме Чаума–Фиата–Наора» при описании улучшений в e-cash). В дальнейшем мы увидим, какие именно улучшения требовались и предлагались. Но перед этим стоит рассмотреть другую проблему: постоянная связь с банком.
Хотя описанная система номинально офлайн (в смысле, продавцу не обязательно связываться с банком перед принятием платежа, он может принять монету на веру, а проверить позже), на практике магазин скорее всего захочет убедиться, что монета не отозвана (не числится уже потраченной). Вариант «дождаться, а не пришла ли та же монета от другого продавца» опасен для продавца: вдруг он отдаст товар, а потом окажется, что монета была копией. Поэтому реализация eCash Чаума всё же часто предполагала, что при получении платежа электронный магазин делает короткий онлайн-запрос в банк для верификации (по крайней мере на крупные суммы). Для микроплатежей же (например, автомат с кофе) это нецелесообразно – здесь и пригодится гарантированное раскрытие личности при двойном расходовании. Но что если мошенник спланирует быстро потратить одну монету сразу во многих автоматах одновременно (до того, как информация о первом расходовании распространится)? Получается, полностью офлайн платежи хранят риск: несколько торговцев могут одновременно принять копии одной и той же монеты, и все они по отдельности не узнают об обмане, пока не придут в банк. Все пострадают, а злоумышленник скроется до выявления (его имя узнают, но он может уже снять деньги или исчезнуть). Для минимизации таких атак начали искать технические средства, которые препятствовали бы двойному расходованию на стороне пользователя ещё в момент транзакции. Так возникла концепция специальных устройств-сторожей в составе электронных кошельков.
Оффлайн-кошельки и встроенные наблюдатели.
Чтобы электронная наличность стала практичной для широкого применения, требовалось решить задачу офлайн-платежей без увеличения рисков. Идеально было бы, чтобы пользователь мог хранить электронные деньги локально (например, на смарт-карте или компьютере) и расплачиваться ими, не обращаясь каждый раз к банку – но при этом физически не мог бы потратить одну и ту же монету дважды. В 1990-х годах появилось решение: так называемый кошелёк с наблюдателем (wallet with observer), предложенный в работах Чаума и Педерсена (1992)
groups.csail.mit.eduи развивший эту идею Стефана Брандса (1993)schneier.com.
Как ясно из названия, суть в том, что электронный кошелёк пользователя снабжается встроенным защищённым модулем – тем самым «наблюдателем», – который контролирует операции кошелька. Этот модуль реализован аппаратно (на смарт-карте или специальном микрочипе) и сконструирован так, что пользователь не может извлечь или изменить хранящиеся в нём секретные данные. С другой стороны, сам модуль заключён во внешнюю оболочку – терминал пользователя (например, карманный компьютер), – которая ему не доверяет и отслеживает все данные, входящие и выходящие из наблюдателя
groups.csail.mit.edu. Проще говоря, кошелёк состоит из двух частей: доверенная пользователю (внешняя) и доверенная банку (внутренний наблюдатель). Ни одна часть по отдельности не может провести платёж: нужна ихкооперация. Зато вместе они позволяют достичь новых свойств. Внешний модуль видит всё, что делает наблюдатель, и не даст ему тайно выдать информацию, нарушающую анонимность. А внутренний наблюдатель контролирует критические операции – прежде всего, не позволяет истратить больше, чем у пользователя есть на балансе, и предотвращает повторную трату одной и той же монеты без одобрения. Таким образом, дажеофлайн, без связи с банком, наблюдатель способен заблокировать попытку двойного расходования: если пользователь уже потратил конкретную купюру, наблюдатель откажется подписывать её снова или подтверждать повторный вывод средствgroups.csail.mit.edugroups.csail.mit.edu.
Важная особенность конструкции Чаума–Педерсена: наблюдателю не нужно доверять полностью. Да, он защищён от взлома, но вдруг производитель или банк сделал «шпионский» модуль? Поэтому внешний интерфейспозволяет пользователю видеть, какую информацию наблюдатель запрашивает или передаёт
groups.csail.mit.edu. В идеале, кошелёк устроен так, что любой обмен данными идёт через экран и клавиатуру, контролируемые пользователем – никакой скрытой связи с банком. При этом для совершения транзакции требуется согласие наблюдателя. Он хранит внутри секретную часть ключа, нужного для подписания платежа или открытия доступа к монете. Пользователь владеет второй частью секрета. Толькосовместноони могут сформировать валидный платежный документgroups.csail.mit.edugroups.csail.mit.edu. Например, в схеме Брандса каждый электронный «coin» привязан к личному секретному ключу пользователя; с внедрением наблюдателя этот ключ разбивается на две части – одна остаётся у пользователя, вторая загружается в наблюдатель. Когда пользователь хочет оплатить, он подписывает транзакцию своей частью, а наблюдатель – дополняет своей, в результате получается полноценная подписьgroups.csail.mit.edu. Наблюдатель же запрограммированне соглашатьсяподписывать, если усмотрит попытку повторно употребить уже потраченную часть средств. Так достигаетсянеобходимый баланс: пользователь не может обойти наблюдателя для жульничества, но и наблюдатель не может сговориться с банком, чтобы нарушить приватность пользователя (внешняя оболочка контролирует коммуникацию и не выдаст, например, реальный идентификатор в банк)groups.csail.mit.edugroups.csail.mit.edu.
В 1993 году Стефан Брандс (Stefan Brands) представил конкретную реализацию такой системы в работе «Untraceable Off-line Cash in Wallets with Observers» (Неотслеживаемые оффлайн-деньги в кошельках с наблюдателями)
schneier.com. Его модель стала весьма известной и легла в основу европейского проекта CAFE (Conditional Access for Europe), где несколько банков и технологических компаний испытывали электронные кошельки с наблюдателями в середине 90-хschneier.com. Брандс продемонстрировал, что дажеполностью автономная смарт-картас запаянным наблюдателем может обеспечивать анонимные расчёты: двойная трата предотвращается на уровне устройства, а транзакции остаются непрослеживаемыми (даже изъятие и анализ чипа постфактум не раскрывает, куда пользователь тратил деньги, – соответствующие данные наблюдатель не записывает или хранит в зашифрованном виде)groups.csail.mit.edu. В комментариях к его работе отмечалось, что проблема двойной траты в анонимном e-cash тем самым решается аппаратно – и это актуально до сих пор, поскольку данная проблема остаётся центральной для любых систем цифровых денегschneier.com. Таким образом, соединение криптографии и доверенного оборудования создало офлайн-эквивалент кассира, проверяющего каждую купюру: в кошельке поселился «мини-банк», гарантирующий соблюдение правил.
Однако у такого подхода есть и минусы. Появляется сильная зависимость от аппаратной безопасности. Если хакеру удастся извлечь или клонировать наблюдатель, он может обойти ограничения (например, скопировать баланс или отключить контроль повторного использования). В 90-е это казалось маловероятным из-за высокой защиты смарт-карт, однако со временем методы взлома аппаратных «чёрных ящиков» тоже развивались. В научных работах тех лет рассматривались и криптоанализ самих схем: так, были выявлены некоторые уязвимости в протоколе Брандса, впоследствии исправленные другими исследователями в кандидатских диссертациях
schneier.com. Тем не менее, концепция кошелька с наблюдателем стала важной вехой: она показала путь кдоверенным устройствам, которые сейчас проявляются, например, в видеаппаратных криптокошельков(hardware wallets) для криптовалют – небольших USB-устройств, хранящих ключи и подтверждающих транзакции. По сути, современный криптовалютный кошелёк Ledger или Trezor – это «наблюдатель» в терминологии Брандса, только служит он немного другой цели (хранит приватный ключ от блокчейна).
Для полноты отметим, что параллельно со схемой Брандса своё видение наблюдателей предложил Нильс Фергюсон (Niels Ferguson). В его работе «Single Term Off-Line Coins» (Единоразовые оффлайн-монеты, 1993) была описана несколько иная система, также допускающая встроенного наблюдателя
groups.csail.mit.edu. Фергюсон и Брандс шли параллельными путями, и оба заявляли, что могут интегрировать наблюдателей, сохранив непрослеживаемость транзакций даже при анализе изъятых устройствgroups.csail.mit.edu. Брандс предлагал более простой и эффективный способ деления секрета между пользователем и устройством, поэтому его вариант получил больше признанияgroups.csail.mit.edugroups.csail.mit.edu. Но идеи Фергюсона впоследствии тоже оказались ценными, особенно в части расширения функционала электронных монет (о чём – в следующем разделе).
Итак, к середине 90-х технологически стало возможным реализовать анонимную электронную наличность, которая функционирует офлайн. Это был значительный шаг навстречу практической криптовалюте. Пользователь мог хранить у себя электронный кошелёк с балансом, платить им, как наличными, – при этом не опасаясь, что банк или правительство тотально отслеживают все его траты. Системы с наблюдателями приближали цифровые деньги по свойствам к наличным в кошельке: если ваш кошелёк не скомпрометирован, никто не узнает, кому вы передавали купюры, но и вы не сможете **нарисовать» деньги или потратить одну купюру дважды (иначе кошелёк не даст).
Социально-экономический эффект от этих разработок тогда полностью не раскрылся, ибо широкого внедрения не случилось. Но концептуально было сделано нечто важное: показано, что доверять можно не людям, а математике и машинам. Транзакции могут соблюдаться автоматически, без вмешательства человека-контролёра, на основе лишь криптографических протоколов. Эта идея автоматического, алгоритмического обеспечения доверия – то, что позднее станет сердцем блокчейн-систем. В блокчейне роль «наблюдателя» выполняет сеть узлов, проверяющих блоки, но принцип тот же: система защищена внутренне, а не полагается на внешнюю силу закона на каждую транзакцию.
Делимость и универсальность электронных денег.
Ещё одна практическая проблема электронного кэша – гибкость номиналов. В реальном мире мы можем дать сдачу: если товар стоит $4.50, а у нас есть только купюра $5, продавец вернёт $0.50. В системах же типа Chaum eCash каждая цифровая монета имела фиксированную стоимость, подписанную банком. Чтобы заплатить $4.50, нужно было либо иметь точный набор монет (например, $1 + $1 + $1 + $1 + $0.5), либо разменять монету $5 на более мелкие, обратившись к банку (что неудобно). Без трансферабельности (о которой мы говорили – возможности перекидывать монету между людьми) каждая монета фактически однократна: получатель должен её депонировать и при необходимости выпустить новую на другую сумму. Отсутствие делимости – серьёзное ограничение, мешающее широкому распространению: пользователю пришлось бы хранить множество электронных «купюр» разного номинала или каждый раз запрашивать нужную сумму.
Решение – сделать монеты делимыми, то есть позволить разрезать одну электронную банкноту на несколько поменьше суммарно той же стоимости. Но реализовать это криптографически было не тривиально: как разделить подписанную банком стоимость, сохранив защиту от подделки и анонимность? В 1991–1995 годах несколько исследователей активно работали над этой задачей.
В 1991 году Тацуаки Окамото и Кадзуо Охта (T. Okamoto, K. Ohta) представили концепцию «универсальных электронных денег» (Universal Electronic Cash)
themonetaryfuture.blogspot.com. Их идея заключалась в создании схемы, которая поддерживаетразличные номиналы и множество банкнот в одном протоколе. Можно интерпретировать «универсальность» как способность одной системы обслуживать разные величины платежей без необходимости запускать отдельный процесс для каждой купюры. Хотя их статья носила в основном теоретический характер, она заложила фундамент для дальнейших работ Окамото.
Ключевой прогресс произошёл в работах Тони Энг (Tony Eng) и Тацуаки Окамото (T. Okamoto) 1994 года и самого Окамото 1995 года. В 1994 г. Энг и Окамото предложили схему «Single-Term Divisible Electronic Coins»
groups.csail.mit.edu– делимых электронных монетс одним периодом использования. «Single-term» обычно подразумевает, что монета действует в рамках одной сессии/термина (например, до обмена на новые, возможно, для ограничения времени обращения или упрощения идентификаторов). Их схема была основана на методе«разделения и выбора»(cut-and-choose)groups.csail.mit.edu. Это вероятностный протокол: банк при выдаче монеты создаёт множество связанных частей, пользователь открывает часть из них, доказывая честность структуры, а остальные использует как «дерево» делимости. Концептуально можно представитьмонету как двоичное деревономиналовgroups.csail.mit.edu. В узлах дерева – криптографические ценности (например, $8, $4, $2, $1, если монета $8 максимально). Чтобы потратить, скажем, $5 из $8, пользователь «отрезает» соответствующие ветви ($4 + $1) и предъявляет их подписи. Правила протокола гарантируют, что невозможно потратить больше номинала монеты, чем есть, а также предотвратить повторное использование узлов. Однако схема Энг-Окамото была не очень эффективна: метод cut-and-choose требовал большой вычислительной работы и множества обменов данными, что замедляло транзакцииgroups.csail.mit.edu. Тем не менее, это был первый работающий примерделимого оффлайн-кэша: можно совершатьточные платежибез сдачи, разрезая электронную купюру на части нужного размераgroups.csail.mit.edu.
Годом позже, в 1995, Окамото представил улучшенную схему «An Efficient Divisible Electronic Cash Scheme»
groups.csail.mit.edu. В ней он сумел заметно повысить эффективность за счёт использования идей из системы Брандса и схем Фергюсонаgroups.csail.mit.edu. В частности, Окамото-95 опирался на скрытие личности пользователя внутри каждой «частичной монеты» с помощью приёмов на основе доказательств с нулевым разглашением, вместо простого cut-and-choose. Это позволило снизить объем пересылаемых данных и вычислений при делении монеты налогарифмическую сложность(то есть работа росла относительно суммы не линейно, а примерно пропорционально количеству бит номинала)groups.csail.mit.edu. Для иллюстрации: если минимальная дробная единица – 1 цент, а монета – 100 долларов (10000 центов), то Eng-Okamoto требовала бы очень больших накладных расходов (каждый цент как отдельный узел дерева, множество проверок), а у Окамото-95 транзакция занимала порядка килобайта данных и порядка 20 экспоненциальных операций независимо от точной раскладки суммыtypeset.io. В обзоре отмечалось, что схема Окамото сталапервой практичнойреализацией делимой неотслеживаемой офлайн-наличностиtypeset.io. Она сочеталанепрослеживаемость(банк не узнает, как были потрачены части монеты) свыявлением нарушений(как и раньше, двойная трата любой «доли» раскрывала личность). Единственным небольшим компромиссом стала возможностьсвязываниячастей: поскольку все кусочки происходят от одной исходной монеты, может оказаться возможным (по техническим меткам) определить, что два платежа вышли из одной и той же крупной купюрыgroups.csail.mit.edu. Но это не раскрывает личность, а только связывает две анонимные покупки между собой – что, впрочем, нежелательно, но терпимо в сравнении с полностью прослеживаемыми транзакциями. Более поздние исследования пытались устранить и эту уязвимость, делая так, чтобы даже части одной монеты не были между собойлинкуемы, но тогда усложнялась реализация.
Обратимся к влиянию этих идей на практику. Делимость электронных денег – необходимое свойство для удобства пользователей. Представим, если бы Bitcoin не позволял отправить произвольную сумму, а только целые «монеты» фиксированного веса – им было бы сложно пользоваться. В Bitcoin эта проблема решается наличием деноминированных выходов: каждая транзакция может иметь несколько входов и выходов, фактически разрезая и собирая «монеты» (UTXO) разных номиналов. Интересно, что принцип Bitcoin UTXO (Unspent Transaction Output) похож на модель «дерева монеты»: любая целая монета (набор UTXO) может быть разрублена на части, и все они продолжают учитываться, пока не будут погашены (потрачены полностью в новый набор UTXO). Разница в том, что Bitcoin не скрывает связь между частями – наоборот, цепочка разделения монеты видна в блокчейне. Но за счёт этого сильно упрощается протокол. В системах же Chaum/Okamoto задача была добиться делимости без раскрытия связей и без участия блокчейна. Это удалось, ценой куда большей сложности.
Работы Eng, Okamoto и др. продемонстрировали, что электронные деньги могут обладать той же гибкостью, что и наличные: их можно разменивать
groups.csail.mit.edu. Банк мог, например, выпустить одну цифровую «купюру» на $100 пользователю, а тот при необходимости сам «нарежет» её на 100 по $1 или 20 по $5 и т.д. – и расплатится. При этом сохранялась основная магия: банк не узнает, как именно пользователь дробил и куда тратил деньги, пока тот не нарушит правил.
Ещё одной важной вехой стало понимание, что электронные деньги могут быть многоразовыми до депонирования. Ранее (в простейшем варианте) после платежа монета попадала к продавцу, и тот обязан был отправить её в банк. Но что если мы хотим передать монету далее, не обналичивая? Скажем, Алиса заплатила Бобу, а Боб решил этими же цифровыми деньгами заплатить Чарли. Такая трансферируемость (пересылка монеты через несколько рук) была сложна, ведь Бобу надо убедить Чарли, что монета ещё действительна, а Чарли – своего покупателя и т.д. В 1992 году Чаум и Педерсен выпустили статью «Transferred Cash Grows in Size»(«Передаваемые деньги увеличиваются в размере»), где рассмотрели как раз эту ситуацию. Они предложили метод, при котором каждая последующая передача добавляет информацию к монете (отсюда «растёт в размере»)
chaum.com. Проще говоря, монета приобретает «историю» – цепочку подтверждений от каждого промежуточного владельца. Такая монета постепенно утяжеляется (в битах), но зато может несколько раз переходить от пользователя к пользователю без обращения к банкуgroups.csail.mit.edugroups.csail.mit.edu. Правда, число таких переносов обычно ограничено (например, не более 2-3 раз, иначе данные становятся слишком громоздкими). Каждый получатель может либо потратить монету дальше, увеличив цепочку, либо отнести в банк. В терминологии электронного кэша«переводимость (transferability)»означает разрешение хотя бы одной такой независимой передачи монетыgroups.csail.mit.edu. Авторы отмечали, что полностью офлайн-передаваемые системы требуют особых мер безопасности (в частности, без онлайн-проверки приходится полагаться либо на аппаратную защиту, либо на сложные криптопротоколы)groups.csail.mit.edu.Transferred Cash Grows in Sizeстало одной из первых работ, где вопрос трансферов был проработан теоретически. Для криптовалют это важно: сегодня мы воспринимаем как само собой разумеющееся, что один человек может переслать BTC другому, а тот – третьему,без ожидания«обналички» у кого-то. Но ранние протоколы eCash были ближе к моделям предоплаченных карт, где каждая монета рано или поздно возвращается в банк. Чаум и Педерсен фактически смоделировали«мини-блокчейн» внутри монеты: накапливаемую при каждой передаче подпись или доказательство. Можно сказать, они первыми позволили монете играть роль своего собственногоносителя истории, хоть и в ограниченном масштабе.
Вкупе с делимостью, эти новшества приближали электронные деньги к полноценному аналогуу наличных по функциональности. Осталось осветить ещё один технический аспект, важный для эволюции криптовалют: какую криптографию использовать под капотом?Криптографические основы: от RSA к эллиптическим кривым
Криптографические основы: от RSA к эллиптическим кривым.
Все описанные выше схемы опираются на методы асимметричной криптографии. В 1980-е господствовали алгоритмы на основе целочисленных модулей – прежде всего RSA. Так, слепая подпись Чаума изначально была показана на примере RSA: пользователь перемножает сообщение (число) на случайный фактор в степени e (открытый ключ банка), банк подписывает результат своей секретной экспонентой d, получается $ (r^e \cdot M)^d \mod N = r \cdot M^d \mod N$, и разделив на $r$, пользователь получает $M^d$ – подпись своего сообщения M
groups.csail.mit.edugroups.csail.mit.edu. RSA был удобен, но имел недостаток: размер ключей. Для безопасности требовались модули в сотни и тысячи бит. Подпись была примерно того же размера. Электронная монета, содержащая подпись и ряд вспомогательных значений, могла получиться довольно «толстой» (сотни байт, а при добавлении цепочек анонимных доказательств – килобайты). Для хранения и пересылки это было приемлемо, но вот внедрение в смарт-карты – вызов, учитывая ограниченную память и скорость маленьких чипов 90-х. Поэтому очень кстати пришёлся новый класс алгоритмов –криптография на эллиптических кривых (ECC).
Алфред Менезес, один из криптографов, внёсших вклад в популяризацию ECC, в 1993 году опубликовал монографию «Elliptic Curve Public Key Cryptosystems», где подробно изложил принципы и преимущества этих систем. Эллиптические кривые позволяют добиться той же криптостойкости, что RSA, но с гораздо меньшими длинами ключей. Например, 160-битный ключ ECC по уровню защиты сопоставим с 1024-битным RSA. Подписи на эллиптических кривых (например, схемы ECDSA, EC-DSA) имеют размер порядка 40 байт – против ~128 байт у RSA-1024. Это существенная экономия. Для электронных денег 90-х ECC было словно находкой: представлялось возможным уместить и ключи, и сами цифровые купюры в памяти смарт-карты и обрабатывать их быстрее (операции с эллиптической арифметикой часто быстрее модульных возведений, хотя требовали специальных оптимизаций).
Как только ECC получила признание, исследователи e-cash начали адаптировать схемы под неё. В проекте CAFE упоминается использование эллиптических кривых для большей эффективности
themonetaryfuture.blogspot.com. Сама по себе книга Менезеса – не про электронные деньги, а про математику, – но её появление знаменовало, что к середине 90-хинструментарий криптографии расширился. Bitcoin, появившийся спустя более 15 лет, напрямую использует ECC: все его адреса основаны наэллиптической подписи ECDSA(конкретно на кривой secp256k1)en.bitcoin.it. Ethereum аналогично применяет ECDSA (с той же кривой) для управления аккаунтами. Таким образом, работа Менезеса и коллег можно рассматривать какфундаментальное научное основаниесовременных криптовалют: без ECC возможно, Bitcoin выглядел бы иначе (например, использовал бы RSA, был бы громоздким и медленным, особенно на легких устройствах). Либо ему пришлось бы полагаться на более простые односторонние функции. В реальности же Satoshi Nakamoto взял на вооружение именно плоды этих исследований – публичные ключи на эллиптических кривых, которые компактны и надежны.
Подводя итог, развитие криптографии в 1980–90-х обеспечило необходимые «кирпичики» для построения криптовалют:
- Слепые подписи, основанные на RSA (Chaum 1982), а затем на дискретном логарифме (существуют реализации слепых подписей на эллиптических кривых), дали способ выпускать и переводить ценность, не раскрывая личностиgroups.csail.mit.edu.
- Криптографические доказательства с нулевым разглашением (ZKP) – хотя прямо не упомянуты в списке статей, они стояли за многими схемами (например, в делимых монетах Окамото пользователь доказывал, что не превышает сумму, не раскрывая её). Эти методы позже непосредственно воплотились в протоколах вроде Zcash, использующего zk-SNARK для анонимных транзакций.
- Эллиптические кривыедали возможность реализовать всё это эффективно. Bitcoin унаследовал ECC (алгоритм ECDSA) для подписей транзакцийen.bitcoin.it, а также концепцию хэш-адресов (односторонних идентификаторов), восходящую к работам по цифровым подписям 70–80-х. Можно сказать, криптовалюты – это синтез новых идей с надежными алгоритмами, уже разработанными к 2000-м.
Наконец, последний важный аспект ранних исследований цифровых денег, повлиявший на современные криптовалюты, – это противодействие преступному использованию и компромиссы между анонимностью и законом.
Анонимность vs. закон: «идеальное преступление» и справедливые слепые подписи.
Как только стало понятно, что электронная наличность может обеспечивать настоящую анонимность, встал вопрос: а что, если злоумышленники будут этим пользоваться? В 1992 году Себастиан фон Солмс и Давид Наккаш (S. von Solms, D. Naccache) даже опубликовали короткую заметку под провокационным названием «On Blind Signatures and Perfect Crimes» («О слепых подписях и идеальных преступлениях»). Они описали гипотетическую ситуацию, в которой технология слепых подписей может быть использована для совершения нерасследуемого преступления
nabihach.github.io. Например, похититель может потребовать выкуп в виде электронных монет DigiCash: жертва снимет деньги в банке (банк знает жертву, но выдастнеотслеживаемыекупюры), передаст похитителю, а тот обналичит их – и банк увидит лишь анонимилизированные купюры, никак не связанные с личностью похитителя. В традиционном мире серию купюр можно было бы пометить, отследить через серийные номера. Здесь же — ни номера, ни следа:идеальное преступление, где злоумышленник получает деньги и остаётся в тениnabihach.github.io.
Конечно, при двойной трате личность раскрывается, но похитителю нет нужды тратить одну купюру дважды – ему важно вывести полученные деньги чисто. Авторы били тревогу: полностью безотзывная анонимность в платежах чревата невозможностью расследовать тяжкие преступления, такие как шантаж, отмывание денег, финансирование терроризма. Эта статья стала своего рода предупреждением, что технология – это нож обоюдоострый. У общества есть запрос не только на приватность, но и на подотчётность: преступник не должен уходить безнаказанным, прикрываясь анонимностью.
Реакцией научного сообщества стало развитие концепций «fair blind signatures» – справедливых слепых подписей. Идея в том, чтобы предусмотреть специальный механизм, позволяющий при необходимости, санкционированной законом, раскрыть личность участника анонимной транзакции. В 1995 году Маркус Штадлер, Ж.-М. Пиветто и Ян Камениш (M. Stadler, J.-M. Piveteau, J. Camenisch) представили работу «Fair Blind Signatures», где предложили такую схему. В ней вводится доверенное третье лицо – например, судья, – которое хранит особый ключ для снятия анонимности. При обычных транзакциях его участие не требуется и приватность сохраняется полностью
citeseerx.ist.psu.edu. Но если возникает юридически обоснованная ситуация (например, расследование вымогательства), по запросу через судью можно раскрыть, кто подписал конкретную слепо подписанную банкнотуciteseerx.ist.psu.edu. Таким образом достигается баланс: система по-прежнемуанонимна в повседневности, однако не обеспечивает абсолютной безнаказанности злоумышленникамciteseerx.ist.psu.edu. Штадлер и коллеги указывают, что fair blind signatures предлагают удовлетворяющее решение против злоупотреблений, таких как отмывание денег или вымогательство («perfect crime» в смысле [von Solms & Naccache 1992])citeseerx.ist.psu.edu.
Технически реализовать такое можно разными способами. Один из вариантов: при выпуске каждой слепой монеты банк вместе с судьёй формируют её подпись так, что у судьи есть небольшой секрет, позволяющий раз«ослепить»конкретно эту подпись в случае необходимости. В нормальной ситуации судья не узнаёт ничего – ведь он не видит сами платежи. Но если ему представят спорную монету (например, изъятую у преступника), он сможет определить, кому она была выдана. Конечно, система требует, чтобы судье доверяли и чтобы его ключи были защищены; тут снова вопрос доверия уже к authority. Тем не менее, такие гибридные схемы выглядели привлекательными для правоприменителей.
Важно отметить, что DigiCash и другие ранние реализации не имели подобных «бэкдоров». Они ставили на абсолютную анонимность как на плюс. Возможно, это тоже осложнило отношения с банками: финансовые институты хотели бы иметь возможность контроля при крайней необходимости. Концепция fair blind signatures стала компромиссом, предлагающим дать некоторый контролируемый доступ к информации под надзором закона. В этом проявился вечный конфликт: приватность vs. безопасность. В криптовалютах он тоже никуда не делся. Bitcoin изначально задуман как система без каких-либо «привилегированных сущностей», и потому там скорее пошли по пути псевдонимности, а не полной анонимности. Bitcoin-адрес не содержит имени, но все операции прозрачны – любой может видеть, что делается по тому или иному адресу. Это сознательный выбор: если бы Bitcoin был полностью скрытным, правительства, вероятно, намного быстрее бы его запретили. А так блокчейн позволяет отслеживать движение средств, и даже если не сразу известно, кто владелец адреса, методы анализа часто позволяют связать адреса с реальными людьми при ошибках с их стороны. По сути, Bitcoin – это тоже компромисс: он дал людям свободу транзакций без посредников, но не дал такой же степени анонимности, как Chaum’s eCash. Возможно, из опасения создать инструмент для «идеальных преступлений».
Ethereum унаследовал эту открытость: все операции, контракты, адреса – публичны. За это криптовалюты критикуют в плане приватности (адреса легко псевдо-деанонимизируются через централизованные биржи, анализ цепи и пр.). С другой стороны, регуляторы смягчены тем, что полный хаос не наступил: транзакции хоть и без имен, но прослеживаемы. Примечательно, что в последние годы в криптосообществе набирают популярность решения для повышения приватности (CoinJoin микширование биткоинов, Monero с кольцевыми подписями, Zcash со zk-SNARK), и одновременно растёт интерес государства к регулированию или даже запрету слишком анонимных валют. История повторяется: идеи Чаума вновь на переднем плане, и снова звучат опасения об «идеальном укрытии» для нелегала.
Вместе с тем, исследования 90-х дают надежду на компломиссные решения. Например, сети доверенных посредников для выявления криминала – аналог того самого судьи из fair blind signatures, но распределённый, чтобы ни одна сторона не могла злоупотребить. В контексте блокчейна это пока не реализовано, но обсуждается (например, концепция регулятивных транзакций, где перед отправкой крупной суммы можно вложить доказательство легальности средств, доступное только уполномоченным органам). Интересно, что сам Чаум в 2021 году участвовал в разработке предложений для центрального банка Швейцарии по выпуску цифровой валюты с учётом приватности, доказывая, что CBDC (цифровые валюты центробанков) можно сделать, сохранив анонимность мелких платежей, но позволяя контроль крупных транзакций
scytale.digital. То есть идеи fair blind signatures живы и трансформируются применительно к новым реалиям.
Подытоживая, дискуссия об «идеальном преступлении» вокруг анонимных денег привела к осознанию, что нужны механизмы ответственности. В научных статьях это воплотилось в алгоритмах со встроенной возможностью деанонимизации при наличии специальных ключей и условий
citeseerx.ist.psu.edu. Хотя классические криптовалюты (Bitcoin, Ethereum) этого не используют, сам факт наличия таких разработок повлиял, вероятно, на их дизайн – в сторону большей открытости. А для государств это сигнал, что компромисс возможен: можно внедрять цифровые деньги, которые по умолчанию приватны, но не абсолютно. Этот компромисс, возможно, станет основой для будущих государственных криптовалют (CBDC), где мелкие платежи будут как банкноты – без имен, а крупные – под надзором. Таким образом, и здесь работы 1990-х оказались предвосхищающими современные тенденции.