To me, the whole blockchain aspect of cryptocurrencies and related technology isn't particularly interesting, but the idea of automated consensus is. You can tell if someone actually knows a thing or two if they aren't just slobbering over "the blockchain."
I think part of the parent's point is that, at their core, blockchains are really relatively simple. But because they're data structures and people confuse them with actual products built over blockchains, there is a lot of semantic overloading that goes on.
When people refer to blockchains they may be variously referring to distributed consensus, the cryptographic primitives, the proof of work, the Merkle trees, the cryptocurrency or the end product built involving all of these things. These are all components which can be decomposed from the blockchain, which belies a general ignorance and lack of critical engagement with the concept for many advocates.
To be clear I'm not saying blockchains don't have viable use cases. Rather I'm saying there is a lot of noise inherent to any discussion about them.
Not to mention the various added value innovations to make a particular blockchain attractive and useful to some people.
No, that's not really correct - and this is exactly what I'm talking about. Saying a blockchain is all of these things is like saying a website is the backend application, the client web browser, the TLS protocol and all the users who use the website. But most of those things aren't the website.
When we talk about the architecture of any given web application, we decompose these interactions and distinguish between them. We generally even distinguish between backend, frontend, infrastructure and and middleware resources on the server side. This allows us to productively talk about things with precision. In contrast any discussion involving the term "blockchain" suffers because it means 10 things to nine different people.
It's not even an issue of generality. It would probably be fine if the term "blockchain" referred to entire networks and protocols built over blockchain data structures. Then referring to a blockchain would be like referring to "the internet." The real problem is the lack of precision, because in conversation different people are crossing all sorts of layers of abstraction, each to varying degrees of knowledge and expertise. That makes ascertaining the accuracy of claims a murky business for those who aren't substantially well informed.
The only thing you need is to verify your identity on your phone. In Sweden we have a national system called BankID which is in use everywhere, so this is solvable.
Then you can publish your votes on the blockchain so they're immutable and publicly verifiable. This has some benefits over traditional voting:
* You can vote from your phone
* Votes can be counted instantly in real time
* Votes can be independently verified
* You can verify that your vote is counted correctly and included
You should also be able to make your identity private using zero knowledge proofs so you can verify your own vote but everyone else can not track any individual vote.
Voting via your phone would save huge amounts of time and energy compared to paper voting and it would make holding these votes much easier. It would avoid situations like in the Bush/Gore election where votes were invalid, not counted properly and counted too late.
I believe this would be a superior voting scheme if implemented properly and adopted on a national level.
What if I lose my private key? Can I just no longer vote for the rest of my life? If I can somehow reclaim my vote that means there is somebody that’s actually controlling that blockchain and it’s no longer trustless and reliable if some party has that power. If I lose my private key and lose my right to vote then that’s a bad system.
What if somebody starts paying people for their private keys? It seems like it’s illegal and immoral to let the practice continue but there’s no way of stopping it. Those private keys are either irrevocable which stays true to the blockchain and not trusting of a middleman OR there is some party the ability to revoke those keys and in that case… THAT’S a trusted middleman.
What happens if a user claims the vote they cast isn’t what the public ledger shows their public key/address as having voted for? What if a lot claim that?
What does the blockchain really provide in these kinds of imagined uses? That a certain set of private keys DID sign a certain set of transactions - assuming a 51% attack isn’t affordable enough for some party wanting to sway the election. That’s it. No connection to reality. Any non awful implementation of it involves inserting trusted third parties at every part of the process. And this isn’t because we’re ‘early’ and we’ll somehow figure these out. They’re fundamental to blockchain design.
In the case of a national election it's of course okay to trust that the government distributes the keys.
As I said in Sweden we have BankID. With it you log in to all banks, do your taxes, doctors appointments and journals, etc. These are given out at banks and service points which require your ID and send to your address (the exact same security checks as when you're voting). They can be withdrawn and renewed as needed.
We distribute the votes so 1 vote = 1 BankID vote. It's also technically possible to allow users to change their vote if done before the deadline.
All this can happen on any blockchain for example the very secure Bitcoin chain.
> What if I lose my private key?
You renew your BankID and you can change your vote.
> What if somebody starts paying people for their private keys?
What if somebody starts paying people to vote for them? Same problem.
> What happens if a user claims the vote they cast isn’t what the public ledger shows their public key/address as having voted for?
That it's even possible is an improvement over what we have today. Now I just don't know if my vote was counted incorrectly either by a tired worker or a corrupt one(s).
> What does the blockchain really provide in these kinds of imagined uses?
All votes can be counted publicly by anyone. There's no possibility for more votes than registered residents for example. There's no delay.
A lot of money is spent on setting up voting booths, collecting votes and counting them. This is much cheaper. We also don't throw away so much paper.
> assuming a 51% attack isn’t affordable enough for some party wanting to sway the election
Firstly a 51% attack would be easily detectable.
Secondly the only thing you can do is prevent people from voting. You cannot vote for them.
Thirdly all votes cast on the orphaned blocks can still be detected.
You're describing a system where the government has a list of IDs and associated Private Keys and therefore knows who everyone votes for. That IS NOT OK.
Also it's not that the government has their private keys. The government basically sends a token to an address the voter controls. So they cannot steal their votes and they cannot see where their transactions went.
So this is solvable.
I'm not so confident. The Monero output from those transactions is actually only knowable to the intended recipient so I don't really know how this would work best. Would there be a pre-determined address that we're all sending our vote transactions to? Would that key be public so it could be audited by everyone? It seems like in this scenario systematic abuse by the government would be trivial. Just grant a few % extra tokens to address you control and sign the transactions to vote your way and the'd be no auditability, no knowing which votes came from where. In many elections the polling is good enough and the margin narrow enough that it would be extremely easy to do and not look suspicious.
The initial seeding should also be public so the total amount of votes could be audited as well. It's possible to set it up so you can't ever create any new votes after the initial seed (this is possible in all current token schemes for example).
> Just grant a few % extra tokens to address you control and sign the transactions to vote your way and the'd be no auditability, no knowing which votes came from where. In many elections the polling is good enough and the margin narrow enough that it would be extremely easy to do and not look suspicious.
This is a big problem with paper voting actually. At least with the blockchain based voting you cannot create extra votes out of thin air.
With paper voting you might be able to say "the faulty votes came from this district". You could accomplish the same by setting up separate blockchain votes for each district and then just adding them together to form the final vote to get the same property.
I hate to be too pedantic about this but that's sort of the point. It doesn't sound like you're describing a blockchain anymore or at least getting any of the purported benefits of a blockchain. You have a central authority now setting up numerous separate instances, controling who gets the voting tokens, able to revoke and re-grant tokens at will, and in charge of setting and publishing the destination. The whole advantage of the blockchain is that there isn't a trusted 3rd party.
If you're already trusting the government you can do cryptographic hashing, a publicly readable database and build in a ton more transparency.
We seed it with the # of registered voters. Sure they could try to withhold some % of votes and vote themselves but hopefully that should be noticed.
> It doesn't sound like you're describing a blockchain anymore or at least getting any of the purported benefits of a blockchain.
The blockchain here makes sure the votes are delivered and counted correctly, without permission or trust.
Yes we need to trust the government to set it all up but after that they can't interfere.
> able to revoke and re-grant tokens at will,
This is false. Only the voter can do this.
I think with ring signatures obfuscating everything it might be tough or even impossible to detect.
I would certainly enjoy reading a research paper on the viability though!
>> able to revoke and re-grant tokens at will
>This is false. Only the voter can do this.
Then I think I don't understand the system you're proposing. How does the user get back their ability to vote if they lose their private key in this scenario?
Not really - paying someone to vote with the usual paper system doesn't work because you can't verify that they've voted the way you paid them to.
Not if the voter opts in for the vote by mail.
This would open up a whole can of worms for things like your employer (or other entity) being able to verify you voted "correctly", excluding people without smartphones, require ID to vote, &etc...
It doesn't need a blockchain (and predates blockchain), and it has some very nice properties, such as not requiring electricity proportional to how much an attacker might spend, and uncoercibility (as defined in their paper).
I think elections are poorly suited to blockchain for several reasons:
1. There is an authority (the government), so the lack of centralized trust of a blockchain adds nothing.
2. The core of a blockchain is preventing double-spends (double-votes) by picking which version of the truth is correct via some input proof-of-something. Unfortunately, there's more value in subverting an election than securing it, so it seems likely if the US uses $20k of computing power to secure the "vote blockchain", a malicious actor will simply spend $20m of compute power to reverse votes or otherwise stall out democracy. It turns out requiring work to secure something works much less well if it's not money. On the flip side, if we have to spend more for each election in proof-of-work computation than any attacker might spend, we quickly also are losing.
3. Blockchain's cryptography does not provide nice properties like uncoercibility, and those things would have to be baked on top, and yet can instead be built separately more simply (as proved by academic research like the one I linked and the hundreds of papers that cite it).
All 4 of the properties you mentioned are totally unrelated to blockchain technology. You could already get all the above if the government just ran an api that let users digitally sign and publish votes and check votes signed with their key, and that publicly exposes a full audit log. None of that requires blockchain, all it requires is that citizens get a private key (also required if it were a blockchain), don't have multiple, and that the private key isn't publicly associated with them for anonymity.
When you say "Blockchain would help because you could vote on your phone", what you really mean is "digital voting with cryptography to make it secure would be nice". Blockchain is irrelevant if all you want is a mobile app and cryptography that excludes the generals problem.
The actual problem is not a technical one in the first place. Elections are a mess for largely human reasons. Pretending that all we need is some magic technology to fix this problem is being wilfully ignorant.
This is why people are distrustful to voting machines and other techy solutions. Having everything verifiable in public addresses these concerns.
> There is an authority (the government), so the lack of centralized trust of a blockchain adds nothing.
The trust needed is for the government to distribute keys/votes instead of trusting the government to store and count your votes as well.
> a malicious actor will simply spend $20m of compute power to reverse votes or otherwise stall out democracy.
Yes they could. It is however easy to detect.
> so it seems likely if the US uses $20k of computing power to secure the "vote blockchain"
We would of course embed our votes in the much more secure Bitcoin ledger which is much harder to attack and runs without any help from the government (although they could help make it even more secure).
Prove to me it's as safe or safer than pen & paper and I'll consider it.
I would actually think voting through a blockchain with a solid proof function (obviously not mining for 30 minutes because phone batteries aren't very durable) is the much, much more secure scheme. Especially if executed over encrypted channels like TLS.
...Although with the levels of influence some people have, I wouldn't be surprised if they can catch the 4G traffic at least and fake that too (influencing all ISPs would be impossible even for them). But I will leave that exercise to the blockchain technologists, they seem to have invented mostly tamper-proof comms -- or so they claim?
Sure there are challenges but the physical voting is IMO well-documented to be very easily corruptable and fake-able. Well, at least outside the so-called "first world countries" it is. You guys can still believe in incorruptible democracy if it makes you feel better.
An agent has to be physically present to affect it, first of all. This helps a lot by constraining the field of actors from "potentially anyone with an internet connection" to "people who physically come in contact with the artifact". This is a widely underrated safety benefit with applicability all over, not just in elections.
The great benefit of paper voting is its simplicity. Any time you invent a complex contraption and tell the people to just trust that contraption's designers, e.g., the "blockchain technologists" you've mentioned, you've just built a new ruling class.
For something to work, it must use a process and mechanism that is plainly and obviously valid to anyone of sound mind. "Counting marks on paper" is such a process. You can't get much more complex than that before you're transferring control to a new elite.
People will always search for ways to unduly influence and damage processes by which power is ascribed. This is one of the main reasons why a process with trivial verification mechanisms is required for the public to credit the results.
In the year of Spectre and Meltdown, it is immensely naive to pretend that computers are ultimately trustworthy. Simplicity remains supreme, and computers are not simple.
It maybe feels dismissive when I put it this way, but you're describing HTML forms. I know you're arguing "votes on the blockchain [are] immutable and publicly verifiable", but there's nothing preventing a political regime claiming mass coercion or hacking and forking the history. Everything else is just a web app (we can even cover immutability, given INSERT only privileges and a UNIQUE constraint):
- You can vote from your phone
My phone has a browser.
- Votes can be counted instantly in real time:
This is how web apps work.
- Votes can be independently verified
Web apps generate logs and store information for later verification.
- You can verify that your vote is counted correctly and included
- You should also be able to make your identity private using zero knowledge proofs...
Either there's a way to map votes to people, unmasking their votes, or the government can pad the votes with junk IDs and no one can verify it. This system fundamentally cannot work.
Aside from these intractable, fundamental issues, the two main reasons we don't have online voting yet are:
- Not everyone has a computer or internet access
- It's extremely, dangerously insecure
And before you get into how secure blockchains are, please keep in mind we're not simply talking about technological security. There are so many ways to game this system, the primary one simply being you steal someone's BankID and vote for them. Personal information is stolen by malware all the time. And sure, when the victim goes to vote themselves and finds their vote was already cast, they can alert the authorities. But what if this is the case for a significant percentage of black people in Georgia? Will authorities fix the issue on Election Day? Will they fix 8 million of these issues on Election Day? What if an attacker files 8 million of these "someone voted for me" complaints in the last hour? This adds fragility to an election system that simply can't afford it.
All in all, you need to do a lot more research into the history of online voting proposals before you can seriously propose publishing votes on the blockchain. Which is my entire point about blockchain technology -- whenever someone wants to put something on it, two things are true:
- Other existing technology is a better fit
- The proposer is not an expert on the system they want to replace
How would a regime "fork the history" of the Bitcoin blockchain?
This isn't to solve voting in compromised countries, since you after all need to trust the government to give out votes and provide voting candidates, it's about making voting in governments with an already working democracy better. Like the western countries.
> Everything else is just a web app
Yes. The key point is you only need trust to seed the votes the rest can be done in a trustless and verifiable manner. My comment wasn't very clear.
> All in all, you need to do a lot more research into the history of online voting proposals before you can seriously propose publishing votes on the blockchain.
I'm not saying we should do this now. There are as you say many serious problems we would need to solve.
I was only proposing it as a possible use case with several substantial benefits.
* Immutable storage
Which is gained without any trust.
Don't get me wrong, I actually do think the idea of cryptocurrency is really fascinating and that it's worthwhile to try to find new ways to apply blockchains, but as you say, they currently solve a very limited number of problems.
- distributed databases
- distributed hash tables
- cryptographic signing
I've heard all kinds of ideas that are just bad. Verifiable check in systems (use an app and a database), services were actually delivered (scan a barcode and use a database) supply chain tracking (scan a barcode and use a database).
Do you need Sybil resistance from proof of work because your consensus system is public and trustless? Cool Bitcoin is your jam. Just try to avoid building an unusable currency this go around, although I can't imagine a single additional use for it, and to date no one else can either.
Oh and also try and avoid broiling our planet with your energy use. Earth backup system is not yet online.
Repeating for the N:th time on HN.
* Donations to wikileaks
* Sending money to Venezuela
* Leaving Venezuela with your wealth intact
* Payments without giving all transaction info third parties (PayPal, VISA, etc)
* Digital payments for the unbanked
These are all served better by cryptocurrencies than other alternatives.
A common counterargument is fees are very high on Bitcoin. This is true but it's only an argument against Bitcoin not cryptocurrencies in general. See Bitcoin Cash for example.
- Gift cards
- Credit Cards
- Cash / Cashier's Checks / Certified Checks / Money Orders / Wire Transfers
It wasn't at all necessary to build Bitcoin, with its planet-destroying proof of work energy usage, to pay for porn. And besides, the essence of anonymous payments using Bitcoin is the tumbler, not Bitcoin itself (which is super easy to track, precisely because it's got a blockchain).
P.S. If your "leaving Venezuela with your wealth intact" is a "national currencies can be unstable" argument, remember that Bitcoin is extremely unstable and has no system in place to regulate or stabilize it. In fact, because it's often at odds with government monetary policy, there's a base instability that will never go away.
The point is cryptocurrencies is simply better at the use cases I presented. You're welcome to come with a better alternative, the ones you list simply doesn't cut it.
> It wasn't at all necessary to build Bitcoin
Actually Bitcoin was built to address the print on demand fiat currency driven by debt and unaccountable fractional reserve driven economy we have today. Giving people the ability to actually own their money for real and not just IOUs.
That digital cash is an excellent use case to pay for porn online is just a coincidence, never the purpose.
> with its planet-destroying proof of work energy usage
As opposed to the planet-destroying energy consumption of the fiat institution today? Or the tobacco industry? Or the military? Or any number of stupid usages of energy (which dwarfs the Bitcoin usage) we have today?
That it's somehow "planet-destroying" is just ignorant. It may be inefficient but it's self regulating and it cannot increase endlessly.
> And besides, the essence of anonymous payments using Bitcoin is the tumbler, not Bitcoin itself
Please see Monero or the shielded transactions of ZCash for how real anonymous payments look.
Also the pseudo-anonymous nature of Bitcoin is already better than the precise data we give credit card companies today.
> remember that Bitcoin is extremely unstable and has no system in place to regulate or stabilize it
Bitcoin is very volatile yes. Yet it's amazingly stable compared to the inflation of 4000% in Venezuela. It will also become more stable as it becomes adopted more.
Bitcoin only has value because it can be turned into those fiat currencies, and is thus only valuable as an extension of them. So either Bitcoin is worthless, or it's essentially a super-encumbered fiat currency. Unlike basically everything else, it's neither a service nor a commodity. So sure, insofar as you can own ones and zeros you can own Bitcoin. But it doesn't matter _at all_ if you can't turn it into Dollars.
> As opposed to the planet-destroying energy consumption of the fiat institution today? Or the tobacco industry? Or the military? Or any number of stupid usages of energy (which dwarfs the Bitcoin usage) we have today?
This is all whataboutism.
> It may be inefficient but it's self regulating and it cannot increase endlessly.
By "self regulating" do you mean "requires more and more energy use to add new blocks"? That's not very comforting. Plus "it cannot increase endlessly" isn't an argument that inspires faith. "Sure the flu might claim a lot of lives. But it can't claim _all_ of them." See?
> Please see Monero or the shielded transactions of ZCash for how real anonymous payments look.
Please see Visa gift cards for how everyone on earth pays anonymously for things online. We didn't need any of that stuff. As a cool bonus, it's extremely unlikely that the $100 you spend on the card won't turn into $50 because a foreign government shut down a Bitcoin exchange.
> it's amazingly stable compared to the inflation of 4000% in Venezuela. It will also become more stable as it becomes adopted more.
I think it would be a bad idea to denominate your wealth in the currency of an unstable government. I also think it would be a bad idea to denominate your wealth in a currency with no regulation and no backing whatsoever. The only good idea here is to denominate your wealth in a currency backed and regulated by a stable, liberal government.
Excuse my ignorance, but why would that be the case?
In the case of porn sites they're forced to go through third parties which charge very large fees for each transaction.
Pot stores are also cash only. Unfortunately cash isn't possible to send digital which is what cryptocurrencies essentially want to be (the term "digital cash" is sometimes used). Interestingly there have been reports of pot stores going bankrupt when the nearby ATM has been removed.
The difference between 3rd party services like credit cards, PayPal, Apple Pay etc and cryptocurrencies is that nobody can prevent a payment for any reason.
This is also why it's better to donate to Wikileaks with cryptocurrencies instead of PayPal since PayPal can if they want to freeze Wikileaks account. In fact this has happened .
Another difference is that you don't need to trust a 3rd party to deliver your payment. This is why you can't send money to Venezuela via Western Union but you can with cryptocurrencies (as long as they have internet of course).
Leaving Venezuela's border means you'll get searched and forced to leave all your belongings. It's therefore very hard to bring your wealth with you as you'll most probably lose it or you can't carry it. With Bitcoin for example all you need to do is memorize or write down a 12 word seed and you can bring as much money as you want with you.
Finally it's very difficult to make digital payments in today's world if you can't get a bank account. In effect you're locked out of society pretty hard if this would happen to you. Cryptocurrencies are permissionless and is for everyone.
Adoption wise we have very long to go but the tech is here.
Can anyone imagine ANY uses for a centralized blockchain?
IOTA uses tangle, but the idea is the same. Storing immutable data.
I understand Bitcoin, people commit currency fraud. Bitcoin is decentralized. Trustless currency sounds fantastic.
I do not understand these data coins that are centralized. It isnt trustless, and at this point, why not store in a write only sql database?
Why dont they just use any SQL database? No one would be buying their coins if they didnt lie and glitter their Coordinator around with "the tangle" and "muh quantum safe crypto hash function which is broken by rookie level cryptoanalysis".
Probably because the project wouldn't have seen funding without "blockchain" in the proposal title.
Sure. A centralized chain can be used for anything that a decentralized one can be used for (with one exception ), you just have to trust the provider.
 The exception is that a decentralized chain cannot be used to fairly distribute rewards to the participants in a decentralized protocol. That makes it harder to use a centralized chain as money because you need a separate mechanism for controlling the money supply than the one that maintains the ledger. In a distributed chain, the same mechanism serves both purposes.
Note also that many systems are sometimes erroneously referred to as using blockchains, for whatever reason (misunderstanding, marketing, etc.). Leaving aside the debate about how decentralised it is, the project you mention has a distributed ledger, but uses a Directed Acyclic Graph (which they call a tangle) rather than a blockchain. Similarly "permissioned blockchains" or "private blockchains" aren't really blockchains in the strict sense because they don't need a consensus mechanism (indeed many now call themselves Distributed Ledger Technology systems).
Essentially, users money is kept in the public Ethereum blockchain so all the cryptoeconomic security properties are assured but the games are developed (and played) in a centralised side-chain using a technique called Plasma that doesn't charge users per tx and has very fast block times (~1 second iirc).
Plasma is a way of extending (for scalability or any other reason) a main-chain such as Ethereum with a new app-specific or industry-specific blockchain, in such a way that the users can always trust their money without having to fully trust the side-chain owner's best intentions.
+I've no idea if this actually happens, just trying to paint a general picture of crazy band aid stuff that happens.
I haven't seen any compelling use for either a centralized blockchain (i.e. one entity controls committing the blocks) or a closed blockchain (i.e. access is limited to a group all of which have known identities). Only in the open, peer to peer, case does it seem to have any value at all.
You can replace the word "blockchain" with "database" in this sentence and it'll still work, i.e. "you could verify it against LV's centralized product database".
The "killer app" for blockchain technology is a currency.
All those resources have been a complete waste so far, and they’ve entirely been spent on blockchain because of hype. That is extremely bad, because all those resources could have been thrown at something useful.
For whatever reason blockchain has been extremely resilient to reality. It’s almost been a decade, and we’ve yet to see anything purposeful come our way. It’s still on Gartners list for 2019 though, so I guess we’ll spent another year burning money.
That is, if something called the "Hype Cycle" even exists. The Hype Cycle is a canonical example of survivorship bias and post hoc rationalization . It is pretty much a compelling narrative not a reflection of technological evolution.
you, sobbing: "you can't just point at every thing using
a merkle tree and call them blockchains"
me, pointing at git: "blockchain"
Although I'm not completely in agreement with the author, the point is valid and we do need better taxonomy because not everything that uses a blockchain requires highlighting that component over the any other technology it also may rely on.
As for non-public (consortium, enterprise, centralised, etc) blockchains, here I have a very different opinion based on my own work experience, and would point to the Energy Web Foundation's (https://energyweb.org/) consortium network as a prime example or to the work being done on Plasma (https://www.learnplasma.org/en/) which allows for private chains to inhering the security properties of a root public chain like Ethereum, and makes extensive use of cryptoeconomics for trust minimisation.
I like the term Distributed Ledger Technology (DLT) and my interest is in permissioned (private) systems for use in business, potentially tied into AI (my placeholder site: http://hyperledgerai.com). This is on my free time, and in my free time I have become more interested in neural networks combined with symbolic AI code.