Bulgaria controversially scraps machine voting ahead of local elections

Bulgaria controversially scraps machine voting ahead of local elections
Thousands of people protested in Sofia on October 28 against the decision to scrap machine voting. / Da Bulgaria
By Denitsa Koseva in Sofia October 29, 2023

Bulgarians are voting today in local elections marked by a controversial last minute decision by the central election body, CIK, to scrap machine voting. 

The CIK made the decision ahead of the October 29 local elections and the November 5 runoffs following a questionable claim by several political parties that there was a report by the national security agency (DANS) that the vote might be compromised.

The attack on machine voting was seen as a last-minute effort by political parties set to lose the elections to boost their chances to influence on the results by increasing the share of bribed voters. Unlike paper ballots, machine votes cannot be declared invalid or replaced by fake ballots.

The decision brought thousands of people out onto the streets in Sofia, protesting against the decision to scrap machine voting. 

The protest took place a day after on October 27, the last day of the campaign prior to the vote, four parliamentary-represented political parties demanded the removal of machines, quoting a classified report by DANS and claiming the government manipulated the machines.

According to that claim, made by representatives of the Movement for Rights and Freedoms (DPS), the Bulgarian Socialist Party (BSP), Vazrazhdane and There Are Such People (ITN), cameras at the Ministry of Electronic Governance have captured the Deputy E-Government Minister Mihail Stoynov while “recording on his phone and transferring to a flash memory the process of generating codes for the machine voting”, Radio Free Europe reported.

“Now we can only suspect where [the codes] are. On these elections that are coming there must not be a single machine because all machines are compromised,” ITN’s MP Tosho Yordanov Said.

Gerb’s MP Dessislava Atanasova said this was a huge scandal, while the Magnitsky-sanctioned co-chair of DPS’ parliamentary group, Delyan Peevski, said there is no solution other than scrapping the machines or cancelling the election.

Ex-minister of e-government Bozhidar Bozhanov explained in a post on his blog that video recording of the code generation cannot compromise machine voting and suggested this was a last-minute effort by these political formations to find an excuse for their expected weak results in the capital Sofia, where the candidate of Change Continues-Democratic Bulgaria (CC-DB) is expected to win.

“There is no way for photos or videos to compromise the machines. The source code is probably over half a million lines – anyone who has ever seen a code knows that this is complete nonsense. Nevertheless, the machines are just printers that print receipts, and the result is counted by the section committees,” Bozhanov, of DB, wrote.

He added that the electronic governance ministry provided information to all political parties and coalitions on October 23. 

“There is no way that something that is given by law to all parties allows for manipulation,” Bozhanov, a highly respected software engineer, wrote.

Bozhanov is founder and CEO of the IT cyber security company LogSentinel. He is also one of the driving forces behind the digitalisation of the public sector in Bulgaria.

“The only secret thing in the process on which security depends are the passwords of CIK members and the key that is randomly generated and protected with these passwords. The key is stored in CIK, and the Ministry of e-Governance has neither access to it nor to the passwords that were written by the members of CIK in the process of the so-called trusted build [of the software],” Bozhanov also noted.

“The teams in the Ministry of e-Government should document the process of reviewing, building, testing, provisioning, etc. My assumption is that as part of this process photos and records have been taken by those responsible for the process. The deputy minister was tasked with supervising and coordinating the activities under the Electoral Code,” Bozhanov also said.

He added that claiming that a photo or screen recording compromises the election “is like saying that a cleaner who runs a vacuum cleaner near CIK’s checkout may compromise the elections. In a word, ridiculous”.

Despite that, late on October 27, CIK decided to scrap the machines. It did not say this decision was taken due to possible frauds but accused the e-Government Ministry of failing to provide a document allowing the use of machines in the local election. An hour later, the ministry publicly announced the document.

Meanwhile, CC-DB said that will appeal CIK’s decision. It has also sparked protests against paper ballots in Sofia. Even if the court rules that CIK’s decision was wrong, this will only happen after the election.

In Sofia, the candidate of CC-DB, Vassil Terziev, seems the most likely winner of the vote, ending nearly 20 years of Gerb’s rule. It is highly unclear what the outcome in the rest of the country would be.


SELECT `n`.`nid` AS `id`, `n`.`title`, 'bne IntelliNews' AS authors, 'bne IntelliNews' AS bylines, `wc`.`field_website_callout_value` AS `summary`, `smc`.`field_social_media_callout_value` AS `social`, `pd`.`published_at` AS `date`, `p`.`field_publication__tid` AS `publication_id`, `fm`.`uri` AS `image`, `fspcaption`.`field_story_photo_caption_value` AS `image_credit`, `fspcredit`.`field_story_photo_credit_value` AS `image_author`, `ws`.`field_website_sections_tid` AS `section_id`, `fdfs`.`field_subject_tid` AS `subject_id`, `db`.`body_value` AS `body`, `fm2`.`uri` AS `pdf`, `et`.`field_enable_tracking_value` AS `tracking`, `ht`.`field_head_tags_value` AS `headTags`, `bt`.`field_body_tags_value` AS `bodyTags` FROM `node` AS `n` LEFT JOIN `field_data_field_website_callout` AS `wc` ON wc.entity_id = n.nid LEFT JOIN `field_data_field_social_media_callout` AS `smc` ON smc.entity_id = n.nid LEFT JOIN `publication_date` AS `pd` ON pd.nid = n.nid LEFT JOIN `field_data_field_publication_` AS `p` ON p.entity_id = n.nid LEFT JOIN `field_data_field_story_picture` AS `sp` ON sp.entity_id = n.nid LEFT JOIN `file_managed` AS `fm` ON fm.fid = sp.field_story_picture_fid LEFT JOIN `field_data_field_story_photo_caption` AS `fspcaption` ON fspcaption.entity_id = n.nid LEFT JOIN `field_data_field_story_photo_credit` AS `fspcredit` ON fspcredit.entity_id = n.nid LEFT JOIN `workflow_node` AS `wn` ON wn.nid = n.nid LEFT JOIN `field_data_field_website_sections` AS `ws` ON ws.entity_id = n.nid LEFT JOIN `field_data_field_subject` AS `fdfs` ON fdfs.entity_id = n.nid LEFT JOIN `field_data_body` AS `db` ON db.entity_id = n.nid LEFT JOIN `field_data_field_file` AS `ff` ON ff.entity_id = n.nid LEFT JOIN `file_managed` AS `fm2` ON fm2.fid = ff.field_file_fid LEFT JOIN `field_data_field_enable_tracking` AS `et` ON et.entity_id = n.nid LEFT JOIN `field_data_field_head_tags` AS `ht` ON ht.entity_id = n.nid LEFT JOIN `field_data_field_body_tags` AS `bt` ON bt.entity_id = n.nid WHERE (n.status = 1) AND (n.type = 'article') AND (n.nid = 298856) AND (wn.sid= 3) AND (p.field_publication__tid IN (2465,2851,3184,3159,3266,3264,3270,3265,3267,3268,3269,3171,3168,3185,3170,1346,1345,3180,3175,3254,3249,1207,1208,3181,3231,3177,3186,3178,1003,3187,2975,3204,3198,3188,3202,3196,3250,3189,3160,3161,3312,3313,3173,3314,3315,3167,3259,3257,3263,3258,3260,3261,3262,3174,3316,3165,3192,3163,3282,3190,2811,3256,3317,3162,3318,3191,3297,3182,3179,3166,3319,3376,3320,3172,3255,3169,1008,3203,3197,3321,3252,3164,1307,3322,3183,3220,3176,3201,3323,1327,1020,1006,1009,1013,1014,1018,1005,1328,1010,1011,1002,1012,1311,1330,1017,1016,1019,1004,1001,1334,1335,1336,1015,1337,1338,1339,1340,1341,2496,2501,2517,2529,2506,2505,2524,2513,2526,2537,2489,2490,2520,2536,2488,2532,2500,2515,2503,2493,2527,2523,2510,2525,2498,2499,2528,2507,2487,2511,2521,2502,2491,2519,2497,2492,2514,2495,2509,2512,1629,3358)) LIMIT 1