23 ms·
Blockchain was invented to solve one particular problem: distributed consensus on a sequence of transactions, where the choice of which transaction to include f
by runeks 4y ago
Blockchain was invented to solve one particular problem: distributed consensus on a sequence of transactions, where the choice of which transaction to include from a set of conflicting transactions is irrelevant.
The latter property here is key to understanding where blockchain is useful. It was created to solve the "double spend problem", ie. two transitions that spend the same coin but send it to different recipients (and so they conflict and cannot both be included in the canonical list of transactions). A double spend is the result of the sender either (a) making a mistake, or (b) attempting fraud. In both cases the important property is that as long as only a single of these conflicting transactions is included, the systems works.
Only if your problem exhibits the above property (and it's a distributed system) does using a blockchain make sense.
- nathias 4y agothe original purpose of an invention does not limit the scope of its application
- paulgb 4y agoNo, but ignoring the design criteria that an invention solves for is a recipe for using the wrong tool for the job.
- nathias 4y ago'right tools for the right job' seems like just re-stating the original point in different terms, how right a tool is depends on the actual context a big part of that context is culture, preferences, politics etc. not just engineering concerns
- paulgb 4y agoIf “right tool for the job” is too hand-wavey, maybe “optimal tool given the problem constraints” is a better phrase. E.g. I’ve seen proposals for “credentials on the blockchain”, but if you assume that a credential issuer has a known public key (as these proposals do), the issuer can just sign a credential, no public ledger is needed. The complexity of using a blockchain for this is just waste.
- nathias 4y agosure, but the problem contraints arent reducible to engineering, so in the example you're giving an established centralized authority can profit from selling credentials using only a key signature, but a new decentralized bottom-up credential system needs a blockchain and smart-contracts to do it ...
- simiones 4y agoThe problem is that most such schemes end up requiring both a blockchain and an established centralized authority, because the blockchain doesn't actually solve the problem its meant to solve (since the only problem it solves is distributed consensus on the order of events in the blockchain - no more, no less).
- nathias 4y agoI think it does, because of its complexity, it's more of a set of technologies than just a software solution. Preventing double-spend is just the main use, however in order to do this a whole game-theoretical economic/technological system is required and that also solves and/or creates other problems. For cryptocurrencies, DAOs and similar systems economics is a security concern (wrong incentives will make it possible for an someone to game and/or break the system).
- simiones 4y agoThe point is that blockchains don't provide you with anything other than that "main use". For any other kind of feature you need to add something else - and if you're adding a centralized trusted authority (which is by far the easiest way to do anything), then you can get rid of the blockchain altogether.
- crypot 4y agoThe book How Innovation Works by Matt Ridley changed my perspective on this. Originally I thought all innovation was like the dotcom era. Ridley attempts to show that there are times when it is not always clear what the final innovation will be.
- nathias 4y agoI recommend Mumford's Technics and Civilization.
- Traubenfuchs 4y agoYou can just solve this with locking or a (self referencing) unique foreign key constraint on any mainstream SQL db though. If we include programming langues as well, the possible amount of solutions multiplies.
- arlcode 4y agoAs the article's author says at some point society is always built on trust in another entity. Crypto fully shifts this from the database operator to the software developer and is willing to accept significant trade offs to do so. Most of the unique complexity and challenges in blockchain technology originates from this.
- bredren 4y agoThe author also says all of the implementations he witnessed were reliant on databases and did not require the unique complexity and challenges of the blockchain.
- delaaxe 4y agoWhether or not the underlying storage mechanism uses a database is not the point. The point is who can edit that database and under which rules (imagine that database holds a lot of your money and you live in an oppressive regime).
- dmitriid 4y ago> imagine that database holds a lot of your money and you live in an oppressive regime That opressive regime holds: - your access to the internet (crypto requires continuous access to internet to function) - your access to exchange offices because crypto is useless if it cannot be converted to fiat So, what exactly have you solved?
- miracle2k 4y ago> So, what exactly have you solved? Ownership of your funds, which is the primary requirement from which all others stem. You will still have those when you regain access to the internet, or the ability to spend them. The reality is that a government having the ability to confiscate the funds in your bank account, and attempting to restrict you and your neighbours peer to peer actions, personal mobility or internet access are totally different things. This sort black and white thinking provides lacks a valuable analysis of actual power structures. No one claims your crypto currency will protect you from a bullet.
- Terr_ 4y ago> Only if your problem exhibits the above property (and it's a distributed system) does using a blockchain make sense. I think we also need to specify that it's also an extremely distinct and rare type of "distributed": When you must support unrestricted and unlimited creation of new participant nodes. That's the fundamental requirement that drives an entire cascade of other blockchain design choices, such as proof-of-work to prevent a takeover by sockpuppet-nodes, and mining to incentivize regular consistent participation by a presumed-benign majority. Without that requirement and workarounds, we're left with a kind of regular distributed database, pre-hype technology that already featured hashes and linked-lists. This requirement ("anybody can become part of the network anonymously") also makes for a great litmus-test for whether you need blockchain. For example, in national elections we probably don't want/need literally any number of computers anywhere in the world to jump in and deciding what happens based on their CPU power. It would be dramatically faster/easier/safer to simply define a fixed list of nodes, where each state runs a couple plus the federal government, and then rely on the fact that evildoers would have to compromise too many different systems and agencies.
- akrymski 4y agoI think the word is "decentralised" rather than distributed: no single authority that controls membership of a distributed system, in a P2P style
- pid-1 4y agoI think Byzantine Fault Tolerance is the name of such propriety (being resilient to a limited number of adversarial nodes).
- adolph 4y agoPeople don’t use that term anymore because the generals of many countries present the same problem, not just those of the Eastern Roman Empire. https://www.microsoft.com/en-us/research/publication/byzantine-generals-problem/ https://www.microsoft.com/en-us/research/publication/byzanti...
- 4y ago
- BatteryMountain 4y agoWhat you are referring to is a distributed ledger, built on top of a blockchain data structure. The word Blockchain is so overloaded, people forget you can build a "blockchain" in 50 lines of code if not less. "Mining" new blocks is added on top of that, it's not a hard requirement - you can just create new blocks and link them up. You can choose to "mine" on CPU (slow) or on the GPU, if you want "mining" at all. You can then choose to persist it (file or sql or whatever) or only run it in memory. After that you can get into the concept of ledgers and currencies, and after that into making it distributed via some gossip-y protocols. So a cleaner definition of a block chain would be, a tamper-proof daisy-chained data structure, similar to a linked list. All the stuff about ledgers, currencies, mining and consensus are separate concerns, stacked on top of a blockchain. Also checkout: Merkle trees, linked lists, Chain of Responsibility. Anyone agree/disagree?
- Nursie 4y agoYeah, basically everyone. "Blockchain" as commonly understood was brought into being by Bitcoin, and encapsulates far more than just a linked list with a cryptographic component. If it doesn't contain a mechanism for trustless, distributed consensus, then it's not really a blockchain in the sense that HN or the wider industry understands it. Your definition is wide enough to cover a lot of things that are well outside of normal discussion of blockchains. I'm not insinuating this is your goal, but it is a common argumentation tactic of people desperately trying to defend the sector, to widen the definition until they can include within it things like git, and then say "so of course blockchain tech is useful! You're using it!"
- cmckn 4y agoI think you’re just describing merkle trees; and “blockchain” in popular usage includes the consensus mechanism (mining or otherwise).
- hiq 4y agohttps://www.schneier.com/essays/archives/2019/02/theres_no_good_reaso.html https://www.schneier.com/essays/archives/2019/02/theres_no_g... explains why talking about "blockchain" for anything but a public blockchain (including consensus etc.) is uninteresting.
- uncletammy 4y agoAlthough I take slight issue with how you've worded it, I think I'm in agreement. I'll attempt to add clarification to the parts I find difficult to parse. Blockchains only ensure that coins are never spent twice. They make no attempts to ensure that coins are sent to the correct recipients. At the end of the block, they only care that debits are equal to credits. This can be confusing because the term "double spend" is also frequently used in cryptocurrency in the context of fraud prevention. In this context, you definitely do care that the coins get to the correct recipients but this concern is outside of the functional scope of the blockchain mechanism. Instead, fraud prevention is typically satisfied through additional code, adjacent to the "blockchain stuff", which establishes signaling networks and transaction inclusion criteria. They're very different mechanisms inside blockchain clients but, confusingly, they both make frequent use of the term "double spend".
- bongobingo1 4y ago> Blockchains only ensure that coins are never spent twice. They make no attempts to ensure that coins are sent to the correct recipients. At the end of the block, they only care that debits are equal to credits. I know the origin is tightly linked to bitcoin, but I feel like even this muddies the definition. Blockchains are not implicitly related to "coins", more facts? contracts? Maybe that's a useless nit to pick, or only useful in this thread where the GP was trying to layout where blockchains are useful (eg: distributed facts - that happen to often be wealth transfer). Or do I have it all wrong? I admit to not having much experience with them, but from the few random (non-btc) meet up groups talks I saw a decade ago, it was all about consensus more than anything. Ironically before the current NFT craze, the talk I remember most was one about using NFTs to authenticate stuff like (non-programatically-generated) album/artwork ownership and allowing users to resell in a second hand digital market. I assume you could build a mastodon like that distributes and "authenticates" posts via a blockchain - perhaps with terrible performance though.
- andrewaylett 4y agoThe novelty of Blockchain is that it's a way for everyone to agree about which blocks are in the chain, such that we're confident everyone won't change their minds later. The content of the blocks is irrelevant to the consensus, in which every participant will independently pick the longest valid chain it can see. (In other words: yes, you've got it exactly right, but there are some details around incentives that tie creation of blocks to receiving some kind of benefit which mean that in practice someone will reduce things to money at some point)
- louwrentius 4y agoWhat real life use case - that resonates with regular people - would this solve? Isn’t Blockchain just a convoluted solution to a problem nobody has? (Which is the conclusion of the article)
- oblio 4y ago> What real life use case - that resonates with regular people - would this solve? The problem that some people really, really hate authority, and frankly, really hate other people, and would like a magical machine to do away with all that messiness. So they put a million barriers between themselves and that messiness and hope it all works out in the end. It's like a sort of niche religion. After the first believers announced their faith, a much, much larger group of grifters realized that they could shout: "FREEDOM! PROFIT! FREEDOM! PROFIT!" and make a ton of money. Like a real religion, basically, just read up about incense and Christianity to see the real believer versus grifter dichotomy happen in another case. Anyway, so here we are now :-)
- robertlagrant 4y agoAssuming people who think differently to you must be mostly motivated by hatred works well for a Taylor Swift song, but it's just about the worst way to think of other perspectives and ideas.
- oblio 4y agoReplace hate with "are mildly inconvenienced by", if it makes you feel better :-) It doesn't change the fact that the whole idea here is to replace human judgment with algorithms, with little thought into how the technology will actually be used by humans. Trick question. Let's say I'm not tech savvy. I can barely use my iPhone, I'm frequently confused by Instagram UI updates. > Bitcoin > Initial release 0.1.0 / 9 January 2009 (13 years ago) How can I buy Bitcoin, sell it, use it to buy things with it, 13 years after the fact, in a decentralized fashion, just as Satoshi Nakamoto-sama originally intended?
- 4y ago
- netfortius 4y agoI am sorry, but I think I am missing something here: isn't the "double spend problem" actually needing to be resolved by the choice of including one specific transaction (and no others), from a set of conflicting ones, truly relevant (vs. irrelevant)?
- nosianu 4y agoThe point is that it does not matter which one is included, only that it's only one of the choices that all agree on. Which one that is is not relevant, there is no part of the algorithm that determines one transaction to be "more valid" than another one. There is no ranking of transactions, one of them has to be picked but which one it is can be random, as long as there is agreement. Also see the response from and sub-thread from uncletammy.
- mhluongo 4y agoThere are certainly tx validity rules, though, and when presented with a set of equally valid txs, miners will likely choose the one that is best for them (called "MEV", miner extractable value).
- nosianu 4y agoNeither the OP or me said there are no rules and they have to use an RNG to make a decision, only that it does not matter. That they then go and use an algorithm that maximizes their profits is only to be expected and the rational outcome from the fact that there is no other constraint from the technical algorithm.
- mhluongo 4y agoJust sharing for general interest / awareness, not as a "gotcha". Though I will point out... > only that it does not matter ... that this isn't true! MEV can destabilize consensus. There's been research around this in the Bitcoin/Lightning ecosystem, and it's been an active discussion in Ethereum for quite a while.
- danbruc 4y agoNo, that its not the problem that bitcoin solves. You can do distributed consensus just fine without a block chain - if you have to make a choice between two options, everyone broadcasts a vote for one of the options and the option with the most votes is the accepted option. The problem that bitcoin solves is that you can not prevent me from casting a million votes because the system is anonymous - or pseudonymous if you want - and therefore there is no list of participants that would prevent casting more than one vote. This is called a Sybil attack. Bitcoin's solution - and similarly that of other block chains - is to make casting a vote expensive, either in terms of computational resources or owned tokens or whatever.
- CPLX 4y agoCompared to paper ballots it makes casting a ballot cheaper, more opaque, and less accountable.
- kayamon 4y agoBut immune to fraud. Conservation of energy proves the vote happened without manipulation.
- CPLX 4y agoThat’s a ludicrous argument I am not even sure where to start. What exactly is the mechanism that proves that each vote registered by the system is in fact an accurate recording of the registered voting preference of an eligible voter?
- TimJRobinson 4y agoI used to think this, but working with DeFi on Ethereum for a while I've realized the killer feature is actually permissionless composability. Which is why enterprise block chains make little sense. Having one neutral platform, controlled by no one, with standardized API's and immutable open programs that anyone can permissionlessly build on - is amazing. We've never had this before, and it's incredible how fast the DeFi space is moving because of it. I work for a platform (Balancer) that has had over 20 different companies (Aave, Element, CopperLaunch, Gyro, Aura, Hidden Hand) build financial applications on top of our tech stack in the last 2 years. Then there are different wallets (Metamask, Rainbow, Ledger), aggregators (1inch, Matcha, 0x), portfolio management tools (Zapper, Zerion, DeFi Saver). All of these work with each other mostly out of the box and without any formal partnerships between anyone. This is a radical new way of building finance and it's the fastest paced industry I've ever been a part of. It's similar to AWS where it got exponentially more valuable as each new service was added - but the entire world can contribute to it. Like AWS people didn't understand the value initially, but over time they realized how big of a deal it was as more and more components were added.
- delaaxe 4y agoCompletely agree
- dsco 4y agoSee this is where HN has fallen off a cliff, the top commented Runeks supplies a highly theoretical and nonchalant answer to what blockchains _can_ be. That’s been the majority of HNs take on the technology. But the Internet was made for text communication and here we are decades later with social media and streaming video. TimJRobinson at least states something which is rare on HN, a take on blockchain technology with experimental instead of theoretical knowledge on the subject matter.
- gatewaynode 4y agoThis. It's not like all innovation that has occurred in the crypto-currency space is useless, there are some real valuable innovations there. Blockchain as a whole is just too tainted to see the forest for the trees in all the greed, specifically the word "blockchain" has become magical and deceptive. "Having one neutral platform, controlled by no one, with standardized API's and immutable open programs that anyone can permissionlessly build on - is amazing." Tim is dead on with this observation, this is amazing. And it's not a magic bullet statement either.
- onetrickwolf 4y agoA reason I have been interested in blockchain is that it seems like a good way to make a decentralized application that could exist beyond the life of the company or person that creates it. I work in a hobby industry where a lot of community run ledgers are suddenly lost forever due to the death of someone in the fandom (or rarely intentional sabotage or hacking). Would this be a good use for blockchain or are there maybe other solutions I'm not considering or aware of?
- constantcrying 4y agoA blockchain requires significant, persistent and consistent community effort. If you can not have one guy taking up the mantle and doing the hosting, how can you get hundreds to do the same? >A reason I have been interested in blockchain is that it seems like a good way to make a decentralized application that could exist beyond the life of the company or person that creates it. Community run projects have existed for decades on the internet. They never needed a blockchain to persist. If they died, they died due to lack of interest and effort by their communities. A blockchain can not prevent that. >maybe other solutions I'm not considering or aware of? IPFS potentially.
- onetrickwolf 4y ago> If you can not have one guy taking up the mantle and doing the hosting, how can you get hundreds to do the same? Well I mean if you were to use a public blockchain like Ethereum it's likely the Ethereum community wouldn't be going away. I am not thinking about rolling out our own chain. > Community run projects have existed for decades on the internet. They never needed a blockchain to persist Unfortunately my experience hasn't really been the same. Community data controlled by a single user can go away pretty easily. If you open up the data and let people host their own database then you don't have a single source of truth. Our data is largely just a ledger of who owns what with minimal meta data. > IPFS potentially Thanks will look into it!
- miracle2k 4y agoThis is really interesting, and I'd love to learn more about it. One thing to look into is rollups - they will soon enable custom application with cheap transaction fees, but with the full security of Ethereum. See e.g.: https://docs.celestia.org/category/recipe-book/ https://docs.celestia.org/category/recipe-book/
- atypeoferror 4y agoMaybe I am a confused luddite, but it seems telling that this argument immediately launches into the solution space of a problem that is itself created by the presence of a blockchain. Double-spend has been solved by the financial sector quite some time ago. The distributed system part - I guess this is the problem that I think the article is claiming is yet to be found.
- politician 4y ago> Double-spend has been solved by the financial sector. Traditional finance offers “at-most-one spend”while blockchain protocols offer “one spend up to 1/3 malicious nodes”. The limit on the former is government, and Byzantine Fault Tolerance sets the limit on the latter. Government can unilaterally seize “your” funds in traditional banking, while a substantial computational attack is required to cause a loss of confidence event (double spend) on a particular blockchain.
- arethuza 4y agoCan't governments force people to hand over control of their keys?
- Karunamon 4y agoThey can't guarantee that there is only one set of keys. They are just files after all.
- arethuza 4y agoDoesn't seem to stop organisations like the FBI from "seizing" Bitcoins? e.g. https://www.cnbc.com/2022/11/07/feds-seize-3point36-billion-in-bitcoin-the-second-largest-recovery-so-far.html https://www.cnbc.com/2022/11/07/feds-seize-3point36-billion-...
- Karunamon 4y agoYep, this is called poor opsec. Had this person had someone else with a copy of that wallet's keys, they could have been moved before this happened.
- api 4y agoThere is one other case where a structure like a block chain can make sense. It’s an easy way to build an unalterable log. If you give me hash 200000 in the chain I know that log entries 0-200000 are all unaltered. This is perhaps the simplest easiest use case for a hash based linked list. Of course this is not the complete picture of what cryptocurrencies are; the hash list is just part of the system.
- iterateofen 4y agoThat tech exists without blockchain in a distributed way. Look at Git or GitHub. Saying that is a unique feature or reason to use blockchain is similar to saying blockchain can add two numbers together so we should use it to build a calculator.
- humanizersequel 4y agoThen you're just trusting Github, and they don't have a perfect track record on neutrality: https://www.jessesquires.com/blog/2022/04/19/github-suspending-russian-accounts/ https://www.jessesquires.com/blog/2022/04/19/github-suspendi...
- ninepoints 4y agoThis is such a narrow view on the problem because you also have to restrict the "make sense" part to the set of problems where it's ok to have the entire ledger in public view, not to mention that there are other mechanisms to accomplish the double spend issue
- _8j50 4y agoA lot of applications have that problem though. Take a text editor, it would be improved if edits or saves which are just transactions are stores on a blockchain if the text is being stored and shared synchronously and live between devices. Basically, people have more devices, want to collaborate and add redundancies to important systems which means changes to data (transaction) where the historical sequence of changes is important to someone can use blockchain, but of course it isn't neccesarily the best solution, especially if there is trust between nodes or out of sync nodes causing a mess can be solves by simpler solutions.
- smoldesu 4y agoBlockchains wouldn't fix anything here, though. The last-connected device doesn't necessarily have the canonical file, and the blockchain doesn't have any way to resolve syncing conflicts. Git is a much better choice for transactional history, and it didn't need a blockchain to implement this concept.
- _8j50 4y agoGit requires a human to resolve conflicts, a blockchain comes to a majority consensus. But yeah, I would use git and try to automate conflict resolution but it stands to reason blockchain can also solve the problem. If you have 10 people live-editing a text content git will be messy for example but you can come to a consensus on agreeing who made what changes and when between participants (assume p2p connection).
- smoldesu 4y ago> but you can come to a consensus on agreeing who made what changes and when between participants How is this different from Git's model of development?
- _8j50 4y agoGit is too slow for the use case I mentioned you resolve conflicts when you merge to your repo but you don't establish a consensus allowing everyone to accept your conflict resolution without centralizing.
- la64710 4y agoThis problem has been solved in numerous prior computer architecture most notably in the algorithms around leader selection in clusters or very wide distributed systems. The implementation varies from one use case to another but the point is the problem or solution is not new at all and blockchain is certainly not the earliest and most elegant solution for this.
- avereveard 4y agoOut of curiosity which solution operate in a zero trust environment?
- la64710 4y agoAll the solutions start with the premise of a zero trust environment where trust is established by a key exchange based on some sort of key management infrastructure.
- QuantumGood 4y ago"Absolute power corrupts absolutely", and blockchain has activated absolute greed in most, hence blockchain not really being developed for anything that is not Ponzi-like.
- fatneckbeardz 4y agoreading this, it struck me how ironic crypto was built to "stop the doublespend" but here we have all these crypto exchanges doing things way worse than that. company minting their own token and then using it as collateral, accounting it as if they had billions. the "stable coins" cannot produce basic accounting audits that a low level book-keeper could do on any normal business. there has been so much fraud in crypto the past few years. and the algorithm did not help to stop that.