(Уперше оприлюднено 19.08.2018)

Нещодавно ми з вами стали свідками повідомлення про спробу проведення майбутніх президентських виборів засобами блокчейн. Крім того, у повідомленні йшлося, що потенційна система виборів запущена у тестовому режимі і кожен бажаючий може спробувати її перевірити безкоштовно, використовуючи тестові токени. Цілком логічно, що у багатьох виникло питання: що це таке, як все це розуміти і навіщо взагалі воно потрібно?

Реалізація відповідного проекту є детермінантою цифрової економіки, криптоекономіки, електронного урядування, діджиталізації тощо. Втім припускаю, що для багатьох це лише малозрозумілий набір слів незважаючи на те, що на цих концептуальних рішеннях, технологіях, протоколах базується наше вже світове майбутнє. Спроба переводу голосування на блокчейн, це ознака, конкретна та реальна дія здійснити Україною соціально-економічний стрибок, оминаючи цілу низку проблем, що вже перебувають на площині минулого. Іншими словами, здійснюється спроба переходу до майбутнього країни не еволюційним (послідовним) шляхом, а стрибком через десятиліття.

З одного боку Україна вкрай не готова до реалізації настільки масштабних і складних проектів на системах блокчейн, і цілком ймовірно, що переважна більшість людей буде просто паралізована у діях. Але з іншого боку, це стимул до навчання, розуміння нового, приймання нового, відхід від світоглядної закостенілості, прийняття умов майбутнього, а головне цілковитої прозорості у всьому, що піддається записам в блокчейн.

Без заперечень, масштабне впровадження в Україні, абстрактно говорячи, нового і складного є корисним і навіть стратегічним. Суспільство отримує новий інструментарій, нові і якісно інші можливості у самореалізації, організації, управлінні, контролі, обліку, і відповідно це сприятиме розвитку нових підходів, цілей і мети на відміну від практики спадкування та продукування вочевидь не ефективних, через застарілість, моделей. Українське суспільство буде потенційно здатне врешті-решт розвивати партнерство і позбутись статуса одвічного позичальника та боржника.

Без перебільшень, це шлях відходу від пострадянського алгоритму розвитку; від корупції, яка стала непросто невід'ємною складовою життя громадян, а умовою, єдиною існуючою можливістю соціального існування; від марнотратства природних, людських, фінансово-матеріальних ресурсів, які ми щороку нещадно «викидаємо».

Втім, окремо варто підкреслити, що масштабне впровадження в країні технології блокчейн (а це вже не поодинокі явища, Україна тримається на передових місцях у світі по застосуванню блокчейну ("Украина вошла в 14 мировых блокчейн лидеров") сформує нові якісні умови життя і діяльності. Це означає відхід від потреби виживання (людини, підприємства, установи, закладу) дотримуючись пустого формалізму (слідування умовним вимогам керівництва, урядовців), імітації діяльності і неформальної заборони прогресивних підходів (цензура). Їм на зміну прийдуть постійні експерименти у пошуках оптимуму (стійкості).

Така впевненість ґрунтується на вимогах диктованих майбутнім, а це: а) суцільна мережевість (мережеве суспільство, мережеві інформаційні відносини), що будується на глобальній емерджентності (зв'язок між окремими об'єктами, що у комплексі утворюють систему); б) поступовий перехід до глобального консенсусу (авторське бачення, що передбачає облік, контроль, управління, розподіл і використання критографічними засобами всіх існуючих планетарних ресурсів без потреби у довіри кому не будь, включаючи арбітрів з незмінними та фінансово-ресурсним підкріпленням гарантії виконання домовленостей закріплених смарт-договорів між людьми або їхніми представниками (делегатами)) тощо.

Технологія блокчейн.

Блокчейн — це взаємозалежний ланцюг блоків, які складаються з певної інформації (сценаріїв), що записуються у єдиному відкритому для перегляду "журналі" (наприклад, блокчейн крипотовалюти ефіріума https://etherscan.io/uncles; блокчейн криптовалюти біткоїна https://www.blockchain.com/ru/explorer). Блок (умовне об'єднання певної інформації) утворюється шляхом збирання конкретної кількості інформаційних об'єктів у купу з дотриманням вимог об'єму, особливостей самої інформації тощо.

Об'єктами можуть бути коди; зображення; текст; звук; договір; свідоцтво; диплом; інформація про походження та переміщення товару; майно; інформація про переказ грошей від однієї людини до іншої; вказівка; дисертація; напис або лише ім'я, назва, речення, нотаток (що завгодно, що підлягає чіткій фіксації у цифровому вигляді). Зібрані до умовного блоку цифрові об'єкти шифруються (хешуються) одним з криптографічних способів (алгоритм шифрування). Для більш спрощеного розуміння хешування або хеш це перетворення будь-якого обсягу тексту (чи чогось іншого у чіткій фіксованій формі) у короткий шифр з незмінною кількістю символів.

Кількість символів шифру може бути різною у залежності від складності шифрування (алгоритму), як правило це від 4 до 64. Елементами шифру можуть бути літери великого та малого регістру, цифри, спецсимволи.

Сформульований хеш (шифр) не підлягає дешифруванню (наприклад код перетворити знову на текст), втім існують прості алгоритми шифрування, які можуть це зробити, але їхня відмінність полягає у тому, що вони не мають чіткої незмінної кількості символів (чим більше тексту, тим більше символів шифру).

Приклад 1 (конструктор шифрування http://crypt-online.ru/crypts/sha512/):

Беремо запис: "Гарбуз Петро Васильович 15.08.2018 року у Місті Києві на вулиці Хрещатик порушив правила дорожнього руху"

У конструкторі вибираємо алгоритм SHA512/224 у віконце Текст вносимо повністю весь запис "Гарбуз..." без лапок, натискаємо Кодувати і отримує код (хеш цього тексту) "90fb0f1d0b9621531a94131f038ebaff909d13552df5ea290f587cd2". Будь-які зміни внесені до нашого тексту вже не дадуть такого хешу, іншими словами, цей код через цей алгоритм можна отримати лише кодуючи до символьно виключно цей набір літер в оригінальній послідовності (якщо слово "Місті" написати з маленької літери, якщо слова або літери поміняти місцями, то хеш одразу буде змінено).

З цього одного запису цілком може складатись блок. Ланцюг блоків утворюється шляхом внесення хешу попереднього блоку до самого тексту наступного запису.

Приклад 2:

Блок 1. 90fb0f1d0b9621531a94131f038ebaff909d13552df5ea290f587cd2

Запис у блоці (захищена інформація): Гарбуз Петро Васильович 15.08.2018 року у Місті Києві на вулиці Хрещатик порушив правила дорожнього руху

Блок 2. 106bf13ace80367252a599cf3f537eb68540c07fe78004aff15b9c40

Запис: 90fb0f1d0b9621531a94131f038ebaff909d13552df5ea290f587cd2 Гарбуз Петро Васильович 25.08.2018 року у Місті Києві на вулиці М. Грушевського порушив правила дорожнього руху

Блок 3. f862d3406af6e5a5e380f5fe1ab562916cb716416e830aeb74091d1b

Запис: 106bf13ace80367252a599cf3f537eb68540c07fe78004aff15b9c40 Гарбуз Петро Васильович 27.08.2018 року у Місті Києві на вулиці Прирогова порушив правила дорожнього руху.

Блок 4. 794bf4faeee6f54e179eab73ed417b9e0055720b6ea9aaf8dbd1d29e

Запис: 106bf13ace80367252a599cf3f537eb68540c07fe78004aff15b9c40 Позбавити Гарбуза Петра Васильовича права управляти автомобільним транспортом з 27.08.2018 року до 27.08.2020 року

Такими чином було створено ланцюг з 4 блоків. Як зрозуміло з прикладу, хеш наступного блоку включає такі елементи: 1 — хеш попереднього блоку, 2 — запис блоку (інформація, яку вміщено до блоку). Вносячи корективи до змісту блоку змінюється його хеш, і відповідно змінюється хеш всіх наступних блоків, що свідчить про зміну інформації у конкретному блоці.

Втім хешування не є панацеєю захисту вміщеної до блоку інформації. Достатньо зміни зміст певного блоку і перехешувати всі наступні

Приклад 3:

Оригінальний

Блок 3. f862d3406af6e5a5e380f5fe1ab562916cb716416e830aeb74091d1b

Запис: 106bf13ace80367252a599cf3f537eb68540c07fe78004aff15b9c40 Гарбуз Петро Васильович 27.08.2018 року у Місті Києві на вулиці Прирогова порушив правила дорожнього руху

Перероблені

Блок 3. e860da489a6f393fbf8f09a028e06de199fee89ae660b3ab7111d0cc

Зміст: 106bf13ace80367252a599cf3f537eb68540c07fe78004aff15b9c40 Визнати Гарбуза Петра Васильовича невинним у порушені правил дорожнього руху 27.08.2018 року у Місті Києві на вулиці Прирогова

Блок 4. 3857151145521748772cda15f7509cd629e00b6a8450501a6663d67a

e860da489a6f393fbf8f09a028e06de199fee89ae660b3ab7111d0cc Визнати Гарбуза Петра Васильовича невинним у порушені правил дорожнього руху 25.08.2018 року у Місті Києві на вулиці М. Грушевського

Таким чином, криптографами-програмістами (розробниками криптографічного шифрування та програмного забезпечення) було прийнято рішення математично ускладнити процедуру створення хешів блоків, тим самим "загальмувати" роботу зловмисників створивши бар'єри у перехешуванні послідуючих блоків. Таким ускладненням став криптографічний нонс. Сенс нонсу полягав у тому, щоб до повідомлення (інформації), яке буде вмішенно у блок додати, попередньо підібравши шляхом перебору, випадкове числове вираження, яке б сформулювало хеш блоку, який закінчувався, наприклад, на 0 або 00, або 000, або четвертий символ був би 0, або закінчувалось на літеру верхнього регістра С, або на дві СС тощо.

Чим складніше нонс (5-й символ хешу; 7,8,9 символи хешу; три останніх мають відповідати прийнятим вимогам, тобто бути такими, якими передбачено протоколом), тим складніше підібрати під вимоги хеш. Іншими словами, нонс — додатковий і заздалегідь чітко невизначений елемент, який додається до повідомлення, яке вміщується у блок. Нонс має бути підібраний шляхом перебору до вимог протоколу до хешу.

Впровадження нонсу суттєво затримує весь процес перехешування наступних блоків, оскільки всі хеші мають відповідати протоколу. У повноцінних блокчейнах підбір хешу (майнінг) може означити перебір понад 100.000 варіантів, додамо до цього ще кількість вже закритих наступних блоків, які необхідно перехешувати і отримує неможливу до розв'язання задачу з існуючою комп'ютерною потужністю.

Приклад 4:

Блок 1. b203c25c550a7f9318102edbdf93728c233a780618303e325dadb380

Запис: "Я логосую за 1 кандидата 23"

Пояснення: у протоколі хешуванні прийнято рішення, кожний хеш має закінчуватись на 0. Запис "Я логосую за 1 кандидата" є змістом повідомленням, а "4" — підібраний мною нонс, який дозволяє створити хеш відповідаючий протоколу. У даному випадки, мені потрібно було видозмінити зміст запису 4 рази, щоб знайти хеш, що закінчується на 0. Спершу до алгоритму шифрування я ввів напис "Я голосую за 1 кандидата 0", потім "Я голосую за 1 кандидата 1", далі "Я голосую за 1 кандидата 2", "... кандидата 3", "... кандидата 4, "...", "Я голосую за 1 кандидата 23" і лише тоді мені вдалося сформулювати відповідний до вимог хеш.

Блок 1. 62bf2b57f1a4abee77889d75d05ca07f3a161594233a6d330163fcb0

Запис: "Я голосую за 1 кандидата 23"

Блок 2. 99cba23dd3f08cedd3d6500a6d6f394cdd38ce4893e5986b1134d020

Запис: "62bf2b57f1a4abee77889d75d05ca07f3a161594233a6d330163fcb0 Я голосую за 2 кандидата 11"

Блок 3. 03a811e898a302f2d8f5a476705966931af1fa1337c3efd0d02e2d50

Запис: "99cba23dd3f08cedd3d6500a6d6f394cdd38ce4893e5986b1134d020 Я голосую за 3 кандидата 7"

Блок 4. a5735f9b287030c70112d6b68da6a0b2acd6ccdc6be6c514c3f49b20

Запис: "03a811e898a302f2d8f5a476705966931af1fa1337c3efd0d02e2d50 Я голосую за 4 кандидата 4"

Блок 5. 63f926cc99c0172e869ff7eb31ea3f649ef3974b732d26bd53027be0

Запис: "a5735f9b287030c70112d6b68da6a0b2acd6ccdc6be6c514c3f49b20 Я голосую за 5 кандидата 3"

Таким чином, у простому сенсі блокчейн, це технологія захисту достовірності інформації засобами криптографічного шифрування, коли один запис (блок) вміщує шифр (хеш) попереднього, утворюючи таким чином нерозривний шифр-ланцюг.

Втім не лише хешування та нонс є унікальним винаходом захисту достовірності інформації опублікованої у блоці. До цього додається і третій фактор, це швидкість та неперервність побудови нових блоків. Якщо перші дві сходини ще можна здолати, то остання — постійно утворення нових блоків зводить всі зусилля на нуль. Взламування блокчейну передбачає надання основному програмному забезпеченню альтернативний ланцюг блоків аж до поточного у кількості та часі. Все це забезпечує захист достовірності інформації законсервованої у блоках. Себто достовірною є лише та інформація яка "запечатана" у блоках.

Однак, якщо говорити про блокчейн лише як про технологію захисту достовірності інформації, означає оминати увагою і ігнорувати всі його можливості, про які я згадаю після аналітичного огляду політичних виборів засобами блокчейн.

Вибори і блокчейн.

За інформацією на сторінці ФБ NEM Ukraine, В Україні у 2014 році було застосовано блокчейн NEM для обчислення голосів виборців. Як повідомив Олександр Стельмах на сторінці ФБ 7 серпня: "Продовжуємо серію експериментів із застосування технології блокчейн на виборах. Декілька тижнів тому назад за допомогою вбудованих модулів блокчейну NEM було створено тестове голосування. Голосування досі відкрито і будь хто може взяти в ньому участь".

Здебільшого це наш перший досвід із залучення блокчейну до політичних виборів. Втім є суттєва різниця між здійсненням рахування голосів і безпосередньо голосуванням. Основним залишається питання довіри до реєстрації первинних даних (голосів), що суттєво порушує основний принцип блокчейну — захист достовірності первинних даних, які консервуються у блоках.

Використання блокчейну лише для підрахунків, є мінімальним використання потенціалу технології. Взагалі потреба до звернення до неї, у даному випадку, виправдовується лише захистом достовірності результатів голосування, а не самого голосування. Реалізація голосування засобами блокчейну є досить складною задачею. Припускаю, що основною проблемою залишається брак алгоритму дій.

Отже, процес тестового голосування передбачає такі процедури:

Блокчейн NEM є публічним. Орієнтованим на роботу з розумними контрактами, цінним паперами, бізнес-операціями тощо. Він технологічно розвинутий, гнучкий для бізнесу тощо. Іншими словами, це авторитетний багаторічний блокчейн (існує з 2014 року), який користується повагою у світовому бізнес-середовищі. Однак питання процедури голосування залишається відкритим.

З публічного обговорення відомо, як зауважив Олександр Стельмах: "Якщо дійсно дійде до того, що в блокчейн записувати кожен голос, варто застосувати гібридну модель блокчейну. Всі голоси виборців писати в приватний/корпоративний блокчейн, в якому нодами є суб'єкти виборчого процесу, громадські організації, міжнародні спостерігачі, а після встановлення результатів виборів підсумки голосування в розрізі виборчих дільниць, адмінтеродиниць, виборчих округів писати вже в публічний блокчейн. Голоси виборців зберігати в корпоративному блокчейні до наступних виборів. Таким чином можна уникнути комісійних витрат на транзакції кожного голосу виборця".

Фактично пан Стельмах припускає, що проведення голосування засобами блокчейну NEM все-таки можливе. У своєму дописі, він розмірковує, що цілком реалізуємо для виборів створення окремої гілки, відгалуження (форку) в якому і зафіксувати всі голоси, крім того уникнути платні за транзакції (комісії), а результати внести до основного блокчейну (до блоку).

Без заперечень, це дійсно цікаве рішення з двох причин: по-перше блокчейн NEM не розроблявся під специфіку настільки масштабного та складного голосування як вибори президента, крім того врешті однорангові операції (переказ токенів) має свої невеликі відмінності від голосування; по-друге, створення форку блокчейну дозволяє створити і нову обмежену у кількості криптовалюту спеціально для цієї мережі та власний (для форку блокчейну) гаманець. Саме тут виникає безліч можливостей і багато способів розв'язання низки проблем:

Щодо питання про тайну голосування. Один з учасників обговорення задає слушне питання: "Zenonas Vaigauskas Выполяются ли принцип тайного голосования при этом что бы было известно кто голосовал? Известно как обеспечивается разрушение связи между голосовавшим и его голосом? На участке для этого служит урна для голосования. Когда бюллетень опускается в урну и смешивается с другими бюллетенями связь голоса с его подавшим избирателем безвозвратно пропадает. А здесь как? Можно ли найти, восстановить вычислить эту связь?".

Представник в Україні блокчейн NEM дає таку відповідь: "Anton Bsnko Здравствуйте. Это стандартный модуль голосования, который используется в блокчейн-платформе NEM с базовым функционалом. Указанные вами принципы тайного голосования, а также разрушения связи возможно соблюсти. Буду рад обсудить этот вопрос подробнее. С уважением Босенко Антон NEM Ukraine Leader".

У цьому обговоренні було порушено два дуже важливих питання, а саме збереження і захист зв'язку між громадянином та його виконаним конституційним обов'язком. Адже обираючи президента країни, місцевих голів, фактично це делегування власних громадянських повноважень другій особі, а тому захист достовірності зробленого вибору є ключовим і разом з тим звичайним для криптоекономіки.

Криптоекономіка орієнтована на незмінну фіксацію та збереження всього, що торкається відповідальності. Не виключенням є і обрання кандидата. Після проведення виборів та оголошення результатів, громадянин фактично втрачає надане йому конституцією право доленосно приймати участь у державному, місцевому управлінні. Делегована особа, за невеличкими і дуже складно реалізуємими виключеннями, виконує службові обов'язки до наступних виборів, без жодної відповідальності перед виборцями за виконання виборчої програми. Тобто, зв'язок між виборцем і переданим ним власного конституційного права розірвано назавжди (для прикладу, законодавство захищає зв'язок між купівлею товару та його повернення продавцю у разі виявлення покупцем браку або відмови від купівлі у випадках більш детального ознайомлення з ним). У виборчій системі механізм захисту зв'язку між громадянином та делегованими ним правами і обов'язками майже відсутній (його практичним аналогом є журналістські засудження, пікети, мітинги, письмові скарги, реводюції тощо).

З цього приводу виборчу систему варто розглядає як контракт. Якщо умови контракту порушенні, то він за бажанням ініціатора (виборця) розривається. Умовами контракту у виборчій системі є політична програма кандидата (це дійсно так і є), але у дійності він не складається, втім повноваження делегуються і без жодного підкріплення (страхування). З цього приводу програмне забезпечення форку блокчейна повинно мати функцію відміни транзакції (переданого кандидату токена) з поясненнями причин "розторгнення контракту".

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

Електронні гаманці (особистий кабінет).

Залежність від гаманців водночас і ускладнює проведення, і захищає голосування. Здебільшого реєстрація, створення гаманців в основному блокчейні, чи у форку для багатьох громадян України є недоступним, через відсутність можливостей, вмінь, розуміння, інтересу тощо, що ставить під сумнів весь проект блокчейн-голосування. А тому вже на початку його реалізації, варто розширити блокчейн-голосування до рівня платформи на базі якої здійснюватиметься:

Такі розширені громадянські можливості будуть суттєво стимулювати громадян створювати електронні гаманці (особисті кабінети) або делегувати власні права та повноваження родичам, представникам тощо.

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

Активація має відбуватись шляхом заповнення анкети про свою особистість, у разі понад 50% співпадінь з автоматично внесених до блокчейну відомостей про особистість, кабінет відкривається і пропонується власнику встановити систему захисту: пароль який вбудовується в ідентифікаційний код (наприклад, "васильківська0214552148", "05487присяжнюк578412", "@@2468741545@@", "уменедваєдітей4587412656", "ялюблю2в4е5с7н8у41525") та інший канал зв'язку для підтвердження (телефон, пошта тощо, тобто двохфакторний або трехфакторний захист). Далі цей пароль автоматично хешується, а хеш стає цифровим ідентифікатором громадянина. Крім того пароль від кабінета можна змінювати по завершенню кожної сесії.

Таємне голосування.

Інша проблема яка була піднята в обговоренні між Zenonas Vaigauskas та Anton Bsnko, це захист таємниці голосування. Немає причин розглядати сенс таємного голосування, більш цікаво підійти до проблеми його реалізації, тим більш, що криптографія вже надала готові інструменти.

Основний наголос варто зробити на хешуванні паролю вбудованого до індентифікаціного коду. Нагадаю, цифровий ідентифікатор громадянина створюється лише після активації особистого кабінета (гаманця). У разі зміни паролю до кабінета і відповідно зміни хешу цифрового ідентифікатора громадянина, кабінет відправляє на блокчейн повідомлення про зміну ідентифікатора.

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

Запит на "пофарбовані" токени здійснюється шляхом односторонньої транзакції (після втрати актуальності всі токени знищуються). Всі випущені токени мають термін дії (до певної дати та години).

Висновки.

Не викликає сумнів, те що виконання громадянських обов'язків, здійснення громадської діяльності і контролю неможе бути простою формальністю. Все це потребує в повноцінному інфраструктурному розвитку і практичному застосуванні як необхідної умови та вимоги сьогодення і майбутнього. Здебільшого, це здатність впливати на процеси державного та цивілізаційного розвитку і поступово позбуватись неформального явища монополії на державне управління.

"Громадянська комунікація" (умовне визначення інформаційних відносин у системі демократичного (народовладдя) управління, як протилежний напрям політичної комунікації) перебуває у зародковому стані, який багато у чому навіть не досяг рівня бюрократичного.

Як правило функції відповідної комунікації виконують ЗМІ, соціальні мережі тощо, що у результаті лише розпорошує громадянську спільноту, створює умови для політичних маніпуляцій, підриває довіру до держави, формує осередки ворожості до країни. Ця прогалина, відсутність відповідної цифрової платформи суттєво ускладнює процес, відомий нам як, демократичний розвиток, коли кожен громадянський діалог (обговорення і консенсус), скарга на особливості державного/галузевого управління чи проявлена ініціатива отримають значущість.

Іншими словами, все те, що стосується життя громадян повинне повноцінно легалізуватись (навідмінну від повідомленнь: "за словами міністра… на персональній сторінці фейсбуку"), а самі громадяни повинні навчитись відповідальності, приймаючи доленосні рішення всією своєю спільнотою.

Таким чином, перший сигнал про проведення політичних виборів засобами блокчейну, є вагомою ознакою того, що українське суспільство врешті починає "одужувати" від радянської спадщини, коли на десятиліття було прищеплено міф про дієздатність соціальних інститутів, демократії, економіки тощо.