(Февраль 2012)
Горячая тема выборов – это отнюдь не только политика. Имеется здесь и очень мощный технический аспект. Причем новейшие компьютерные инфотехнологии – при грамотном их применении – способны творить с процедурой голосования удивительные вещи. Например, обеспечивать честные и прозрачные выборы даже в условиях такой власти, которая насквозь разъедена коррупцией и воровством.
БитКойн для чайников
Для начала разговора о новейших достижениях в области технологий голосования, однако, имеет смысл обратиться – несколько парадоксальным образом – к существенно иной теме под названием «пиринговая система цифровых наличных BitCoin».
Уже успевшая получить среди сведущих специалистов титул «золотого стандарта» цифровой валюты, но по сию пору малоизвестная за пределами компьютерно-сетевого мира, эта система взаимных денежных расчетов пусть и не быстро, но вполне определенно проникает ныне в массовое сознание публики и в поп-культуру.
Одним из характерных признаков этого процесса становится появление темы БитКойна в сюжетах телевизионных сериалов. В частности, одна из последних – за январь 2012 – серий популярной американской ТВ-саги «Хорошая жена» (производственно-бытовая драма о нелегкой жизни женщин-юристов, как написали бы в советские времена) вышла под примечательным названием «Bitcoin для чайников».
Название картины никак нельзя назвать притянутым за уши, поскольку собственно BitCoin в данном эпизоде действительно выступает в качестве основы для очередной судебно-следственной интриги.
Нельзя не отметить и отчетливый «воспитательно-идеологический» подтекст послания: то, как именно данная платежная система преподносится конкретно в этом сериале, заведомо не подразумевает формирование у зрителей позитивного отношения к новой интернет-технологии (федеральные агенты разыскивают создателя BitCoin, чтобы надолго засадить его в тюрьму, поскольку самостоятельное «создание валютных систем» является в США государственным преступлением).
В жизни реальной, насколько известно, ничего подобного пока не происходит. Однако в том, что у госвластей (а также банков, сетей кредитных карт и прочих структур, работающих по традиционным принципам корпоративного бизнеса) нет абсолютно никаких резонов любить BitCoin – сомневаться не приходится.
Потому что BitCoin – как пиринговая или одноранговая система с открытым исходным кодом для обеспечения взаимных денежных расчетов на основе цифровых монет-биткойнов – это в концентрированном виде совершенно иная модель функционирования общества.
Для людей, использующих BitCoin, работа механизмов данной системы делает несущественными такие вещи, как банки, финансовое регулирование и правительственное вмешательство в их денежные дела.
По сути дела, обращение монет-биткойнов не может быть объектом контроля и манипулирований со стороны правительств или финансовых институтов, а взаимные денежные расчеты происходят непосредственно между двумя сторонами без всяких посредников.
При этом, поскольку здесь нет никакой центральной базы операций или операторов, функционирование данной системы нельзя остановить в принципе – пока есть люди, желающие продолжения ее работы.
С технической стороны это обеспечено тем, что система BitCoin характеризуется полностью децентрализованной структурой, в которой нет и в принципе не требуется никакого центрального сервера или доверяемых сторон для гарантированного обеспечения честных платежей.
Пользователи системы сами генерируют и держат у себя криптоключи к цифровым кошелькам со своими деньгами, расплачиваясь непосредственно друг с другом через прямые транзакции.
При этом вся сеть прочих пользователей BitCoin обеспечивает честность каждой транзакции, обладая надежными проверочными средствами для недопущения подделки денег и мошенничества с повторным использованием одних и тех же средств.
О подробностях функционирования столь любопытной системы можно прочесть вот тут, ну а сейчас уже явно пора пояснить, наконец, какое отношение все эти вещи имеют к честным выборам и к демократической смене власти, погрязшей в коррупции, воровстве и лжи.
CommitCoin для выборов
На международной криптографической конференции Financial Cryptography 2012 двое канадских ученых, Джереми Кларк и Александр Эссекс, представили свою исследовательскую работу под названием «CommitCoin – ‘углеродная датировка’ обязательств с помощью системы Bitcoin» (CommitCoin: Carbon Dating Commitments with Bitcoin, by Jeremy Clark and Aleksander Essex).
В этой работе исследователи-криптографы теоретически показали (а также уже продемонстрировали на практике реальных выборов), что богатые и общедоступные возможности БитКойна можно использовать, среди прочего, в качестве своеобразной формы «углеродной датировки» для фиксации времени появления практически любой цифровой информации. В конкретном же контексте электронных выборов эта технология оказывается весьма полезным инструментом для гарантированной защиты от жульничества и подделки итогов голосования даже в условиях заведомо нечестного избиркома.
Столь замечательные возможности появляются благодаря тому, каким образом в системе Bitcoin записываются финансовые транзакции. Монеты-биткойны конкретного человека здесь зарегистрированы по адресам (одному или чаще нескольким), которые представляют собой случайного вида буквенно-цифровые последовательности, выступающие в качестве идентификаторов данного пользователя в пиринговой сети. Когда имеет место транзакция – пересылка битмонет с одного адреса на другой – то она широковещательно сообщается в сеть, чем эффективно создается публичная запись транзакции.
Поскольку пользователь Bitcoin генерирует свои адреса сам, Кларк и Эссекс установили, что к нужному виду Биткойн-адреса можно сконвертировать и заранее подготовленные сообщения. Например, для случая выборов, таким сообщением является особый список, который перед началом голосования в виде таблицы увязывает имена кандидатов с теми случайными кодами, что присвоены им в избирательных бюллетенях (суть этой системы будет разъяснена чуть позже).
Криптография преобразований данных в Bitcoin устроена так, что пересылка на этот адрес минимальной доли биткойна – совсем небольшая транзакция – позволила бы держателю данного списка сделать две вещи: (1) сохранить таблицу в виде публичной записи и (2) при этом не раскрывать содержимое таблицы.
Впоследствии, когда выборы закончены и результаты подсчитаны, та же самая доля биткойна пересылается обратно на исходный адрес – для верификации результата.
Криптографическими методами адреса сгенерированы так, что любой человек при желании имеет возможность по публичным записям этих транзакций повторить те же самые преобразования, убедившись в том, что данные никто не подменил. То есть (а) сверить сигнатуру открыто опубликованной после выборов «секретной таблицы» с той, что была закодирована до начала голосования; и (б) убедиться, что публикация обязательств была сделана именно до, а не после выборов.
Опираясь на математически просчитанную безопасность системы Bitcoin, ученые показали, что здесь манипуляции с данными выборов, как и любая попытка подделки публичной записи о биткойн-транзакциях, оказываются вычислительно чрезвычайно сложной задачей. Потому что для жульничества вам здесь понадобилось бы больше вычислительных мощностей, чем имеет вся остальная часть сети BitCoin вместе взятая. На данной особенности, собственно, и построено обеспечение безопасности этих цифровых наличных.
Из всего уже сказанного читателю должно быть вполне очевидно, что CommitCoin не является собственно инструментом электронного голосования, скорее, обеспечивая лишь остроумный, но один из многих методов обеспечения честных и насквозь проверяемых выборов.
Как говорят об этом сами создатели технологии: «Пример подлинно проверяемого голосования может дать технология выборов, на 95% состоящая из системы Scantegrity и на 5% – из подсистемы CommitCoin. Мы только лишь добавляем некоторое количество дополнительной верификации для одной из конкретных фундаментальных основ Scantegrity».
Основы системы Scantegrity
Принципиальное улучшение существовавших прежде методов тайного голосования обеспечивает криптография с открытым ключом. С помощью фактически тех же самых криптоалгоритмов, что защищают государственные секреты и электронную коммерцию, стало возможным делать и невозможные, на первый взгляд, вещи с устройством выборов.
Одна из этих вещей – иметь такую систему голосования, в которой корешок бюллетеня, оставляемый у избирателя, является полностью анонимным (с его помощью третьему лицу нельзя установить или доказать, за кого именно был отдан голос) и в то же время избиратели могут гарантированно убедиться, что их бюллетень правильно учтен при подсчетах в финальных итогах голосования…
Подобного рода криптографические системы для выборов ныне часто называют Е2Е или «end-to-end verifiable» (т. е. насквозь проверяемое) голосование. Scantegrity – это одна из таких систем, но есть и другие, созданные чуть ранее весьма авторитетными в области криптографии специалистами.
Вроде системы Punchscan (Дыркоскан), изобретенной Дэвидом Чомом, автором концепции «цифровых наличных» и целого ряда криптографических протоколов, широко применяемые ныне в электронной коммерции. Или системы 3Ballot (Трехчастевой бюллетень) знаменитого криптографа Рональда Райвеста, известного, среди прочего, такими алгоритмами как RSA, RC4, RC5, MD5.
Система Scantegrity из этого ряда особо интересна тем, что в своем нынешнем виде (Scantegrity II) она является итогом совместного творчества уже упомянутых Чома и Райвеста, а также целого коллектива аспирантов и студентов из четырех университетов США и Канады (включая создателей CommitCoin Кларка и Эссекса).
Ну кроме того, Scantegrity – пока что единственная E2E-система, которую реально и уже дважды успешно применяли на выборах государственной власти (муниципальные выборы в органы управления округа Takoma Park, штат Мэриленд, США).
Одна из главных и наиболее привлекательных особенностей системы Scantegrity заключается в том, что она специально создана для усовершенствования уже существующих процедур голосования и работает как бы «поверх» них. То есть когда конкретному избирателю не хочется напрягать извилины, вникать в новации процедуры и воспользоваться проверочными возможностями системы, он может просто проголосовать с тем же самым бюллетенем «по-старому».
В основу Scantegrity положена система голосования с оптическим сканированием бюллетеней – на сегодняшний день это доминирующая технология выборов в США. В своей традиционной форме данная система обычно сводится к тому, что избиратель заполняет окошки-кружки, напечатанные на бюллетене рядом с именами кандидатов.
По заполнении избиратель с помощью специального компьютера сам сканирует свой бюллетень и затем бросает его в урну. Таким образом одновременно обеспечивается и быстрый подсчет голосов компьютером, и «бумажный след», необходимый для перепроверки компьютерных подсчетов.
Придуманная же криптографами E2E-надстройка, реализованная системой Scantegrity, работает так. Здесь избиратель вместо обычной ручки использует особый фломастер, который проявляет уникальный код, напечатанный внутри кружка невидимыми чернилами. Когда этот бюллетень пропускается через обычный оптический сканер, тот просто определяет, какой именно из кружков против кандидатов был закрашен – то есть все как раньше.
Но кроме того, благодаря данной системе, теперь всякий избиратель, желающий проверить, что его голос учтен и подсчитан правильно, при выборах записывает тот код, который был проявлен в кружке бюллетеня, в сочетании с уникальным серийным номером бюллетеня. И забирает эту информацию домой.
Позднее проголосовавший может проверить свой серийный номер на веб-сайте избирательной комиссии и убедиться, что он поставлен в соответствие тому коду, который был внутри помеченного им кружка. Здесь этот код, хотя он и вывешен на веб-сайте для всеобщего обозрения, уже никак не привязан к имени кандидата, за которого был отдан голос.
Вся система выстроена и математически рассчитана таким образом, что если всего лишь 2 процента избирателей проверят и подтвердят свои коды, то статистически оказывается практически невозможным, чтобы подделка результатов голосования прошла невыявленной (на реальных выборах в Мэриленде свои номера и коды сверили через интернет около 4% избирателей).
Ключом к эффективности данной системы является то, что перед выборами избирательная комиссия готовит набор «битовых обязательств». По сути, это несколько таблиц, которые – при их сведении вместе – связывают коды бюллетеней и имена кандидатов. Но при этом данные связи не могут быть установлены или вычислены по любой из этих таблиц, взятых по отдельности.
Затем комиссия открыто публикует набор цифровых сигнатур, которые криптографически фиксируют все позиции этих таблиц, но при этом реальное содержание списков не раскрывается. При таком подходе, данные в таблицах-обязательствах уже нельзя изменить и подделать после того, как бюллетени заполнены и положены в избирательные урны. И при этом они не раскрывают никакой информации, которую счетчики бюллетеней могли бы использовать до начала выборов.
На финише, когда процедура выборов закончена, избирательная комиссия открыто публикует содержательную часть информации из таблиц-обязательств (те коды, что были проявлены на всех зарегистрированных в выборах бюллетенях) вместе с криптоключами, которые верифицируют подлинность этих данных.
Но при этом частично раскрытое содержание таблиц скрывает достаточно информации, чтобы сохранять анонимность избирателей. Здесь доказуемо нет никакого способа , чтобы установить, какой из бюллетеней был отдан за того или иного конкретного кандидата. Однако данные таблицы раскрывают вполне достаточно информации для всякого, кто заинтересован в проверке честности голосования и выявлении возможных подделок результатов.
CommitCoin идет на помощь
Хотя высокая криптографическая стойкость системы Scantegrity к манипуляциям данными и к подделке итогов выборов просчитана очень аккуратно, называть конструкцию идеальной и лишенной недостатков было бы опрометчиво. Некоторые слабости, конечно же, есть и у нее.
Например, система недостаточно защищена от предварительного сговора нескольких партий. Скажем, уже прикормленных гнилой властью партий, входящих в избирком и желающих во что бы то ни стало «завалить» еще одного, явно сильного и потому нежелательного для остальных кандидата.
В таких условиях теоретически становится возможен сценарий жульничества с «перебросом» голосов. Когда, скажем, при итоговом подсчете бюллетеней происходит «сбой» программы, в результате которого все голоса, отданные за наиболее популярного кандидата, оказываются приписаны очевидному аутсайдеру, ну а минимальные цифры аутсайдера, соответственно, достаются лидеру голосований…
Особенность этой нехитрой схемы обмана в том, что она – при некоторой ловкости рук манипулятора – позволяет сохранить в целостности криптосигнатуры в таблицах-обязательствах. Единственное, что требуется, это перевыпустить подправленный вариант таблиц еще раз после выборов, выдав их за прежние.
Вот тут-то и приходит на помощь CommitCoin.
Поскольку конструкция подсистемы CommitCoin позволяет обеспечивать «углеродную датировку» сообщений, запущенных в сеть BitCoin, искатели правды после подсчетов имеют возможность удостовериться, что данные таблиц-обязательств для выборов были зафиксированы определенно до того, как началось голосование, а не после.
Важно подчеркнуть, что применяемый здесь авторами термин «углеродная датировка» – это отнюдь не просто заковыристое название для обычной отметки о дате и времени транзакции. Это существенно более богатая концепция. Проверочная цепочка блоков в БитКойне, сопровождающая все и каждую индивидуальную транзакцию, делает одновременно как отметку о дате-времени пересылки, так и углеродную датировку.
Если, допустим, отправитель обязательств предъявляет свидетельство, что соответствующее послание было заложено им в блок номер 145535 (реально использованный на выборах в Мэриленде), то далее – как следствие вычислительной работы всей сети – с необходимостью должны следовать многие тысячи других блоков, созданных после этого.
При нынешних размерах сети BitCoin, у любого злоумышленника, задумавшего обман, нет никакого способа подменить все эти блоки, не пересчитав их значения по новой – а на это даже при суперкомпьютерных мощностях потребовались бы затраты времени порядка многих месяцев.
Происходящее накапливание блоков после того, как в цепочку было вставлено нечто существенное, по сути и похоже на накапливание изотопов углерода в физическом объекте.
Вы имеете представление о скорости такого накапливания (причем скорость не может быть изменена произвольным образом), вы знаете как много накоплений уже произошло, и таким образом вы можете оценить дату появления объекта. В целом она будет размытой, однако информации вполне достаточно для эффективного различения.
В частности, совсем несложно отличить, например, нечто такое, что было внесено за месяц до начала выборов, от того, что было сделано где-то через день после выборов.
Иначе говоря, как комментирует эту особенность Джереми Кларк, система «CommitCoin позволяет проверяющим не доверять вообще никому».
Хотя для кого-то подобное звучит воистину странно, но даже при наихудших условиях голосования — когда среди организаторов выборов практически никто не вызывает доверия – правильная технология реально способна обеспечивать самые честные выборы.
Другой вопрос, как настоять на применении такой технологии…