The Blockchain Problem Space – When to Use Blockchain?
blog.ironbay.digital
The Blockchain Problem Space – When to Use Blockchain?
1–10 of 63 posts
Re: The Blockchain Problem Space – When to Use Blockchain?
#2To 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 merkle tree.
That's the blockchain.
However we don't need proof of work to elect the next miner for every block. It leads to an incredibly wasteful arms race.
In fact we don't even need every transaction to be verified by a miner. Only the merkle tree that happened before the block signing time.
Re: The Blockchain Problem Space – When to Use Blockchain?
#3Re: The Blockchain Problem Space – When to Use Blockchain?
#4You 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 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.
Re: The Blockchain Problem Space – When to Use Blockchain?
#5> 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 blockchain
Here it's being used as a plural, like you might study a herd of blockchain. That's okay in principle - some words are their own plurals, like "sheep" or "fish". But above, it had an "s" at the end, so it can't be plural.
Another possibility is that "blockchain" is the name of some specific object. "Fred went to the store" -> "I asked blockchain for some money".
That's no problem: Your name can be "Archer" and you can study Archery.
There is a constant c in U such that Blockchain(c). Something somewhere is named "blockchain".
> blockchain does not have the capability to support
> For everything Blockchain does worse than other databases
More evidence that he's talking about some specific blockchain. Christians capitalize God in every sentence to show reverence, while Atheists tend to leave it as a lowercase god.
Is something similar happening here? Which blockchain are people even talking about?
Re: The Blockchain Problem Space – When to Use Blockchain?
#6This limits the number of use-cases tremendously to those where "everyone-can-see-everything" is an acceptable tradeoff.
There are several ways around this.
1) Zero Knowledge Proofs. But these are highly specialized and resource intensive. To my knowledge we don't have these for generalized Smart Contracts.
2) Split the overall state into Channels, Subledgers etc. with narrower "viewing rights". But again this typically involves an application compromise.
3) Encrypt or cryptographically hash portions of the state. But by definition, this portion of the state cannot be acted upon by smart contracts.
4) Use frameworks like Microsoft's recently released CoCo Framework which relies on Hardware Trusted Execution Environments (TEE). The issue here is that a compromise of a single TEE negates the whole scheme.
In my opinion the privacy characteristics of Blockchain are a critical factor that needs to be taken into account while deciding on the suitability of Blockchai for an application.
Re: The Blockchain Problem Space – When to Use Blockchain?
#7TL/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
Re: The Blockchain Problem Space – When to Use Blockchain?
#8The 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…
I'm currently looking at Hyperledger Fabric and it falls into that category.
Re: The Blockchain Problem Space – When to Use Blockchain?
#9TL/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
Unless you want to totally eliminate counter party risk or execute an unstoppable transaction. Most use cases do not require these benefits.
Re: The Blockchain Problem Space – When to Use Blockchain?
#10Is "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…