Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I strongly disagree. This is a comment from someone who (I presume) is unaware of the advances in Proof-of-Stake blockchains, and other consensus protocols like the Stellar Consensus Protocol. Databases do not have a distributed way to manage consensus - one of the main things that sets a blockchain apart from a distributed database.

This consensus mechanism is what's important when something important (like an election) hinges on the blockchain being an accurate representation of state. This requires a Byzantine-fault-tolerant agreement. See https://medium.com/loom-network/understanding-blockchain-fun....



Stellar operates on the basis of trust in a third party [1].

The jury is still out on proof of stake blockchains like Casper [2]

[1] https://stellar.stackexchange.com/questions/160/how-does-the...

[2]https://medium.com/@muneeb/peer-review-cbc-casper-30840a98c8...


If you define "third party" as your first link does, everything relies on trust in a third party. The counting of ballots also relies on a third party, albeit a less homogenous and "centralized" third party (though that term is also hard to define).

The difference is that a public blockchain provides an open and auditable overview of the actions of the third party, and what the state of the entire "database" is. This is something that a Merkle tree whose root is published in a newspaper once a week can't achieve (an anecdote from a story Roberto Di Cosmo of the Software Heritage Foundation told me).

To your second link — I'm not arguing for such a system today. Of course there are many roadblocks and hurdles in getting to full proof-of-stake or full "decentralization". But in 5-10 years I'm sure we'll be there. There are hundreds of teams, from Algorand to Casper to Ethereum, working on this issue.


> The counting of ballots also relies on a third party,

A third party counting all ballots, unless audited, would be a terrible way to conduct a public vote.

In pen-and-paper voting systems, counting is carried out by the very same people that vote, publicly, in the open. Then there are also auditing systems in place.


> Databases do not have a distributed way to manage consensus.

what about something like the Raft protocol?


Yes, Raft (and Paxos) are indeed distributed consensus protocols.

But the GP is talking about distributed in blockchain-land, which uses terms differently.

In blockchain-land, it means "consensus among peers who do not trust each other".

In non-blockchain-land, there are what's called byzantine distributed consensus protocols, which as robust again deliberate subversion by some nodes in the network. Basically if nearly everyone votes one way, it doesn't matter what a few subversive nodes do. But byzantine robustness does have a cost (in time), so protocols are usually designed on the assumption that there may be faulty nodes, but the errors are not deliberate.

But even byzantine protocols assume the network is somewhat predefined.

Whereas in blockchain-land, you don't know how many peers there are, who they are, and you don't trust them. What you do trust is their motivations en masse, because there's money and power in it.

It uses economic and evenness-of-technological-progress factors to provide a level of collective trust. A core assumption is no motivated actor is sufficiently powerful to subvert everyone else. This assumption is not guaranteed by protocols, and can also be broken by collusion among large actors, because collusion makes them more powerful.

With proof-of-work, the assumption can also be broken if a sufficiently powerful new technology becomes available to one actor before anyone else. (I'm not sure what the situation is with proof-of-stake, which to be honest smells like RichGetRicher 3.0, but I don't know much about it.)


You are right that Raft and Paxos provide for distributed consensus. However, they don't do so in an open, byzantine environment where some fraction of the nodes in the network may not be honest.

edit: there are byzantine variants of paxos --- i'm not 100% familiar with these (and tbh i'm take it or leave it on the whole thing), just wanted to note that i think the parent was trying to get at something slightly different than consensus in an environment with nodes that fail, i.e. "traditional" consensus algorithms


???

You absolutely do not want consensus anywhere near an election. Consensus is not about agreeing on the total balance of transactions, it's about agreeing on individual transactions. It implies that multiple people know what your vote was which is absolutely not what you want.


This is not true if the voting apparatus is separate from the identity of the voter. There are two ways to accomplish this, and the USPS is proposing that they ship voters a sort of "private key", which is fully anonymous, which has no connection to their identity. This key is used once, with the right to cast one vote.

In such a system, the whole blockchain will know what each public key voted for. The difference is that there is no connection between this public key and the vote of an individual. This would allow for a massively snd openly auditable system, without sacrificing privacy or convenience.

I am not a proponent of this, as I think that in the near and mid-term futures, there are too many technical problems to be worked out. If, however, we end up giving every citizen digital ID cards as Estonia has done, and using those as secure hardware used for voting, we could distribute the voting process. Essentially, there would be no more vote-counting. There would only be vote casting and the election results would be apparent to everyone, immediately.

Consensus is absolutely necessary for such a system.


I look forward to the national outrage in year 2075 when it is discovered that 90% of "voting citizens" were tokens stored in the basement of the White House, and nobody noticed for 50 years.


You don't know my bitcoin wallet address unless I share it with you, and you wouldn't know my voting ID unless I shared it with you.


SSNs are probably the closest existing parallel. How many people in the US of voting age haven't had their SSN leaked yet? Obviously SSN is abused in the things it is used for (I.e. identification), but I don't see any indication voter IDs wouldn't be abused the same way.


SSN is a (mostly) permanent number you use for many many things. A voter ID would be unique with every upcoming vote. Election specific public key would probably be a more correct term.

Abuse of it would definitely be bad, but it would be more difficult as you'd have to repeat the identity theft every election, rather than knowing someone's lifetime secret number.


I agree, when consensus is the per-transaction kind used in, say, Bitcoin.

However, a Zero-Knowledge Proof-based consensus (https://zkproof.org) can produce agreement on a combined result without revealing the individual inputs.

It's not easy, and you still have to prove the protocol has been followed, that is that everyone voted even though you don't know what they voted for.

But it's a type of consensus which you do want.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: