# Blockchain tech for votes

**URL:** <https://boards.straightdope.com/t/blockchain-tech-for-votes/798478>\
**Category:** Great Debates\
**Created:** [October 10, 2017, 1:06pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478 "2017-10-10T13:06:30Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 1:06pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/1 "2017-10-10T13:06:30Z")

</div>

I have been researching the bitcoin/blockchain tech recently, for various reasons. It really is a very elegant system that the guy (whoever it was) invented. Different aspects of the system just mesh nicely, ensure anonymity of transactions together with iron-clad verifiability, and provide the huge computing power required for the verifying/storing transactions by distributing it worldwide among “volunteer” computers with some incentives.

Then I thought that this can be fairly easily applied to voting. Voting should be anonymous and fully verifiable. So - make a new “coin”, call it VoteToken2020 - for the 2020 election (has to be new token/blockchain for each election). Distribute one to each registered voter. Allow them to “spend” it by sending it to the candidate of their choice. To take care of the mining incentives for the block generation, have the government pay the transaction fees to the miners. The only difficulty I see is the sheer amount of transactions in a short time, so the mining difficulty would have to be adjusted, hopefully without undermining the overall integrity of the blockchain too much - but the length of the blockchain would by itself increase its security.

After the election, each voter could check his/her vote as it is recorded in the blockchain, and as it is with Bitcoin, the blockchain is not falsifiable.

Would this work?

---

<div class="post-metadata">

**Author:** ![BobLibDem](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/boblibdem/32/3149_2.png) [@BobLibDem](https://boards.straightdope.com/u/BobLibDem)\
**Post date:** [October 10, 2017, 1:31pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/2 "2017-10-10T13:31:59Z")

</div>

Huge step in the wrong direction. Electronic voting machines malfunction and leave no paper trail to correct them. This proposal would take the opportunity for malfeasance to the next level. If you want the Kremlin to just take over the country, this is how it could be done. The election goes to whoever has the most resources to commit cyber warfare on it.

---

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 1:37pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/3 "2017-10-10T13:37:56Z")

</div>

> [@BobLibDem](#):
>
> Huge step in the wrong direction. Electronic voting machines malfunction and leave no paper trail to correct them. This proposal would take the opportunity for malfeasance to the next level. If you want the Kremlin to just take over the country, this is how it could be done. The election goes to whoever has the most resources to commit cyber warfare on it.

Read up on blockchain technology. It addresses every one of these concerns. You would not need “electronic voting machines” any more than you need them to use bitcoin today. You could vote through your smart phone if you wanted to. There is ironclad trail, it is the whole basis of the system. That’s why it is called “blockchain”. It is not “paper” but it is un-counterfeitable (at least, not with modern computing technology). And the Kremlin cannot do anything about it, any more than it can do anything about crypto currency trading.

---

<div class="post-metadata">

**Author:** ![BobLibDem](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/boblibdem/32/3149_2.png) [@BobLibDem](https://boards.straightdope.com/u/BobLibDem)\
**Post date:** [October 10, 2017, 1:46pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/4 "2017-10-10T13:46:41Z")

</div>

> [@Okrahoma](#):
>
> Read up on blockchain technology. It addresses every one of these concerns. You would not need “electronic voting machines” any more than you need them to use bitcoin today. You could vote through your smart phone if you wanted to. There is ironclad trail, it is the whole basis of the system. That’s why it is called “blockchain”. It is not “paper” but it is un-counterfeitable (at least, not with modern computing technology). And the Kremlin cannot do anything about it, any more than it can do anything about crypto currency trading.

And you trust the programmers to do it on the level and that other superpowers couldn’t be able to hack it? Here’s an idea: suppose we gave each voter a piece of paper, had them mark their choices, and count them in view of all interested parties? Low tech, but Canadians manage to do it and people trust the results.

---

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 1:51pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/5 "2017-10-10T13:51:16Z")

</div>

> [@BobLibDem](#):
>
> And you trust the programmers to do it on the level and that other superpowers couldn’t be able to hack it?

Again, read up on the technology. I don’t trust the programmers. That trust is not needed. You trust the underlying math. If the programmers don’t implement it correctly, the system can’t work. It can’t even pretend to work.

---

<div class="post-metadata">

**Author:** ![Ravenman](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ravenman/32/2929_2.png) [@Ravenman](https://boards.straightdope.com/u/Ravenman)\
**Post date:** [October 10, 2017, 2:08pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/6 "2017-10-10T14:08:44Z")

</div>

I’m not going to read up on the technology any more than I already have, so explain this to me and don’t just tell me to visit Wikipedia or whatever.

So with bitcoin, if some miners stumble across the right numbers, they are free to spend the mined bitcoin as though it was any other bitcoin. The provenance of it is irrelevant.

For voting, we very much do not want miners to be able to create new votes. You wrote, “To take care of the mining incentives for the block generation, have the government pay the transaction fees to the miners.” I don’t understand what you mean by “transaction fees.” Does that mean that the government would pay people who mine new votes?

Does your system also mean that the tallying of votes also depends on the election authority examining the blockchain of every vote cast as a matter of routine, or would that be done only in a disputed election?

---

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 2:14pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/7 "2017-10-10T14:14:19Z")

</div>

> [@Ravenman](#):
>
> I’m not going to read up on the technology any more than I already have, so explain this to me and don’t just tell me to visit Wikipedia or whatever.
> 
> So with bitcoin, if some miners stumble across the right numbers, they are free to spend the mined bitcoin as though it was any other bitcoin. The provenance of it is irrelevant.
> 
> For voting, we very much do not want miners to be able to create new votes. You wrote, “To take care of the mining incentives for the block generation, have the government pay the transaction fees to the miners.” I don’t understand what you mean by “transaction fees.” Does that mean that the government would pay people who mine new votes?

That’s just how it is done with bitcoin, for now. Eventually, there will be no bitcoin awarded for mining at all. All miners will get will be transaction fees. In fact, Bitcoin miners get transaction fees now for the transactions they include in the block. Those fees come from people initiating the transactions and are the incentive for the miners to include the transactions in the blocks (they are not required to include any transactions in the block). In case of voting, the mining would only be transaction-fee-driven, and the transaction fees would be paid by the government to incentivize it.

> [@](#):
>
> Does your system also mean that the tallying of votes also depends on the election authority examining the blockchain of every vote cast as a matter of routine, or would that be done only in a disputed election?

The election authority (and anyone else who wants to do it, since the blockchain is public and is open to all) will be able to compute the results of the election by examining the blockchain, yes.

---

<div class="post-metadata">

**Author:** ![Ravenman](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ravenman/32/2929_2.png) [@Ravenman](https://boards.straightdope.com/u/Ravenman)\
**Post date:** [October 10, 2017, 2:19pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/8 "2017-10-10T14:19:34Z")

</div>

I think nobody is going to understand this system, let alone have confidence in it.

---

<div class="post-metadata">

**Author:** ![DPRK](https://avatars.discourse-cdn.com/v4/letter/d/4491bb/32.png) [@DPRK](https://boards.straightdope.com/u/DPRK)\
**Post date:** [October 10, 2017, 2:21pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/9 "2017-10-10T14:21:25Z")

</div>

Many, many problems with this idea. A couple of obvious ones: what you propose is not secure, anonymous voting, but more like each voter standing in the forum and shouting, “My name is XX-123 and I cast my vote for YY!”, with all the potential problems and possibilities for corruption that entails. Also, how do you propose to keep people from voting twice?

Another: a “volunteer” network? For official elections? Who approves these “volunteers” and their hardware and software?

Not to say that there is no way to implement verifiable electronic voting. [Here](https://people.csail.mit.edu/rivest/pubs/Riv04b.slides.pdf) is an old survey which lists some requirements for an acceptable voting system (registration, privacy, integrity, availability, ease of use).

A Great Debate is whether any of the proposed (provably secure) schemes offer a great enough advantage over paper ballots to make them worthy of consideration.

ETA: ultimately the public must also have confidence in the scheme!

---

<div class="post-metadata">

**Author:** ![Defensive\_Indifference](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/defensive_indifference/32/6502_2.png) [@Defensive\_Indifference](https://boards.straightdope.com/u/Defensive_Indifference)\
**Post date:** [October 10, 2017, 2:28pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/10 "2017-10-10T14:28:31Z")

</div>

I haven’t got enough coffee into my brain yet, so apologies in advance for whatever incoherent things I may write here.

I think the idea is interesting, and my gut reaction is that the blockchain technology could probably handle the transaction logging. I’m a little hazy on how it works, but I think it could be applied to this, at least from a technical perspective.

My huge concern, though, is that it would entrust tens of millions of voters to ensure the security of their voting tokens. I would expect this plan to result in a lot of stolen tokens, token phishing, disinformation about the tokens and voting process, etc. Such a widely distributed voting process would invite a lot of shenanigans that I think would be nearly impossible to combat. When it’s so easy to compromise the typical PC, I think we’d lose a massive amount of trust in the provenance of the votes. “A new report suggests that 10 million votes were cast by a botnet! Local octogenarian said she went to vote, only to find out that her vote had already been cast!”

In addition, I’m a little hazy on how blockchain works, and I do computer security for a living. I think it would be impractical to transition huge numbers of people from a simple and intuitive voting process to something requiring a working knowledge of blockchain.

This is not to say, of course, that our current voting system is great. Just that I see the “voting token” approach as introducing larger problems.

---

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 2:50pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/11 "2017-10-10T14:50:17Z")

</div>

> [@DPRK](#):
>
> Many, many problems with this idea. A couple of obvious ones: what you propose is not secure, anonymous voting, but more like each voter standing in the forum and shouting, “My name is XX-123 and I cast my vote for YY!”, with all the potential problems and possibilities for corruption that entails. Also, how do you propose to keep people from voting twice?

It can be devised that the initial voter’s token transaction is completely anonymous, thus the later transaction of transferring the token to the candidate of choice does not identify the voter (but the voter can definitely verify and identify his transaction in the recorded blockchain later).

> [@](#):
>
> Another: a “volunteer” network? For official elections? Who approves these “volunteers” and their hardware and software?

The current bitcoin block mining is all done by a vast volunteer network, fueled by the mining awards and transaction fee incentives. That is why I said in the OP that the system as designed is very elegant. No one verifies their software or hardware. It doesn’t matter. What matters is that the result computes. You can’t mine a block for a transaction incorrectly - it can be very easily verified. That’s the beauty of the math - the solution for the math problem is very difficult to find and takes vast computing power, but once found it is very easily verifiable.

---

<div class="post-metadata">

**Author:** ![Ravenman](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ravenman/32/2929_2.png) [@Ravenman](https://boards.straightdope.com/u/Ravenman)\
**Post date:** [October 10, 2017, 3:01pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/12 "2017-10-10T15:01:58Z")

</div>

Is this system used for any other activity that is generally similar to voting? I would not consider the buying and selling of goods to be similar to voting in any way.

---

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 3:18pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/13 "2017-10-10T15:18:30Z")

</div>

> [@Bayard](#):
>
> In addition, I’m a little hazy on how blockchain works, and I do computer security for a living.

Basically blockchain is a string of blocks, starting with a zero block. To create a block, you have to solve a very difficult computational problem (but with a well-known degree of difficulty). Once the solution is found, it is very easily verifiable.

When you create a block, you can stuff it with some number (in thousands) of pending transactions (transactions are all encrypted with the public/private keys), then add it to the blockchain. As an incentive for you to spend your computing power/electricity to create that block, you get some number of coins for creating one and gather the transaction fees attached to the transactions you put into the block. You could also run this on transaction fees alone (though the transaction fees would have to be higher than they are today for bitcoin, they are really minuscule). The whole point is that the mining/verification network is not centralized. It is run by people who want to earn $ by running it.

There is some math done in wrapping blocks and chaining them that makes sure that in order to counterfeit a block later, you would have to re-create all the blocks that follow it, which makes it very difficult, considering how difficult it is to create the block in the first place. The whole chain is public, not centralized, and easily verifiable by starting from block zero and following the chain, verifying the blocks and looking at the transactions in them.

---

<div class="post-metadata">

**Author:** ![Bone](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/bone/32/407_2.png) [@Bone](https://boards.straightdope.com/u/Bone)\
**Post date:** [October 10, 2017, 3:25pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/14 "2017-10-10T15:25:16Z")

</div>

That blcokchain tech facilitated bitcoin is a bit of a red herring. Blockchain tech is severable from bitcoin. In fact, the logic is being used in expanding areas of financial transactions. Here’s a blurb from [investopedia](http://www.investopedia.com/terms/b/blockchain.asp):

> [@](#):
>
> Advantages of Blockchains  
> Efficiencies resulting from DLT can add up to some serious cost savings. DLT systems make it possible for businesses and banks to streamline internal operations, dramatically reducing the expense, mistakes, and delays caused by traditional methods for reconciliation of records.
> 
> The widespread adoption of DLT will bring enormous cost savings in three areas, advocates say:
> 
> Electronic ledgers are much cheaper to maintain than traditional accounting systems; the employee headcount in back offices can be greatly reduced.  
> Nearly fully automated DLT systems result in far fewer errors and the elimination of repetitive confirmation steps.  
> Minimizing the processing delay also means less capital being held against the risks of pending transactions.  
> In addition, some smaller number of millions will be saved by shrinking the amount of capital that broker/dealers are required to put up to back unsettled, outstanding trades. Greater transparency and ease of auditing should lead to savings in anti-money laundering regulatory compliance costs, too.
> 
> Blockchain’s removal of almost all human involvement in processing is particularly beneficial in cross-border trades, which usually take much longer because of time-zone issues and the fact that all parties must confirm payment processing. Blockchain systems can set up smart contracts or payments triggered when certain conditions are met. The blockchain cotton transaction mentioned above, for example, used a smart contract that automatically made partial payments when the cotton shipment reached specific geographic milestones.

There’s potential I think, but the biggest hurdle in adoption would be understandability and confidence.

---

<div class="post-metadata">

**Author:** ![Defensive\_Indifference](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/defensive_indifference/32/6502_2.png) [@Defensive\_Indifference](https://boards.straightdope.com/u/Defensive_Indifference)\
**Post date:** [October 10, 2017, 3:36pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/15 "2017-10-10T15:36:17Z")

</div>

> [@Okrahoma](#):
>
> Basically blockchain is a string of blocks, starting with a zero block.

Right, I mean I don’t understand it at a very deep level.

> [@Bone](#):
>
> There’s potential I think, but the biggest hurdle in adoption would be understandability and confidence.

This is my view as well. I think the loss in confidence would come from the difficulty in understanding the system (as you mention) as well as from the difficulty in guaranteeing the security of tokens held by tens of millions of individuals on their personal computing devices. (Not to mention the loss of access to voting by people who don’t have a personal computing device capable of handling the transaction.)

---

<div class="post-metadata">

**Author:** ![DPRK](https://avatars.discourse-cdn.com/v4/letter/d/4491bb/32.png) [@DPRK](https://boards.straightdope.com/u/DPRK)\
**Post date:** [October 10, 2017, 3:49pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/16 "2017-10-10T15:49:44Z")

</div>

> [@Okrahoma](#):
>
> It can be devised that the initial voter’s token transaction is completely anonymous, thus the later transaction of transferring the token to the candidate of choice does not identify the voter (but the voter can definitely verify and identify his transaction in the recorded blockchain later).

It sounds like this violates the requirement that the voter not be able to prove to anyone which way he or she voted.

> [@](#):
>
> The current bitcoin block mining is all done by a vast volunteer network, fueled by the mining awards and transaction fee incentives. That is why I said in the OP that the system as designed is very elegant. No one verifies their software or hardware. It doesn’t matter. What matters is that the result computes. You can’t mine a block for a transaction incorrectly - it can be very easily verified.

What’s to prevent a resourceful adversary from taking over the network by sheer numbers, and/or distributing subverted hardware to legitimate voters, or DDOSing the election?

---

<div class="post-metadata">

**Author:** ![Okrahoma](https://avatars.discourse-cdn.com/v4/letter/o/90db22/32.png) [@Okrahoma](https://boards.straightdope.com/u/Okrahoma)\
**Post date:** [October 10, 2017, 3:54pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/17 "2017-10-10T15:54:41Z")

</div>

> [@DPRK](#):
>
> It sounds like this violates the requirement that the voter not be able to prove to anyone which way he or she voted.

It doesn’t really. Only the voter himself knows that the transaction key he has is his. When he shows it to someone else, he could show someone else’s.

> [@](#):
>
> What’s to prevent a resourceful adversary from taking over the network by sheer numbers, and/or distributing subverted hardware to legitimate voters, or DDOSing the election?

The adversary would have to be a lot more resourceful than current governments are, even the US government. You underestimate the total computing power of millions of incentivized miners. And you can’t DDOS a system that is as widely distributed as blockchain is. You’d have to shut down the Internet.

---

<div class="post-metadata">

**Author:** ![Defensive\_Indifference](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/defensive_indifference/32/6502_2.png) [@Defensive\_Indifference](https://boards.straightdope.com/u/Defensive_Indifference)\
**Post date:** [October 10, 2017, 3:58pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/18 "2017-10-10T15:58:20Z")

</div>

> [@DPRK](#):
>
> What’s to prevent a resourceful adversary from taking over the network by sheer numbers, and/or distributing subverted hardware to legitimate voters, or DDOSing the election?

I don’t think I’ve ever done this before, but: I appreciate the username/post combo here. We’re keeping our eyes on you! 🙂

---

<div class="post-metadata">

**Author:** ![treis](https://avatars.discourse-cdn.com/v4/letter/t/bc79bd/32.png) [@treis](https://boards.straightdope.com/u/treis)\
**Post date:** [October 10, 2017, 5:44pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/19 "2017-10-10T17:44:17Z")

</div>

> [@Okrahoma](#):
>
> Voting should be anonymous and fully verifiable.

Voting should not be anonymous for the obvious reason that you only want eligible voters to vote. Plus, bitcoin isn’t anonymous, again for the obvious reason that you need a way to identify the owner of a bitcoin. Bitcoin is pseudonymous, meaning that (essentially) you can have as many pseudonyms within the system and every transaction is associated with one of those pseudonyms. The system is only anonymous to the extent that you can hide the fact that your pseudonyms are actually you.

---

<div class="post-metadata">

**Author:** ![treis](https://avatars.discourse-cdn.com/v4/letter/t/bc79bd/32.png) [@treis](https://boards.straightdope.com/u/treis)\
**Post date:** [October 10, 2017, 6:11pm UTC](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478/20 "2017-10-10T18:11:11Z")

</div>

> [@Bayard](#):
>
> In addition, I’m a little hazy on how blockchain works, and I do computer security for a living. I think it would be impractical to transition huge numbers of people from a simple and intuitive voting process to something requiring a working knowledge of blockchain.

A blockchain uses previous entries to encrypt the next one. This ensures that the previous entries can’t be modified. To use voting as an example your hash would be generated from your name, your vote, and the previous hash. It would look like this:

Hash(null, Bayard, Giant Douche) = H324LI32  
Hash(H324LI32, treis, Turd Sandwich) = B21KJ534  
Hash(B21KJ534, Okrahoma, Giant Douche) = 39SFL341

What happens if someone tries to change your vote after the election:

Hash(null, Bayard, Turd Sandwich) = 234Z3253

My hash becomes:

Hash(234Z3253, treis, Turd Sandwich) = G32K324

Which is different, so I know that the chain has been tampered with.

[Next page](https://boards.straightdope.com/t/blockchain-tech-for-votes/798478.md?page=2)
