Hacker News new | past | comments | ask | show | jobs | submit login
How Blockchain Works (mit.edu)
278 points by dsr12 on Sept 26, 2018 | hide | past | web | favorite | 173 comments

Over the past year I have gone from Blockchain enthusiast to more blockchain gadfly. The concept is truly revolutionary but the use cases I typically see trotted out are not compelling in any significant sense and could be solved without blockchain. I believe the reason for this is due to the fact that the true value of a blockchain solution is not in the data aspect of it (which everyone gravitates to and can quickly grasp and understand) but more in the transactability that a blockchain solution can offer. And the value of radical transactability requires much less of a myopic understanding of a person's business vertical than many professionals possess. In energy for instance, much talk about the financial aspect of a blockchain-based energy solution but absolutely zero talk of how the physical grid and infrastructure would engage to support the financial activity.

> The concept is truly revolutionary

In what way? Publishing a DB dump with a checksum has been around for decades, and doesn't require a new user to download an entire history of deltas from day 1.

I'm curious about this as well. No one seem to be talking about specific attacks mitigated by blockchains as opposed to authorities signing current state.

The definition implies that if someone says "I'm on block 1000" they cannot create altered version of history without touching all the blocks after the change.

But how is this useful? If there is a disagreement about the last block, majority wins, right? So couldn't majority simply have the most up-to-date version of the database with a single signature?

The attacks that blockchain can protect against are:

- Fraud

- DDoS

- Censorship

The usefulness of a consensus protocol is that no one party can be trusted to have the most up-to-date AND valid blockchain. Every node has the incentive to cheat and the consensus rules define a method of evaluating the proposed chain of blocks and determine it's "trustworthiness". In PoW this is often an algorithm like Greedy Heaviest Observed Sub-Tree (GHOST) which favours the fork with the highest accumulated work.

This is why it's important that mining is an expensive activity, to discourage attackers from wasting thousands of euros in electricity and then losing the block reward payment.

>The usefulness of a consensus protocol is that no one party can be trusted to have the most up-to-date AND valid blockchain.

Consensus protocols do not require mining. You can simply poll X random nodes and compare what they tell you. I don't understand what mining adds to the equation. Okay, instead of "I need to control 50% of all nodes" it becomes "I need to control 50% of all mining capacity". Is that the point of mining? To make inserting hordes of cheap lying nodes impossible?

I didn't say that consensus protocols needed mining, only PoW which is a consensus protocol uses it.

You can poll multiple nodes and each one will give you a different answer because of message propagation times.

Mining fulfils two roles:

- identity management: To identify who is a trustworthy block producer in an anonymous and trustless network, mining introduces a cost to the block generation process and we use a game theory assumption that it serves as a barrier for attackers. This doesn't mean there aren't validation checks performed by other nodes in the network and the consensus forming rules themselves of course.

- consensus formation: In a distributed network, nodes are bound to disagree on which is the canonical chain out of two or more competing forks. The most common algorithm calculates the accumulated computational effort of each chain of blocks and picks the "heaviest" one, ie the one with the most work done on it. This has the nice side effect of ensuring economic finality for the transactions in those blocks.

>Is that the point of mining? To make inserting hordes of cheap lying nodes impossible?

That's called a Sybil attack, and yes that's one of the reasons.

Mining also makes creating blocks have a real world energy cost. So rewriting history quickly becomes almost impossible as blocks are added. An attacker would have to have more than 50% of all mining power for a sustained period of time.

I suggest reading the Bitcoin whitepaper, it's short and sweet.


>as opposed to authorities signing current state

That's what it solves. It removes the need for trust and dependence in a central authority. There's no central actor to hack, or that can abuse the system, or be compelled to censor.

Consider Paypal. They're obligated to follow the regulations of every single government whose citizens they serve. Paypal themselves can also make value judgements. That severely limits who can use the system, for what purposes, in what quantities, and how frequently.

FWIW, if a single actor could take command of more than 50% of a chain's hashrate then yes, they could take over and rewrite history. The theory was that this would be far too expensive in power and time for any such attack to succeed and if it did - the chain would simply fork at time pervious to the attack and the person that had taken the now defunct chain over would be the only person operating on that blockchain.

Blockchain is a revolutionary solution to the problem of achieving distributed consensus without a central authority that everyone must talk to and trust.

Unfortunately, this is a problem almost no-one has; meanwhile, where parties are able to agree on a trustworthy central authority - as parties operating within the rule of law, relying on cooperation with protocol and old-fashioned police/lawyers to identify and punish defectors in old-fashioned meatspace, generally are - blockchain is an incredibly expensive solution to the problem of distributed consensus compared to other options available to them.

The term blockchain should come with a way to decide consensus, like proof-of-work or possibly proof-of-stake. This is a solution to decentralized consensus which is a truly revolutionary concept.

From a technical perspective, yes. But the case for blockchain is difficult to make from a technical perspective so I do not bother talking about it. The tech struggles to be viable. With that said, everything is impossible .. until it is not. Somebody will figure it out.

What do you mean struggles to be viable? Cryptocurrencies is already viable and used in a lot of places. If you mean other usages of blockchain I do agree.

And please don't bring up scaling (it's already viable today so the future is irrelevant to the point) or high fess (caused by Bitcoin's incompetent devs).

The technology cannot support millions of transactions per second - at least not in the case of a bitcoin blockchain which uses a PoW consensus mechanism. I am not sure how to respond to the second statement as there is some hand-waving and dogmatic proclamation that scalability is not an issue. Saying that cryptocurrencies are used in certain cases today and therefore - scalability is not an issue is like saying you once ate an apple and therefore all apples are edible.

I'm saying it's already viable and as such handles the scale we have today. Complains like "but it can't scale to all of the payments in the world" is severely missing the point.

Also we can already achieve PayPal like transaction amounts today, with Bitcoin Cash having in practice 20% of throughput. The limiting factor to scale further is software limited, not hardware. Furthermore it's possible to reach VISA levels of throughput with further work.

Scaling is one of the hardest issues for sure, but dismissing the viability of cryptocurrency because of it is naive.

Ah, point taken! One of the obvious courses is that there wiull be multiple blockchains each handling various arenas. In that case we run into the interesting blockchain-of-blockchains problems where we have to engineer not only under one blockchain but we have to figure out how to overcome the "slowest node" problem. Truly an engineering feat waiting for a hero (or heroine). Thoughts?

Yes among all clones and copies there are several "real" attempts at solving various problems.

As I mentioned Bitcoin Cash tries to see how far we can go with on-chain scaling.

Bitcoin on the other hand mostly avoids on-chain scaling and wants to add on side-chains which are supposed to scale. They're basically a second blockchain but it works a bit differently with different security trade-offs and comes with easy on and off settlements.

Monero wants to make all transactions private and thus make the coin itself fungible. The trade-off is that it's much harder to scale than the transparent blockchain of Bitcoin.

Ethereum wants to explore the idea of having advanced smart contracts on chain and again have several hard problems ahead.

Which approach is the best? Who knows...? Maybe in the end we'll have one coin that integrates all breakthroughs or they will each tend to their own niche. Overall I'm quite hopeful (obviously).

Now surrounding all this we need a lot of plumbing services. Payment processors which can accept the different coins and exchanges that makes it easy to swap between different coins.

I'm not sure if that answers your question though!

>Publishing a DB dump with a checksum has been around for decades

This solves the problem of where you would publish said checksum. Instead of publishing it in an issue of the New York Times, say (which could theoretically be forged), you publish it somewhere that you can be 99.99% sure won't be forged, is viewable to everyone, and can be done fairly cheaply and would likely hold up in any court of law.

However, that's pretty much it. That's the whole benefit. You could also probably publish said checksum on facebook, with the same likelihood of it not being tampered with.

Note that I'm not arguing that blockchain won't gain adoption, just as people probably could have made a similar value-based argument about facebook in its early days, I personally believe there are cultural forces that will keep some blockchain asset in somewhat high demand.

> However, that's pretty much it.

That's not quite it. The other thing you get is "and this database guaranteed to have some properties". In the case of bitcoin for example you are guaranteed every transaction was authorised by the owner of the bitcoin being exchanged and there are no double spends.

But even that's not quite it, because those properties are flexible - even for bitcoin. They are actually assertions made by computer programs, something the lines of "if the database says X an Y are true, then I say Z is true". For example X might be "I have the put $x in an escrow account". Y might be "I have not paid the supplier $x in the agreed y days". Z might be "The escrow agent is allowed to deduct an fee from $x for himself, and pay the balance to myself and the supplier as he sees fit".

And thus we have gone from publishing the checksum of a database to controlling what can happen to $x in the future.

In general taking a snapshot of a blockchain at a single point in time and saying "all I have done is published an immutable database" misses the bigger picture. The blockchain is a chain of assertions about what has happened in the past and based on those what can happen in the future - and you can't alter the control of those future assertions re-writing the past, which is prohibitively expensive.

We currently have another way of doing a similar thing that has been refined over the centuries - contracts, interpreted by courts rather than software, enforced by governments, police and guns. Right now the new boy on the block, blockchains, only thrives where this existing system refuses to play - which is to say illegal transactions. (And maybe its detractors are right - maybe it will always be too clumsy and slow to expand beyond that.) However to say the blockchain is merely a snap shot of its database rendered immutable by a published checksum is like saying our system of law is a just the series of title deeds on house, rendered immutable because they line in some government office.

Because it finally provides a mechanism by which bad actors on a network could face repercussions for their activity. Consider how different the internet would be if hyperlinks were two-way rather than one-way. Again, it is not only about data, it is about the speed of transactability that would result when value could be exchanged instantaneously with radical transparency behind the actors on the chain. Bankers go away, auditors go away, credit requirements for market participation go away. What could be do with the trillions of dollars tied up and sitting in credit collateral accounts? Liquidity is a good thing.

> Bankers go away

People will still need loans. People will still want low risk investment vehicles to "store" their wealth in. At least some sizable number of them will want an institutional actor to handle operational security and insure against key loss.

> auditors go away

The blockchain mostly guarantees that a ledger hasn't been tampered with, but it doesn't guarantee that the transactions were correct and complete in the first place. Plus, it's trivially easy to transfer funds without it registering on the ledger; all I have to do is create a wallet and give the private key to you out of band somehow.

> credit requirements for market participation go away.

There are no credit requirements today, as long as you're only spending funds you have on hand. Credit requirements allow an actor to spend funds they don't actually possess with a reasonable expectation that they will be willing and able to produce those funds (plus interest) at some later date. Having the ledger public reduces, but doesn't eliminate, the need for the actual providers of those temporary funds to want to form some expectations of future performance.

Most of the ancillary infrastructure that's grown up around fiat currencies is there for really good reasons, and most of those reasons don't automatically go away when the underlying currency type changes.

You are not grasping the import of being able to exchange value WITHOUT a banking system in place.

As for the credit requirements comment, yes - good point. But in the case of a micro-transaction, realtime agreement. I can consume 15 minutes of power and pay for it at 15:01. A credit requirement still exists -0 but it is one second as opposed to 60-90 days worth of power. This idea assumes many things into existence that do no currently exist - I am merely offering the idea as a thought experiment. Blockchain could make everything pay-as-you-consume.

I can exchange value today without a banking system in place. I have some paper currency in my possession, and if that doesn't work there are plenty of commodity goods available to barter with. You'll notice that even in situations where cash or barter are feasible the vast majority of actors opt into the banking system anyway.

Cryptocurrencies are genuinely useful for parties who don't have access to the formal banking system for one reason or another, but I've got every reason to believe that crypto-backed banks will still be profitable and that people will flock to them as soon as they're available.

As for microtransactions, I can also consume 15 minutes of some service and not pay for it at 15:01, then automatically generate another burner account to consume another 15 minutes. This might not work for power, since there's physical infrastructure that would have to be cut over, but it would work just fine for a very large number of other services. The service provider is going to pretty quickly generate some fraud prevention strategy to prevent you from doing that, and now we've reinvented credit requirements for market participation.

Yes, you have paper money in your possession that is only worth as much as a centralized bank SAYS it is. And the awesome thing about that is that centralized banks never print ridiculous amounts of money and devalue their own currencies. That would be crazy and short-sighted. What sort of idiots would do that?

Crytpocurrencies are useful to people for a variety of reasons. And if a bank wants to deal in crytpocurrency, that is fine with me. I am glad that you have no doubt they will be profitable but you are pulling such sentiment out of thin air. There is not a precedent for cryptocurrency and how it may affect and integrate with existing systems. But consider that if you consider having a bank involved is a good thing for cryptocurrency - you might not understand the point of blockchain.

And the final point, the ledger is open, and everyone can see everything. You must consider this aspect in your scenario. I would imagine such a microtransactions agreement manifested into a smart contract or if not, prepaid. But again, only at a 15 minute. There is a level of credit there but still much smaller than 30 days worth.

> Yes, you have paper money in your possession that is only worth as much as a centralized bank SAYS it is...

Do you really want to bring volatility into this? Because in the real world fiats are orders of magnitude more stable than cryptos.

Besides, that's tangential to why people prefer banks to cash. If the Federal Reserve screws up and tanks the dollar I'm just as screwed regardless of whether my money's in a dollar-denominated bank account or a suitcase under my bed. Why do you think the vast majority of people prefer to keep their dollars in the bank instead of the suitcase?

> I am glad that you have no doubt they will be profitable but you are pulling such sentiment out of thin air.

I'm pulling that sentiment out of a basic understanding of a bank's business model and value proposition, neither of which are actually directly related to the underlying currency. We had banks with metal-backed currencies, we have them with fiats, and we're starting to see them with cryptos. Unless you can somehow convince me that Coinbase isn't a bank.

> And the final point, the ledger is open, and everyone can see everything.

Right, I can see that three dozen pseudonymous wallets owe me for 15 minutes of service each.

Anyway, the whole point of credit is I can't actually pay up today, but there's reason to believe I will be able to in 30 days. Or 6 months. Or 10 years.

>Because in the real world fiats are orders of magnitude more stable than cryptos.

Yes, but if you'll allow me a little latitude - the fiat currency is under centralized control. And in that case is remarkably stable - until it is not. And 2008 happens. Blockchain is decentralized and yes, volatile. But fiat currency is FALSELY stable - it is engineered to be stable by a centralized authority that does not understand what it is doing and the machinations are generating an increasingly problematic economic environment. I can't stress this enough - the stability that is trumpeted as such a wonderful aspect of fiat currency is manufactured and at the whim of fools.

And absolutely, point taken about banks. I do not fully appreciate the role of centralized banking and certainly, few do. I should qualify some of my statements with the idea that banking is an option, but not a necessity. and that optionality certainly applies to the marble facade we see all over the American landscape.

And finally, yes, you can setup as many accounts as you like - and that behavior will be partially obfuscated because those IDs do not have to be linked. But if you would please give me a modicum of credit (pun intended) - the smart contract would likely require its own level of background on any given ID. If shenanigans are present - the ID is not permitted access to the transaction. Or it might not care - I guess it would depend on the potential exposure. Trivial problems have trivial solutions. There are much bigger problems that would need to be tackled. Thoughts?

> is remarkably stable - until it is not

I think we're saying mostly the same thing, just with slightly different framing.

We have one mechanism for maintaining a stable store of value (centrally managed fiat) that in practice seems to work well most of the time but periodically experiences catastrophic failures. We have another mechanism for maintaining a stable store of value (crypto markets) where catastrophic failure appears to be standard operating procedure. The first is far from ideal, for all the reasons you mention and many more, but from where I'm sitting it still seems like the lesser of two evils.

Also worth noting that central banks predate fiat currency. Back when currencies were metal-backed governments would hoard or release metal to try and control the market value. That's what Fort Knox is for. It didn't work as well as in fiat-world, because there are bounds to how much metal you can actually manage to store, but it worked well enough. It'll still work well enough when the Fed has a Strategic Bitcoin Reserve that they can manipulate the market with.

> the smart contract would likely require its own level of background on any given ID

Oh, yeah, no halfway competent vendor is going to allow themselves to get scammed like this. And the technical solutions are pretty obvious. My whole point, though, is that we're almost immediately reinventing credit requirements for market participation.


There are a lot of people making starry eyed predictions for exciting new developments that a crypto-based economy would allow to happen, but when you dig into the details the vast majority of those things are just as feasible under a halfway decent centrally-managed ACH system. There are also a lot of people joyously awaiting the collapse of large sectors of the financial system, but again when you dig into the details most of those sectors exist to solve problems and meet needs that are still present on a blockchain.

We've been through half a dozen currency transitions over the past few centuries. From precious metal coins to private scrip backed by precious metal to government scrip backed by precious metal to government scrip backed by fiat to paper transaction logging (checks) to electronic transaction logging (ACH), and the financial sector has not only survived but embraced the infrastructure shift every time.

Don't get me wrong, I've got my fair share of complaints about the modern financial system. But for good or ill I just don't see a fiat to crypto transition having anything close the apocalyptic effects that HN, collectively, seems to expect.

Sorry it took me so long to get back to you. Yes, the breathless proclamations of blockchain Armageddon (or Paradise) are tiring. I agree. And it is part of my souring on the whole topic. There is potential for something like blockchain to make a radical impact. But you know how it is - freedom is wonderful but it comes at the cost of diligence. And banks are just so freaking comfy. And they seem to demand so little of us.

The idea of the government creating a Strategic Bitcoin Reserve is interesting. You are right, whatever the current players can do to control any new financial instruments they will. I suppose the libertarian response to such an action on such a chain would be to abandon the chain. And I am WAY out over my skis here but there is a drastic difference between the money printing that is happening in America as opposed to the American govt attaching its keys to a large amount of a cryptocurrency. If they did that and did not transact with that coin then they could have a marked impact on the coin's liquidity and that would affect its value. It could also impact the transactability as fewer and fewer people would be active on that blockchain. But I keep coming back to the true difference being transparency and not being under centralized control as being the POTENTIAL game changers. I am not sure the populace has the stomach for such responsibility. Heck, I am not sure I do.

What benefit does transferring value with a blockchain have over any other method of transferring digital currency? People have been using chest keys and cosmetic items as currency on Steam for years, there are even sites where you can cash out and get money in exchange for digital currencies. Steam also has the benefit of being a point of authority that can handle fraud and theft.

I would offer that the value is the distributed ledger. Where everyone would see the quality of your business dealings because you kept them on a stable blockchain for all to see.

> it is about the speed of transactability

As somebody pointed out https://news.ycombinator.com/item?id=18076542 high transaction throughput is not exactly the killer feature of modern-day blockchains.

Well ok, buit I was talking about transactability - not throughput. I have stated numerous times that the tech struggles to be viable at scale. On Bitcoin's blockchain you can transact and settle in 10 minutes. That beats 2 to 3 days all day long in a fiat-based system.

This is somewhat disingenuous. Transaction times can be as low as 10 minutes on Bitcoin, but this has high volatility. If I look in the past few months, average transaction times spike to a few hours quite frequently. Of course, if you look at the graph for January, the average transaction time jumped to days.

In standard interbank settling times, the transaction time takes days. But that's because transactions will automatically abort if they don't clear fast enough, and banks will take as much time as they can to actually close the transaction so as to avoid having to reverse it after the fact. In practice, many banks are happy to credit your balance with the deposit immediately (if the deposit is small enough, about $5k with my bank) without waiting for confirmation.

Of course, the time it takes to settle the transaction actually doesn't matter that much for the most part. In many cases, the transaction clearing time is going to be an insignificant portion of the time between invoicing the transaction and actually sending the goods.

And the reason for the spikes - blockchain technology struggles to handle large transaction volumes. The consensus mechanism monitors block creation time and tries to keep it at 10 minutes. Ideally, there are never more than a block's worth of transactions to be created at any given time. When that is not the case a backup occurs and yes, the settling takes far too long. This is the technical challenge that must be overcome before a PoW backed blockchain should be considered "viable" ready-for-prime-time. It is a significant engineering problem that I am excited to try to solve.

I transacted and settled with a physical fiat currency today in 10 seconds.

This is a perfectly cromulent response (see what I did there)?

I'd argue that you did not settle a transaction but more exchanged in a barter of one item for another. I am glad it worked out well for you and pray that you will experience continued expedient transactions in the future - blockchain-powered or not.

Nope, no barter - exchanged goods for currency, not for goods.

What would you mean by "settle" if you don't mean the point when the seller receives payment?

>Nope, no barter - exchanged goods for currency, not for goods Tomayto - tomahto amigo!

I mean when the seller receives payment. And I concede that there are banks that are releasing funds on a tighter timeline. But that decision is still backed by a credit requirement at some level and at the whim of a centralized bank. What they deign to grant to us they can also take away from us.

The current system is familiar and comforting but it is not the stable panacea we like to think it is in comparison to a scary blockchain. The stability is manufactured at the cost of the occasional blow-up - which we conveniently forget about as the market rebound to new and loftier heights.

Why does this matter? What can I do with ten minute settlements that I can't do with my debit card?

One of the ideas is that smaller payment amounts are viable on a blockchain - and there will be mining or transaction fees assessed but there will be fewer and smaller fees. Point-to-point transactability cuts out the ubiquitous payment middlemen and it gives the person making the transactions CONTROL of their transaction data. No longer will business pay credit companies to learn about you - they will have to pay YOU to learn about you.

Data is worth billions and trillions of dollars. And blockchain allows you to take control of it.

>Because it finally provides a mechanism by which bad actors on a network could face repercussions for their activity.

Would this require globally broadcasting all transaction? If yes, wouldn't globally broadcasting all transaction give you a lot of transparency anyway?

A blockchain is a ledger of all transactions, yes. Son the result is transparency.

Technically, you don't need to download the network's history to interact with it.

The reasons to run a personal node are related with privacy, trust and decentralisation.

Honestly, I don't see why everyone hates blockchain these days. Two things are going on:

1. It's a potentially revolutionary technology (trust-less, decentralized, nearly tamper proof, etc) that hasn't yet found a killer app(s) at scale

2. We're in the middle of a gold rush with zillions of shit-coins really throwing off the signal to noise ratio

This period will pass. Blockchain tech is maturing (PoS replacing PoW, throughput increasing, formal verification, on-chain governance, etc). Most of the shit-coins will disappear (a common headline these days is exchange X delisting NN coins because they're worthless). Things will consolidate, the really valuable tech will bubble to the top.

If you follow the news, you'd know there's a lot of stuff in the works, from major corporations to governments trialing blockchain for different purposes. Now, you can take a philosophical position about blockchain and say it's worthless, but the rest of the world doesn't seem to care and its widespread adoption is beginning to look like a foregone conclusion.

> In energy for instance, much talk about the financial aspect of a blockchain-based energy solution but absolutely zero talk of how the physical grid and infrastructure would engage to support the financial activity.


This is a project trialing in Bangkok. Excess electricity from private solar is sold off automatically.

> Helping it along is blockchain, the distributed ledger technology that underpins bitcoin currency, which offers a transparent way to handle complex transactions between users, producers, and even traders and utilities.

> Blockchain also saves individuals the drudgery of switching between sending power and receiving it, said Martin.

I don't have any details, but it seems they've figured out how 'energy on blockchain' actually works. I have heard the project has been successful enough that city decided to tax them to the point of being unprofitable (will likely correct itself in the future, was probably just a knee jerk reaction).

>It's a potentially revolutionary technology (trust-less, decentralized, nearly tamper proof, etc) that hasn't yet found a killer app(s) at scale

I'd argue it has: cryptocurrency and all the criminal enterprises it supports (e.g., ransomware). If you're willing to enter legally-enforceable contracts with other parties, then "trustless" and "decentralized" don't matter all that much to you.

Ok, but counterpoint is obvious. Are there people using blockchain for illicit purposes? Yes. And also water is wet. There are also many people using cash for illicit purposes.

And of course, you can always include as many people in your transactions as possible but what blockchain does is to make those people unnecessary. Why is this important? Because it enables micro-transactions and credit-less agreements. A blockchain provide options that fiat-based systems can never provide.

I like the Bangkok example because it highlights that one of the problems we have in the "more developed" world economies is that we have existing systems and financial institutions to hurdle. Developing economies do not and it is giving them a fast track tot he new way of doing business. There is a good chance that when blockchain takes off - it will catch Wall Street off-guard.

Maybe this is a different way of putting it, but my assumption is that if there are killer apps for blockchain tech, the value created will tend to be in the equity of companies rather than tokens. In most cases where those things are being conflated (e.g. ICOs), there's no obvious reason for it. Not everything needs a bespoke ledger and microeconomy. The complexity is completely unjustified.

That is a good point and it is why I am slowly moving towards gadfly - the use cases typically do not NEED blockchain. The thing that is compelling about blockchain is not the tech, which is not ready for prime time - but in the idea of pseudonymous transparency, faster transactability, fewer middlemen in any given transaction, decentralized control ...

> Not everything needs a bespoke ledger and microeconomy. The complexity is completely unjustified.

I also think that the mad gold rush has the potential to turn off those who would build the real ecosystem, small pieces of useful, reusable smart-contract code at a time.

My friend, we are living in the Age of Complexity. Do you see ANY aspect of our lives that is getting simpler? Saying that the world doesn't need a realtime market for the valuation of chocolate bars - well, maybe it does. Maybe the end result is then cheap and freely available chocolate! What sort of monster are you, depriving the world of delicious chocolate?!

Can you give an example of this transactability, especially in an example where it would be superior to existing solutions?

Also, are you the Dan Collins in Phoenix? I think we did a project together about 4 years ago...

I am not that Dan Collins. And as for an example - credit card transactions. I am sure somebody else can provide more color but it is my understanding that there are 6 or 7 intermediaries that each credit card transaction travels through - each taking their fraction of a penny and delivering questionable value - all to eventually have that transaction finally settle 2-3 DAYS later. On a blockchain that can happen in as little as 10 minutes and nobody else is involved (other than the miners in the case of a PoW consensus-backed blockchain like Bitcoin).

But more importantly, blockchain might provide a way to get around the information asymmetry problem that dominates financial value exchange. Blockchain is better in the idea that the entity trying to transact exposes all their cards on the blockchain - if they want to extract value from a transaction it will not simply be because they "know more than you". Power to the people.

> I am sure somebody else can provide more color but it is my understanding that there are 6 or 7 intermediaries that each credit card transaction travels through - each taking their fraction of a penny and delivering questionable value - all to eventually have that transaction finally settle 2-3 DAYS later.

I worked on Square's payment systems and I agree. Most credit card payments at least go through a merchant acquirer, one or two card networks (they can proxy to one another), and the card issuer. Settlement tends to involve other parties like First Data. Sometimes there are extra middlemen like Braintree.

Settlement is slow mainly because of the ancient technology. Payments are usually settled in batches, which are typically processed once a day, and transferred with some variant of FTP. Since there are a few parties involved, it usually takes a few days for each of their batch settlement jobs to complete. The companies involved tend to be very cautious and slow to change; a lot of them still use COBOL running on IBM mainframes.

> On a blockchain that can happen in as little as 10 minutes

Or a matter of seconds with BFT systems :) I'm working on a BFT system with a goal of subsecond consensus.

I think you mean the idea of applying a naive concesus algorithm revolutionary, right?

I mean that the potential impact that a blokchain-based system could have on the way we generate and exchange value - could be revolutionary. It could be one way that wealth distribution could be facilitated if you buy the idea that data is the new currency. Blockchain brings power to the people because it puts data in the hands of the person with the keys to that data. Ideally, we are careful enough to maintain those keys and not abdicate control of them to yet another centralized authority.

The reason to build blockchain based systems is the desire for architectural decentralisation and trustless systems. Most use cases you can think of you have already seen elsewhere, hence why you can think about them right?

To give you a concrete example of a use case that can't be met without a blockchain, I'd suggest looking into Aragon and their DAO (decentralised autonomous organisation) software.

I used this blockchain demo to teach a class this weekend. Many thanks to Anders Brownworth for creating this: https://anders.com/blockchain/blockchain.html

Even the MIT URL in the source uses Anders demo -- it's that good.

Edit: Oh wow -- Anders is the author of the MIT demo. All the same stuff really.

I created the following interactive tutorial: https://blockchain.nambrot.com/

Would love your feedback on it!

A cool idea would be to split the class into groups where they pass around a piece of paper and can add their group's block and pass to the next group.

A great way to learn about blockchains is building your own from scratch / zero in Python, Ruby, JavaScript, etc. Find many starter samples and articles in the Awesome Blockchains [1] collection. [1]: https://github.com/openblockchains/awesome-blockchains

For the Javascript lovers out there, I wrote a client-side project which conceptually demonstrates how a blockchain works. It runs in your browser and uses web workers to concurrently mine blocks, showing how miners, transactions and addresses fit together.


Now explain to a technical audience why some people say nonsense like how it’s the next internet or how it’ll change the world please.

Well.. It will change some aspects of our world. Particularly financial assets at first, but increasingly it will play a role in any peer to peer exchange requiring trust. Simple past examples are systems like OpenPGP that bind public keys to owners. Programmable blockchains allow generalized applications requiring decentralized trust. A good example of a use of blockchain outside of financial assets is in trust management of vehicular networks. In order for vehicles to communicate amongst each other, they need to trust that the messages they are receiving are authentic using a decentralized consensus mechanism and some sort of Bayesian Inference Model.

So in short, it is an extension of the internet (trust layer) and it will change the world. So I don't think that's nonsense to say, but I can see how these claims would appear to be exaggerated to someone with limited exposure to Bitcoin and other cryptocurrencies.

I have a PhD in cryptography. Please be precise. Exactly what problem will blockchain solve for vehicles? You can't just hand wave and say stuff like "decentralized trust management" and expect us to nod along.

Yeah, I'm quite skeptical of it as well. If I'm being really charitable to it, then it's a way to synchronize data between parties without relying on a trusted intermediary. That said, it's unclear what practical value that has outside of purely digital applications like cryptocurrency. When you roll it into things in the real world (e.g., supply chains, health records, etc.) then you necessarily have to trust the data sources and sensors, at which point what good is a blockchain?

Which is exactly the point I still try to get my head around when it comes to supply chains.

First, for blockchain to work you need trustable sources. Problem is, when the aource is trustworthy, what added benefit comes from a blockchain?

Second, having a, theoretically uninterrupted blockchain from the first raw material to, say, a car would provide way to much insight into supply chains. I pretty sure companies do not want that.

Finally, and that is IMHO the haedest point to practically solve, you need to make 100 percent sure that the physical and information flow in your supply chain are never ever seperated. One single separation and your whole blockchain is worthless. And that risk is so incredibly high in the real world it's almost laughable. So, to make sure a given blockchain matches the physical product you need a trustworthy party to assure that. And then, what value does blockchain add?

Someday someone a lot smarter than me will find a use case. At which I will say how damn obvious it is.

It's not an end-all for supply chains, but that doesn't make it useless. It still prevents forgery of old records. If someone signs something, they can't later go back and change it or claim they didn't.

Have you worked in manufacturing with ERP systems and BoM transactions?

I could see how this would be useful for medical device manufacturing, especially something like a pacemaker.

Indeed I did. Thing is, I see how blockchain could help existing processes. I just don't see the revolution yet. Which puzzles me, since on the one side I see the potential but on the other hand I still fail to see a real use case. And that introgues me quite a lot.

Indeed I have conjectured multiple times that I think the only application of blockchains is in cryptocurrency. Introducing any physical asset like a yacht or a banana in Laos or a diamond in Africa really doesn't make sense: you can't literally put those physical things in the blockchain.

> you can't literally put those physical things in the blockchain

You can not otherwise too, right? A blockchain holds interactions/transactions not the data itself. Most blockchains are incredibly small in size. For example, the size of the entire Bitcoin blockchain is 215.84 GB [0].

[0] https://bitinfocharts.com

I can see its applicability in any kind of chain of trust for distribution of physical goods that have a potential to be counterfit or improperly handled/processed.

Also, I see a possibility for licensing/DRM of some types of media IP.

That does not mean it needs to be distributed, though.

I agree. You would need an oracle in order to put physical things on the blockchain, and that is subject to incorrect data or tampering. It's non-trivial, but not technically impossible.

Yes, but if you have a mechanism (either technical or institutional) that you trust to attach real-world goods to your blockchain in a sufficiently correct and tamper-resistant manner, why not just let that mechanism manage your ledger directly and skip the blockchain entirely?

Those seem like two separate problems to me. The oracle reliably reports to the blockchain while the blockchain ensures that the historical record is tamper-proof.

But why can you trust the oracle to report correctly but not to maintain the record?

> it's a way to synchronize data between parties without relying on a trusted intermediary

At the expense of time. So most real-world use cases (securities trading, vehicular networks, payments) fail when you introduce a 10-minute delay required for distributed confirmation.

For time-insensitive examples you've provided - supply chain and health records - the use cases work better, but who will dedicate the resources and mine the blocks to ensure that specific blockchain's survival?

Say you initiate a contract to sell a yacht for 1 million $. You and your buyer go to a notary where all 3 of you sign the contract and all the proper procedures. You give the buyer the yacht and he says he will transfer you the money tomorrow. Meanwhile the buyer and the notary strike a shady deal to screw you over and make new contracts that say you sold it for 1k$. It's 2 against 1 and you will lose a costly court battle and your yacht and so on.

Solution: blockchain smart contracts where code is law, more secure, trustworthy and transparent than any individual, bank, government or company.

But code isn't law. You would have to rewrite parts of the legal system to support blockchain tokens as representing actual ownership, and there's strong reasons why you would never want to, such as loss of private keys, forgetting of passwords, or security vulnerabilities, or user error leading to complete asset loss.

Otherwise you have a synchronization problem between the upcoming blockchain token system and the existing government deed registry, and of course the government registry would take preference, and has a history of working just fine for lower cost.

This video is an excellent overview of this topic: https://www.youtube.com/watch?v=YxmXIgLEAIE

I haven't seen blockchain systems as being more secure or more trustworthy. I see them being overhyped, subject to lax and magical thinking, and full of theft of coins due to hacks and scams.

"and has a history of working just fine for lower cost." Citation needed.

Also we are just talking opinions here, a lot of things seem impossible until they are actually here and in our everyday lives.

Maybe you should try watching the video I already cited, specifically this part: https://youtu.be/YxmXIgLEAIE?t=1404

You might learn something.

You are trying to solve a problem with a blockchain that does not exist. Also, exactly how does your blockchain even know "this yacht now belongs to this person"?

Exactly. How does the real world's state get accurately put into a blockchain? My big beef with all the blockchain hype is that this doesn't seem to be addressed. They say "trustless" and "secure" and "transparent" all the time, but those assurances only exist within the very limited confines of the data structure itself. As soon as you hook it into real-world data, then those assurances only guarantee that fraud is accurately carried out.

It doesn't. You go to court like normal people.

How is this not a problem if the court system is filled to the brim with situation that could have been solved with smart contracts in place.

As for the yacht it's easy, the ownership is transfered from your address to the buyers address on the government's blockchain. :)

hey everyone lets record every transaction from everyone on a big government database so we can solve trade disputes if someone steals my yacht and crashes it.

Let's say I'm the buyer and this happens. There's now a record on the government blockchain that says I own a yacht. Does that mean I physically have possession of the yacht now? How do we assure that what's in the blockchain is an accurate reflection of who actually has physical possession of the boat?

> blockchain smart contracts where code is law, more secure, trustworthy and transparent than any individual, bank, government or company.

The DAO issue [0] clearly showed that "code is law" doesn't really work. It's people writing cryptocurrency software and running the nodes that are "the law".

[0]: https://www.coindesk.com/ethereum-executes-blockchain-hard-f...

If you and the buyer already have physical contact, you don't need a trustless system, you take him to court or vice versa if one party is unhappy with the transaction.

The blockchain can't (or at the very least shouldn't) overwrite legal infrastructure.

But you still lose your yacht because it's not in the blockchain.

Is it just me or do the replies I'm seeing come across condescending and unsubstantial? I'm also missing why your PhD in cryptography is any important for the sake of the argument. We are not you in regards to your last remark by the way: "...expect us to nod along". But since you are looking for a good argument to support your confirmation bias, blockchain itself doesn't solve anything. It's just a data structure and a tool. The problem solving happens in the bigger picture, e.g. "decentralised trust management".

But let me ask you this: exactly what problem will a database/tree/file solve for vehicles or currencies? We can agree upon that what you are asking and looking for can't be answered or will get a reply similar to: we don't have that problem. You may have asked the wrong question though.

Let me be more precise and create a problem that doesn't exist but for programming purposes I want these requirements: many users should be able to read a (hardly) modifiable data structure that gets more resilient the more use it and that is a singleton who everybody has access to (call it decentralised if you will). Blockchain sounds like a perfect fit doesn't it? Now, when we replace the data structure keyword with OS and resiliency with speed, we can agree upon that this sounds like a decentralised operating system (Ethereum or whatnot).

Don't get me wrong. I don't see any problems that need to be solved with blockchain right now either. But clearly there is a trend in cryptocurrencies and decentralisation that seems to be important to a lot of people. There are tons of problems that need solving: trust misuse, censorships, privacy issues, advertising and so on. That there is a need for a change is obvious. That this change started with blockchain technology is good. I'm also sure cryptography is important to you too. Why not embrace an emerging technology that benefit your field of study?

This is the example I was referring to: https://ieeexplore.ieee.org/document/8358773. The problem is one where there are multiple vehicles, from different manufacturers, that must communicate with each other in real time (say at an intersection) and must make decisions based on messages being relayed to them. This is easier if they are all following the same protocol.

There is no need to have a database replicated everywhere across a network and for all nodes in the network to be constantly engaging in a consensus protocol to agree upon the state on the ledger for some cars to communicate.

Almost always a blockchain is (i) useless or (ii) something kinda vaguely like Satoshi's blockchain but really more like Git.

There is an important qualifier that people keep forgetting.

You wouldn't need such a system for cars to communicate in the presence of authority or in the absence of value. The former is the case for Lyft or Uber, the latter is the case if we have an infinite supply of cars.

But if one wishes to have peer-to-peer value (and cars ain't cheap) without a central authority (and Uber is evil) a proof-of-work blockchain is better for that than Git or a server run by some guy is.

There may of course be superior social or technical forms for this use case. But once you have added the qualifier that the system should be decentralised (and for everyone making a career out of pretending not to understand what this word means: I mean here that there should be no central point of control at the point of transaction) a blockchain may make more sense than some of the alternatives.

I agree for this particular case, which is why I think a DAG with local consensus (something like IOTA) is more applicable for this application.

I think DAGs are possibly even more useless.

And you're of course free to have your own opinion. I'm not as quick to dismiss them simply because I acknowledge that new technologies have historically been ridiculed by experts at least initially. But healthy skepticism is always warranted.

And of course the best protocol for a real time, latency sensitive application is... using a blockchain?

Bitcoin has a throughput of about 3 tx per second. Ethereum a little better at 7 tx per second. Confirmations are on the order of minutes at best.

Why do you think this would be a good idea?

Those are blockchains which come to global consensus, which I don't think would work here. You would either need a state channel (2nd layer) or a DAG structure.

Service records for the life of the car.

Vehicle purchasing/financing paperwork.

Inspection tracking.

Trust and transparency.

Are you capable of being precise?

> Programmable blockchains allow generalized applications requiring decentralized trust.

Yeah, they don't really though. They allow a few extremely specific applications requiring decentralized trust. The trust guarantees only hold if no single party can, even momentarily, control more hashing power than was collectively used to generate the last X blocks, where X is number of updates made since the data you want to tamper with was inserted.

To put it in concrete terms, pretend we have a blockchain for publishing PGP keys, and that your public key is 10 blocks down in the chain. If I want to maliciously replace your key with one of my own then all I need to do is rent a few dozen servers off of AWS for a day or two and use them to generate a modified chain that has my key instead of yours in the 11th block down and then rehash all ten blocks spending slightly more compute power each time than the original committers did. The network will recognize my fork as the authoritative one because it's got more proof of work. That's expensive, but it's certainly not infeasible.

This trust mechanism works out for cryptocurrencies because their only value is monetary. That means that people are incentivized to set up mining rigs to spend a lot of real resources on mining because they automatically get compensated. It also means that there's a bounded maximum amount of effort that a rational actor will spend to tamper with the chain, because there's a finite limit on the available profit to be gained.

Neither of these are true for PGP keys. Publishing a secure update to a PGP key database is not, in and of itself, a profit generating enterprise, meaning fewer miners and far less resources spent per mining rig. And the potential upside of successfully tampering with the right key is enormous.

The actual mechanism which produces the security guarantees in blockchains isn't cryptographic, it's economic. Tampering with a cryptocurrency's blockchain isn't actually impossible, or even difficult, it's just by definition more expensive than it's worth. When you try and move to an application other than financial assets the economics break down, the security guarantees go out the window, and all you're left with is an extremely inefficient git clone.

Please forgive my ignorance if I’m missing something obvious but in your PGP public key tampering example, wouldn’t this attack be ineffective against a blockchain that is stored in multiple peers. I.E your hashes wouldn’t match those of the peer copies of the blockchain?

Nope. The whole point of proof of work is that it informs clients which version to consider authoritative in the case of a conflict. If my tampered copy has higher proof of work than the peer with the correct version then, by definition, mine is correct and the other peer's is outdated. Correctly implemented peers will recognize this and overwrite their local cache with mine, and even if they don't other peers will always prefer my version to theirs when deciding which update to sync.

How is "higher proof of work" defined in this context? Also, doesn't consensus of the majority of peers have any bearing on which is more authoritative? I.e. if all nodes except for your malicious node report a single chain, why would yours not be rejected?

"Proof of work" means the total number of hashing functions, from the point of divergence forward, used in signing the blocks.

Consensus doesn't work like you're implying. If it did, I could spin up a peer on N+1 AWS servers, where N is the current number of peers on the network, and now my version has the majority of peers supporting it.

The whole idea behind proof of work is that it's impossible to fake. The version that took the most net computing power to generate is by definition authoritative. This means that the only way to make a malicious version of a chain is to actually, genuinely do more total work than the legitimate actors collectively did. The other side of this coin, though, is that it explicitly allows me to generate a malicious version of the chain by actually, genuinely doing more total work than the legitimate actors collectively did.

> they need to trust that the messages they are receiving are authentic using a decentralized consensus mechanism and some sort of Bayesian Inference Model.

Or, since manufacturing an automobile is already centralized just use existing PKI.

A blockchain is just a type of data structure. I have yet to see any use case, outside of building crypto currencies, that could not be realised without it. The problem is not that the technology did not exist before, the problem is that people and organisations were slow or unwilling to adopt it. But that is not the type of issue that will be solved by introducing new technology, and almost all blockchain advocates seem to completely oblivious to these dynamics of human behaviour.

My company aims to convert all the world's news into data. Please tell me another technology that will allow us to build a decentralised, failure-tolerant, censorship- and tamper-resistant archive of that data, that allows anyone to add data, and have it verified without a central authority, and that anyone can use to create news applications.

> my company .... decentralized

Can you explain this step?

Good point. We are setting up a foundation to initially run the project, but even the foundation will be deprecated as we go forward. In fact its primary role will be to enable further decentralisation i.e. to make sure that no single party can monopolize the system through various consensus methods.

So you are building a write-only editor-less Wikipedia? Not sure how blockchain is related.

Anybody can already create news applications. Just put up a blog.

A blog is just one kind of news application, that generally uses articles (not data) for its content. However, we propose that once news is converted to data it can be used for many different kind of applications: Trusted news feeds (filter and sort the data); automatically created articles (combine the data); fact checking systems (compare the data); fake news detectors (evaluate the sources of the data); and much more. For this to work the data must be independently verified as accurate (matching the source) and available for access at all times, without fear censorship. Put all that together and there is only one technology that can deal with it.

verified how?

And what exactly are you verifying?

In its most basic form, we verify that data extracted from news articles matches what has been reported. So, when we extract the data "Trump, Speech, Alabama, Immigration" from an article, then it has to match the reporting in that original source, which may have included a sentence like, "Trump gives a speech in Alabama about immigration".

To avoid the verification process being gamed we split up the data and send pieces to random people across the across the network. So, someone may be asked "Is this article about Trump?" and the next person may be asked "Which state is this sentence about?". They may not even see the whole original article.

So what happens when your verifier fails? Do you prevent the publication of the text? That hardly seems decentralized.

Asking humans to review the accuracy of all published text will never scale.

The amount of verification required depends on the data. Simple data, such as sports results -- coming from high-quality sources doesn't require much verification, and can be automated. More complex data requires human verification, but that will gradually be replaced by distributed machine learning.

If an article says Trump gave a speech, how do you verify with machine learning, using a blockchain, that Trump literally gave a speech?

I don’t really understand your business. It’s a business, but also dencentralised. Are you trying to verify if news is fake or not? Why do you need a blockchain or machine learning for this? Do you have your own coin?

>If an article says Trump gave a speech, how do you verify with machine learning, using a blockchain, that Trump literally gave a speech?

To do fact checking you first need to know what has been reported. We verify that a source reported that Trump was involved in a news event where he gave a speech, and convert that to data (For example: Trump, gives speech, text of what he said, location etc, with links to the sources). Anyone can then use that data combined with their own algorithms or external data to evaluate the quality of the data -- primarily by evaluating the sources -- to create quality scores for that news event.

> don’t really understand your business. It’s a business, but also dencentralized.

We are setting up a foundation to oversee the blockchain, but it really only exists to distribute the initial funds and to provide initial guidance, until on-chain governance can be set up. Companies and individuals run the apps that use the data on the blockchain.

>Are you trying to verify if news is fake or not?

See above. You can use the data for lots of things. Detecting fake news is just one application.

>Why do you need a blockchain or machine learning for this?

There is no way to ensure that the data is verified independently across the network, and stored in a censorship and tamper-resistant way without a blockchain.

>Do you have your own coin?

The coin (NewsBlocks Tokens) will be used by apps to pay for the data. The payments are then sent to the people who added the data, without any need for middlemen or news agencies, using Smart Contracts.

The logical reasoning is full of gap and holes that I cannot bother to rebuttal, because I am afraid of wasting my time.

But I think Block chain can succeed. It matters less that it works, as long as the rich and powerful believe it can help then sustain their status.

These people want VC money.

(I can imagine some genuine uses, but I'm not interested in explaining them to people, especially not technical people with an axe to grind. So boring! Much quicker and easier just to say nothing, sit tight, see what happens, and find out that way whether I'm wrong or not. Most technical people are myopically technical anyway, and the technical side is just not the interesting bit here.)

Funny because I think a lot of technical people would say that the technical side is the only interesting part of block chain, i.e. it’s a neat data structure. However, every proposed use of it neglects all of the other non-technical aspects of human society. Hence all the calls by people with understanding of the technology for explanations of where it could actually be applied in society.

> how it’ll change the world please.

Permissionless and trustless digital payments truly has the power to change the world.

It arguably already has with the rise of darknet markets and cryptojacking. Think of all the movies where a suitcase of cash must be delivered to a drop off spot, this now all goes away.

But the bigger picture includes making it much easier and safer for business which cannot take credit cards to accept payments. Think donations to wikileaks, porn and marijuana businesses.

Think about what it means for people to control their own money in case of a crisis. In places like Venezuela people are already using cryptocurrencies to avoid inflation, a corrupt government and to cross the border with their wealth intact. Charities like eatBCH uses cryptocurrency to send people money into the country in order to buy food.

Yet another step back, if cryptocurrencies would truly catch on and replace government backed fiat for general use, then it's not as easy to simply "print more money" to get away from financial troubles. Banks might then have to take responsibility for their actions instead of getting bailout after bailout.

That's relatively easy.

1) Some people are ignorant;

2) Some people are trolls;

3) And some people have an agenda e.g. they're trying to get folk in 1) to buy something.

It's already changed the world a bit - CryptoLocker, dark web drug purchases and Ponzi like ICOs wouldn't have been the same without it. It's also consumed epic amounts of electricity and warmed the planet a bit. I hope some positive changes come too.

There's a lot of bullshit, but it would be a huge mistake to assume that there's nothing significant there. Check out the Bitcoin whitepaper for a technical primer.

Well it has great potential to remove a lot of beaurocracy related stuff. It's not really the next internet but it can very easily change the world if it's properly implemented.

But if you're talking specifically about cryptocurrencies and bitcoin then I assume you're a bit salty because you think you missed the hype. Don't worry tho, we are still early adopters.

I actually conjecture that blockchains are only useful for cryptocurrencies like bitcoin. It's when you see companies using them for tracking their supply chain, their music, their photos, their porn, their bananas in Laos, their weed, that I roll my eyes into the back of my skull. There's no way it has any potential to simplify any beaurcracy, unless you think introducing multiple nodes on a network and constantly making them talk to agree on their own databases is simple. People always compare blockchain in banks to banks using pen and paper. Why not just banks using computers?


If you are a small producer and you send a shipment of your widgets to Wal Mart, and Wal Mart then say "what widgets?", the efficiency of their SQL Server installation isn't a benefit that will bring you much comfort.

If you are a small producer and you send a shipment of your widgets to Wal Mart with little rfid stickers on tracked by a blockchain system that you, the shipping company, border security, Wal Mart's warehouse and Wal Mart's stores run nodes for, you have a system that may bring you a bit more comfort. Running a node is simpler (or at least more efficient - pen and paper is simpler than SQL Server...), and the outcomes more encouraging for all participants, than some of the alternatives.

The question "Why not just banks using computers?" is where distributed timestamp servers came in and there is an extensive literature devoted to both the ideological and practical arguments around this. Briefly because banks are untrustworthy, expensive and slow. Banks themselves using blockchains is recuperation ideologically speaking, and FOMO technologically speaking. It is less silly to the degree that it does improve banking transparency and trustworthiness, but abandoning proof-of-of-work for the nonsense of "permissioned" blockchains restores it to being very silly.

We have a shipment tracking system now without blockchain.

> little rfid stickers on them ...

If the problem you're trying to solve is the one you say, you might as well just run a few servers across different organizations / companies which replicate between themselves, like certificate transparency does, or like the gpg web of trust does... which isn't a blockchain because it's vastly more efficient.

A CT-style system could work for supply chains, but let's say for the sake of convenience, we wanted to use some shared storage system rather than building a new system for supply chains only.

We could have one big CT-style log system host many applications, but as the number of participants grew, we would want some mechanism to prevent spam. Even if there was no outright spam, some users would generate a large volume of logs with questionable utility, and humans would need to get together to decide if those users should be blacklisted or what.

Ethereum gives us spam control via gas costs. I can't imagine a good, low-maintenance solution that doesn't resemble some cryptocurrency. Paying fees from a ledger isn't absolutely necessary -- we could proof of work to discourage spam, like iota -- but charging fees in a ledger seems like the better solution, and isn't that much more complicated.

This is a very good and clear explanation of how bitcoin type blockchains work. It could easily have been made simpler and more general at the same time by omitting the proof of work aspect, which is not even discussed actually. The "begin with four zeros" rule is completely arbitrary, it could be any prefix of any length depending on the necessary amount of work that you want, including zero. And with an empty prefix we still have a blockchain with all the properties presented here that hold.

Is it necessary to be based on the prefix, or can it be implemented by pattern, for instance, every even byte is zero, or the 4 bytes after the first 3 bytes must be all 7s, etc?

Is it simply brute-forcing hashes, looking for matching patterns that are not yet known?

I don't see what prevents you from adding complexity.

And yeah, but it also requires valid transactions if you want to collect fees, as well as the knowledge of the valid previous block.

In practice Bitcoin treats SHA-256 outputs as integers, and requires them to be under a certain limit, based on the current difficulty.

That way we can make small adjustments to the difficulty. If we actually used a rule like "this many zeros in hex", the difficulty bumps would have to be rather large.

After a long time of procrastinating understanding block chains, I could watch the whole video and understand it finally. Thanks for the great visual explanation.

I remember that a lot of people were saying that cryptocurrency is not revolutionary but that blockchain is. I think the opposite is true. Cryptocurrency is revolutionary and blockchain is just one of several known technologies that make it possible. Cryptocurrency is the most important use case for blockchain tech.

What I like most about cryptocurrency is the fact that it financially incentivizes massive collaborative behaviour without requiring participants to actually own any capital at the beginning. It lets you create financial incentives out of nothing. Before cryptocurrency, this kind of collaborative game-rigging behaviour was only accessible to people who owned a lot of capital (e.g. 'activist' investors).

For example, I could launch my own cryptocurrency tomorrow and then use it to air-drop (aka bribe) journalists to write about my project in a positive way - This is pretty standard behaviour among Silicon Valley startups but now you can do it without VC money.

It sounds bad but it's much better than what we have now.

It levels the playing field for everyone. For the first time ever, regular people have the power to change the world together through incentivised collaboration.

But if those cryptocurrencies keep never amounting to anything, then the bribing won't keep working, right?

It will but maybe it will be harder to do it.

It's like if you could give some shares of your startup to a journalist in exchange for writing an article about your startup. Cryptocurrency can act like shares without central authority. If enough software services rely on a specific cryptocurrency as payment, then it has actual intrinsic value

"If enough software services rely on a specific cryptocurrency as payment, then it has actual intrinsic value"

I wish I'd seen this earlier. Pretty sure this is false, but it is an excellent summation of the thought behind what's run up digital currencies.

Question: the video explains that you can't just change a bit in the middle of the blockchain without having to fix all the subsequent blocks, making tampering labor intensive, but not impossible. Is it supposed to be VERY labor intensive, depending on the length of the chain?

Then ultimately a chain that is consistent might have been manipulated, but you can check it against other copies. At this point you could be just comparing plain text ledgers (but blockchain comparison could be easier by just comparing hashes.)

The reason it's VERY labor intensive is because in a PoW blockchain, each block also includes a value that combined with the previous blocks hash hashes to a number less than the difficulty (the value labelled nonce in this demo).

The difficulty can be adjusted to ensure that finding such a number is very hard. Obviously in the demo, it was not so very difficult - your machine was able to work out a value for the nonce very quickly by itself, but in the real network, the difficult is set so that this is hard. So hard that the whole network of miners working together will only find one, on average every x minutes (configurable depending on how you update the difficulty). This means that creating another block is difficult.

The whole network has the rule that longer chains of blocks are preferred over shorter ones, so as more blocks are added to a chain, the amount of computation required to overtake the main chain and have your modified chain accepted as the truth becomes very large. To rewrite history, you don't just need to modify the data and recalculate the hash for each subsequent block, you need to find a nonce that works for each of the subsequent blocks, and you need to be doing this faster than the main chain is adding new blocks, or your chain will never be as long as the main chain, and it will never be considered the 'truth'.

That's why people talk about 51% attacks - the idea is that you need to have a majority of the hash power of the network working on your dodgy chain if you want it to overtake the main chain. Now there are things you can do with less than 51% of the network hash power, but for the naive approach, you're going to need a phenomenal amount of computing power to stand a chance of having people accept your version of history. For alt-coin chains with very few participants, there have been real attacks along these lines. It's hard to imagine attacks like this succeeding against any of the main blockchains though.

And yes, comparing two blockchains for equality is very easy - the hash of a block includes the hash of the previous block, as you can see in the demo, so the hash represents the entire history. If two blockchains have a different hash for the top block, they have different histories.

And original discussion from back when ETH was $11 or so a year and a half ago https://news.ycombinator.com/item?id=13566951

You know, I used think the technicals mattered. Then I realized how the technology behind the technology behind bitcoin works: https://twitter.com/mikeinspace/status/1043577578357952512

This is the best explanation of blockchain I've found.

Is there any interesting work going on with blockchain for identity management (Internet or other, I guess)?

Why is it assumed a blockchain is always distributed?

I think that distinction needs to be made (centralized vs distributed).

I have yet to watch/read the link, or catch up on the hype, but why is "Blockchain" referred to in the singular? As in "the blockchain" or just "blockchain" (often capitalized.)

Is there only one of its kind?

Is "How Internet Works" grammatically correct?

EDIT: I didn't see this was already asked in another comment.

I too want to know this. You'd think it would be "How (a) blockchain works" or "How blockchains work"... The way this is written feels like they're suggesting there is only one.

<rant> This ship seems to have sailed already but I feel like it really should have been "How blockchains work". We don't say "How relational database works", "How operating system works", "How computer works", etc. We do say "How Linux works" or "How Bitcoin's blockchain works".

I understand why people do this but it also annoys me.

It's just a short-handed title given to a concept by people who need to talk about it but don't fully understand it. Like the way politicians talk about "cyber"

Edit: The use of "blockchain" in this article rather than "a blockchain" or "blockchains" seems to be just to conform to the broader discussion. The linked page does seem to demonstrate a clear understanding of how blockchains work.

Forbes published an article containing this line "To understand its functioning and functionality, it is necessary to start first with the definition of blockchain." It's annoying in the same way that people in marketing using the word "digital" as a noun is annoying.

But it's how financial/business people are typically abbreviating "blockchain technology". It's like Brexit: there are many possible implementations, but one concept.

>"How Bitcoin's blockchain works"

Blockchain is both the descriptive label for distributed ledgers and the pronoun for Bitcoin’s Blockchain.

It could have been “how blockchains work” if talking about blockchains generally but “how Blockchain works” would seem to be the title of an article discussing how Bitcoin’s Blockchain works specifically.

It's like Apple welcoming me to "iPhone"...it should be "your iPhone" or "this iPhone" or "an iPhone". iPhone is not a state of being.

Just to play devils advocate here, I drink “milk” not “milks” despite the fact that it might be from soya, cow or goat.

Because 'milk' is an unmarked plural. 'Chain' is not.

Blockchain is an unmarked plural

No it isn't. Nobody says "one blockchain, two blockchain, oh hey look I found a bunch of new blockchain".

Blockchain is here being used in reference to the technology itself, not the collection of its manifestations. Just like you might say "how the internal combustion engine works" or "how insertion sort works"

Does anyone say "here's one water, two waters"?

When they're discrete, yes.

Like asking someone "can you grab a couple waters while you're in the kitchen?"

> [...] words in English often carry a number of different meanings, and these can affect whether a word will be considered countable in one instance compared to another.


Water is a mass noun, generally used for things indivisible or uncountable. In English, you can tell if a noun is a mass noun if it cannot be used with the indefinite article "a".

"*Oh hey look, I found a sand"

"Oh hey look, I found a blockchain"

It doesn't fail the test, so it must be a count noun.

(PS: water is a bad example, because "a water" is a common abbreviation for "a glass of water" that's old enough it's probably lexicalized in a lot of people's heads. "sand", "salt", "bread", "wood", or "rice" are better examples)

When ordering at a restaurant, yes.

I think that is an example of synecdoche, using a part (the water) to represent the whole (the glass of water).

It is called a being a mass noun. They are uncountable and the singular takes the same form as the whole.

Blockchains are countable, so it does seem to be incorrect to use it as the title does.


(It grates on my ears to hear blockchain used the way it is here. I'm not sure when it started, but certainly doesn't sound like it should.)

More importantly, why aren't people talking more about blockmilk technology?

There aren't enough edible cereals compatible with blockmilk for mainstream adoption yet.

Applications are open for YC Summer 2020

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