Live data from Hacker News

The Blockchain Problem Space – When to Use Blockchain?

blog.ironbay.digital

11–20 of 63 posts

Re: The Blockchain Problem Space – When to Use Blockchain?

#11

Is "blockchain" singular, plural, or some kind of lowercase Proper Noun? > Blockchains fall Okay, blockchain is singular, so it always refers to a single object. There is a universe U of objects, and "Blockchain" is a predicate on U. So for any given x in U, "Blockchain(x)" is a proposition. In other words, we can ask whether something is a blockchain or not. > Step one is to figure out a framework for analyzing bloc…

Blockchain should be singular - "blockchains" should be used when referring to the technology in general. Getting this wrong is the #1 indicator that an article on blockchains isn't worth reading.

Re: The Blockchain Problem Space – When to Use Blockchain?

#12
post #2

You really need a blockchain for ONE THING: To timestamp transactions in a distributed way. Transactions can be signed, proving authorship. At signing time, you can prove the transaction happened AFTER something else. The only thing missing is PROVING THE TRANSACTION HAPPENED BEFORE SOMETHING ELSE. For that, you need an incentive structure to keep each transaction be accepted by someone, somewhere, in a growing merkl…

[deleted]

Re: The Blockchain Problem Space – When to Use Blockchain?

#13
post #6

The other major issue with Blockchain is that "all nodes can see everything". This is theoretically a problem with distributed databases as well. However, in the case of distributed databases, the database nodes that can "see everything" are not the end user, whereas, in Blockchain because the nodes are untrusted, one must assume that the end user can see the entire Blockchain state. This limits the number of use-cas…

> 3) Encrypt or cryptographically hash portions of the state. But by definition, this portion of the state cannot be acted upon by smart contracts.

This will change once homomorphic encryption is feasible.

Re: The Blockchain Problem Space – When to Use Blockchain?

#14

Is "blockchain" singular, plural, or some kind of lowercase Proper Noun? > Blockchains fall Okay, blockchain is singular, so it always refers to a single object. There is a universe U of objects, and "Blockchain" is a predicate on U. So for any given x in U, "Blockchain(x)" is a proposition. In other words, we can ask whether something is a blockchain or not. > Step one is to figure out a framework for analyzing bloc…

Blockchain should be singular - "blockchains" should be used when referring to the technology in general. Getting this wrong is the #1 indicator that an article on blockchains isn't worth reading.

I'm not sure if it should be plural when referring to the technology in general. "Powered by blockchains technology" doesn't seem correct to me.

I do hope you'll read the article regardless!

Re: The Blockchain Problem Space – When to Use Blockchain?

#15

TL/DR: "If Byzantine Fault Tolerance [0] does not create a huge advantage for your use-case, it is unlikely blockchain makes sense to consider over a traditional database." [0] https://en.wikipedia.org/wiki/Byzantine_fault_tolerance

And that is wrong AFAICT. PoW is what achieves Byzantine fault tolerance, not the blockchain.

What blockchain achieves is proof of history given only the latest block's hash. This might or might not have a PoW on top of it to achieve BFT.

Practical example:

An authoritative server which responds only with the latest block's hash (this is cheap, think microcontroller cheap) is another way to make a blockchain useful with no BFT. This way blockchain distribution can be offloaded to untrusted peers while the actual agreement is not distributed (and thus no DFT is involved).

EDIT:

Off the top of my head I can see a few applications of such an scheme: imagine a very low-power device taking mission-critical measurements. This device would periodically distribute a message consisting of (current block of measurements + previous message's hash) to untrusted high-power-large-storage clients. In case of any client desynchronizing it can request from its peers the measurement chain, and only has to receive the latest message from the low-power device to ensure the chain he got has not been tampered with.

That is not BFT because the source of truth is just an authoritative server. There is no distributed consensus even if there is distributed storage.

Re: The Blockchain Problem Space – When to Use Blockchain?

#16
post #6

The other major issue with Blockchain is that "all nodes can see everything". This is theoretically a problem with distributed databases as well. However, in the case of distributed databases, the database nodes that can "see everything" are not the end user, whereas, in Blockchain because the nodes are untrusted, one must assume that the end user can see the entire Blockchain state. This limits the number of use-cas…

Can you clarify the disadvantages of the application compromises required for option 2? I'm currently looking at Hyperledger Fabric and it falls into that category.

Sure. Hyperledger Fabric 1.0 has the option of "Channels" to limit viewership rights. In particular it restricts rights to a subset of the community. For example, you may have a 1000 parties in the community, but a particular channel may have only three (say A, B and C).

Now, if one takes a Supply Chain example (a domain I'm quite familiar with), most transactions cannot be restricted to just parties A, B and C. Some will involve A, B and D and some will involve B, C and F etc. So, it is difficult to come up with a suitable Channel membership model.

Even if the transaction is between A, B and C often the view rights are not symmetric. For example in a drop ship case where A is the Buyer, B is the seller and C is the fulfiller, the price attribute may need to be visible between A and B but not C. This is not possible with the Channel approach.

So this particular type of hard partitioning only works for the simplest Supply Chain examples.

Another type of hard partition is to partition by Transaction. But this involves issues such as synchronization between transactions. This becomes an off-chain concern with major consistency issues.

Hope this helps.

Re: The Blockchain Problem Space – When to Use Blockchain?

#17
You know what is a great database with all those properties?

Your folder with git. There is nothing that you cant do with git that you can do with blockchains as a database.

About the BFT part, it fails the mention the very important part that it doesnt work without proof-of-work.

---

So then when should we use p-o-w blockchains?

When you want to decentralize control - both, distribution & conflict resolution.

Re: The Blockchain Problem Space – When to Use Blockchain?

#18
post #2

You really need a blockchain for ONE THING: To timestamp transactions in a distributed way. Transactions can be signed, proving authorship. At signing time, you can prove the transaction happened AFTER something else. The only thing missing is PROVING THE TRANSACTION HAPPENED BEFORE SOMETHING ELSE. For that, you need an incentive structure to keep each transaction be accepted by someone, somewhere, in a growing merkl…

Proof of work does not elect the next miner. Proof of work means that the lucky random miner has invested energy on a previous valid block, and is lucky enough to find another valid block. If you take that away, you could as well use a database and a trusted timestamp server.

No, that's a false dichotomy. And also the "lucky" is relative to the whole scheme. The value to the miner of finding a hash to make another block has gone down and will continue to go down, that's partly why transaction fees are so high.

In any case, that's like saying someone is "lucky" to win a video game in Dave and Buster's. That's not the only way to incentivize validators to timestamp transactions. All you really need is a consensus protocol.

Ripple for example has a consensus protocol that can be run by an entire LOCAL community and can fund itself and the resources it uses. Without requiring a global blockchain. And Bitcoin validation is effectively centralized in the hands of a few miners.

Re: The Blockchain Problem Space – When to Use Blockchain?

#19
Simple economics dictates when to use space on the Bitcoin blockchain: When your use case can afford it. This is because transactions require a fee to get confirmed in Bitcoin. And the fees are currently low enough that it supports most use cases; pretty much everything except microtransaction payments. With Lightning Network coming, even that may become economically feasible.

Re: The Blockchain Problem Space – When to Use Blockchain?

#20
post #7

Earlier quoted context omitted.

Unless you want to totally eliminate counter party risk or execute an unstoppable transaction. Most use cases do not require these benefits.

Unstoppable transaction is not a benefit.

Unless you want your transactions to be unstoppable, that is..
Post reply on HN