The Blockchain Just Became 😨 Obsolete 😨, the Future is Hashgraph... or NOT?! 😎

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@alexpmorris·
0.000 HBD
The Blockchain Just Became 😨 Obsolete 😨, the Future is Hashgraph... or NOT?! 😎
Despite multiple debunkings of the lofty "Hashgraph" promises *(some by Dan Larimer himself)*, I repeatedly see people still asking in discord and other forums how exciting it sounds, and if it will truly render STEEMIT, BitShares, and other blockchain technology all but obsolete.  

<center>http://thewindowsclub.thewindowsclubco.netdna-cdn.com/wp-content/uploads/2017/11/Blockchain.png</center>

First of all, let's go through some the claims:

* **50,000 Times Faster**: limited only by bandwidth — 250,000+ Transactions Per Second (Pre-Sharding)
* **More Fair**: mathematically proven fairness (via consensus time stamping) meaning no individual can manipulate the order of the transactions.
* **Improved Bank-Grade Security**: Asynchronous Byzantine Fault Tolerant: No member can prevent the community from reaching a consensus, nor can they change the consensus once it has been reached.
* **100% Efficient**: No mined block ever becomes stale.
* **Inexpensive**: avoids proof-of-work (PoW), meaning it does not have to waste computations to slow itself down, therefore the expensive, custom hardware is no longer necessary.

Link: <a href="http://www.thewindowsclub.com/what-is-hashgraph">What is Hashgraph? How is it different from Blockchain?</a>


These claims sound great, so much so that chains such as IOTA and Swirlds have wholeheartedly embraced Hashgraph and UXTO *(standing for "Unspent Transaction Output", and fundamentally how BitCoin operates)* as the "future" of blockchain technology.  But, what's the catch?  

How can it possibly be so much faster than even the graphene-related chains have proven to be, through *actual* real world *active* use cases *(ie. STEEMIT and BitShares)*?!

><a href="http://www.swirlds.com/">Swirlds</a> is a software platform that has developed the hashgraph consensus algorithm: an entirely new distributed ledger technology that is much more cost-effective (no proof-of-work), 50,000 times the speed, safer (Byzantine), more efficient (no stale blocks) and mathematically fairer than the blockchain.

Link: <a href="https://medium.com/@justindanneman/blockchain-just-became-obsolete-the-future-is-hashgraph-de4948609cbf">Blockchain Just Became Obsolete. The Future is Hashgraph</a>

## And the million-dollar question, does Hashgraph make Blockchains obsolete?

Well, before even getting to @dan's comments on the subject, here's one quote from the article <a href="https://hackernoon.com/demystifying-hashgraph-benefits-and-challenges-d605e5c0cee5">"Demystifying Hashgraph: Benefits and Challenges"</a>:
>Hashgraph is an interesting consensus protocol that has been shown to yield high throughput in a private and static setting. Hashgraph is fast, fair, and secure **within the permissioned setting it currently operates in**. However, if and when used in a public setting, Hashgraph will face the same issues that other public blockchains are facing today and may not be able to maintain its security and performance.

Notice the key phrase in that statement: "**within the permissioned [NON-PUBLIC] setting it currently operates in**"!

From another article, <a href="https://hackernoon.com/iota-vs-raiblocks-413679bb4c3e">"IOTA vs RaiBlocks"</a>:

>People argue that IOTA is not yet decentralized due to the deployment of something called the <a href="https://domschiener.gitbooks.io/iota-guide/content/chapter1/current-role-of-the-coordinator.html">coordinator</a>. This is basically “training wheels” for the IOTA network which is used to mitigate 51% attacks and such. Most blockchains, including Bitcoin, have had mechanisms like this in their early days. But we are still waiting on a official metric or a timeline for when this will be removed. The link earlier stated that it would become “optional” by the summer (the article looks dated so I think it meant the summer of 2017?). In theory, I believe the coordinator is optional, but in practice, I highly doubt people are running their nodes in a coordinator-less fashion; please let me know if I am mistaken here.

To clarify the function of the <a href="https://domschiener.gitbooks.io/iota-guide/content/chapter1/current-role-of-the-coordinator.html">IOTA coordinator</a>:

>To make it possible for the network to grow and protect it against certain attacks, IOTA currently relies on a coordinator. **The coordinator checkpoints valid transactions, which are then validated by the entire network.** The coordinator is being run by the IOTA Foundation in a multi-signature. The coordinator cannot go rogue, as he is being checked and validated by the entire network.

That sounds *pretty* centralized right there, and it seems *highly unlikely* that performance and throughput claims would be sustainable once a more *decentralized* "coordinator" solution is implemented.

## "Anti-FUD" Half-Time Break...
#
I don't want to be accused here of any kind of "FUD" on IOTA and Hashgraph, so here's a github page that offers <a href="https://github.com/eukaryote31/iota-antifud">"a curated list of IOTA FUD counter-arguments"</a>.

## So just get to the final point... WTF's Dan got to say about it?!
#
For those who participate in the various EOS <a href="http://bit.ly/discord-eostalk">discord</a> and <a href="http://t.me/EOS">telegram</a> chats, you may have already come across some of his thoughts on the subject:

>Ken Anderson: But isn't hashgraph a message based approach? Events (which include transactions) are broadcast and the network seeks consensus on ordering. It's not a blockchain nor is there a utility token or coin. Are you seeing something in the Whitepaper I'm not seeing?
>
>Dan: right, if you only focus on ordering then hashgraph can also work; however, you still need to execute the transactions
>
>**and ordering does not imply validity**
>
>so you still need to filter the invalid ones from the valid ones
>
>and you still need to execute things in parallel
>
>blockchain implies several things:  1. order 2. validity and validity implies it has been executed in order.   **If all we had to do was order transactions and not execute them then DPOS could be 1 million TPS single threaded.**

So therein lines the key...  Just because something is properly ordered, doesn't imply it is valid.  And once you add transaction validation, the level of performance will *inevitably* drop *significantly*.

Furthermore, Dan addresses the inability of UTXO to scale for practical real-world applications other than a pure "currency model".  That's why the UTXO model suits BitCoin *(as a pure virtual currency)* quite well.  However, using UTXO for dapps *(distributed apps)* is a whole other story entirely:

>Every transaction explicitly includes its new output state. This state includes everything that must be modified in an atomic manner. If the UTXO were an exchange order book, then the state would be the entire order book. What works for Bitcoin currency (a short script and a balance), doesn’t work for anything that is even slightly more complex or that refers to more data.
>
>Because of these drawbacks, people who build applications based upon UTXO are forced to limit the amount of state impacted by each output. This means exchanges without rules on the order in which things are filled. This means anything that is the result of aggregating input from multiple parties is likely not viable.
>
>Steem and Bitshares adopt a message based approach. In this case, the blockchain represents a consensus over the order of messages and the state is deterministically derived from these messages.

Link: <a href="https://steemit.com/blockchain/@dantheman/blockchain-utxo-model-is-a-dead-end-for-general-purpose-applications">Blockchain UTXO Model is a Dead End for General Purpose Applications</a>

<center>![](https://steemitimages.com/DQmP9uKJKwdWXErzHYbDsym8RgGMZDN3NC2JBdzxRdDE2eE/image.png)</center>

If you're unclear on why UTXO is an issue vis-a-vis Hashgraph and IOTA as well, <a href="https://domschiener.gitbooks.io/iota-guide/content/chapter1/bundles.html">here's the reason</a>:

>IOTA uses a UTXO-like scheme. This means that we have inputs (addresses) which you have to spend in order to transfer tokens. Addresses are generated from private keys, which in turn are derived from a trytes-encoded seed. A transfer in IOTA is a bundle consisting of outputs and inputs. Bundles are atomic transactions, meaning that either all transactions will be accepted by the network, or none.

Any chance that could also be another limiting factor to the scalability claims made by IOTA and Hashgraph?  

At this point, I'll let you all be the judge of that! 🙂

<center>*As always, I appreciate your upvote, your follow and all your comments!*</center>
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,