WIELKIE TESTOWANIE IVOTING
BlogWIELKIE TESTOWANIE IVOTING
Opublikowany przez Merito 11/09/21
#blockchain
Wywiad z szefem projektu iVoting Marcinem Gawlasem na temat prowadzonych otwartych testów aplikacji iVoting Free. W wywiadzie można przeczytać na temat krytyki projektu, planów rozwoju projektu oraz dowiedzieć się wielu bardzo ciekawych rzeczy, o których nie przeczytacie na stronie projektu iVoting.
Czy technologia blockchain jest dobrym wyborem dla systemu głosowania? Wielu ekspertów twierdzi, że to nieodpowiednia i niebezpieczna technologia dla systemów głosowania.
Na początku pragnę zauważyć, że prowadzimy prace badawczo-rozwojowe nad dwoma protokołami do głosowania przez Internet. Algorytmy wykorzystujące technologię blockchain oraz bazujące na wysokiej matematyce tj. chińskim twierdzeniu o resztach oraz liczbach pierwszych (protokół alternatywny będący zaawansowanym rozwiązaniem kryptograficznym).
Technologia blockchain ma swoje wady i zalety. Nasz system oparliśmy na rozwiązaniach które od kilkunastu lat nie zostały nigdy złamane przez hakerów (wiele rozwiązań zaczerpnęliśmy z blockchaina, na którym bazuje Bitcoin). Jeśli coś jest dobre i przez tyle czasu pozostaje bezpieczne, to po co wymyślać coś nowego, wystarczy zaadaptować optymalne rozwiązanie. Blockchain świetnie nadaje się do transparentnego systemu głosowania, ponieważ zapisuje na publicznie dostępnej stronie www wyniki głosowania i każdy może sprawdzić, znając swój klucz szyfrujący, czy system poprawnie obliczył jego głos.
Blockchain świetnie nadaje się również do bardzo dużych głosowań i masowego wykorzystania, ponieważ dzięki lekkim walletom SPV możemy głosować z urządzeń mobilnych, o nawet niezbyt mocnych parametrach sprzętowych. Oznacza to, że głosowanie jest bardziej dostępne, wygodne i może się łatwo upowszechnić.
Proszę wyjaśnić w jaki sposób iVoting zapewnia anonimowość? Niektórzy krytycy Waszego projektu twierdzą, że niepotrzebnie komplikujecie temat tajności głosu, że nawet nie informatyk wymyśli w 10 minut jak zrobić anonimowe głosowanie?
Technologia CoinJoin oraz ukrywanie adresów IP w sieci TOR gwarantuje anonimowość głosowania w iVoting. Dopóki użytkownik pilnuje swojego klucza prywatnego prawdopodobieństwo odgadnięcia kto jak głosował, przy dużej liczbie głosujących jest bliskie zeru. W mniejszych głosowaniach do 10 osób to już jest bardziej złożony temat. Niektóre kryptowaluty od lat skutecznie ukrywają tożsamość stron transakcji w ten sam sposób jak to będzie w iVoting - wykorzystując miksery. Natomiast sieć TOR jest wykorzystywana przez amerykański wywiad od kilkudziesięciu lat do skutecznej anonimowej komunikacji sieciowej, cały Darknet na tym bazuje. Zatem jeśli połączymy sprawdzone systemy, które od lat pozostają anonimowe i przez które płyną biliony dolarów na anonimowych transakcjach, a strony tych transakcji nie ufając sobie nawzajem skutecznie i trwale ich dokonują to dlaczego tego sprawdzonego mechanizmu nie moglibyśmy wykorzystać w głosowaniach? Różnica polega na tym, że kryptowaluty to transakcje na pieniądzach, w iVoting transakcja to oddanie głosu (trochę jak podpis cyfrowy pod cyfrowym kontraktem).
Wymyślenie systemu do głosowania, który zapewnia wysoki poziom bezpieczeństwa, anonimizacji i jednocześnie transparentności jest świętym graalem informatyki. Jeśli ktoś twierdzi, że w 10 min wymyśli jak zaanonimizować głos przez Internet to ja go zatrudniam z miejsca, byłby to geniusz i pewnie dostałby Nagrodę Nobla. Trzeba jasno powiedzieć, że my nie bijemy się dziś o system 100% bezpieczny, anonimowy i transparentny, bo takiego się nie da zrobić. Walczymy o akceptowalny poziom bezpieczeństwa, anonimowości i transparentności w porównaniu do innych istniejących rozwiązań. Bardzo trudno określić takie parametry, bo jak można ocenić poziom bezpieczeństwa? Obrazowo można powiedzieć w bardzo dużym uproszczeniu, że iVoting jest obecnie najbardziej zaawansowanym projektem w Polsce i jednym z najbardziej obiecujących na świecie, bo empirycznie sprawdzalne wyniki naszych symulacji w laboratorium pokazują nam dokładnie poziom anonimizacji w różnych wielkościach grup głosujących. Zatem jeśli ktoś chce się z nami spierać, że ma lepszy poziom anonimizacji proszę pokażcie kod i zasymulujmy głosowanie. My mamy kod, mamy wyniki symulacji, które stanowią niepodważalne dowody, że nasza koncepcja działa i jest wysoce skuteczna w dużej grupie głosujących. Natomiast zawsze kiedy jak tak mówię np. do konkurencji nastaje długa i wymowna cisza... Natomiast na dzień dzisiejszy ja widzę może tylko jeden projekt, który wart jest uwagi w Polsce jest to https://demo.wikikracja.pl/, z autorem tej koncepcji jestem w kontakcie. Może znajdą się jakieś nowe pomysły, chętnie się zapoznamy, może nawet nawiążemy współpracę. A hejterów bez pokrycia jest w Internecie dużo, zwłaszcza jeśli system do głosowania ma być wykorzystany politycznie, to rodzi dużo emocji i po prostu często wywołuje walkę polityczną. Ja krytyką rzucam wyzwanie spotkajmy się w Internecie - porozmawiajmy publicznie - ja jestem gotowy na każdy merytoryczny pojedynek. Nie ukrywajcie się pod pseudonimami, iVoting zapewni Wam bardziej skuteczną anonimowość niż Facebook (śmiech).
System do głosowania powinien być intuicyjny. Czy iVoting jest intuicyjnym narzędziem, skoro wielu ludzi ma problemy z jego obsługą?
Obecnie nasze darmowe narzędzie iVoting Free jest aplikacją webową wykonaną w technologii PWA. Docelowo będzie to aplikacja dostępna w sklepie Androida i iOS oraz jako aplikacja webowa na Windows i Linux. Aby stworzyć dobry (przyjazny dla użytkownika) system do głosowania konieczne jest masowe testowanie. Interfejs musi być prosty w obsłudze, zwłaszcza dla osób wykluczonych cyfrowo np. z racji na wiek powinny mieć możliwość kontaktu telefonicznego z infolinią i pomocy w instalacji narzędzia. Osoby niepełnosprawne np. niedowidzące powinny mieć specjalne duże litery w trybie obsługi lub głosowy interfejs. To wszystko przyszłość, którą będziemy realizować na etapie wdrożeń. Stworzyliśmy filmy instruktażowe (patrz: https://ivoting.pl/jak-to-dziala/) , które pokazują podstawowe funkcjonalności aplikacji - jak się zarejestrować, jak zorganizować swoje pierwsze głosowanie wśród znajomych. iVoting Free rozwijamy poprzez praktykę użytkowania - to użytkownicy zwracają nam uwagę co należałoby poprawić, aby aplikacja była bardziej user friendly. Udoskonalamy ją wg potrzeb i zauważonych problemów zgłaszanych przez userów. Słuchamy naszych użytkowników i ciągle rozwijamy to narzędzie.
Inną sprawą jest temat masowego użycia takich systemów. Zobaczmy na przykład Estonii, gdzie wybory przez Internet odbywają się od kilkunastu lat. W pierwszym głosowaniu nie więcej niż 4% obywateli zdecydowało się zagłosować przez Internet. Po kilkunastu latach w ostatnich wyborach było to już ponad połowa głosujących. Tego typu systemy potrzebują czasu na absorpcję i zdobycie zaufania. Użytkownicy muszą oswoić narzędzie, aby mogli sprawdzić jak to działa, czy jest bezpieczne i zacząć używać powszechnie i często.
Krytycy zauważają, że system do e-głosowania powinien być od początku robiony jako projekt społeczny, otwarty, publiczny, typu Open Source. Tylko w ten sposób można uzyskać system uczciwy i bezpieczny, gdyż przed "okiem publicznym" nie umknie żaden błąd, żaden przekręt i żadne fałszerstwo. Tylko nad takim systemem społeczeństwo ma pełną kontrolę. Przecież właśnie tak ma być w demokracji bezpośredniej - twierdzą krytycy.
Nasze protokoły do głosowania docelowo zostaną otwarte i będą Open Source. Każdy programista czy obywatel będzie mógł sprawdzić jak to działa. Kompletnie nie zgadzam się z tym stwierdzeniem, że projekt od początku powinien być społeczny, otwarty i publiczny. Po pierwsze jest to niemożliwe do zrobienia ze względów organizacyjnych i finansowych. Jak miałoby wyglądać zarządzanie takim projektem? Kto podejmowałby decyzje? Skąd wzięłyby się na to pieniądze? Jeśli ktoś uważa, że jest zdolny zorganizować takie badania i stworzyć protokół w takim modelu to jest marzycielem.
Żyjemy w rzeczywistości kapitalistycznej i taki projekt musi być możliwy do skomercjalizowania. Dlatego pozyskaliśmy bardzo duże fundusze na nasze badania ponieważ oprócz darmowych narzędzi dla organizacji pozarządowych i kodu Open Source tworzymy rozwiązania dla małych i średnich firm, korporacji, uniwersytetów, ośrodków badania opinii oraz samorządów. Rozwiązujemy problemy związane z zdalnym zarządzaniem i decydowaniem w czasach pandemii.
Osoby, które myślą, że udałoby się zorganizować publiczną zbiórkę na społecznie zarządzany projekt są w błędzie. Przypominam, że największe zbiórki pieniędzy na projekty w ramach crowdfundingu w Polsce zbierały ok. 4 mln zł np. na zbudowanie browaru (produkcja piwa), czy uratowanie klubu sportowego Wisły Kraków. Zapytam jeszcze raz - czy naprawdę wierzycie, że Polacy złożyliby się na system do głosowania na tyle masowo, żeby zebrać potrzebną kwotę na jego zaplanowanie i wykonanie? My kwotę 4 mln zł potrzebujemy na ok. 1,5 roku pracy naszego kilkudziesięcio osobowego zespołu na wynagrodzenia dla kryptologów, programistów, profesorów i doktorów informatyki, matematyki, czy specjalistów od Blockchaina, nie wspominając o zarządzaniu takim projektem, które jest bardzo trudne i wymaga od menedżerów ze specjalistyczną niszową wiedzą techniczną już na starcie. Jeśli ktoś krytykuje nasze podejście niech spróbuje zebrać na tego typu projekt odpowiednią kwotę, potem zgromadzić właściwych ludzi i na końcu osiągnąć wszystkie założone kamienie milowe. Dla mnie taka krytyka świadczy o braku wiedzy i oderwaniu od realiów rzeczywistości, czyli jak wspomniałem wyżej to jest marzycielstwo.
Natomiast co do kontroli projektu przez społeczeństwo jeśli miałby być on w przyszłości wykorzystany w wyborach powszechnych to uwaga jest faktycznie słuszna. Nasza spółka planuje umożliwić zakup licencji dla podmiotów prywanych jak i rządowych czy samorządowych, ale też udziałów, a w przyszłości akcji w sposób umożliwiający stworzenie jak najbardziej rozproszonego modelu właścicielskiego. Mówimy na to decentralizacji własności intelektualnej. Planujemy również zarządzać dalszym rozwojem projektu za pomocą tworzonych przez nas narzędzi, czyli współpracować ze społecznością ludzi, którym idee zarządzania przez Internet są bliskie. Faktem jest, że tego typu systemy, gdyby miały wspierać demokrację bezpośrednią w Państwie muszą zostać uspołecznione i to nie nie mówimy tutaj o zakupie przez Skarb Państwa. Mówimy o oddaniu własności tej firmy jak największej liczbie obywateli, którzy świadomie zakupią te udziały lub akcje. Taką możliwość chcemy otworzyć w 2022 roku. Obecnie udziały mogą kupować jedynie zaangażowani w projekcie członkowie zespołu. Wkrótce każdy będzie mógł kupić udziały w spółce realizującej projekt iVoting i decydować o dalszym jego rozwoju przez Internet za pomocą narzędzia iVoting Business obsługującego e-WZA czyli Walne Zgromadzenia Akcjonariuszy.
Czy nie uważa Pan, że projekt systemu do głosowania dla Polaków powinno się zacząć od ogłoszenia społecznego, takiego publicznego zaproszenia do współpracy różnych środowisk, aby wspólnie przygotować wstępną koncepcję, potem określić wymagania i kwerendę? Następnie należałoby dokonać analizy rynku, poszukać innych systemów e-głosowania, zapoznać się z literaturą fachową. Czy nie powinno się sporządzić różnych scenariuszy ataków na system, stworzyć modele zagrożeń i dopiero na tej podstawie opracować koncepcję systemu?
Ale my dokładanie tak to zrobiliśmy. Od początku nasz projekt był otwarty na środowisko naukowe. Proszę zobaczyć nasz team i przeczyć jakie kompetencje posiadają naukowacy pracujący w naszym projekcie (patrz: https://ivoting.pl/team/) - to jest polska elita, która od dwóch lat pracuje nad rozwojem iVoting. Na początku przygotowaliśmy prawie 160 stronicowy dokument techniczny nazywamy go Yellow Paper. Każdy może się z nim zapoznać wystarczy skontaktować się z nami i podpisać umowę NDA. Na podstawie założonych koncepcji opracowaliśmy agendę badawczą, bo każdą koncepcję trzeba przecież empirycznie sprawdzić. Nasze badania zaplanowaliśmy na okres 3 lat. Zakończą się one w połowie 2023 roku. W ramach badań powstaną dwa prototypy naszych protokołów, sieć zdecentralizowanych serwerów rozmieszczonych polskich serwerowniach o podwyższonym standardzie bezpieczeństwa, u polskich operatorów telekomunikacyjnych. Zbudowaliśmy już sieć dla naszego blockchaina oraz zaprojektowaliśmy terminale do głosowania, które mogą pełnić funkcję node rejestrując wszystkie wyniki głosowań w blockchainie, podobnie jak to działa w Bitcoinie. Pracujemy nad stworzeniem hardware walletów - małych urządzeń do głosowania na USB, które będzie można podłączyć do komputera lub telefonu, gdzie będzie można bezpiecznie trzymać klucze szyfrujące, czyli de facto swój głos, podpis cyfrowy i tożsamość cyfrową (analogicznie jak trzyma się bezpiecznie kryptowaluty na podobnych urządzeniach, aby uniknąć ich kradzieży na giełdach kryptowalutowych).
Nasz zespół jest otwarty na merytoryczną dyskusję - zapraszamy do naszej grupy roboczej na Facebooku (https://www.facebook.com/groups/487526448596658/). Mile widziana jest każda osoba, która chciałby wziąć udział w badaniach lub obserwować nasz projekt. Na zakończenie badań będziemy publikować ich wyniki do publicznego wglądu na dwóch konferencjach naukowych dotyczących systemów głosowania. iVoting poddamy ocenie środowisk naukowych oraz zorganizujemy specjalny konkurs dla hakerów z nagrodami, aby wyłapać podatności systemu przed jego masowym wdrożeniem.
Jak Pan odpowie na krytykę w Internecie, że Was system jest niegotowy, w fazie testowania, że wykorzystujecie użytkowników jako darmowych testerów i otwarcie to mówicie, że jest to wszystko na razie na etapie badawczym? Czyli eksperymenty na ludziach? Podobnie do eksperymentów szczepionkowych?
To zabawny zarzut. Jeśli otwarcie mówimy, że to są badania, że aplikacja jest darmowa i w fazie testów to przecież mówimy prawdę. Jasno stawiamy sprawę, całkowicie transparentnie. Dzięki temu każdy może ją używać za darmo. Przygotowaliśmy konretny plan badań (patrz: https://ivoting.pl/nasza-historia/) i przemyśleliśmy jak to wszystko doprowadzić do skutecznego wdrożenia. Czy korporacje zajmujące się szczepionkami udostępniły ludzkości swoją własność intelektualną, czy oddały społeczeństwom swoje wyniki badań? Nie. My to zrobimy - otworzymy kod protokołów, opublikujemy wyniki badań - bo uważamy, że transparentność systemu do głosowania jest kluczowa, tylko tak można zbudować zaufanie ludzi do tego systemu. Każdy programista będzie mógł budować na bazie naszych badań swoje własne systemy do głosowania lub pomagać nam rozwijać nasz system.
Jest bardzo wielu ludzi, którzy są przeciwni wykorzystaniu głosowania przez Internet w wyborach powszechnych - iVoting nie jest tworzony dla tego celu. Aby wykorzystać iVoting do głosowania w wyborach w Polsce konieczne byłoby stworzenie pilotażowego programu oraz specjalnej komisji ekspertów. To zupełnie inne wyzwanie, nie mówiąc o tym, że wielu ludzi nie ufa technologii i uważa, że zagraża ludzkości, podobnie jak bardzo wielu ludzi uważa tak o szczepieniach na COVID. Jeśli w Internecie porównuje się nasz projekt do eksperymentów ze szczepionkami na ludziach to robią to osoby, które po prostu nie zapoznały się z naszym projektem i nie mają wiedzy by go obiektywnie ocenić. Mogą to też być działania konkurencji lub jeśli już obracamy się w świecie teorii spiskowych, może chcą storpedować nasz lub inne społeczne projekty wykorzystujące nasze rozwiązania.
Co do darmowych testerów, proszę mi powiedzieć jak inaczej sprawdzić system poza laboratorium jeśli nie w ten sposób? Oddanie ludziom darmowej aplikacji pomoże nam sprawdzić system na różnych użytkownikach, którzy mają różne umiejętności informatyczne, różne narzędzia (smartfony, komputery), różny poziom dostępu do Internetu, różną lokalizację (decentralizacja). Tylko w taki sposób można na etapie badań przeprowadzić wiarygodne testy systemu przy pomocy właśnie realnych użytkowników w realnym otoczeniu. Dlatego poszukujemy środowisk zaangażowanych, które potrzebują systemów do głosowań przez Internet i w zamian za używanie naszej darmowej aplikacji pomagamy tym organizacjom pozarządowym udostępniając gotowe rozwiązania informatyczne. Odpowiadamy też dzięki temu na ich potrzeby, dodajemy różne funkcjonalności i spełniamy różne oczekiwania rynkowe. W efekcie powstaje aplikacja na bazie prawdziwych potrzeb z rynku, a nie narzucona odgórnie przez grupę projektową, jakąś grupę ekspertów czy jakiś biznes plan. W Internecie krytycy najpierw nam zarzucają, że jesteśmy prywatną firmą, że narzucamy technologię, a potem krytykują nas jak otwieramy się na darmowe testy w dużych grupach społecznych. Czy nie widzicie tutaj oczywistej sprzeczności w tej krytyce?
Przeczytałem gdzieś w Internecie, że głosowania w aplikacji iVoting, nie są anonimowe, że można wydrukować całą historię kto jak głosował i że jest ona pamiętana w systemie. Krytyka dotyczy również tego, że organizatorzy głosowania (np. liderzy organizacji pozarządowych czy też admini zarządzający organizacją głosowania) mają dostęp do danych kto jak głosował. Zarzut dotyczy uczciwość systemu, gdyż umożliwia manipulację głosowaniami poprzez zastraszanie głosujących, którzy zagłosują "nie tak, jak potrzeba". Jak się Pan do tego odniesie?
To są standardowe zarzuty hejterów i ludzi, którzy nie zapoznali się naszym rozwiązaniem. Często Ci ludzie w komentarzach lub w postach promują konkurencyjne rozwiązania, ciekawe dlaczego (bezpośrednio wklejają linki do tych rozwiązań)? Nie ma możliwości drukowania historii kto jak głosował przez organizatora głosowań, ani admin w panelu obsługi systemu tego nie widzi, ani żaden lider organizacji. Nie ma takich funkcji w iVoting Free. Jeśli ktoś chce być anonimowy to pozostaje anonimowy. Organizator głosowania nie może manipulować, zastraszać głosujących, bo nie wie kto jak głosował, jeśli głosowanie jest tajne.
Nawet admini naszej firmy nie mają dostępu do wyników głosowań w aplikacji, bo gdyby tajny głos nie był tajny, to po głosowaniach na Walnych Zgromadzeniach Udziałowców protokoły z wynikami byłyby bezwartościowe, a KRS nie zarejestrowałby zmian. Przeprowadziliśmy już wiele głosowań w spółkach kapitałowych wartych miliony złotych, gdzie decydowały się sprawy zarządów i uchwalania sprawozdań finansowych. To, że polski system prawny, w tym Ministerstwo Sprawiedliwości oraz Sądy wpisują do KRS wyniki głosowań realizowanych za pomocą iVoting świadczy o tym, że spełniamy kryterium tajności głosu na poziomie akceptowalnym przepisami prawa. To najlepszy dowód na to, że tajność głosu jest na odpowiednim poziomie zachowana.
Przechowywanie informacji zostało przygotowane w taki sposób, żeby zminimalizować ryzyko ich zniknięcia. Wykorzystano do tego kilka niezależnych źródeł przechowywania danych, w tym również w innych miejscach na świecie, ale dane są zaszyfrowane. Dane na temat głosowania są więc przechowywane w relacyjnej bazie danych, ręcznie tworzonym logu plikowym oraz zewnętrznym serwisie logowania działań. Tajne głosowania posiadają wszystkie informacje wymagane do logowania zdarzeń, jednak w miejscu informacji o głosie pojawia się liczba -1, uniemożliwiająca sprawdzenie jaki dokładnie głos został oddany. Dane te nie są nigdzie indziej zapisane, co zapewnia najwyższy poziom tajności głosowania.
Powyższe proste rozwiązania problemu tajności głosu zostaną wyniesione na wyższy poziom i wzmocnione algorytmami protokołów, nad którymi prowadzimy badania. Każdy organizator głosowania będzie mógł wybrać w panelu organizatora sposób zabezpieczenia głosu. Jeśli nie podoba mu się blockchain wybierze sobie protokół działający na podstwie chińskiego twierdzenia o resztach. Już w tym roku uruchomimy pierwsze głosowania testowe na blockchainie. Po zakończeniu badań w 2023 roku mogę obiecać wszystkim system do głosowania przez Internet, który będzie najlepszym polskim rozwiązaniem, również dzięki konstruktywnej krytyce, którą przyjmujemy z pokorą i staramy się na nią odpowiedzieć. Zapraszam wszystkich krytyków do otwartej dyskusji, nie ma ludzi i systemów nieomylnych, ale zawsze warto rozmawiać. Zbudujmy razem najlepszy polski system do głosowania przez Internet.