<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sequent</title>
	<atom:link href="/feed/" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>Online Voting Platform</description>
	<lastBuildDate>Wed, 29 May 2024 17:03:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.7</generator>

<image>
	<url>/wp-content/uploads/2022/06/cropped-FAV-6-32x32.png</url>
	<title>Sequent</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What Is Homomorphic Tallying?</title>
		<link>/glossary/what-is-homomorphic-tallying/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Wed, 03 Apr 2024 14:54:07 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Glossary]]></category>
		<guid isPermaLink="false">/?p=2164</guid>

					<description><![CDATA[<p>Voting systems based on homomorphic tallying leverage the power of encryption’s homomorphic property to compute tallies. This unique property enables the addition of encrypted numbers without decryption. By applying this technique to voting, we can compute election results without decrypting individual votes, ensuring the secrecy of each ballot. However, there are challenges to overcome. We [&#8230;]</p>
<p>The post <a href="/glossary/what-is-homomorphic-tallying/">What Is Homomorphic Tallying?</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="2164" class="elementor elementor-2164" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-2e53c8c e-flex e-con-boxed e-con e-parent" data-id="2e53c8c" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-30e31b0e elementor-widget elementor-widget-text-editor" data-id="30e31b0e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
			<style>/*! elementor - v3.21.0 - 26-05-2024 */
.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}</style>				<p>Voting systems based on homomorphic tallying leverage the power of encryption’s homomorphic property to compute tallies. This unique property enables the addition of encrypted numbers without decryption. By applying this technique to voting, we can compute election results without decrypting individual votes, ensuring the secrecy of each ballot. However, there are challenges to overcome. We need to encode voter selections in a way compatible with summing, typically using vectors of ciphertexts where 1 represents a marked option and 0 represents an unmarked one. Additionally, we must ensure that the encrypted choices are valid, guarding against nonsensical or maliciously constructed ballots. Zero-knowledge proofs play a crucial role in verifying ballot validity while preserving ballot contents’ confidentiality.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-fd3f3c6 e-flex e-con-boxed e-con e-parent" data-id="fd3f3c6" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-519d59e5 e-con-full e-flex elementor-invisible e-con e-child" data-id="519d59e5" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-461d9367 elementor-widget elementor-widget-button" data-id="461d9367" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/glossary/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-1a647063 elementor-widget elementor-widget-heading" data-id="1a647063" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<style>/*! elementor - v3.21.0 - 26-05-2024 */
.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}</style><div class="elementor-heading-title elementor-size-default">Glossary</div>		</div>
				</div>
		<div class="elementor-element elementor-element-1c57cbe5 e-flex e-con-boxed e-con e-child" data-id="1c57cbe5" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a425732 elementor-widget elementor-widget-image" data-id="a425732" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
			<style>/*! elementor - v3.21.0 - 26-05-2024 */
.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=".svg"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}</style>										<img fetchpriority="high" decoding="async" width="700" height="700" src="/wp-content/uploads/2024/04/sequent-glossary-icons-homomorphic-tallying.svg" class="attachment-large size-large wp-image-2100" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-7a787805 elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="7a787805" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">What Is Homomorphic Tallying?</h1>		</div>
				</div>
					</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-26526f20 e-flex e-con-boxed e-con e-parent" data-id="26526f20" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3ee3baa8 elementor-widget elementor-widget-text-editor" data-id="3ee3baa8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Voting systems based on homomorphic tallying leverage the power of encryption’s homomorphic property to compute tallies. This unique property enables the addition of encrypted numbers without decryption. By applying this technique to voting, we can compute election results without decrypting individual votes, ensuring the secrecy of each ballot. However, there are challenges to overcome. We need to encode voter selections in a way compatible with summing, typically using vectors of ciphertexts where 1 represents a marked option and 0 represents an unmarked one. Additionally, we must ensure that the encrypted choices are valid, guarding against nonsensical or maliciously constructed ballots. Zero-knowledge proofs play a crucial role in verifying ballot validity while preserving ballot contents’ confidentiality.</p>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/glossary/what-is-homomorphic-tallying/">What Is Homomorphic Tallying?</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What Is End-To-End Verifiable Voting?</title>
		<link>/glossary/what-is-end-to-end-verifiable-voting/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Wed, 03 Apr 2024 13:28:29 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Glossary]]></category>
		<guid isPermaLink="false">/?p=2146</guid>

					<description><![CDATA[<p>End-to-end auditable or end-to-end voter-verifiable (E2E) voting systems have a high level of integrity and are resistant to tampering. E2E verifiability means that all the processes necessary for the integrity of an election can be verified online. Essentially, the system can prove that all steps of the election were correctly completed. End-to-end verifiability (E2E) in [&#8230;]</p>
<p>The post <a href="/glossary/what-is-end-to-end-verifiable-voting/">What Is End-To-End Verifiable Voting?</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="2146" class="elementor elementor-2146" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-1f3a4026 e-flex e-con-boxed e-con e-parent" data-id="1f3a4026" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-64c64c58 elementor-widget elementor-widget-text-editor" data-id="64c64c58" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>End-to-end auditable or end-to-end voter-verifiable (E2E) voting systems have a high level of integrity and are resistant to tampering. E2E verifiability means that all the processes necessary for the integrity of an election can be verified online. Essentially, the system can prove that all steps of the election were correctly completed.</p><div id="1684304926.589479" class="c-virtual_list__item c-virtual_list__item--initial-activeitem" tabindex="0" role="listitem" aria-setsize="-1" data-qa="virtual-list-item" data-item-key="1684304926.589479"><div class="c-message_kit__background p-message_pane_message__message c-message_kit__message p-message_pane_message__message--showing_context_bar" role="presentation" data-qa="message_container" data-qa-unprocessed="false" data-qa-placeholder="false"><div class="c-message_kit__hover" role="document" aria-roledescription="message" data-qa-hover="true"><div class="c-message_kit__actions c-message_kit__actions--default"><div class="c-message_kit__gutter"><div class="c-message_kit__gutter__right" role="presentation" data-qa="message_content"><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text" data-qa="message-text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">End-to-end verifiability (E2E) in online voting refers to the ability of voters to verify that their vote has been recorded and counted accurately, without relying on the trustworthiness of any intermediary. In an E2E system, voters can verify that their vote has been accurately recorded and counted by checking the encrypted record of their vote against a public record of the final tally. This ensures that the integrity of the voting process is preserved, as voters can verify that their vote has been counted accurately without having to trust that the voting system or any other intermediaries have not tampered with the vote. E2E systems can help to increase confidence in the integrity of online voting and may be an important component of a secure online voting system.</div></div></div></div></div></div></div></div></div></div></div></div>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3682938b e-flex e-con-boxed e-con e-parent" data-id="3682938b" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-c91a23f e-con-full e-flex elementor-invisible e-con e-child" data-id="c91a23f" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-4c481d3d elementor-widget elementor-widget-button" data-id="4c481d3d" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/glossary/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-17d21ae1 elementor-widget elementor-widget-heading" data-id="17d21ae1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Glossary</div>		</div>
				</div>
		<div class="elementor-element elementor-element-328678eb e-flex e-con-boxed e-con e-child" data-id="328678eb" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2754647 elementor-widget elementor-widget-image" data-id="2754647" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" width="700" height="700" src="/wp-content/uploads/2024/04/sequent-glossary-icons-end-to-end-verifiability.svg" class="attachment-large size-large wp-image-2099" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-ed53ffd elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="ed53ffd" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">What Is End-To-End Verifiable Voting?</h1>		</div>
				</div>
					</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4ee86ae e-flex e-con-boxed e-con e-parent" data-id="4ee86ae" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-514fd96 elementor-widget elementor-widget-text-editor" data-id="514fd96" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>End-to-end auditable or end-to-end voter-verifiable (E2E) voting systems have a high level of integrity and are resistant to tampering.</p><p>E2E verifiability means that all the processes necessary for the integrity of an election can be verified online. Essentially, the system can prove that all steps of the election were correctly completed.</p><div id="1684304926.589479" class="c-virtual_list__item c-virtual_list__item--initial-activeitem" tabindex="0" role="listitem" aria-setsize="-1" data-qa="virtual-list-item" data-item-key="1684304926.589479"><div class="c-message_kit__background p-message_pane_message__message c-message_kit__message p-message_pane_message__message--showing_context_bar" role="presentation" data-qa="message_container" data-qa-unprocessed="false" data-qa-placeholder="false"><div class="c-message_kit__hover" role="document" aria-roledescription="message" data-qa-hover="true"><div class="c-message_kit__actions c-message_kit__actions--default"><div class="c-message_kit__gutter"><div class="c-message_kit__gutter__right" role="presentation" data-qa="message_content"><div class="c-message_kit__blocks c-message_kit__blocks--rich_text"><div class="c-message__message_blocks c-message__message_blocks--rich_text" data-qa="message-text"><div class="p-block_kit_renderer" data-qa="block-kit-renderer"><div class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"><div class="p-rich_text_block" dir="auto"><div class="p-rich_text_section">End-to-end verifiability (E2E) in online voting refers to the ability of voters to verify that their vote has been recorded and counted accurately, without relying on the trustworthiness of any intermediary. In an E2E system, voters can verify that their vote has been accurately recorded and counted by checking the encrypted record of their vote against a public record of the final tally. This ensures that the integrity of the voting process is preserved, as voters can verify that their vote has been counted accurately without having to trust that the voting system or any other intermediaries have not tampered with the vote. E2E systems can help to increase confidence in the integrity of online voting and may be an important component of a secure online voting system.</div></div></div></div></div></div></div></div></div></div></div></div>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/glossary/what-is-end-to-end-verifiable-voting/">What Is End-To-End Verifiable Voting?</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What are Online Voting Systems?</title>
		<link>/glossary/what-are-online-voting-systems/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Wed, 03 Apr 2024 13:20:17 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Glossary]]></category>
		<guid isPermaLink="false">/?p=2131</guid>

					<description><![CDATA[<p>Online voting systems are websites or software programs that are designed to facilitate the process of online voting. Online voting systems may also be referred to as online elections, electronic voting systems, or e-voting systems. They provide governments and private organizations with a platform to conduct secure elections and votes. These systems typically provide a [&#8230;]</p>
<p>The post <a href="/glossary/what-are-online-voting-systems/">What are Online Voting Systems?</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="2131" class="elementor elementor-2131" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-5e2f9d7f e-flex e-con-boxed e-con e-parent" data-id="5e2f9d7f" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-225567a4 elementor-widget elementor-widget-text-editor" data-id="225567a4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Online voting systems are websites or software programs that are designed to facilitate the process of online voting. Online voting systems may also be referred to as online elections, electronic voting systems, or e-voting systems. They provide governments and private organizations with a platform to conduct secure elections and votes. These systems typically provide a secure platform for voters to log in, view the available choices, and cast their votes. They may also include features such as voter authentication, vote tracking, and real-time results reporting. Online voting systems are designed to be user-friendly and easy to use, while also providing a high level of security to protect the integrity of the voting process.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-43217bcb e-flex e-con-boxed e-con e-parent" data-id="43217bcb" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-69352334 e-con-full e-flex elementor-invisible e-con e-child" data-id="69352334" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-40d60fdd elementor-widget elementor-widget-button" data-id="40d60fdd" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/glossary/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-70c8a49a elementor-widget elementor-widget-heading" data-id="70c8a49a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Glossary</div>		</div>
				</div>
		<div class="elementor-element elementor-element-01e6f53 e-flex e-con-boxed e-con e-child" data-id="01e6f53" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3534290 elementor-widget elementor-widget-image" data-id="3534290" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" width="700" height="700" src="/wp-content/uploads/2024/04/sequent-glossary-online-voting-systems.svg" class="attachment-large size-large wp-image-2101" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-442e066c elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="442e066c" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">What are Online Voting Systems?</h1>		</div>
				</div>
					</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-606496af e-flex e-con-boxed e-con e-parent" data-id="606496af" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-aba9750 elementor-widget elementor-widget-text-editor" data-id="aba9750" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Online voting systems are websites or software programs that are designed to facilitate the process of online voting. Online voting systems may also be referred to as online elections, electronic voting systems, or e-voting systems. They provide governments and private organizations with a platform to conduct secure elections and votes. These systems typically provide a secure platform for voters to log in, view the available choices, and cast their votes. They may also include features such as voter authentication, vote tracking, and real-time results reporting. Online voting systems are designed to be user-friendly and easy to use, while also providing a high level of security to protect the integrity of the voting process.</p>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/glossary/what-are-online-voting-systems/">What are Online Voting Systems?</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blockchains and Bulletin Boards</title>
		<link>/tech/blockchains-and-bulletin-boards/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Mon, 26 Jun 2023 08:21:36 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1811</guid>

					<description><![CDATA[<p>Bulletin boards play a vital role in ensuring the integrity and verifiability of cryptographically secure voting systems. Acting as a centralized storage system, the bulletin board serves as a transparent platform where all public information related to the election is openly published, enabling anyone to scrutinise, assess, and audit the process. Go Back Blog Add [&#8230;]</p>
<p>The post <a href="/tech/blockchains-and-bulletin-boards/">Blockchains and Bulletin Boards</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1811" class="elementor elementor-1811" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-6974651 e-flex e-con-boxed e-con e-parent" data-id="6974651" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6dcc8e3 elementor-widget elementor-widget-text-editor" data-id="6dcc8e3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Bulletin boards play a vital role in ensuring the integrity and verifiability of cryptographically secure voting systems. Acting as a centralized storage system, the bulletin board serves as a transparent platform where all public information related to the election is openly published, enabling anyone to scrutinise, assess, and audit the process.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3447a5e0 e-flex e-con-boxed e-con e-parent" data-id="3447a5e0" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-5a8969a e-con-full e-flex elementor-invisible e-con e-child" data-id="5a8969a" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-639fd078 elementor-widget elementor-widget-button" data-id="639fd078" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-4b7e57c1 elementor-widget elementor-widget-heading" data-id="4b7e57c1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-34a1f97d elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="34a1f97d" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">Blockchains and Bulletin Boards</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-2d99679d elementor-widget elementor-widget-text-editor" data-id="2d99679d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Technology</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ff757c9 e-flex e-con-boxed e-con e-parent" data-id="ff757c9" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-4d1065a4 e-con-full e-flex e-con e-child" data-id="4d1065a4" data-element_type="container">
				<div class="elementor-element elementor-element-7f793013 uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="7f793013" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2c573c8e e-con-full e-flex e-con e-child" data-id="2c573c8e" data-element_type="container">
				<div class="elementor-element elementor-element-3bb061cb elementor-widget elementor-widget-image" data-id="3bb061cb" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="590" height="271" src="/wp-content/uploads/2024/03/blockchain-img.png" class="attachment-full size-full wp-image-1815" alt="" srcset="/wp-content/uploads/2024/03/blockchain-img.png 590w, /wp-content/uploads/2024/03/blockchain-img-300x138.png 300w" sizes="(max-width: 590px) 100vw, 590px" />													</div>
				</div>
				<div class="elementor-element elementor-element-4584202 elementor-widget elementor-widget-heading" data-id="4584202" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Introduction</h2>		</div>
				</div>
		<div class="elementor-element elementor-element-4180cbb7 e-flex e-con-boxed e-con e-child" data-id="4180cbb7" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-562ecf63 elementor-widget elementor-widget-text-editor" data-id="562ecf63" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Bulletin boards play a vital role in ensuring the integrity and verifiability of cryptographically secure voting systems. Acting as a centralized storage system, the bulletin board serves as a transparent platform where all public information related to the election is openly published, enabling anyone to scrutinise, assess, and audit the process. In the realm of end-to-end verifiable voting systems, the bulletin board becomes even more significant as it holds crucial information required to validate the adherence to established protocols, confirm the accuracy of the reported results, and safeguard against any potential manipulation by administrators or other entities.</p><p>In a typical scenario, the bulletin board acts as a repository for various essential components of a voting system. It securely stores crucial information, including public keys and key generation specifics, records of voting events and encrypted votes, decryption and tally results, and robust mathematical proofs validating the accuracy of these elements. Moreover, the bulletin board assumes the role of an audit ledger, diligently logging significant events and actions, and providing a transparent record that can be accessed and reviewed by anyone seeking to ensure the system’s integrity.</p><p>There are some desirable properties that bulletin boards must have to better meet their objectives:</p>						</div>
				</div>
					</div>
				</div>
				<div class="elementor-element elementor-element-306daba2 elementor-widget elementor-widget-heading" data-id="306daba2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">1. Distributed
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-e89c4fe elementor-widget elementor-widget-text-editor" data-id="e89c4fe" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In this way, elections can continue to be conducted despite DDOS attacks. In order to achieve this property, hard problems such as byzantine consensus and distribution engineering challenges must be resolved.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-bae6089 elementor-widget elementor-widget-heading" data-id="bae6089" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">2. Chronological
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-3fc70a95 elementor-widget elementor-widget-text-editor" data-id="3fc70a95" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Logging of events and data on the bulletin board should reflect the order in which they occur.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-9180a64 elementor-widget elementor-widget-heading" data-id="9180a64" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">3. Tamper-Resistant
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-e48f905 elementor-widget elementor-widget-text-editor" data-id="e48f905" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>It should not be possible to manipulate results or remove records from the audit log by altering bulletin board records.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c153f41 elementor-widget elementor-widget-heading" data-id="c153f41" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">4. Publically Auditable
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-2b14d21 elementor-widget elementor-widget-text-editor" data-id="2b14d21" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Information on bulletin boards should be auditable by anyone. Specifically, this property should be supportive of end-to-end verifiability.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-aab5ce5 elementor-widget elementor-widget-heading" data-id="aab5ce5" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">5. Access Controlled and Authenticated
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-018bb4e elementor-widget elementor-widget-text-editor" data-id="018bb4e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>A bulletin board should include mechanisms for controlling what information can be posted, as well as digital signatures for information and receipts for certification.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-649f6811 elementor-widget elementor-widget-heading" data-id="649f6811" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">In Summary
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-42c5c051 elementor-widget elementor-widget-text-editor" data-id="42c5c051" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Developing a robust bulletin board using blockchain technologies could be a fascinating research project. As well as offering some support for signatures, blockchain technology seems particularly well suited to satisfy distribution, chronology, tamper resistance, and auditing needs. To ensure that the throughput is compatible with voting needs, efficiency considerations regarding the number of “transactions” per second would also need to be considered.</p>						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/tech/blockchains-and-bulletin-boards/">Blockchains and Bulletin Boards</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Degree of Privacy in Voting</title>
		<link>/research/degree-of-privacy-in-voting/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Tue, 30 May 2023 08:37:41 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1849</guid>

					<description><![CDATA[<p>This article demonstrates the natural extension of Diaz’s 2002 degree of anonymity model to voting scenarios. The outcome is straightforward but holds potential value for intricate cases like weighted voting, where privacy concerns surpass the conventional “bisimilarity-under-swapping” definition outlined by Delaune in 2009. These concerns arise from the possibility of information leakage through election results, [&#8230;]</p>
<p>The post <a href="/research/degree-of-privacy-in-voting/">Degree of Privacy in Voting</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1849" class="elementor elementor-1849" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-6976bde8 e-flex e-con-boxed e-con e-parent" data-id="6976bde8" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6a1ec063 elementor-widget elementor-widget-text-editor" data-id="6a1ec063" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This article demonstrates the natural extension of Diaz’s 2002 degree of anonymity model to voting scenarios. The outcome is straightforward but holds potential value for intricate cases like weighted voting, where privacy concerns surpass the conventional “bisimilarity-under-swapping” definition outlined by Delaune in 2009. These concerns arise from the possibility of information leakage through election results, as highlighted in Delaune’s work:</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-640a2146 e-flex e-con-boxed e-con e-parent" data-id="640a2146" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-77a5ffa7 e-con-full e-flex elementor-invisible e-con e-child" data-id="77a5ffa7" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-341d4fd2 elementor-widget elementor-widget-button" data-id="341d4fd2" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-6473aa36 elementor-widget elementor-widget-heading" data-id="6473aa36" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-1185ce elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="1185ce" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">Degree of Privacy in Voting</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-100c7ccc elementor-widget elementor-widget-text-editor" data-id="100c7ccc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Research</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6b8518e8 e-flex e-con-boxed e-con e-parent" data-id="6b8518e8" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-3a971c92 e-con-full e-flex e-con e-child" data-id="3a971c92" data-element_type="container">
				<div class="elementor-element elementor-element-1570ae97 uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="1570ae97" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-35207229 e-con-full e-flex e-con e-child" data-id="35207229" data-element_type="container">
				<div class="elementor-element elementor-element-21186f27 elementor-widget elementor-widget-image" data-id="21186f27" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="768" height="403" src="/wp-content/uploads/2024/03/Sequent-Degree-of-privacy-in-voting-person-phone-768x403-1.png" class="attachment-full size-full wp-image-1850" alt="" srcset="/wp-content/uploads/2024/03/Sequent-Degree-of-privacy-in-voting-person-phone-768x403-1.png 768w, /wp-content/uploads/2024/03/Sequent-Degree-of-privacy-in-voting-person-phone-768x403-1-300x157.png 300w" sizes="(max-width: 768px) 100vw, 768px" />													</div>
				</div>
		<div class="elementor-element elementor-element-7192251b e-flex e-con-boxed e-con e-child" data-id="7192251b" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1ab238db elementor-widget elementor-widget-text-editor" data-id="1ab238db" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This article demonstrates the natural extension of Diaz’s 2002 degree of anonymity model to voting scenarios. The outcome is straightforward but holds potential value for intricate cases like weighted voting, where privacy concerns surpass the conventional “bisimilarity-under-swapping” definition outlined by Delaune in 2009. These concerns arise from the possibility of information leakage through election results, as highlighted in Delaune’s work:</p><p>It is important to note that the definition of “bisimilarity-under-swapping” remains resilient even in scenarios where the outcome of the election necessitates the disclosure of votes from VA and VB. This applies to situations such as unanimous voting or when other voters reveal their choices, leading to the deduction of votes for VA and VB.</p><p>The notion that information can potentially leak from voting results directs our attention to the degree of anonymity model. This model, rooted in information theory, enables the quantification of anonymity provided by anonymous connection schemes. It considers attackers who gather probabilistic information about users. Unlike the standard possibilistic privacy definition for voting, the degree of information in this model pertains to probabilistic inference. The measure is not binary; instead, it quantifies the amount of information an attacker can obtain by observing the process. In the context of voting, as discussed later, the attacker acquires information by observing the results, which are accessible regardless of the existence of ballot privacy.</p><p>By quantifying information gain, entropy naturally results (Diaz 2009).</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c06ac86 elementor-widget elementor-widget-image" data-id="c06ac86" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="277" src="/wp-content/uploads/2024/03/1-1024x354.png" class="attachment-large size-large wp-image-1859" alt="" srcset="/wp-content/uploads/2024/03/1-1024x354.png 1024w, /wp-content/uploads/2024/03/1-300x104.png 300w, /wp-content/uploads/2024/03/1-768x266.png 768w, /wp-content/uploads/2024/03/1.png 1179w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-d035ca7 elementor-widget elementor-widget-text-editor" data-id="d035ca7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>As a measure of degree of anonymity, the authors apply a normalization factor based on maximum entropy (zero information leakage):</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4595dff elementor-widget elementor-widget-image" data-id="4595dff" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="313" src="/wp-content/uploads/2024/03/2-1024x400.png" class="attachment-large size-large wp-image-1860" alt="" srcset="/wp-content/uploads/2024/03/2-1024x400.png 1024w, /wp-content/uploads/2024/03/2-300x117.png 300w, /wp-content/uploads/2024/03/2-768x300.png 768w, /wp-content/uploads/2024/03/2.png 1180w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-a5dedba elementor-widget elementor-widget-text-editor" data-id="a5dedba" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Given the normalization</p>						</div>
				</div>
				<div class="elementor-element elementor-element-b5c0018 elementor-widget elementor-widget-image" data-id="b5c0018" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="189" src="/wp-content/uploads/2024/03/3-1024x242.png" class="attachment-large size-large wp-image-1861" alt="" srcset="/wp-content/uploads/2024/03/3-1024x242.png 1024w, /wp-content/uploads/2024/03/3-300x71.png 300w, /wp-content/uploads/2024/03/3-768x181.png 768w, /wp-content/uploads/2024/03/3.png 1156w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
					</div>
				</div>
				<div class="elementor-element elementor-element-8c308c1 elementor-widget elementor-widget-heading" data-id="8c308c1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Extension to Voting
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-777d12c elementor-widget elementor-widget-text-editor" data-id="777d12c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Using the degree of anonymity model, we can determine who sent a message out of possible groups (the anonymity set). This model should be extended to the case of voting, where the attacker wants to determine the voter’s choice. The availability of individual votes as plaintexts varies depending on the secure voting scheme employed. Consequently, the translation between different scenarios is not instantaneous. In one case, the focus is on determining a single variable out of n options, while in the context of voting, the objective is to ascertain vote choices based on election results.</p><p>However, it is possible to incorporate probabilities directly into the degree of anonymity model. These probabilities should be derived from the election results, as they constitute the publicly available information accessible to the attacker. Furthermore, it is desirable to establish a general approach that does not rely on the specific electoral method or the format of the election result. We start with:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a5f5846 elementor-widget elementor-widget-image" data-id="a5f5846" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="165" height="63" src="/wp-content/uploads/2024/03/4.png" class="attachment-large size-large wp-image-1866" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-d848bc1 elementor-widget elementor-widget-text-editor" data-id="d848bc1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>These are sets of voters, choices and election results.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d5798de elementor-widget elementor-widget-image" data-id="d5798de" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="151" height="36" src="/wp-content/uploads/2024/03/5.png" class="attachment-large size-large wp-image-1867" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-f67f813 elementor-widget elementor-widget-text-editor" data-id="f67f813" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The function ‘a’ represents the individual voter’s selection, defined as a mapping that associates each voter with their respective choice. On the other hand, the function ‘t’ denotes the election tally, which maps the set of choices made by voters to the corresponding result.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a858cd8 elementor-widget elementor-widget-image" data-id="a858cd8" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="247" height="41" src="/wp-content/uploads/2024/03/6.png" class="attachment-large size-large wp-image-1868" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-de473ed elementor-widget elementor-widget-text-editor" data-id="de473ed" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ar corresponds to the set of all functions ‘a’ that generate the outcome ‘r’, representing the sets of selections made by voters. Expanding on this, the function ‘m’ denotes the count of distinct functions ‘a’ in which voter ‘v’ selects choice ‘c’ and the overall result is ‘r’. In essence, it quantifies the number of instances where voter ‘v’ chooses ‘c’ and the final result corresponds to ‘r’.</p><p>These expressions allow us to provide equivalent expressions for the terms in the original definition of degree of anonymity. According to the election result, the entropy corresponding to the uncertainty of a voter’s choice is</p>						</div>
				</div>
				<div class="elementor-element elementor-element-001bea1 elementor-widget elementor-widget-image" data-id="001bea1" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="141" src="/wp-content/uploads/2024/03/7.png" class="attachment-large size-large wp-image-1869" alt="" srcset="/wp-content/uploads/2024/03/7.png 845w, /wp-content/uploads/2024/03/7-300x53.png 300w, /wp-content/uploads/2024/03/7-768x135.png 768w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-437cf5c elementor-widget elementor-widget-text-editor" data-id="437cf5c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In this case, entropy is simply the standard expression for entropy, but with probabilities that correspond to the likelihood that a certain choice will be selected given a certain election result. When there is no information about the election, the maximum entropy corresponds to a uniform probability distribution for the voter’s choice, resulting in</p>						</div>
				</div>
				<div class="elementor-element elementor-element-663def2 elementor-widget elementor-widget-image" data-id="663def2" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="119" height="19" src="/wp-content/uploads/2024/03/8.png" class="attachment-large size-large wp-image-1870" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-49e4477 elementor-widget elementor-widget-text-editor" data-id="49e4477" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>where |C| is the number of choices (the cardinality of C). Finally, the degree of privacy is</p>						</div>
				</div>
				<div class="elementor-element elementor-element-77c17b3 elementor-widget elementor-widget-image" data-id="77c17b3" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="110" height="42" src="/wp-content/uploads/2024/03/9.png" class="attachment-large size-large wp-image-1871" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-6d6264c elementor-widget elementor-widget-text-editor" data-id="6d6264c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>which quantifies the degree to which a voter’s v choice remains secret given the election result r. This expression exhibits similarities to the degree of anonymity model, albeit with certain modifications. Firstly, we are addressing the degree of privacy, quantifying the level of knowledge about a voter’s choice, rather than attempting to de-anonymize the sender of a message. Furthermore, this result pertains to each individual voter. While this characteristic may not always be relevant, it holds significance in scenarios involving weighted voting, where voters possess distinct degrees of anonymity. Additionally, it is possible to derive aggregate values, such as the average or minimum degree of anonymity. Another generalization involves computing expectation values over results for a given setup. As an extreme example, in an election with a single voter, the degree of anonymity would always be 0, regardless of the result.</p><p>As mentioned previously, the aforementioned definition applies universally to any election, regardless of the electoral method, result type, or even the design of the ballot. Now, let’s delve into some specific examples to further illustrate this point.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-62a429a elementor-widget elementor-widget-heading" data-id="62a429a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Examples</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-f4ee792 elementor-widget elementor-widget-text-editor" data-id="f4ee792" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>We calculate values for examples. In all cases we are using a plurality rule for the function t: V =&gt; C =&gt; R.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-9446887 elementor-widget elementor-widget-heading" data-id="9446887" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Yes/No vote, Single voter
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-8932993 elementor-widget elementor-widget-text-editor" data-id="8932993" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This is a Yes/No vote (ballot options are Yes or No). We have a single voter, John.</p><p>V = { John }, C = { Yes, No }, R = { {Yes:1, No:0}, {Yes:0, No:1} }</p><p>In the following expression:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-1be154c elementor-widget elementor-widget-image" data-id="1be154c" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="141" src="/wp-content/uploads/2024/03/7.png" class="attachment-large size-large wp-image-1869" alt="" srcset="/wp-content/uploads/2024/03/7.png 845w, /wp-content/uploads/2024/03/7-300x53.png 300w, /wp-content/uploads/2024/03/7-768x135.png 768w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-90d5ff3 elementor-widget elementor-widget-text-editor" data-id="90d5ff3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The value of n is 2, for two possible results (the cardinality of C). Consider the case where r = Yes, then</p><p>Ar = { (John, Yes) }, and |Ar| = 1</p><p>since it is the only way that John could have voted. Similarly,</p><p>m(John, Yes, Yes) = 1 and m(John, No, Yes) = 0</p><p>again, for the same reason. The entropy then reduces to</p><p>H(v, r) = 1/1*log(1/1) = 0</p><p>which when plugged into</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e97114f elementor-widget elementor-widget-image" data-id="e97114f" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="110" height="42" src="/wp-content/uploads/2024/03/9.png" class="attachment-large size-large wp-image-1871" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-1600a3a elementor-widget elementor-widget-text-editor" data-id="1600a3a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>gives</p><p>d(John, Yes) = d(John, No) = 0</p><p>The degree of anonymity is zero. This matches the obvious fact that in an election with a single voter, their vote will be revealed.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d2cdd94 elementor-widget elementor-widget-heading" data-id="d2cdd94" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Yes/No vote, Unanimous result</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-11aa454 elementor-widget elementor-widget-text-editor" data-id="11aa454" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>V = { v1 … vn }, C = { Yes, No }, R = { {Yes:n, No:0}, {Yes:0, No:n} }</p><p>In the following expression:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-53a6cf5 elementor-widget elementor-widget-image" data-id="53a6cf5" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="141" src="/wp-content/uploads/2024/03/7.png" class="attachment-large size-large wp-image-1869" alt="" srcset="/wp-content/uploads/2024/03/7.png 845w, /wp-content/uploads/2024/03/7-300x53.png 300w, /wp-content/uploads/2024/03/7-768x135.png 768w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-5126c40 elementor-widget elementor-widget-text-editor" data-id="5126c40" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>we see that the unanimous vote case has a similar form as the case of a single voter, except for a general number of voters and results:</p><p>|Ar| = 1</p><p>for all r, and also</p><p>m(v, Yes, {Yes:0, No: 10} ) = 0 and m(v, Yes, {Yes:10, No: 0} ) = 1</p><p>which leads to</p><p>d(v, r) = 0</p><p>for all v and r. Once again, this matches the obvious expectation: in a unanimous election, all votes are disclosed.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-75f4ca0 elementor-widget elementor-widget-heading" data-id="75f4ca0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Yes/No vote, General case
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-a9a0410 elementor-widget elementor-widget-text-editor" data-id="a9a0410" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>V = { v1 … vn }, C = { Yes, No }, R = { {Yes:n, No:0} … {Yes:0, No:n} }</p><p>In this case, the cardinality of R is |C|, as we are not confining the results solely to unanimous outcomes. The calculation for |Ar| and m deviates from the previous approach. By indexing the results in R based on the number of positive votes, we obtain the following:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a4e1b46 elementor-widget elementor-widget-image" data-id="a4e1b46" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="100" height="45" src="/wp-content/uploads/2024/03/13.png" class="attachment-large size-large wp-image-1878" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-87ebbee elementor-widget elementor-widget-text-editor" data-id="87ebbee" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>with a binomial coefficient on the right. This is the number of ways it is possible to obtain the result r. We also have</p>						</div>
				</div>
				<div class="elementor-element elementor-element-57ca209 elementor-widget elementor-widget-image" data-id="57ca209" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="198" height="45" src="/wp-content/uploads/2024/03/14.png" class="attachment-large size-large wp-image-1879" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-3859e78 elementor-widget elementor-widget-text-editor" data-id="3859e78" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>dividing the previous two expressions provides</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e60edec elementor-widget elementor-widget-image" data-id="e60edec" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="103" height="53" src="/wp-content/uploads/2024/03/15.png" class="attachment-large size-large wp-image-1880" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-bd3294d elementor-widget elementor-widget-text-editor" data-id="bd3294d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Because this is a Yes/No election</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8ea60b6 elementor-widget elementor-widget-image" data-id="8ea60b6" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="222" height="45" src="/wp-content/uploads/2024/03/16.png" class="attachment-large size-large wp-image-1881" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-e383ba9 elementor-widget elementor-widget-text-editor" data-id="e383ba9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>which when divided by |Ar|</p>						</div>
				</div>
				<div class="elementor-element elementor-element-973eae5 elementor-widget elementor-widget-image" data-id="973eae5" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="151" height="58" src="/wp-content/uploads/2024/03/17.png" class="attachment-large size-large wp-image-1882" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-e22e790 elementor-widget elementor-widget-text-editor" data-id="e22e790" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The complete expression for H is therefore</p>						</div>
				</div>
				<div class="elementor-element elementor-element-59400b4 elementor-widget elementor-widget-image" data-id="59400b4" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="92" src="/wp-content/uploads/2024/03/18-1-1024x118-1.png" class="attachment-large size-large wp-image-1883" alt="" srcset="/wp-content/uploads/2024/03/18-1-1024x118-1.png 1024w, /wp-content/uploads/2024/03/18-1-1024x118-1-300x35.png 300w, /wp-content/uploads/2024/03/18-1-1024x118-1-768x89.png 768w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-2798b15 elementor-widget elementor-widget-text-editor" data-id="2798b15" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>at this point, we can do a couple of sanity checks. Firstly, the probabilities in the entropy expression (r/|C| + 1 — r/|C|) sum to 1. Secondly, these examples highlight a common-sense inference. If an election comprises |C| choices and the number of “Yes” votes is r, then the probability of any voter selecting “Yes” must be r / |C|. Although our generalized approach for calculating entropy is more extensive than our intuition for indistinguishable voters under the plurality rule, it aligns with logical reasoning.</p><p>Finally, the degree of privacy for the general Yes/No election is</p>						</div>
				</div>
				<div class="elementor-element elementor-element-6561ff1 elementor-widget elementor-widget-image" data-id="6561ff1" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="84" src="/wp-content/uploads/2024/03/19-1024x108-1.png" class="attachment-large size-large wp-image-1887" alt="" srcset="/wp-content/uploads/2024/03/19-1024x108-1.png 1024w, /wp-content/uploads/2024/03/19-1024x108-1-300x32.png 300w, /wp-content/uploads/2024/03/19-1024x108-1-768x81.png 768w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-eb58db2 elementor-widget elementor-widget-text-editor" data-id="eb58db2" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Below is a graph of this function for a fixed value of 10 voters (|C| = 10).</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d59dc55 elementor-widget elementor-widget-image" data-id="d59dc55" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="386" src="/wp-content/uploads/2024/03/20-1024x494.png" class="attachment-large size-large wp-image-1888" alt="" srcset="/wp-content/uploads/2024/03/20-1024x494.png 1024w, /wp-content/uploads/2024/03/20-300x145.png 300w, /wp-content/uploads/2024/03/20-768x370.png 768w, /wp-content/uploads/2024/03/20.png 1180w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-a22e788 elementor-widget elementor-widget-text-editor" data-id="a22e788" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>As we saw in the previous section, unanimous elections correspond to the two edges of the graph, where d = 0.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e2a21d0 elementor-widget elementor-widget-heading" data-id="e2a21d0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Summary</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-6dfe8a4 elementor-widget elementor-widget-text-editor" data-id="6dfe8a4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The application of the generalized degree of anonymity model in the context of voting has demonstrated its versatility and relevance. This extension proves applicable to diverse voting methods, providing a flexible approach. Through simple yet illustrative examples, we observe that the model’s calculations align with outcomes derived from traditional methods specific to each type of election. While these initial examples may seem straightforward, the significance of the degree of privacy becomes particularly apparent in more complex scenarios where voters are distinguishable, and results may inadvertently reveal additional information. Weighted voting serves as a prime illustration of such cases. While the definitions presented herein can be equally applied to this scenario, employing them in their general form may require additional considerations to address potential combinatorial challenges.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-6f9004e elementor-widget elementor-widget-heading" data-id="6f9004e" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">References</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-35190be elementor-widget elementor-widget-text-editor" data-id="35190be" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Diaz 2002 — <a href="https://www.esat.kuleuven.be/cosic/publications/article-89.pdf">Towards measuring anonymity</a></p><p>Delaune 2009 — <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.142.1731&amp;rep=rep1&amp;type=pdf">Verifying privacy-type properties of electronic voting protocols</a></p><p>[3] It is also possible to use a non-uniform prior probability here. In that case the resulting conditional probabilities must be derived in such a way that relative magnitudes are <a href="https://en.wikipedia.org/wiki/Conditional_probability#Formal_derivation">preserved</a>.</p>						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/research/degree-of-privacy-in-voting/">Degree of Privacy in Voting</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A Toy Model of Information – Theoretic Security</title>
		<link>/research/a-toy-model-of-information-theoretic-security/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Fri, 21 Apr 2023 09:20:46 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1892</guid>

					<description><![CDATA[<p>In a previous post, we discussed different types of uncertainty due to limited information or computations as the basis for cryptography. A Caesar cipher example demonstrated how an adversary could have all the information to reveal a secret if the relationship between the message space, key space, and ciphertext satisfies the following: Go Back Blog Add a header to [&#8230;]</p>
<p>The post <a href="/research/a-toy-model-of-information-theoretic-security/">A Toy Model of Information – Theoretic Security</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1892" class="elementor elementor-1892" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-13a82ca3 e-flex e-con-boxed e-con e-parent" data-id="13a82ca3" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-72c9ec1a elementor-widget elementor-widget-text-editor" data-id="72c9ec1a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In a<a href="https://sequentech.io/uncertainty-cryptography-and-information/"> previous post,</a> we discussed different types of uncertainty due to limited information or computations as the basis for cryptography. A <a href="https://en.wikipedia.org/wiki/Caesar_cipher">Caesar cipher </a>example demonstrated how an adversary could have all the information to reveal a secret if the relationship between the message space, key space, and ciphertext satisfies the following:</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-758f4fe0 e-flex e-con-boxed e-con e-parent" data-id="758f4fe0" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-180a39a7 e-con-full e-flex elementor-invisible e-con e-child" data-id="180a39a7" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-241c1b3a elementor-widget elementor-widget-button" data-id="241c1b3a" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-8ab461e elementor-widget elementor-widget-heading" data-id="8ab461e" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-155b1bb5 elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="155b1bb5" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">A Toy Model of Information – Theoretic Security</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-4d2fdf6d elementor-widget elementor-widget-text-editor" data-id="4d2fdf6d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Research</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-22a1a6ca e-flex e-con-boxed e-con e-parent" data-id="22a1a6ca" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-e120712 e-con-full e-flex e-con e-child" data-id="e120712" data-element_type="container">
				<div class="elementor-element elementor-element-4495caa5 uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="4495caa5" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-66f2e071 e-con-full e-flex e-con e-child" data-id="66f2e071" data-element_type="container">
				<div class="elementor-element elementor-element-e440051 elementor-widget elementor-widget-image" data-id="e440051" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="768" height="403" src="/wp-content/uploads/2024/03/A-Toy-Model-of-Information-768x403-1.png" class="attachment-full size-full wp-image-1893" alt="" srcset="/wp-content/uploads/2024/03/A-Toy-Model-of-Information-768x403-1.png 768w, /wp-content/uploads/2024/03/A-Toy-Model-of-Information-768x403-1-300x157.png 300w" sizes="(max-width: 768px) 100vw, 768px" />													</div>
				</div>
		<div class="elementor-element elementor-element-63fbdd8d e-flex e-con-boxed e-con e-child" data-id="63fbdd8d" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-680b75b5 elementor-widget elementor-widget-text-editor" data-id="680b75b5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In a<a href="https://sequentech.io/uncertainty-cryptography-and-information/"> previous post,</a> we discussed different types of uncertainty due to limited information or computations as the basis for cryptography. A <a href="https://en.wikipedia.org/wiki/Caesar_cipher">Caesar cipher </a>example demonstrated how an adversary could have all the information to reveal a secret if the relationship between the message space, key space, and ciphertext satisfies the following:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-afc8540 elementor-widget elementor-widget-code-highlight" data-id="afc8540" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
					<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-html line-numbers">
				<code readonly="true" class="language-html">
					<xmp>ZHOO GRQH BRX KDYH IRXQG WKH VHFUHW YGNN FQPG AQW JCXG HQWPF VJG UGETGV
XFMM EPOF ZPV IBWF GPVOE UIF TFDSFU <strong>WELL DONE YOU HAVE FOUND
THE SECRET</strong> VDKK CNMD XNT GZUD ENTMC SGD RDBQDS UCJJ BMLC WMS
FYTC DMSLB RFC QCAPCR TBII ALKB VLR EXSB CLRKA QEB PBZOBQ</xmp>
				</code>
			</pre>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-a206064 elementor-widget elementor-widget-text-editor" data-id="a206064" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Since none of the other attempts yielded meaningful results, we were able to identify the correct message. Since the number of possible keys is so small, only one of them can decrypt a possible message. In technical terms, the key space and message space[2] are small enough compared to the length of the message that only one key will decrypt.</p><p>The situation can be coarsely be classified into three cases:</p><ol><li aria-level="1"><i>H(K | C) = H(K)</i> — Perfect secrecy</li><li aria-level="1"><i>H(K | C) &lt; H(K)</i> — Information-theoretic security</li><li aria-level="1"><i>H(K | C) = 0</i> — Computational security</li></ol><p>The epistemic uncertainty mentioned in the previous entry is the epistemic uncertainty of information theory. To illustrate how information-theoretic privacy works, we can use a simple model that reduces computation security when conditions are not met.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-2fb73ba1 elementor-widget elementor-widget-heading" data-id="2fb73ba1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Elements of our model
</h2>		</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ff49a45 e-con-full e-flex e-con e-child" data-id="ff49a45" data-element_type="container">
				<div class="elementor-element elementor-element-3b74f6f2 elementor-widget elementor-widget-image" data-id="3b74f6f2" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="440" height="321" src="/wp-content/uploads/2024/03/1-1.png" class="attachment-large size-large wp-image-1899" alt="" srcset="/wp-content/uploads/2024/03/1-1.png 440w, /wp-content/uploads/2024/03/1-1-300x219.png 300w" sizes="(max-width: 440px) 100vw, 440px" />													</div>
				</div>
				<div class="elementor-element elementor-element-29453059 elementor-widget elementor-widget-text-editor" data-id="29453059" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The XOR function</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-2f8b2c5 elementor-widget elementor-widget-text-editor" data-id="2f8b2c5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Using a key that determines the exact transformation and allows the intended recipient to recover the secret, our toy model must specify how messages are encrypted from plaintext to ciphertext. We can use a two-character alphabet that consists of binary sequences as messages. As our encryption function, we will use the <a href="https://en.wikipedia.org/wiki/Exclusive_or">XOR</a> function, which produces a third binary sequence from two inputs. By choosing this option, we also fix our key space to be binary sequences. Here’s an example encryption:</p><p>1010011000 XOR 1100111010 = 110100010</p><p>The XOR function produces a ciphertext 110100010 by taking as input a message (1010011000) and a key (1100111010). There is no difference in the process, we can simply imagine that the 1010011000 above is some meaningful content like “WELL DONE YOU FOUND THE SECRET ”. Like in English, in plaintext space (binary sequences) there is a subset of combinations that make meaningful messages, while the rest do not. As a result, we come to the notion of language entropy, which measures how large the meaningful subset of messages is in relation to the entire plaintext space.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d862257 elementor-widget elementor-widget-image" data-id="d862257" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="300" height="276" src="/wp-content/uploads/2024/03/2-1.png" class="attachment-large size-large wp-image-1900" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-559cdde elementor-widget elementor-widget-text-editor" data-id="559cdde" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>As the language entropy increases, the proportion of the blue region in relation to the entire plaintext space also increases. For binary languages, the entropy ranges from 0 to 1, which is measured in bits per character. Currently, our toy model consists of these components:</p><ul><li aria-level="1">Plaintext space: P ∈ {0, 1}n</li><li aria-level="1">Message space: M ⊂ P</li><li aria-level="1">Key space: K ⊂ {0, 1}n</li><li aria-level="1">Ciphertext space: C ∈ {0, 1}n</li><li aria-level="1">Encryption function: XOR: P x K → C</li><li aria-level="1">Language entropy: HL ∈ {0.0-1.0}<br /><br /></li></ul><p>The security characteristics of our system are contingent upon three parameters that are associated with the aforementioned factors:</p><ul><li aria-level="1">n:the number of characters in the plaintext</li><li aria-level="1">|K|: the size of the key space</li><li aria-level="1">HL: the language entropy</li><li aria-level="1">RL = 1 — HL: the language redundancy<br /><br /></li></ul><p>The final parameter, redundancy, is essentially a rephrasing of the language entropy. The equation that formulates the security in relation to these parameters is:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-1a07bf6 elementor-widget elementor-widget-image" data-id="1a07bf6" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="250" height="100" src="/wp-content/uploads/2024/03/3-1.png" class="attachment-large size-large wp-image-1901" alt="" />													</div>
				</div>
				<div class="elementor-element elementor-element-b4fa3f1 elementor-widget elementor-widget-text-editor" data-id="b4fa3f1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The given equation provides a minimum estimate for the anticipated quantity of false keys, denoted by the term “sn”. A false key, for a specific ciphertext, is a key that decrypts the ciphertext into a message that is not equivalent to the message that was initially encrypted using the correct key. As illustrated in the initial encryption example mentioned in the post, it was observed that among all the attempted keys used to decrypt the ciphertext, only one produced a coherent plaintext, implying that the ciphertext had no false keys. Conversely, if one of the keys, denoted as “s”, had decrypted the ciphertext into something similar to</p><p>THE MESSAGE COULD BE THIS</p><p>then in such a scenario, the key “s” would be considered a false key. If an attacker were to attempt all possible keys, they would end up with two potential messages, making it challenging to determine the accurate one. As a result, the confidentiality of the secret would be relatively preserved. The presence and quantity of anticipated false keys determine the category to which a cryptosystem belongs among the three general classifications mentioned earlier. Examining the false key equation reveals the following patterns:</p><ul><li aria-level="1">sn increases with the size of the key space, |K|</li><li aria-level="1">sn decreases with the size of the plaintext, n</li><li aria-level="1">sn decreases with language redundancy, RL</li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-f6ce5ff elementor-widget elementor-widget-heading" data-id="f6ce5ff" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">A visual representation
</h2>		</div>
				</div>
		<div class="elementor-element elementor-element-f1cdff4 e-con-full e-flex e-con e-child" data-id="f1cdff4" data-element_type="container">
				<div class="elementor-element elementor-element-c1f453a elementor-widget elementor-widget-image" data-id="c1f453a" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="590" height="316" src="/wp-content/uploads/2024/03/4-1.png" class="attachment-large size-large wp-image-1902" alt="" srcset="/wp-content/uploads/2024/03/4-1.png 590w, /wp-content/uploads/2024/03/4-1-300x161.png 300w" sizes="(max-width: 590px) 100vw, 590px" />													</div>
				</div>
				<div class="elementor-element elementor-element-5313acc elementor-widget elementor-widget-text-editor" data-id="5313acc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Encryption representation with n = 2, H = 0.8, M = 3, K = 1</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-93d7931 elementor-widget elementor-widget-text-editor" data-id="93d7931" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The image’s left side depicts a visual representation of our parameter values for the toy model, where the left axis denotes the plaintext space, and the right axis represents the ciphertext space. Each point on the graph symbolizes an encryption or a mapping from the plaintext space to the ciphertext space. To obtain the visual representation, we set n = 2, resulting in a plaintext space with four elements. Out of these four, three convey meaningful messages, considering a language entropy of 0.8. Thus, the three red dots on the graph correspond to the three encryptions of these three meaningful messages. Since K=1, each plaintext has only one corresponding ciphertext or, visually, only one point on any given horizontal line. For comparison, see:</p>						</div>
				</div>
		<div class="elementor-element elementor-element-e6739e8 e-con-full e-flex e-con e-child" data-id="e6739e8" data-element_type="container">
				<div class="elementor-element elementor-element-ca6b335 elementor-widget elementor-widget-image" data-id="ca6b335" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="319" src="/wp-content/uploads/2024/03/5-1.png" class="attachment-large size-large wp-image-1903" alt="" srcset="/wp-content/uploads/2024/03/5-1.png 590w, /wp-content/uploads/2024/03/5-1-300x162.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-1fdc566 elementor-widget elementor-widget-text-editor" data-id="1fdc566" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>n = 2, H = 0.8, M = 3, K = 3</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-c89e77e elementor-widget elementor-widget-text-editor" data-id="c89e77e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Displayed in the image are nine points that correspond to three messages encrypted using three distinct keys. Consequently, each horizontal line on the graph signifies all the encryptions for a specific message under various keys. As for the variance in color, consider the following alternative set of parameters:</p>						</div>
				</div>
		<div class="elementor-element elementor-element-ca885d9 e-con-full e-flex e-con e-child" data-id="ca885d9" data-element_type="container">
				<div class="elementor-element elementor-element-8147eac elementor-widget elementor-widget-image" data-id="8147eac" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="387" src="/wp-content/uploads/2024/03/6-1.png" class="attachment-large size-large wp-image-1904" alt="" srcset="/wp-content/uploads/2024/03/6-1.png 590w, /wp-content/uploads/2024/03/6-1-300x197.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-345134f elementor-widget elementor-widget-text-editor" data-id="345134f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>n = 6, H = 0.8, M = 28, K = 3</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-2cb92c9 elementor-widget elementor-widget-text-editor" data-id="2cb92c9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>If we increase the plaintext length, the number of meaningful messages also increases to 28, resulting in a total of 28 x 3 = 84 encryptions, represented by red and blue points in this particular case. Can you discern the pattern that explains this phenomenon? It may be challenging to identify, but the explanation lies in comprehending the significance of vertical lines in the visual representation. Points that lie on the same horizontal line denote distinct encryptions for the same message, whereas points that are positioned on the same vertical line signify different messages encrypted using the same key. As previously observed, this is precisely the situation where an attacker cannot deduce the secret by attempting all possible keys in reverse, as it is impossible to distinguish the original message among the resulting messages.</p><p>Ciphertexts represented by blue points have more than one key that can decrypt them into a meaningful message. Alternatively, blue points signify ciphertexts that possess one or more spurious keys.</p><p>sn &gt; 0 ⇒ blue point</p><p>sn = 0 ⇒ red point</p><p>We can now visualize the properties of information-theoretic security that we mentioned earlier.</p><ul><li aria-level="1">sn increases with the size of the key space, |K|</li></ul>						</div>
				</div>
		<div class="elementor-element elementor-element-0f00755 e-con-full e-flex e-con e-child" data-id="0f00755" data-element_type="container">
				<div class="elementor-element elementor-element-4f63d46 elementor-widget elementor-widget-image" data-id="4f63d46" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="166" src="/wp-content/uploads/2024/03/7-1.png" class="attachment-large size-large wp-image-1908" alt="" srcset="/wp-content/uploads/2024/03/7-1.png 590w, /wp-content/uploads/2024/03/7-1-300x84.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-4b47ee1 elementor-widget elementor-widget-text-editor" data-id="4b47ee1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Fixed n, H, increasing values of K</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-bf6f138 elementor-widget elementor-widget-text-editor" data-id="bf6f138" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In terms of visualization, the number of red dots proportionally increases.</p><ul><li aria-level="1">sn decreases with language redundancy, RL</li></ul>						</div>
				</div>
		<div class="elementor-element elementor-element-e847b0c e-con-full e-flex e-con e-child" data-id="e847b0c" data-element_type="container">
				<div class="elementor-element elementor-element-0929964 elementor-widget elementor-widget-image" data-id="0929964" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="167" src="/wp-content/uploads/2024/03/8-1.png" class="attachment-large size-large wp-image-1909" alt="" srcset="/wp-content/uploads/2024/03/8-1.png 590w, /wp-content/uploads/2024/03/8-1-300x85.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-6cb1631 elementor-widget elementor-widget-text-editor" data-id="6cb1631" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Fixed K, H, increasing values of n</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-b566ed5 elementor-widget elementor-widget-text-editor" data-id="b566ed5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In terms of visualization, the number of red dots proportionally increases.</p>						</div>
				</div>
		<div class="elementor-element elementor-element-3015178 e-con-full e-flex e-con e-child" data-id="3015178" data-element_type="container">
				<div class="elementor-element elementor-element-139b5d7 elementor-widget elementor-widget-image" data-id="139b5d7" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="161" src="/wp-content/uploads/2024/03/9-1.png" class="attachment-large size-large wp-image-1910" alt="" srcset="/wp-content/uploads/2024/03/9-1.png 590w, /wp-content/uploads/2024/03/9-1-300x82.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-d6552fe elementor-widget elementor-widget-text-editor" data-id="d6552fe" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Fixed n, K, decreasing values of H (increasing values of R)</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-409597a elementor-widget elementor-widget-heading" data-id="409597a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Visualizing the categories
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-4e78984 elementor-widget elementor-widget-text-editor" data-id="4e78984" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In addition to these patterns, we also discussed three general categories that cryptosystems fall into:</p><ul><li aria-level="1"><i>H(K | C) = H(K)</i> — Perfect secrecy</li></ul>						</div>
				</div>
		<div class="elementor-element elementor-element-b21dc27 e-con-full e-flex e-con e-child" data-id="b21dc27" data-element_type="container">
				<div class="elementor-element elementor-element-031a2b0 elementor-widget elementor-widget-image" data-id="031a2b0" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="356" src="/wp-content/uploads/2024/03/10.png" class="attachment-large size-large wp-image-1914" alt="" srcset="/wp-content/uploads/2024/03/10.png 590w, /wp-content/uploads/2024/03/10-300x181.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-d4369cc elementor-widget elementor-widget-text-editor" data-id="d4369cc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>n = 8, H = 0.55, K = 256</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-450b085 elementor-widget elementor-widget-text-editor" data-id="450b085" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In terms of visualization, the number of blue dots per column is equivalent to the number of horizontal lines. This indicates that the adversary cannot extract any information from the ciphertext. It is noteworthy that 2^8 = 256, which corresponds to the value of K.</p><ul><li aria-level="1"><i>H(K | C) &lt; H(K)</i> — Information-theoretic security</li></ul>						</div>
				</div>
		<div class="elementor-element elementor-element-9a555d8 e-con-full e-flex e-con e-child" data-id="9a555d8" data-element_type="container">
				<div class="elementor-element elementor-element-faa6231 elementor-widget elementor-widget-image" data-id="faa6231" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="346" src="/wp-content/uploads/2024/03/11.png" class="attachment-large size-large wp-image-1915" alt="" srcset="/wp-content/uploads/2024/03/11.png 590w, /wp-content/uploads/2024/03/11-300x176.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-e3e00f0 elementor-widget elementor-widget-text-editor" data-id="e3e00f0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>n = 9, H = 0.55, K = 106</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-2ccc535 elementor-widget elementor-widget-text-editor" data-id="2ccc535" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In terms of visualization, only blue dots are present. Each ciphertext is partially secured, implying that the attacker lacks sufficient information to disclose the secret definitively.</p><ul><li aria-level="1"><i>H(K | C) = 0</i> — Computational security</li></ul>						</div>
				</div>
		<div class="elementor-element elementor-element-ce775c6 e-con-full e-flex e-con e-child" data-id="ce775c6" data-element_type="container">
				<div class="elementor-element elementor-element-efcb607 elementor-widget elementor-widget-image" data-id="efcb607" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
										<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="590" height="387" src="/wp-content/uploads/2024/03/12.png" class="attachment-large size-large wp-image-1916" alt="" srcset="/wp-content/uploads/2024/03/12.png 590w, /wp-content/uploads/2024/03/12-300x197.png 300w" sizes="(max-width: 590px) 100vw, 590px" />											<figcaption class="widget-image-caption wp-caption-text"></figcaption>
										</figure>
							</div>
				</div>
				<div class="elementor-element elementor-element-2f0f861 elementor-widget elementor-widget-text-editor" data-id="2f0f861" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>n = 13, H = 0.53, K = 29</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-d2f7bd7 elementor-widget elementor-widget-text-editor" data-id="d2f7bd7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In terms of visualization, there are red dots indicating ciphertexts that do not have information-theoretic protection and rely on computational security for their confidentiality.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f870199 elementor-widget elementor-widget-heading" data-id="f870199" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Try it yourself.
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-8ff87d8 elementor-widget elementor-widget-text-editor" data-id="8ff87d8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This post discusses the main concepts presented in Claude Shannon’s <a href="http://netlab.cs.ucla.edu/wiki/files/shannon1949.pdf">Communication Theory of Secrecy Systems</a> published in 1949. Additionally, we have created a toy model to help visualize the security properties of cryptosystems and how they change with the primary parameters. If you’re interested, you can experiment with the model <a href="http://ruescasd.github.io/shannon1949/">here</a>. If you’re a teacher and find it useful, please inform us!</p>						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/research/a-toy-model-of-information-theoretic-security/">A Toy Model of Information – Theoretic Security</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Anonymity, Pseudonymity and E-participation</title>
		<link>/research/anonymity-pseudonymity-and-e-participation/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Wed, 29 Mar 2023 10:04:45 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1926</guid>

					<description><![CDATA[<p>In this article, we will examine two papers related to the topic of anonymity in e-participation: Ruesch &#38; Märker 2012 – “Making the Case for Anonymity in E-Participation” and Moore 2016 – “Anonymity, Pseudonymity and Deliberation: Why Not Everything Should be Connected.” Our focus is on the concept that there may be an optimal solution [&#8230;]</p>
<p>The post <a href="/research/anonymity-pseudonymity-and-e-participation/">Anonymity, Pseudonymity and E-participation</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1926" class="elementor elementor-1926" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-573a7243 e-flex e-con-boxed e-con e-parent" data-id="573a7243" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-26921d26 elementor-widget elementor-widget-text-editor" data-id="26921d26" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In this article, we will examine two papers related to the topic of anonymity in e-participation: Ruesch &amp; Märker 2012 – “Making the Case for Anonymity in E-Participation” and Moore 2016 – “Anonymity, Pseudonymity and Deliberation: Why Not Everything Should be Connected.” Our focus is on the concept that there may be an optimal solution in the anonymity spectrum, which strikes a balance between conflicting properties at both ends.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-1a4bfd32 e-flex e-con-boxed e-con e-parent" data-id="1a4bfd32" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-5ffad172 e-con-full e-flex elementor-invisible e-con e-child" data-id="5ffad172" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-57fc96d5 elementor-widget elementor-widget-button" data-id="57fc96d5" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-28a68fad elementor-widget elementor-widget-heading" data-id="28a68fad" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-4494bbca elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="4494bbca" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">Anonymity, Pseudonymity and E-participation</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-f8437a3 elementor-widget elementor-widget-text-editor" data-id="f8437a3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Research</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d3ba9e0 e-flex e-con-boxed e-con e-parent" data-id="d3ba9e0" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-1806cde3 e-con-full e-flex e-con e-child" data-id="1806cde3" data-element_type="container">
				<div class="elementor-element elementor-element-bbf3c1e uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="bbf3c1e" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-12270e59 e-con-full e-flex e-con e-child" data-id="12270e59" data-element_type="container">
				<div class="elementor-element elementor-element-54ba002f elementor-widget elementor-widget-image" data-id="54ba002f" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="768" height="403" src="/wp-content/uploads/2024/03/Sequent-Anonymity-Pseudonymity-E-participation-768x403-1.png" class="attachment-full size-full wp-image-1927" alt="" srcset="/wp-content/uploads/2024/03/Sequent-Anonymity-Pseudonymity-E-participation-768x403-1.png 768w, /wp-content/uploads/2024/03/Sequent-Anonymity-Pseudonymity-E-participation-768x403-1-300x157.png 300w" sizes="(max-width: 768px) 100vw, 768px" />													</div>
				</div>
				<div class="elementor-element elementor-element-2848594 elementor-widget elementor-widget-image" data-id="2848594" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="728" height="546" src="/wp-content/uploads/2024/03/real-name-policy-in-eparticipation-3-728.jpg" class="attachment-large size-large wp-image-1933" alt="" srcset="/wp-content/uploads/2024/03/real-name-policy-in-eparticipation-3-728.jpg 728w, /wp-content/uploads/2024/03/real-name-policy-in-eparticipation-3-728-300x225.jpg 300w" sizes="(max-width: 728px) 100vw, 728px" />													</div>
				</div>
		<div class="elementor-element elementor-element-99d16b4 e-flex e-con-boxed e-con e-child" data-id="99d16b4" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-15822c26 elementor-widget elementor-widget-text-editor" data-id="15822c26" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In this article, we will examine two papers related to the topic of anonymity in e-participation: Ruesch &amp; Märker 2012 – “Making the Case for Anonymity in E-Participation” and Moore 2016 – “Anonymity, Pseudonymity and Deliberation: Why Not Everything Should be Connected.” Our focus is on the concept that there may be an optimal solution in the anonymity spectrum, which strikes a balance between conflicting properties at both ends.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-107d94f elementor-widget elementor-widget-heading" data-id="107d94f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Advocating for Anonymity in E-Participation
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-625dc64 elementor-widget elementor-widget-text-editor" data-id="625dc64" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>We will examine the points raised in the first paper, which presents an analysis of the participatory budget of the city of Gütersloh in Germany. Although the title may suggest a stance in support of anonymity, it is important to note that the concept of anonymity is not absolute and exists on a spectrum. This spectrum is where the trade-offs between opposing arguments take place. The discussion is relevant to various online platforms such as forums, social networks, and the web in general, and therefore, we will first review general points.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-6b3f708 elementor-widget elementor-widget-heading" data-id="6b3f708" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">General arguments
</h2>		</div>
				</div>
					</div>
				</div>
				<div class="elementor-element elementor-element-3757a8d5 elementor-widget elementor-widget-heading" data-id="3757a8d5" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>The self-control argument</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-9a07db0 elementor-widget elementor-widget-text-editor" data-id="9a07db0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>There is substantial evidence supporting the argument that anonymous communication often leads to more uncivil discourse, while a real name policy can promote more civilized communication. The ability to be identified by others appears to foster self-restraint, reduce personal attacks, and help establish “communities of trust.”</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f2d9456 elementor-widget elementor-widget-heading" data-id="f2d9456" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>The legal argument
</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-15b40a6 elementor-widget elementor-widget-text-editor" data-id="15b40a6" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Advocates of the real name policy emphasize the significance of having easily identifiable profiles to ensure legal accountability for the actions and language used by internet users.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-b761c81 elementor-widget elementor-widget-heading" data-id="b761c81" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>The online=offline argument</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-b9a4ae9 elementor-widget elementor-widget-text-editor" data-id="b9a4ae9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>If we are expected to be accountable using our real names in our offline lives, why should we not have the same expectation in our online lives?</p><p>Conversely</p>						</div>
				</div>
				<div class="elementor-element elementor-element-de5fb05 elementor-widget elementor-widget-heading" data-id="de5fb05" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>The open participation argument</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-14dca37 elementor-widget elementor-widget-text-editor" data-id="14dca37" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Requiring users to disclose their real name could lead to the exclusion of many individuals from participating in forums or social networks, particularly in authoritarian regimes where those critical of the government may face repercussions.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-fcdf12c elementor-widget elementor-widget-heading" data-id="fcdf12c" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>The freedom argument</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-bfba82b elementor-widget elementor-widget-text-editor" data-id="bfba82b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Users are more likely to express themselves freely and without being influenced by groupthink when they are not required to disclose their real identity.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-ab6e0d8 elementor-widget elementor-widget-heading" data-id="ab6e0d8" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>The privacy argument</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-6d6a880 elementor-widget elementor-widget-text-editor" data-id="6d6a880" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Users should have the right to choose whether to make certain political or other opinions publicly accessible, especially considering that information once published on the internet can be almost impossible to control.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-dd9fd06 elementor-widget elementor-widget-heading" data-id="dd9fd06" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Arguments specific to E-participation
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-5bb5417 elementor-widget elementor-widget-text-editor" data-id="5bb5417" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Many of the points discussed so far are likely familiar as they relate to observations made in the previous post. However, the focus has mainly been on social networks and unmoderated online forums, leaving the area of e-participation relatively unexplored in regards to anonymity and real name policy. This paper aims to fill that gap by explicitly connecting the “anonymity debate” to e-participation, presenting both pros and cons as rationale and objections, respectively.</p><p>Rationale 1: Requiring a real name policy and personal data can ensure that only eligible citizens participate, thereby improving representativeness and, in turn, legitimacy.</p><p>Rationale 2: Requiring users to disclose their real name and personal data ensures that the quality of dialogue is improved by preventing offensive comments from anonymous users.</p><p>Rationale 3: The following objections challenge the points made in favor of real name policy and the request for personal data in ensuring transparent communication and strengthening democracy:</p><p>Objection 1: The focus on real name policy and request for personal data can detract from discussions centered on issues, leading to a biased perception of messages that degrades the quality of discourse.</p><p>Objection 2: Real name policy and request for personal data infringe upon individuals’ privacy rights.</p><p>Objection 3: Requiring a real name policy and personal data can lead to time-consuming and costly administrative issues.</p><p>Objection 4: Real name policy and request for personal data can lead to negative media attention and public perception due to legal, administrative, and usability problems they cause.</p><p>Objection 5: Requiring real names and personal data may create usability issues that discourage people from participating, ultimately leading to a decrease in overall participation.</p><p>The arguments put forth regarding online discussion and the internet at large share a considerable amount of common ground with those presented in the case of e-participation. Rationale 2 and Objection 1 align with the general arguments for self-control and quality, while Objection 2 corresponds with the broader arguments for open participation and freedom.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e94b41c elementor-widget elementor-widget-heading" data-id="e94b41c" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Preserving Integrity through Pseudonymity
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-de4308c elementor-widget elementor-widget-text-editor" data-id="de4308c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Introducing Integrity Preserving Pseudonymity as a Compromise Solution:</p><p>The authors of the paper argue that, based on the Gütersloh experience, the objections to real name policy outweigh the rationales. However, as we mentioned earlier, anonymity is not a black and white issue and there are various compromise solutions between complete anonymity and real name policy. These range from no registration at all to registration with verified personal data.</p><p>One potential solution that could be considered a midpoint is Integrity Preserving Pseudonymity. With this approach, citizens are required to validate their real identities to participate in the platform, but their identities remain private and cannot be linked to their pseudonyms beyond the eligibility requirement.</p><p>This compromise solution allows citizens to maintain a degree of identity by linking their contributions to their pseudonyms, but still ensures their privacy with respect to both the general public and institutional authorities managing the participation process. This strikes a balance between anonymity and real name policy, where identity is stronger than complete anonymity but weaker than real identity.</p><p>Integrity preserving pseudonymity can be established using <a href="https://en.wikipedia.org/wiki/Digital_credential#Anonymous">anonymous credentials</a>, a cryptographic technique introduced by David Chaum (CHA 85). Revisiting the pros and cons of this type of pseudonymity, we can analyze whether the Rationales and Objections support or challenge the use of pseudonymity, as well as the two extremes of pure anonymity and real names. To simplify, we have abbreviated the arguments and merged Objection 4 with Objection 3. The following table summarizes the analysis.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-2d0fdbc elementor-widget elementor-widget-image" data-id="2d0fdbc" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="800" height="351" src="/wp-content/uploads/2024/03/Screenshot-2023-03-29-at-9.53.12-1024x449.png" class="attachment-large size-large wp-image-1937" alt="" srcset="/wp-content/uploads/2024/03/Screenshot-2023-03-29-at-9.53.12-1024x449.png 1024w, /wp-content/uploads/2024/03/Screenshot-2023-03-29-at-9.53.12-300x132.png 300w, /wp-content/uploads/2024/03/Screenshot-2023-03-29-at-9.53.12-768x337.png 768w, /wp-content/uploads/2024/03/Screenshot-2023-03-29-at-9.53.12-1536x674.png 1536w, /wp-content/uploads/2024/03/Screenshot-2023-03-29-at-9.53.12.png 1546w" sizes="(max-width: 800px) 100vw, 800px" />													</div>
				</div>
				<div class="elementor-element elementor-element-4285692 elementor-widget elementor-widget-text-editor" data-id="4285692" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The cells in the table are marked with a check (√) or an X depending on whether the argument supports or questions the use of pseudonymity. Cases where the argument has both positive and negative aspects with respect to the policy are marked with both symbols. Here is a summary of the arguments for pseudonymity.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-496c73a elementor-widget elementor-widget-heading" data-id="496c73a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>Legitimacy, integrity
</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-f26ebbc elementor-widget elementor-widget-text-editor" data-id="f26ebbc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Integrity preserving pseudonymity guarantees that only eligible citizens can participate while maintaining integrity.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-de56230 elementor-widget elementor-widget-heading" data-id="de56230" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li> Civility</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-4c27e54 elementor-widget elementor-widget-text-editor" data-id="4c27e54" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Pseudonymity has characteristics of both real name policy and anonymity. On one hand, since participants are not fully identifiable, there is some possibility for uncivil behavior, which may pose a challenge for accountability. However, on the other hand, pseudonymity does offer a degree of identity through linking contributions to a particular citizen, allowing for a level of accountability. While this level of accountability is not as strong as that offered by real names, it is greater than that provided by pure anonymity.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-638d20c elementor-widget elementor-widget-heading" data-id="638d20c" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>Communication transparency</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-889a9a4 elementor-widget elementor-widget-text-editor" data-id="889a9a4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>According to the definition in the paper, the argument against pseudonymity based on the fact that citizens do not know the real person they are communicating with is considered negative. However, it is possible to make points similar to those made for civility in this context.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-44e8864 elementor-widget elementor-widget-heading" data-id="44e8864" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>Issue-centric debate</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-73e4fa2 elementor-widget elementor-widget-text-editor" data-id="73e4fa2" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This argument is equivocal for the same reasons as described for Civility. The presence of some degree of identity may divert from a purely issue-focused discussion, similar to what happens with pure anonymity.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-14be847 elementor-widget elementor-widget-heading" data-id="14be847" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>Privacy, inclusion, freedom</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-384a8c5 elementor-widget elementor-widget-text-editor" data-id="384a8c5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Integrity preserving pseudonymity, by definition, protects citizens’ real identities, which in turn promotes inclusion and freedom.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e401f88 elementor-widget elementor-widget-heading" data-id="e401f88" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>Administrative complexity</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-843d6e0 elementor-widget elementor-widget-text-editor" data-id="843d6e0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Implementing pseudonymity involves citizen authentication using their real name and other personal information, resulting in similar complexity issues to those of a pure real name policy. Furthermore, pseudonymity requires a meticulous implementation with proper cryptography, leading to administrative complexity and associated costs.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-038ea0e elementor-widget elementor-widget-heading" data-id="038ea0e" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><ul><li>Usability and participation
</li></ul></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-22f101b elementor-widget elementor-widget-text-editor" data-id="22f101b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This argument presents a mixed evaluation for pseudonymity. On one hand, the real name authentication required for pseudonymity may result in complexity issues similar to those for a pure real name policy, decreasing usability and participation. On the other hand, pseudonymity offers some advantages for increasing participation, while still protecting citizens’ real identity, which aligns with the Privacy-inclusion-freedom argument.</p><p>The overall evaluation of a pseudonymity policy should consider the relative importance of each argument, rather than simply counting the pros and cons. Pseudonymity can function as an optimal balance between maintaining important properties of pure anonymity and ameliorating its drawbacks. However, the level of identity present in pseudonymity does pose a greater threat to Privacy-integrity-freedom than pure anonymity if <a href="https://en.wikipedia.org/wiki/Inference_attack">inference attacks</a> are conducted on pseudonyms’ linkable contributions. The paper suggests that negative effects of anonymity can be accounted for by the use of pseudonyms and moderation, and that real name policy should be avoided in e-participation projects.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-43d5de8 elementor-widget elementor-widget-heading" data-id="43d5de8" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Summary</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-a1e198a elementor-widget elementor-widget-text-editor" data-id="a1e198a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>In Ruesch &amp; Märker’s 2012 paper, we examined arguments both for and against anonymity in general and specifically in the context of e-participation. We noted that anonymity exists on a spectrum and that integrity preserving pseudonymity falls somewhere in between complete anonymity and full identification. We then assessed pseudonymity based on the arguments presented and suggested that, depending on the importance of each argument, it could be an effective compromise that balances conflicting requirements in e-participation systems. [36]</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c4123df elementor-widget elementor-widget-heading" data-id="c4123df" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">References</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-12fef7e elementor-widget elementor-widget-text-editor" data-id="12fef7e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>(Chaum 85) — Chaum, David (October 1985). “Security without identification: transaction systems to make big brother obsolete”.</p><p>(Ruesch &amp; Märker 2012) — Making the Case for Anonymity in E-Participation</p><p>[20] De Cindio, Fiorella. 2012. “Guidelines for Designing Deliberative Digital Habitats: Learning from E-Participation for Open Data Initiatives.” The Journal of Community Informatics 8 (2).</p><p>[21] Fredheim, Rolf, Alfred Moore, and John Naughton. n.d. “Anonymity and Online Commenting: An Empirical Study.” SSRN Electronic Journal. doi:10.2139/ssrn.2591299.</p><p>[22] Cho, Daegon, and Alessandro Acquisti. 2013. “The More Social Cues, The Less Trolling? An Empirical Study of Online Commenting Behavior.”</p><p>[23] Diakopoulos, Nicholas, and Mor Naaman. 2011. “Towards Quality Discourse in Online News Comments.” In Proceedings of the ACM 2011 Conference on Computer Supported Cooperative Work — CSCW ‘11. doi:10.1145/1958824.1958844.</p><p>[25] Fredheim, Rolf, Alfred Moore, and John Naughton. n.d. “Anonymity and Online Commenting: An Empirical Study.” SSRN Electronic Journal. doi:10.2139/ssrn.2591299.</p><p>[26] Davies, Todd. 2009. Online Deliberation: Design, Research, and Practice. Stanford Univ Center for the Study.</p><p>[29] Connolly, Terry, Leonard M. Jessup, and Joseph S. Valacich. 1990. “Effects of Anonymity and Evaluative Tone on Idea Generation in Computer-Mediated Groups.” Management Science 36 (6): 689—703.</p><p>[30] Flanagin, A. J., V. Tiyaamornwong, J. O’Connor, and D. R. Seibold. 2002. “Computer-Mediated Group Work: The Interaction of Sex and Anonymity.” Communication Research 29 (1): 66—93.</p>						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/research/anonymity-pseudonymity-and-e-participation/">Anonymity, Pseudonymity and E-participation</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A bag of Dev Container Tricks</title>
		<link>/tech/a-bag-of-dev-container-tricks/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Fri, 03 Mar 2023 11:03:15 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1941</guid>

					<description><![CDATA[<p>Nowadays, threre are a lot of tools, libraries, IDEs &#38; plugins that are supposed to make the life of developers easier. But this also adds complexity. Moreover, it may make each developer’s development environment a bit different, depending on how the developer configured these tools. Go Back Blog Add a header to begin generating the [&#8230;]</p>
<p>The post <a href="/tech/a-bag-of-dev-container-tricks/">A bag of Dev Container Tricks</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1941" class="elementor elementor-1941" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-5b274f6d e-flex e-con-boxed e-con e-parent" data-id="5b274f6d" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7033392d elementor-widget elementor-widget-text-editor" data-id="7033392d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Nowadays, threre are a lot of tools, libraries, IDEs &amp; plugins that are supposed to make the life of developers easier. But this also adds complexity. Moreover, it may make each developer’s development environment a bit different, depending on how the developer configured these tools.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-379b0e e-flex e-con-boxed e-con e-parent" data-id="379b0e" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-64dc1476 e-con-full e-flex elementor-invisible e-con e-child" data-id="64dc1476" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-4ffae7cb elementor-widget elementor-widget-button" data-id="4ffae7cb" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-36bff9a8 elementor-widget elementor-widget-heading" data-id="36bff9a8" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-41dd07d0 elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="41dd07d0" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">A bag of Dev Container Tricks</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-37a74cd0 elementor-widget elementor-widget-text-editor" data-id="37a74cd0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Technology</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7912d8b2 e-flex e-con-boxed e-con e-parent" data-id="7912d8b2" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-4ade4524 e-con-full e-flex e-con e-child" data-id="4ade4524" data-element_type="container">
				<div class="elementor-element elementor-element-555c9877 uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="555c9877" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-4138b184 e-con-full e-flex e-con e-child" data-id="4138b184" data-element_type="container">
				<div class="elementor-element elementor-element-63d6b307 elementor-widget elementor-widget-image" data-id="63d6b307" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="768" height="403" src="/wp-content/uploads/2024/03/a-bag-of-dev-container-tricks-768x403-1.png" class="attachment-full size-full wp-image-1942" alt="" srcset="/wp-content/uploads/2024/03/a-bag-of-dev-container-tricks-768x403-1.png 768w, /wp-content/uploads/2024/03/a-bag-of-dev-container-tricks-768x403-1-300x157.png 300w" sizes="(max-width: 768px) 100vw, 768px" />													</div>
				</div>
		<div class="elementor-element elementor-element-3a2c9086 e-flex e-con-boxed e-con e-child" data-id="3a2c9086" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-53ab8225 elementor-widget elementor-widget-text-editor" data-id="53ab8225" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">Nowadays, threre are a lot of tools, libraries, IDEs &amp; plugins that are supposed to make the life of developers easier. But this also adds complexity. Moreover, it may make each developer’s development environment a bit different, depending on how the developer configured these tools.</p><p dir="auto"><a href="https://containers.dev/" rel="nofollow">Dev Containers</a> are yet another one of those tools, but they’re one of the most promising projects to solve this issue. Rather than configuring your local environment and fighting against your local machine configuration and needs, you can crowdsource them.</p><p dir="auto">With Dev Containers, any developer can improve the configuration of their development environment. The whole development environment is code: programmable, reproducible, and outsourceable.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-187f49f elementor-widget elementor-widget-heading" data-id="187f49f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Drifting hidden state
</h2>		</div>
				</div>
					</div>
				</div>
				<div class="elementor-element elementor-element-15d3fcd elementor-widget elementor-widget-text-editor" data-id="15d3fcd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">Traditionally, you have a long-term personal investment in your development environment. Since it’s only for you and you configured it manually, you don’t really want to touch it or invest time on it – it’d be time wasted! As project and tool complexity has increased, it has only gotten worse.</p><p dir="auto">After some time, you update your Operating System. A new version of Rust is now required for this project and you have to install it. VS Code tells you that there’s a new release, just restart it to apply. The project you are developing now requires newer PostgreSQL installation. You keep being forced to adapt locally to all these changes to maintain a working development environment. And you spend as little as possible on this adaptation, since it’s time wasted.</p><p dir="auto">Sometimes one of these changes starts giving you headaches. You upgraded PostgreSQL for project A, but then Project B stopped working. Or you upgraded your OS and a library is not found. You get the idea.</p><p dir="auto">You end up having an ever-changing, undocumented, unreproducible hidden state. You fear the day in which your computer fails and you will have to set up all this again from zero. With no extra benefit, having to spend maybe a whole day just to get things to a state you already had.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-0df8f2b elementor-widget elementor-widget-heading" data-id="0df8f2b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Solve all the above
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-4fdd4309 elementor-widget elementor-widget-text-editor" data-id="4fdd4309" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">Dev Containers is not the only tool that tries to solve the hidden state problem. Nix or virtualenv also try to ameliorate it. But it’s a promising approach because it’s quite comprehensive. More than it looks at first-glance.</p><p dir="auto">However, like any new technology, Dev Containers have their own peculiarities. What follows is a bag of tricks and tips of our own, in no particular order:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4d84355 elementor-widget elementor-widget-heading" data-id="4d84355" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #1: Remote containers
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-6697165a elementor-widget elementor-widget-text-editor" data-id="6697165a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">Dev Containers run the software in a container – you already knew that. This can consume some more resources (RAM and CPU) and make compilation and other processes slower than just running all those natively in your PC.</p><p dir="auto">The above is true only if you don’t take advantage of what containers allow. For example, maybe you have a slim or old laptop with little resources, but you have a badass server at home where you can run the containers. You can easily <a href="https://code.visualstudio.com/remote/advancedcontainers/develop-remote-host" rel="nofollow">run the docker containers remotely</a> in that server. Suddenly, your computer is a simple thin client with little need for extra resources. You can compile, rebuild, and launch services within VS Code and your laptop’s CPU and RAM usage won’t suffer.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-1b8ed885 elementor-widget elementor-widget-heading" data-id="1b8ed885" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #2: Github Codespaces
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-388bc063 elementor-widget elementor-widget-text-editor" data-id="388bc063" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">Trick #1 above is fine but requires:</p><ol dir="auto"><li>Having a secondary machine with spare resources.</li><li>Configuring this machine to be a remote docker host.</li></ol><p dir="auto">If you don’t have (1) or if you are just lazy to do (2) like I am, then I’ve got a better alternative for you: <a href="https://docs.github.com/en/codespaces">Github Codespaces</a>. It allows you to do pretty much the same, except the containers are going to be run automatically by Github in Microsoft Azure cloud. For personal accounts, this includes currently <a href="https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts">60 free hours per month</a>, which is not too shabby.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a4d7501 elementor-widget elementor-widget-heading" data-id="a4d7501" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #3: Prebuilds for Github Codespaces</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-7b8cbada elementor-widget elementor-widget-text-editor" data-id="7b8cbada" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">You can configure the Dev Container to execute a command with <code>onCreateCommand</code> when the container is created, for example configuring and building your source code and fetching all the dependencies. However, building the docker images and performing from scratch all those steps each time you spin a new Dev container environment can take a while, sometimes even more than 20 minutes or more. That is NOT good. You don’t want to wait half an hour just to start coding!</p><p dir="auto">Github has you covered here. <a href="https://docs.github.com/en/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds">prebuilds to the rescue</a>. Prebuilds help to speed up the creation of new codespaces by performing these expenses steps and generating a ready-to-use Dev container image when you push changes to your repository. Bottom line is: instead of 30 minutes to spin a new codespace, now it’s maybe a minute and your code is freshly already compiled and ready to go. Feels like magic in comparison.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c475fd3 elementor-widget elementor-widget-heading" data-id="c475fd3" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #4: nix-devcontainer</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-64e5644e elementor-widget elementor-widget-text-editor" data-id="64e5644e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p dir="auto">Nix makes builds reproducible and thus safer, so we wanted to use it as a package manager. Unfortunately, some vscode extensions do not integrate well with Nix. To workaround this issue, we use <a href="https://github.com/xtruder/nix-devcontainer">xtruder/nix-devcontainer</a> which applies a <em>hack</em> that fixes it by preloading a given set of extensions, for example <a href="https://marketplace.visualstudio.com/items?itemName=arrterian.nix-env-selector" rel="nofollow">arrterian.nix-env-selector</a>, before any other.</p><p dir="auto">Without this, you would otherwise have to for example install rust toolchain twice: one with nix for your flake, and another via apt-get for VS Code to work properly. Not anymore!</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5c61c00 elementor-widget elementor-widget-heading" data-id="5c61c00" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #5: Leveraging Cachix
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-7343531e elementor-widget elementor-widget-text-editor" data-id="7343531e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><p dir="auto"><a href="https://cachix.org/" rel="nofollow">cachix</a> is the most-well known online service cache for Nix. We use it in Github Actions to speed them up and we use it also in the prebuilds mentioned earlier, so that the prebuild process happens faster.</p><p dir="auto">Within the <a href="https://nixos.wiki/wiki/Flakes" rel="nofollow">flake.nix</a> of your package, you can use <a href="https://nixos.wiki/wiki/Flakes#Flake_schema" rel="nofollow">nixConfig</a> to setup access to your public nix cache for any user to take advantage of, <a href="https://github.com/sequentech/bulletin-board/blob/main/flake.nix#L130">just like we do here</a>:</p></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-d8bb254 elementor-widget elementor-widget-code-highlight" data-id="d8bb254" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
					<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>{
  # ...
  nixConfig = {
    extra-substituters = [ "https://sequentech.cachix.org/" ];
    extra-trusted-public-keys = [ "sequentech.cachix.org-1:mmoak2RFNZkQjHHpKn/NbsBrznWqvq8COKqaVOI6ahM=" ];
  };
}</xmp>
				</code>
			</pre>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-174ed1f elementor-widget elementor-widget-text-editor" data-id="174ed1f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><p>Now when a user runs <code>nix develop</code>, it will launch the flake’s default <code>devShell</code> but instead of building everything from scratch, it will have read access to the same nix cache as everyone else.</p><p><strong>However</strong>, it will be first asked to trust this third-party cache. And this is a nice security feature, but might be annoying for example when running commands within the <code>nix develop</code> environment in the prebuild setup script. To fix this, you can either:</p></div><p dir="auto">a) Run any Nix command with an extra <code>--accept-flake-config</code> parameter. </p><p dir="auto">b) Configure your Dockerfile to do that by default as we do in <a href="https://github.com/sequentech/bulletin-board/blob/main/.devcontainer/Dockerfile#L6">Dockerfile</a> and <a href="https://github.com/sequentech/bulletin-board/blob/main/.devcontainer/etc/nix.conf#L6">nix.conf</a>.</p><p dir="auto">Another way to leverage Cachix in Rust projects is to use <a href="https://crane.dev/" rel="nofollow">crane</a>. The beauty of crane is that it allows you to build your rust dependencies just once and then lint, build, and test changes to your project without slowing down. This is something more related to Github Actions, but you might also take advantage of this in the prebuild process within the Dev Container.</p></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-20b5c03 elementor-widget elementor-widget-heading" data-id="20b5c03" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #6: Leverage the power of vscode
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-d3e4697 elementor-widget elementor-widget-text-editor" data-id="d3e4697" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><p dir="auto">You can use all kinds of VS Code stuff within Dev Containers, and everyone will benefit from the time each other spends in having a top-notch development environment configuration. It’s multiplicative. Here are some examples:</p><ul dir="auto"><li>You can configure the editor settings in <code>.vscode/settings.json</code>. If your project is using 80 character lines, maybe you want to add a ruler with <code>"editor.rulers": [80],</code>. This makes the policy clear for the whole development team.</li><li>You can <a href="https://github.com/sequentech/bulletin-board/blob/main/.devcontainer/devcontainer.json#L27">setup preinstalled vscode extensions in <code>.devcontainer/devcontainer.json</code></a>.</li><li>You can configure your project <a href="https://github.com/sequentech/bulletin-board/blob/main/.vscode/launch.json">debugging settings in <code>.vscode/launch.json</code></a>.</li><li>You can configure some <a href="https://code.visualstudio.com/docs/editor/tasks" rel="nofollow">typical tasks</a> like running the unit tests, running the server backend or applying the linter with <a href="https://github.com/sequentech/bulletin-board/blob/main/.vscode/tasks.json"><code>.vscode/tasks.json</code></a>.</li></ul><p dir="auto">As we said earlier: anyone can improve the development environment configuration and everyone benefits. </p></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-b728c97 elementor-widget elementor-widget-heading" data-id="b728c97" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #7: Going multi-repo
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-c9dbdb0 elementor-widget elementor-widget-text-editor" data-id="c9dbdb0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><p dir="auto">Google famously uses a single <a href="https://en.wikipedia.org/wiki/Monorepo" rel="nofollow">monorepo architecture</a>. However, in open source typically you don’t. Typically you have multiple repositories to make it easy to let other people collaborate and reuse specific projects. Sequent Voting Platform is open source not only by license but we also buy the philosophy of collaboration, so we are multi-repo.</p><p dir="auto">However, it can be challenging to manage multiple repositories during development. For example, recently I was developing the <a href="https://github.com/sequentech/bulletin-board">bulletin-board</a> using Dev Containers and I needed, for this feature I was coding, to also apply some minor code changes to one of the dependencies of the bulletin-board, <a href="https://github.com/sequentech/strand">strand</a>.</p><p dir="auto">Should I spin two different codespaces for that? What if I need to touch code in multiple dependencies? Well, don’t worry too much because yet again, Dev Containers and codespaces have a solution for that.</p><p dir="auto">First, you can configure the <code>devcontainer.json</code> to give git commit permissions to other repositories of the same organizations <a href="https://github.com/sequentech/bulletin-board/blob/main/.devcontainer/devcontainer.json#L20">like we do here</a>. More details in <a href="https://docs.github.com/en/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces#setting-additional-repository-permissions">the documentation</a>.</p><p dir="auto">Second, you can modify your <code>onCreateCommand</code> script to download this and any other dependency locally (just do a <code>git clone</code>).</p><p dir="auto">Third, use this local dependency. How to do this will depend on your toolchain. If you are using Rust, my advice is: don’t touch <code>Cargo.toml</code>. Yes, one quick and dirty option is to change your dependency from something like, maybe:</p></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-02019fd elementor-widget elementor-widget-code-highlight" data-id="02019fd" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
					<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>strand = { git = "https://github.com/sequentech/strand", features= ["rayon"] }
</xmp>
				</code>
			</pre>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-914cd66 elementor-widget elementor-widget-text-editor" data-id="914cd66" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><p dir="auto">to:</p></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-4d2e10d elementor-widget elementor-widget-code-highlight" data-id="4d2e10d" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
					<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>strand = { path="./strand", features=["rayon"] }
</xmp>
				</code>
			</pre>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-96c9bd9 elementor-widget elementor-widget-text-editor" data-id="96c9bd9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><p dir="auto">But then you might end up committing that change in  <code>Cargo.toml</code>.and that just isn’t good <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</p><p dir="auto">Instead, you should create a new file to override dependencies called <code>.cargo/config.toml</code>, and add there something like:</p></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-8459d29 elementor-widget elementor-widget-code-highlight" data-id="8459d29" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
					<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>[patch.'https://github.com/sequentech/strand']
strand = { path = "strand", features= ["rayon"] }
</xmp>
				</code>
			</pre>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-ee99569 elementor-widget elementor-widget-text-editor" data-id="ee99569" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto">Additionally, add the <code>.cargo/config.toml</code> to <code>.gitignore</code> to ensure you don’t inadvertently commit this file.</div></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-147d25f elementor-widget elementor-widget-heading" data-id="147d25f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #8: Use multiple containers with docker compose</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-ecd35c7 elementor-widget elementor-widget-text-editor" data-id="ecd35c7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto"><p dir="auto">Maybe you are developing a backend service and you need to use a PostgreSQL database to run it. Or maybe you want to be able to run both the frontend and the backend within your development environment. Or.. you get the point.</p><p dir="auto">You can orchestrate the launch of multiple containers with <a href="https://code.visualstudio.com/docs/devcontainers/create-dev-container#_use-docker-compose" rel="nofollow">docker compose</a>. Because why not, it’s more flexible to always configure your <code>devcontainer.json</code> using docker compose.</p></div></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-aee4d38 elementor-widget elementor-widget-heading" data-id="aee4d38" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #9: Multiple Dev Container configurations
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-66c812e elementor-widget elementor-widget-text-editor" data-id="66c812e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto"><p dir="auto">Contemplate these cases:</p><ul dir="auto"><li>There are times you need to work with a local copy of dependencies, there are others you don’t.</li><li>There are some times where you broke your prebuilds and you want to launch a new Dev Container with no setup script.</li><li>Maybe sometimes you want to develop with an environment using PostgreSQL as a database backend and others with MariaDB.</li><li>Or maybe you actually have multiple projects within a single repository and you want to be able to have a ready-to-go Dev container for each of them (Hello there monorepo people!).</li></ul><p dir="auto">All this can be solved using <a href="https://containers.dev/implementors/spec/#devcontainerjson" rel="nofollow">multiple Dev Container configurations</a>. You can have multiple, ready-to-go <code>devcontainer.json</code> files inside the <code>.devcontainer</code> directory, using the pattern <code>.devcontainer/{name}/devcontainer.json</code>. And <a href="https://containers.dev/implementors/spec/#devcontainerjson" rel="nofollow">Codespaces also supports this feature natively</a>.</p><p dir="auto">Remember these tricks are composable. For example, in this case you can configure prebuilds for each Dev Container configuration.</p></div></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-bd7f030 elementor-widget elementor-widget-heading" data-id="bd7f030" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #10: Custom codespaces
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-7ae43c5 elementor-widget elementor-widget-text-editor" data-id="7ae43c5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto"><p dir="auto">In Github Codespaces you can use the <a href="https://github.blog/2022-04-20-codespaces-multi-repository-monorepo-scenarios/#advanced-create" rel="nofollow">Advance Create feature</a> to configure in more detail your new codespace: choose the specific branch, the number of cores or amount of RAM of the container, the Dev Container file, and actually it has a nice interface to just modify manually the <code>devcontainer.json</code> before launching. This can be helpful in disaster recovery scenarios, for example in broken configurations you can edit the <code>onCreateCommand</code> or anything else.</p></div></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-c7a5b40 elementor-widget elementor-widget-heading" data-id="c7a5b40" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #11: Garbage collection
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-4515ef5 elementor-widget elementor-widget-text-editor" data-id="4515ef5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto"><p dir="auto">Dev containers are typically launched with a specific disk size. Sometimes this turns out not to be enough. Now imagine you have uncommitted/unpushed changes in the container. There are multiple things you can do:</p><ul dir="auto"><li>If the problem is that Nix is using too much space, try running <a href="https://nixos.org/guides/nix-pills/garbage-collector.html" rel="nofollow"><code>nix-collect-garbage</code></a>.</li><li>You can use the Github Codespaces UI to <a href="https://docs.github.com/en/codespaces/troubleshooting/exporting-changes-to-a-branch">export changes to a branch</a>.</li></ul><p dir="auto">Oh and now that we are talking about garbage collection: you can also review and manage all the codespaces you personally have in <a href="https://github.com/codespaces">github.com/codespaces</a>. When working with multiple repository, with multiple features or branches, you might forget about some codespaces.</p><p dir="auto">Codespaces typically <a href="https://docs.github.com/en/codespaces/customizing-your-codespace/setting-your-timeout-period-for-github-codespaces">auto-stop after idling for 30 minutes</a> – and of course this is configurable. But they are still wasting/spending disk space. So go to <a href="https://github.com/codespaces">github.com/codespaces</a> and delete all your unneeded codespaces.</p></div></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-4d18077 elementor-widget elementor-widget-heading" data-id="4d18077" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Trick #12: Codespaces vscode plugin
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-cc57df8 elementor-widget elementor-widget-text-editor" data-id="cc57df8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto"><p dir="auto">So you can go to your repo in github.com, click on the big green button (<code>Code</code>) and launch a new codespace right there and it will open the codespace in vscode running within the web browser in a new tab.</p><p dir="auto">But it doesn’t stop there. You can perhaps close that tab, and then click again in that green button, see there listed your just-created codespace, click on the <code>...</code> button -&gt; <code>Open in..</code> -&gt; <code>Open in Visual Studio Code</code>. And if your local vscode installation has the <a href="https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces" rel="nofollow">Codespaces extension</a> it will just open in a new window of your vscode.</p><p dir="auto">You can even forget altogether about the web browser and do the whole thing from within vscode. With <code>Cmd + Shift + P</code> search for <code>Codespaces</code> and from there you can: connect to a codespace, stop a codespace, rebuild it, create a new one from a specific repository.. you name it.</p></div></div></div></div></div></div></div></div></div>						</div>
				</div>
				<div class="elementor-element elementor-element-984e234 elementor-widget elementor-widget-heading" data-id="984e234" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Wrapping up
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-a2aa0be elementor-widget elementor-widget-text-editor" data-id="a2aa0be" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<div class="elementor-element elementor-element-fa3ef44 elementor-widget elementor-widget-text-editor" data-id="fa3ef44" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="highlight highlight-source-nix" dir="auto"><div class="elementor-element elementor-element-ce09b10 elementor-widget elementor-widget-text-editor" data-id="ce09b10" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div class="elementor-element elementor-element-619d5b3 elementor-widget elementor-widget-text-editor" data-id="619d5b3" data-element_type="widget" data-widget_type="text-editor.default"><div class="elementor-widget-container"><div dir="auto"><div dir="auto"><p dir="auto">There are other avenues to explore in the future. For example, <a href="https://devenv.sh/integrations/codespaces-devcontainer/" rel="nofollow">denvenv.sh</a> also supports integration with Dev Containers and they surely also integrates well with cachix since it comes from the same developer.</p><p dir="auto">Another trick we have not explored yet is to use <a href="https://containers.dev/implementors/features/" rel="nofollow">Dev Container Features</a> to package (quote) “self-contained, shareable units of installation code and development container configuration”.</p><p dir="auto">We’ll continue our road to making development easier and keep you updated.</p></div></div></div></div></div></div></div></div></div>						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/tech/a-bag-of-dev-container-tricks/">A bag of Dev Container Tricks</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Homomorphic vs Mixnet Based E-voting</title>
		<link>/blog/homomorphic-vs-mixnet-based-e-voting/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Mon, 20 Feb 2023 07:44:38 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1612</guid>

					<description><![CDATA[<p>Although proposals have been made using other techniques, most common modern approaches to constructing secure voting systems can be divided into two categories: those based on homomorphic tallying (shorthand “homomorphic systems”) and those based on verifiable mixnets (shortand “mixnet systems”). Most systems, both prototypes in academia as well as production systems in industry, use one [&#8230;]</p>
<p>The post <a href="/blog/homomorphic-vs-mixnet-based-e-voting/">Homomorphic vs Mixnet Based E-voting</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1612" class="elementor elementor-1612" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-25c11fc e-flex e-con-boxed e-con e-parent" data-id="25c11fc" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-975bc23 elementor-widget elementor-widget-text-editor" data-id="975bc23" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Although proposals have been made using other techniques, most common modern approaches to constructing secure voting systems can be divided into two categories: those based on homomorphic tallying (shorthand “homomorphic systems”) and those based on verifiable mixnets (shortand “mixnet systems”). Most systems, both prototypes in academia as well as production systems in industry, use one (or both) of these technologies to achieve the necessary properties for what is termed secure e-voting, and the related gold standard end-to-end verifiable voting.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-80644e3 e-flex e-con-boxed e-con e-parent" data-id="80644e3" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-78dd4fd e-con-full e-flex elementor-invisible e-con e-child" data-id="78dd4fd" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-aac0576 elementor-widget elementor-widget-button" data-id="aac0576" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-3699139 elementor-widget elementor-widget-heading" data-id="3699139" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-1d509e5 elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="1d509e5" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">Homomorphic vs Mixnet Based E-voting</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-f6bf2c5 elementor-widget elementor-widget-text-editor" data-id="f6bf2c5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Research</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f8842a3 e-flex e-con-boxed e-con e-parent" data-id="f8842a3" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-52083a1 e-con-full e-flex e-con e-child" data-id="52083a1" data-element_type="container">
				<div class="elementor-element elementor-element-b6c39b5 uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="b6c39b5" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-90371b3 e-con-full e-flex e-con e-child" data-id="90371b3" data-element_type="container">
				<div class="elementor-element elementor-element-d1a5a6f elementor-widget elementor-widget-image" data-id="d1a5a6f" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="1200" height="630" src="/wp-content/uploads/2024/03/homomorphic-vs-mixnet-based-evoting.png" class="attachment-full size-full wp-image-1617" alt="" srcset="/wp-content/uploads/2024/03/homomorphic-vs-mixnet-based-evoting.png 1200w, /wp-content/uploads/2024/03/homomorphic-vs-mixnet-based-evoting-300x158.png 300w, /wp-content/uploads/2024/03/homomorphic-vs-mixnet-based-evoting-1024x538.png 1024w, /wp-content/uploads/2024/03/homomorphic-vs-mixnet-based-evoting-768x403.png 768w" sizes="(max-width: 1200px) 100vw, 1200px" />													</div>
				</div>
		<div class="elementor-element elementor-element-b204d07 e-flex e-con-boxed e-con e-child" data-id="b204d07" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-93e4737 elementor-widget elementor-widget-text-editor" data-id="93e4737" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Although proposals have been made using other techniques, most common modern approaches to constructing secure voting systems can be divided into two categories: those based on homomorphic tallying (shorthand “homomorphic systems”) and those based on verifiable mixnets (shortand “mixnet systems”). Most systems, both prototypes in academia as well as production systems in industry, use one (or both) of these technologies to achieve the necessary properties for what is termed secure e-voting, and the related gold standard end-to-end verifiable voting.</p><p>In this post we briefly describe the two approaches and then offer a qualitative pros &amp; cons comparison of the two for aspects we have found significant in our experience evaluating and operating such systems. Given that Sequent’s voting system uses a mixnet as its core, it is unsurprising that our conclusion following the below comparisons leans in favour of that choice when building a secure voting system. However, at Sequent we’re open to the possibility of adding a homomorphic backend to our platform if careful analysis suggests it is desirable for particular use cases that may arise.</p>						</div>
				</div>
					</div>
				</div>
				<div class="elementor-element elementor-element-ea1c1fa elementor-widget elementor-widget-heading" data-id="ea1c1fa" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Homomorphic tallying</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-a05fc81 elementor-widget elementor-widget-text-editor" data-id="a05fc81" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Voting systems based on homomorphic tallying exploit the homomorphic property of the underlying encryption to compute tallies. This homomorphic property makes it possible to add encrypted numbers together without decrypting them. The beauty of applying this technique to voting lies in the fact that when computing an election result we do not need to decrypt individual votes, only their sum, so that the secrecy of an individual’s ballot is preserved. </p><p>Unfortunately some technicalities have to be solved. We need a way to encode voter selections in a way that is amenable to this type of summing. This usually amounts to constructing vectors of ciphertexts for which a 1 represents a marked option on the ballot while a 0 represents an unmarked one, and then summing these vectors component-wise. In addition, because we only decrypt sums we also need a way to ensure that these encryptions represent valid choices. Not only because ballots could be nonsensical, but they could also be constructed maliciously to grant a voter more power than they ought to have. Preventing such cases is accomplished using zero knowledge proofs: using that technique we still don’t learn the contents of individual ballots but we are assured that they are valid. </p><p>You can learn more about the technical details of homomorphic tallying from any of the existing proposals featuring it in the literature, a prominent example is <a href="https://github.com/microsoft/electionguard/releases/download/v1.1/EG_spec_v1_1.pdf">ElectionGuard</a>.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a746a36 elementor-widget elementor-widget-heading" data-id="a746a36" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Verifiable mixnets
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-34554c4 elementor-widget elementor-widget-text-editor" data-id="34554c4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Unlike homomorphic tallying, systems based on verifiable mixnets <i>do </i>decrypt individual ballots, but they do this <i>after</i> a process of anonymization which breaks the link between an encrypted ballot and the voter that cast it. The anonymization process amounts to a  <i>shuffling</i> of a set of ballots such that the output set cannot be correlated with the input. The central problem that a verifiable mixnet solves is that of performing this shuffle while still ensuring that the output of that process corresponds to what went in, in other words, no manipulation took place. This is where, as above, zero knowledge proofs enter the picture, ensuring that the shuffling is correct while revealing no other information.</p>						</div>
				</div>
		<div class="elementor-element elementor-element-f2e0188 e-con-full e-flex e-con e-child" data-id="f2e0188" data-element_type="container">
				<div class="elementor-element elementor-element-5f57c5d elementor-widget elementor-widget-image" data-id="5f57c5d" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="768" height="408" src="/wp-content/uploads/2024/03/mixnet-taken-768x408-1.png" class="attachment-large size-large wp-image-1752" alt="" srcset="/wp-content/uploads/2024/03/mixnet-taken-768x408-1.png 768w, /wp-content/uploads/2024/03/mixnet-taken-768x408-1-300x159.png 300w" sizes="(max-width: 768px) 100vw, 768px" />													</div>
				</div>
				<div class="elementor-element elementor-element-65bb0bf elementor-widget elementor-widget-text-editor" data-id="65bb0bf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>(A mixnet with three nodes, taken from <a href="https://proceedings.ictinnovations.org/attachment/paper/234/comparing-performance-of-decryption-and-re-encryption-mixnets.pdf">here</a>)</p>						</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-1bd460d elementor-widget elementor-widget-text-editor" data-id="1bd460d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Verifiable mixnets come in <a href="https://eprint.iacr.org/2020/490.pdf">different flavours</a>, one example (we use at Sequent) is that of re-encryption mixnets. These implement the shuffle by permuting and re-encrypting the input ciphertexts such that the result is a shuffled set of ciphertexts that are equivalent but cannot be correlated with the input. Of course, whoever performs this shuffle <i>does</i> know the correspondence, but that’s where the “net” part of mixnet comes in. If this process is repeated by several independent parties, none of them will be able to trace the path of any ciphertext through the mix network: this will only be possible if all the independent parties pool their information together. So in effect, a mixnet implements a distribution of trust for the secrecy of the ballot, a recurring theme for secure voting systems.</p><p>You can learn more about all the technical details that we use at Sequent in <a href="https://www.csc.kth.se/~dog/research/papers/TW10Conf.pdf">these</a> <a href="https://eprint.iacr.org/2011/168.pdf">papers</a>, and of course directly looking at our source code <a href="https://github.com/sequentech/">repository</a>.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-7e897ef elementor-widget elementor-widget-heading" data-id="7e897ef" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Comparison</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-cd3b001 elementor-widget elementor-widget-text-editor" data-id="cd3b001" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Given this short description of the two techniques let’s take a look at some pros and cons of each for e-voting. We have divided the comparison into sections that are significant in our experience, in alphabetical order.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4371ad3 elementor-widget elementor-widget-heading" data-id="4371ad3" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Generality</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-748493f elementor-widget elementor-widget-text-editor" data-id="748493f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>By generality we mean the degree to which the underlying cryptographic protocol can support a wide range of election and ballot types. Starting from the simplest election type, one which poses a yes/no question to voters, election and ballot types can increase in complexity up to schemes involving, for example, choosing one or more out of several choices, ordering of choices, scoring choices numerically, or even write-ins where voters can outright fill in a previously unspecified choice. </p><p>Generality is probably the axis along which homomorphic vs mixnet based voting systems differ most. As we mentioned before, a homomorphic tally system needs to convert voter’s ballots into suitable ciphertexts that can be summed exploiting the scheme’s homomorphic property. Unfortunately, beyond the case of choosing n-out-of-k options, this rules out the more complex examples we mentioned. Mixnets on the other hand can handle arbitrary ballot types, provided the ciphertext is sufficiently large to capture the ballot information. This makes generality a strong advantage of mixnet systems over homomorphic ones.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f62cdb4 elementor-widget elementor-widget-heading" data-id="f62cdb4" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Implementation complexity
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-25ac4d6 elementor-widget elementor-widget-text-editor" data-id="25ac4d6" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>This category refers to the complexity of the software that makes up the voting systems. Absent other considerations, a higher implementation complexity is a negative factor in our comparison. One immediate reason is the higher difficulty in developing and maintaining the software that makes up the system. More importantly, a more complex implementation is more vulnerable to implementation errors and is harder to secure against both random errors and adversarial attacks.</p><p>In terms of total implementation complexity it is probably fair to say that a homomorphic system is less complex and wins out in this category. But this result leaves out important details as to where the complexity lies. Whereas mixnet systems pay a high complexity cost for the development of the shuffling and its proofs, homomorphic systems pay most of their complexity cost in ensuring that cast ballots are correctly constructed. This difference is a reflection of a key difference between the two. Homomorphic systems do not decrypt individual ballots and rely on complex proofs to certify that said ballots are valid. Mixnet systems however do decrypt after anonymization, so it is trivial in that case to remove invalid or maliciously constructed ballots.</p><p>The consequence of this difference is that homomorphic systems pay a large fraction of their complexity cost on the client where complex proofs must be constructed, and less so on the backend where the tally is more straightforward. Mixnets have the opposite complexity layout, the shuffle and tallying software is sophisticated, whereas the client is relatively simple. It could be argued that complexity on the client side is more problematic, since it is deployed in an uncontrolled environment, the user’s device, and is subject to greater degree of heterogeneity and uncertainty. Conversely, the backend runs in a controlled environment, the systems that specialised entities must run as trustees. In spite of this, we maintain that homomorphic systems come out ahead with respect to implementation complexity.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f78c3f0 elementor-widget elementor-widget-heading" data-id="f78c3f0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Performance</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-afe447d elementor-widget elementor-widget-text-editor" data-id="afe447d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The discussion here draws parallels with the previous section, but replacing implementation complexity with computational complexity. Specifically, a homomorphic system requires more computation on the client side and less so on the backend. This occurs because these systems typically encrypt each possible selection with a ciphertext, resulting in vectors of ciphertexts that grow with the number of options presented to the voter. On top of this, zero knowledge proofs must be constructed for each of these encryptions. Both the encryption and the zero knowledge proofs add computational cost, a computation that takes place in the voter’s client which is limited in performance. On the other hand, once the ballots have reached the backend the necessary computation to verify them and perform the homomorphic sum is reduced, relative to the hardware characteristics available in a server environment..</p><p>Mixnet systems have the opposite layout. Ballot selections can usually be encoded into a single ciphertext, and proofs of validity are not essential as ciphertexts are decrypted after anonymization. However, the process of anonymization, the shuffle, is computationally intensive and grows in complexity the higher the degree of trust distribution is required. Depending on the techniques used, the size of the electorate and the hardware involved a tally can take up to hours in the worst cases.</p><p>Both homomorphic and mixnet based systems may encounter situations which make it a suboptimal choice. But while it is difficult to remedy cases in which client devices cannot be expected to compute large numbers of ciphertexts and proofs, it is usually easier to “throw hardware at the problem” on the backend. For this reason mixnets are more robust to demanding performance scenarios. However, when they can be applied, homomorphic systems show significantly better performance than mixnet systems in general. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-c5afd92 elementor-widget elementor-widget-heading" data-id="c5afd92" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Privacy</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-2fa3f79 elementor-widget elementor-widget-text-editor" data-id="2fa3f79" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>There are different degrees to which a voting system can be said to achieve privacy. The most common and basic requirement is ballot secrecy: the voting system does not reveal who voted for what. There are stronger notions of privacy such as receipt-freeness, where the voter cannot prove how they voted, and coercion resistance where the voter is able to cast their chosen vote even under the influence of a coercer.</p><p>Homomorphic and mixnet based e-voting systems have been the subject of academic research for decades in an attempt to satisfy these requirements. While many proposals exist that achieve ballot secrecy, receipt-freeness and coercion resistance are still an open problem. Our comparison with respect to privacy is then limited to ballot secrecy.</p><p>If constructed correctly (including choices for security parameters), and modulo implementation complexity aspects, both types of systems offer comparable ballot secrecy using cryptography that relies on well known hardness assumptions. In fact, in prominent instances of protocols of both kinds there is overlap in the cryptographic techniques with identical security properties, as is the case for example when using the <a href="https://en.wikipedia.org/wiki/ElGamal_encryption">ElGamal</a> cryptosystem.</p><p>There are some considerations that escape a binary definition of ballot secrecy. One could argue that the tally counts are a form of leakage since they reveal more information than strictly the final result itself, a concern addressed by research into <a href="https://eprint.iacr.org/2020/405.pdf">tally-hiding</a> schemes. But this is true for both types of systems; homomorphic e-voting systems are not fully homomorphic, and are unable to perform arbitrary computations in ciphertext space to yield leak free results. In summary, we consider homomorphic and mixnet systems to be comparable with respect to privacy.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5c1b403 elementor-widget elementor-widget-heading" data-id="5c1b403" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Verifiability</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-a25b3c0 elementor-widget elementor-widget-text-editor" data-id="a25b3c0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>The gold standard for secure voting systems is <a href="https://escholarship.org/content/qt7c9994dg/qt7c9994dg_noSplash_97d64dc5a809c552701079250f47b4cb.pdf">end-to-end verifiability</a>. A system is end-to-end verifiable if it is possible to certify that each of the key operations that make up an election (ballot casting, ballot recording and ballot counting) have been executed correctly. The question then becomes about whether homomorphic and mixnet systems can satisfy the requirements that make a system end-to-end verifiable.</p><p>Again, homomorphic and mixnet based e-voting systems have been the subject of academic research to satisfy these requirements. Within the category of end-to-end verifiability, there exist different proposals as to how each step of the verification takes place. One notable step is cast-as-intended verification, for which adequate usability is still an open problem. But whatever mechanisms are chosen to perform these verifications, they are generally equally applicable to both homomorphic and mixnet systems.</p><p>We can say that, if constructed correctly, both types of systems achieve comparable levels of verifiability;  there are many examples of both types in the academic <a href="https://arxiv.org/pdf/1605.08554.pdf">literature</a> on end-to-end verifiable systems. <a href="https://www.usenix.org/legacy/events/sec08/tech/full_papers/adida/adida.pdf">Helios</a> in particular is a system that has been proposed in both homomorphic and mixnet variants. In summary, we consider homomorphic and mixnet based systems to be comparable with respect to verifiability.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d59c7b2 elementor-widget elementor-widget-heading" data-id="d59c7b2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-e673384 elementor-widget elementor-widget-text-editor" data-id="e673384" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>One would think that the conclusion of our qualitative comparison between homomorphic and mixnet based systems would favour the former, given that it edges out its mixnet counterpart in more of the categories above. However, this advantage only manifests in the concrete cases where homomorphic systems can be applied at all. In contrast, mixnets can handle a much wider range of scenarios, albeit at a higher complexity cost. If one requires a system for a particular use case which does not rule out homomorphic based systems, they are better. But if one wants a future proof system that can be relied upon in general, mixnets are a better choice.</p>						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/blog/homomorphic-vs-mixnet-based-e-voting/">Homomorphic vs Mixnet Based E-voting</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bringing Sequent’s End-To-End Verifiable Voting Solution to the German Market</title>
		<link>/case-study/bringing-sequents-end-to-end-verifiable-voting-solution-to-the-german-market/</link>
		
		<dc:creator><![CDATA[Serhii Bohynia]]></dc:creator>
		<pubDate>Tue, 14 Feb 2023 04:10:38 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Case Studies]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">/?p=1963</guid>

					<description><![CDATA[<p>Based in Lueneburg, Germany, Electric Paper Informations Systeme (EPI) is a company that provides impactful solutions for the digitalization of the workplace and has been working in the field of tension between “people, paper and processes”. For over 20 years, they have contributed to the efficient conduct of internal elections across departmental and organizational boundaries. [&#8230;]</p>
<p>The post <a href="/case-study/bringing-sequents-end-to-end-verifiable-voting-solution-to-the-german-market/">Bringing Sequent’s End-To-End Verifiable Voting Solution to the German Market</a> appeared first on <a href="/">Sequent</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1963" class="elementor elementor-1963" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-66a0b9d2 e-flex e-con-boxed e-con e-parent" data-id="66a0b9d2" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-33686564 elementor-widget elementor-widget-text-editor" data-id="33686564" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Based in Lueneburg, Germany, Electric Paper Informations Systeme (EPI) is a company that provides impactful solutions for the digitalization of the workplace and has been working in the field of tension between “people, paper and processes”. For over 20 years, they have contributed to the efficient conduct of internal elections across departmental and organizational boundaries. EPI has partnered with universities, enterprises, trade unions and chambers of commerce to offer both paper-based and online voting options in elections, ensuring reliable, customizable and scalable end-to-end voting solutions for its customers. </p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3fc1c732 e-flex e-con-boxed e-con e-parent" data-id="3fc1c732" data-element_type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-57909b98 e-con-full e-flex elementor-invisible e-con e-child" data-id="57909b98" data-element_type="container" data-settings="{&quot;animation&quot;:&quot;fadeInLeft&quot;}">
				<div class="elementor-element elementor-element-3cbadfb4 elementor-widget elementor-widget-button" data-id="3cbadfb4" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
					<div class="elementor-button-wrapper">
			<a class="elementor-button elementor-button-link elementor-size-sm" href="/blog/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon elementor-align-icon-left">
				<i aria-hidden="true" class="fas fa-angle-left"></i>			</span>
									<span class="elementor-button-text">Go Back</span>
					</span>
					</a>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-c90373b elementor-widget elementor-widget-heading" data-id="c90373b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<div class="elementor-heading-title elementor-size-default">Blog</div>		</div>
				</div>
				<div class="elementor-element elementor-element-7237d18 elementor-widget__width-inherit elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading" data-id="7237d18" data-element_type="widget" data-widget_type="theme-post-title.default">
				<div class="elementor-widget-container">
			<h1 class="elementor-heading-title elementor-size-default">Bringing Sequent’s End-To-End Verifiable Voting Solution to the German Market</h1>		</div>
				</div>
				<div class="elementor-element elementor-element-65d60ba0 elementor-widget elementor-widget-text-editor" data-id="65d60ba0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<span>Blog</span>, <span>Case Studies</span>						</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-725c1230 e-flex e-con-boxed e-con e-parent" data-id="725c1230" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-3d2da1e2 e-con-full e-flex e-con e-child" data-id="3d2da1e2" data-element_type="container">
				<div class="elementor-element elementor-element-31473979 uael-heading-align-left elementor-widget elementor-widget-uael-table-of-contents" data-id="31473979" data-element_type="widget" data-settings="{&quot;heading_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_between_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:16,&quot;sizes&quot;:[]},&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;],&quot;scroll_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;scroll_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_text_align&quot;:&quot;left&quot;,&quot;heading_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;heading_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;separator_bottom_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;content_between_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0}" data-widget_type="uael-table-of-contents.default">
				<div class="elementor-widget-container">
					<div class="uael-toc-main-wrapper" data-headings="h2,h3" >
			<div class="uael-toc-wrapper">
				<div class="uael-toc-header">
					<span class="uael-toc-heading elementor-inline-editing" data-elementor-setting-key="heading_title" data-elementor-inline-editing-toolbar="basic" ></span>
									</div>
								<div class="uael-toc-toggle-content">
					<div class="uael-toc-content-wrapper">
						
							<ul data-toc-headings="headings" class="uael-toc-list uael-toc-list-none" data-scroll="500" ></ul>
											</div>
				</div>
				<div class="uael-toc-empty-note">
					<span>Add a header to begin generating the table of contents</span>
				</div>
			</div>
					</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-39aa16eb e-con-full e-flex e-con e-child" data-id="39aa16eb" data-element_type="container">
				<div class="elementor-element elementor-element-7cd31fa3 elementor-widget elementor-widget-image" data-id="7cd31fa3" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="768" height="403" src="/wp-content/uploads/2024/03/14-768x403-1.png" class="attachment-full size-full wp-image-1964" alt="" srcset="/wp-content/uploads/2024/03/14-768x403-1.png 768w, /wp-content/uploads/2024/03/14-768x403-1-300x157.png 300w" sizes="(max-width: 768px) 100vw, 768px" />													</div>
				</div>
		<div class="elementor-element elementor-element-5da40ac4 e-flex e-con-boxed e-con e-child" data-id="5da40ac4" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-674e2766 elementor-widget elementor-widget-text-editor" data-id="674e2766" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Based in Lueneburg, Germany, Electric Paper Informations Systeme (EPI) is a company that provides impactful solutions for the digitalization of the workplace and has been working in the field of tension between “people, paper and processes”. For over 20 years, they have contributed to the efficient conduct of internal elections across departmental and organizational boundaries. EPI has partnered with universities, enterprises, trade unions and chambers of commerce to offer both paper-based and online voting options in elections, ensuring reliable, customizable and scalable end-to-end voting solutions for its customers. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-b2f20dc elementor-widget elementor-widget-heading" data-id="b2f20dc" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">Challenges</h2>		</div>
				</div>
					</div>
				</div>
				<div class="elementor-element elementor-element-7200f011 elementor-widget elementor-widget-heading" data-id="7200f011" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Complicated Electoral Processes
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-5099933f elementor-widget elementor-widget-text-editor" data-id="5099933f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Every year, EPI conducts multiple elections, many of them for both national and highly complex organizations with special ballot requirements that can complicate the election process. One example is the University of Muenster who commissioned EPI to create 99 different ballot styles that included relevant student candidates based on their majors. The complexities of such electoral processes done on paper, increases the possibility of human mistake. In addition, paper-ballot designing, printing, distributing, and counting in this case can be extremely costly and challenging from an operational perspective. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-1c58ec7d elementor-widget elementor-widget-heading" data-id="1c58ec7d" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Hybrid Elections – In-Person and Remote Voting 
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-1e2e7a84 elementor-widget elementor-widget-text-editor" data-id="1e2e7a84" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>With the COVID-19 pandemic and growing demand from EPI’s clients to make voting more convenient and accessible to voters, EPI needed a solution that would work seamlessly with their election management system (<i>uniWAHL) </i>to provide a fully online or hybrid elections where it was possible to vote both in-person (on paper) and remotely using the voter’s mobile. The solution should also be flexible enough to suit the various requirements of their clients without the need for custom development.</p><p>EPI initially thought about developing their own solution for the German market, but developing such a program that adheres to security, accessibility, end-to-end verifiability and regulatory standards comes with a significant amount of capital investment required, development challenges and would dramatically delay the time-to-market. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-28102c3 elementor-widget elementor-widget-heading" data-id="28102c3" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Security, Regulations and Accessibility 
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-4d8f4009 elementor-widget elementor-widget-text-editor" data-id="4d8f4009" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>As EPI decided to make the transition to offering its clients the option to vote remotely online (with or without an in-person paper-based voting option) it was now imperative for them to find a solution that allowed them to seamlessly handle online voting with their election management system (<i>uniWAHL) </i>and at the same time, match the same level of security, data-compliance and  the Council of Europe Recommendation Standards for e-Voting (e.g. online voting). Furthermore, the solution had to be  mobile-friendly, fully responsive and easily accessible to people with disabilities.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-776a167e elementor-widget elementor-widget-heading" data-id="776a167e" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">How Sequent Helps EPI
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-6297308c elementor-widget elementor-widget-text-editor" data-id="6297308c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>EPI selected Sequent’s online voting platform and with the guidance of Sequent’s development team, successfully integrated it with their existing election management software, <i>uniWAHL,</i> to deliver fully online or hybrid elections in a safe, reliable, scalable, and cost-effective way to their clients.</p><p>Election configuration and results are imported directly to and from Sequent’s online voting solution (locally branded as EPI’s OWS – Online Voting System) and the entire system is hosted on German Deutsche Telekom servers and is operated on a highly-secure level. </p><p>In short, the focus is on providing a combination of paper-based voting, where votes are manually submitted and scanned for tallying, as well as an online solution for remoting voting, EPI along with Sequent’s solution offers an end-to-end voting solution for its clients.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-55ceab07 elementor-widget elementor-widget-heading" data-id="55ceab07" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Regulations, Security, and Verifiability
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-656ab32b elementor-widget elementor-widget-text-editor" data-id="656ab32b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Sequent’s solution has been in development since 2014 in accordance with online voting standards and cybersecurity best practices, including the Council of Europe Recommendation Standards from 2017. Moreover, Sequent is developing its solution as an open-source software, in close collaboration with academic experts and uses battle-tested cryptography to ensure end-to-end verifiability (where voters can individually verify their ballot cast and count them correctly and where auditors can audit the election results) – This is why Sequent’s unique approach was a natural choice for EPI.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-28da0421 elementor-widget elementor-widget-heading" data-id="28da0421" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Easier Management of Complex Electoral Processes
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-6c691a42 elementor-widget elementor-widget-text-editor" data-id="6c691a42" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>By leveraging Sequent’s comprehensive API interface, EPI was able to easily design in their election management system multiple, user-friendly ballot styles and seamlessly create a digital copy on Sequent’s platform. In the case of hybrid elections, a twin copy of the paper ballot will be created on the Sequent platform to ensure a unified voter experience. Cast ballots will later be consolidated back into EPI’s system to ensure a single source of record. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-2605f712 elementor-widget elementor-widget-heading" data-id="2605f712" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Accessibility</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-4247de7e elementor-widget elementor-widget-text-editor" data-id="4247de7e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Sequent’s online voting platform is a web-based, mobile-friendly, and fully responsive application. This means voters are not obligated to download any app in advance and can use the most current (as well as older models) mobile devices or a PC to cast their ballot. Sequent is also fully compliant with WCAG 2.1 AA standards for people with disabilities. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-10662f92 elementor-widget elementor-widget-heading" data-id="10662f92" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Cost-Effective Solution
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-32fc7088 elementor-widget elementor-widget-text-editor" data-id="32fc7088" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Even though organizations that are transforming to hybrid elections may experience increased costs through the transition period as voters are presented with the option to vote remotely online and/or arrive in-person to vote on paper, it provides the option to gradually narrow down the in-person operations and move online entirely, thus saving costs in the long run. Organizations that are able to move to online voting immediately enjoy the benefits of lower-cost elections right from the start.</p><p>Deploying online elections also allows EPI to rely less on expensive human operations to print, deliver and count complex paper ballots in their client elections, in turn, allowing them to onboard more new clients with minimal operations and support.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-2e749530 elementor-widget elementor-widget-heading" data-id="2e749530" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h2 class="elementor-heading-title elementor-size-default">In Conclusion
</h2>		</div>
				</div>
				<div class="elementor-element elementor-element-4a385e82 elementor-widget elementor-widget-text-editor" data-id="4a385e82" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							With 32 elections and over 250K voters served in 2022 only, Sequent continues to work closely with EPI in delivering dependable, safe, and affordable hybrid or fully online elections that meet the expectations of their clients.

<i>“Integrating Sequent’s solution with our existing uniWAHL voting products was a good choice. It empowers our customers to run hybrid or fully online elections while dramatically reducing their overall election cost and logistics.” </i>– Lars Riemenschneider, CEO – Electric Paper Wahlsysteme, Germany.						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="/case-study/bringing-sequents-end-to-end-verifiable-voting-solution-to-the-german-market/">Bringing Sequent’s End-To-End Verifiable Voting Solution to the German Market</a> appeared first on <a href="/">Sequent</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
