Discussion: Stacks Blockchain versus Cosmos


#1

Recently I’ve been looking into certain things for different internet applications, such as Cosmos, which is an interesting competitor to the Stacks blockchain & Ethereum.

Under the intro page, and specifically the “What is Tendermint Core and the ABCI” section, it talks about how they want to have an ecosystem of App blockchains (both private and public) through the Tendermint/byzantine fault tolerant(BFT) consensus algorithm, which basically sounds like what Stacks is trying to do through the “proof of burn” blockchains that are all linked to each other through the Stacks token blockchain which itself is rooted in Bitcoin (or whatever parent chain it wants).

Unfortunately I am not well versed in how consensus algorithms work (besides the obvious “proof-of-burn” and “proof-of-work”), or the benefits/issues with more advance ones like BFT, and wanted to know what the community’s/Blockstack developer’s thoughts were on it. It seems interesting for sure, however.


#2

We’re using proof-of-burn because unlike BFT systems, there’s a straightforward way to recover in the event of network partitions and/or the rise and fall of a Byzantine actor with greater than 33% of the decision-making power. That recovery mechanism is to allow miners to build on alternative forks in order to rewind and reapply non-faulty transactions, or transactions that got lost on a “minority” partition. BFT systems that fall back on fork-consistency can also do this, but I don’t know if this includes Tendermint (or Cosmos’ implementation of it).

Regarding the website’s specific claims:

Proof-of-Work protocols are slow, expensive, unscalable, and environmentally harmful.

Alternative interpretation: PoW is the first widely-used protocol that can rate-limit participants in a p2p network. In the context of open-membership systems, this is necessary to ensure that the network cannot be DDoSed by Sybils. In fact, the requirement for nodes to expend some resource to prove that they are not Sybil nodes is a known result from well before Bitcoin’s time. Even if they didn’t spend electricity, they would have to spend something.

PoB is a way to get more utility out of that expenditure. A Bitcoin PoW solution would not only solve a Bitcoin block, but also would solve a Stacks block, as well as solve each and every Stacks app chain block. When Stacks operates at scale, the cost/transaction when counting all the Bitcoin + Stacks + Stacks appchain transactions would be much more palatable.

Also, Tendermint by itself doesn’t scale either – you’re ultimately limited by the rate your slowest honest node can process transactions (this is true for all BFT protocols). This is probably why they’re also trying to do appchains.

Tendermint is a secure BFT consensus protocol that powers Cosmos Bonded Proof-of-Stake.

I have written about why PoS is strictly weaker than PoW/PoB on this forum. This is why we went with PoB.

Interblockchain Communication (IBC) is a TCP/IP-like messaging protocol for blockchains.

Do you know if they explain anywhere what happens to your cross-ledger communication history if one of the ledgers gets reorganized? Does it invalidate other transactions on other chains? Asking because the key to making this work (the “hard problem” here) is found in coming up with a way to limit the degree to which a problem in one chain can cascade into another. I haven’t seen any good solutions to this that also let you solve non-trivial problems.


#3

Thank you for taking the time to write this up, it helps a lot with understanding what they’re trying to do.


I found this, but I don’t know if it answers the question (the link leads to some techspeak in their “whitepaper” so that may clear some up as well), as finding liability =/= recovery as far as I would guess:

Security: Tendermint consensus is not only fault tolerant, it is also accountable. If the blockchain forks, there is a way to determine liability.


In this section they are talking about the “inter-blockchain communication,” which require the “fast-finality” consensus algorithms so there won’t be any forks and blocks are instantly trustworthy.

Things are transferred via something that looks like smart contracts, which is a little odd (and reminds me of the lightning network) but because there is no underlying blockchain (like a stacks, eth, or btc) then that’s the only thing you can do. I suppose if there was a reorg on one chain then the connected ones would also have to reorg, causing a domino effect, which means the entire “internet of blockchains” would topple way too fast.

I suppose this why the instant-finality is required, but if the BFT/PoS is able to be exploited to create re-orgs then technically a malicious blockchain could topple the entire network.


I found this quote from here:

But because probabilistic guarantees do not protect against reorgs, transferring assets securely across chains via IBC is impossible. This prompts the question: How can Cosmos zones interoperate with pre-existing blockchains absent finality?

Peg zones are our solution. A peg zone is an account-based blockchain which bridges zones within Cosmos to external chains like Bitcoin or Ethereum. It acts as an adaptor zone — or a “finality gadget”, in Casper-speak — which translates finality for probabilistically finalized blockchains by imposing a “finality threshold” at some arbitrary number of blocks to achieve pseudo-finality. Generally, this “translator” zone design can be classified as a 2-way peg (2WP).

Seems like they are assuming reorgs will never happen. Do you think that’s safe/possible to assume simply because they have “instant finality” through their consensus algorithm? Can a blockchain ever be “reorg-proof”?