• Вибори - це не тільки політика, тут є і потужний технічний аспект. Причому технології - при грамотному застосування - здатні творити з процедурою голосування дивовижні речі. Наприклад, забезпечити чесні вибори незалежно від рівня корупції в державі
    Для початку розмови про новітні досягнення в області технологій голосування має сенс звернутися - кілька парадоксальним чином - до суттєво іншій темі під назвою «пірінгова система цифрових готівкових Bitcoin». Вже встигла отримати серед досвідчених фахівців титул «золотого стандарту» цифровий валюти, але по цю пору маловідома за межами комп'ютерно-мережевого світу, ця система взаємних грошових розрахунків нехай і не швидко, однак цілком безумовно проникає нині в масову свідомість.
    Однією з характерних ознак цього процесу стає поява теми 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 можна використовувати як своєрідною форми «вуглецевої датування» для фіксації часу появи практично будь-якої цифрової інформації. В конкретному контексті електронних виборів ця технологія виявляється корисним інструментом для гарантованого захисту підсумків голосування від підтасовування навіть в 146%-х умовах.
    Настільки чудові можливості з'являються завдяки тому, яким чином в системі Bitcoin записуються фінансові транзакції. Монети-биткойны конкретної людини тут зареєстровані за адресами (одного або частіше декільком), які являють собою випадкового виду літерами-цифрові послідовності, що виступають як ідентифікаторів даного користувача в пірінгової мережі. Коли має місце транзакція - пересилання коштів з однієї адреси на інший, вона масштабно повідомляється в мережу, тобто створюється публічна запис транзакції.
    Оскільки користувач 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 з цього ряду вирізняється тим, що її друга версія є результатом спільної творчості вже згаданих Чома і Райвеста, а також цілого колективу аспірантів та студентів з чотирьох університетів США і Канади (включаючи творців CommitCoin Кларка і Ессекса). Ну крім того, Scantegrity - поки що єдина E2E-система, яку реально і вже двічі успішно застосовували на виборах державної влади (муніципальні вибори в органи управління округу Takoma Park, штат Меріленд, США).
    Одна з головних і найбільш привабливих особливостей системи Scantegrity полягає в тому, що вона спеціально створена для вдосконалення вже існуючих процедур голосування і працює як би «поверх» них. Тобто коли конкретного виборця не хочеться напружувати звивини, вникати в новації процедури і скористатися перевірочних можливостями системи, він може просто проголосувати звичайним бюлетенем.
    В основу Scantegrity II покладена система голосування з оптичним скануванням бюлетенів - на сьогоднішній день це домінуюча технологія виборів в США. У своїй традиційній формі дана система звичайно зводиться до того, що виборець заповнює віконця-гуртки, надруковані на бюлетені поряд з іменами кандидатів. За заповненні виборець за допомогою спеціального комп'ютера сам сканує свій бюлетень і потім кидає його в урну. Таким чином одночасно забезпечується швидкий і підрахунок голосів комп'ютером, і «паперовий слід», необхідний для перевірки комп'ютерних підрахунків.
    Придумана ж криптографами E2E-надбудова, реалізована системою Scantegrity, працює так. Тут виборець замість звичайної ручки використовує особливий фломастер, який проявляє унікальний код, надрукований всередині гуртка невидимим чорнилом. Коли цей бюлетень пропускається через звичайний оптичний сканер, той просто визначає, який саме з гуртків проти кандидатів був зафарбований - тобто все як раніше.
    Будь-який виборець, який бажає перевірити, що його голос врахований і підрахований правильно, записує той код, який був виявлений в гуртку бюлетеня, у поєднанні з унікальним серійним номером бюлетеня і забирає цю інформацію з собою.
    Пізніше проголосував може перевірити свій серійний номер на веб-сайті виборчої комісії і переконатися, що він відповідає тим кодом, який був усередині поміченого їм гуртка. Тут цей код, хоча він і вивішений на веб-сайті для загального огляду, вже ніяк не прив'язаний до імені кандидата, за якого був відданий голос. Вся система побудована і математично розрахована таким чином, що якщо всього лише 2 відсотка виборців перевірять і підтвердять свої коди, то статистично виявляється практично неможливим, щоб фальшування результатів голосування пройшла невыявленной (на реальних виборах в Меріленді свої номери і коди звірили через Інтернет близько 4% виборців).
    Ключем до ефективності цієї системи є те, що перед виборами виборча комісія готує набір «бітових зобов'язань». По суті, це кілька таблиць, які при їх зведенні разом - пов'язують коди бюлетенів і імена кандидатів. При цьому дані зв'язку не можуть бути встановлені або обчислені за будь-який з цих таблиць, взятих окремо. Потім комісія відкрито публікує набір цифрових підписів, які криптографічно фіксують всі позиції цих таблиць, але при цьому реальний зміст списків не розкривається. При такому підході дані в таблицях-зобов'язання вже не можна змінити і підробити після того, як заповнені бюлетені і покладено у виборчі урни. І при цьому вони не розкривають ніякої інформації, яку лічильники бюлетенів могли б використовувати до початку виборів.
    На фініші, коли процедура виборів закінчена, виборча комісія відкрито публікує змістовну частину інформації з таблиць-зобов'язань (ті коди, що були виявлені на всіх використаних бюлетенях) разом з криптоключами, які верифицируют достовірність цих даних. Але при цьому частково unveiled зміст таблиць приховує достатньо інформації, щоб зберегти анонімність виборців. Тут доказово немає ніякого способу встановити, який з бюлетенів був відданий за того чи іншого конкретного кандидата. Однак дані таблиці розкривають цілком достатньо інформації для кожного, хто зацікавлений у перевірці чесності голосування і виявленні можливих підробок результатів.
    CommitCoin йде на допомогу
    Хоча висока криптографічний стійкість системи Scantegrity до маніпуляцій прорахована дуже точно, називати конструкцію ідеальною і позбавленою недоліків було б необачно. Наприклад, система недостатньо захищена від попередньої змови кількох партій, що входять у виборчком і охочих у що б то не стало «завалити» ще одного, явно сильного і тому небажаного для інших кандидата.
    У таких умовах теоретично стає можливим сценарій шахрайства з «перекиданням» голосів. Коли, скажімо, при підсумковому підрахунку бюлетенів відбувається «збій» програми, в результаті якого всі голоси, віддані за найбільш популярного кандидата, виявляються приписаними очевидного аутсайдеру, ну а мінімальні цифри аутсайдера, відповідно, дістаються лідеру голосувань... Особливість цієї нехитрої схеми обману в тому, що вона - при деякій спритності рук маніпулятора - дозволяє зберегти в цілісності криптосигнатуры в таблицях-зобов'язання. Єдине, що потрібно, - перевипустити підправлений варіант таблиць ще раз після виборів, видавши їх за попередні.
    Ось тут і приходить на допомогу CommitCoin. Оскільки конструкція підсистеми CommitCoin дозволяє забезпечувати «вуглецеву датування» повідомлень, запущених в мережу Bitcoin, шукачі правди після підрахунків мають можливість переконатися, що дані таблиць-зобов'язань для виборів були зафіксовані безумовно до того, як почалося голосування, а не після.
    Важливо підкреслити, що вживається тут авторами термін «вуглецева датування» - це аж ніяк не просто заковыристое назва для звичайної позначки про дату і час транзакції. Це істотно більш багата концепція. Контрольна ланцюжок блоків у Bitcoin, що супроводжує кожну окрему транзакцію, робить одночасно як відмітку про дату-часу пересилання, так і вуглецеву датування.
    Наприклад, якщо відправник зобов'язань пред'являє свідоцтво, що відповідне послання було закладено їм в блок номер 145535 (реально використаний на виборах в Меріленді), то далі - як наслідок обчислювальної роботи всієї мережі - з необхідністю повинні слідувати багато тисяч інших блоків, створених після цього. При нинішніх розмірах мережі Bitcoin у будь-якого зловмисника, який задумав обман, немає ніякого способу підмінити всі ці блоки, не перерахувавши їх значення за новою, - а на це, навіть при наявності великих обчислювальних потужностей потрібні були б витрати часу порядку багатьох місяців.
    Відбувається в системі накопичення блоків після того, як в ланцюжок було вставлене щось істотне, по суті своїй схоже на накопичення ізотопів вуглецю у фізичному об'єкті. Ви маєте уявлення про швидкість такого накопичення (причому швидкість не може бути змінено довільним чином), ви знаєте,як багато накопичень вже відбулося, і таким чином ви можете оцінити дату появи об'єкта. Точність невисока, але достатня - зовсім нескладно відрізнити щось, внесену за місяць до початку виборів, від того, що було зроблено де-то через день після виборів. Інакше кажучи, як коментує цю особливість Джеремі Кларк, система «CommitCoin дозволяє людям не довіряти взагалі нікому».
    Як не парадоксально це звучить, але саме ця можливість забезпечує найбільш чесні вибори.