What happens when a Zone forks?


#1

Hi,

After reading the Cosmos white paper I was wondering about zone forks, as the white paper discusses forks in the Cosmos blockchain, but (perhaps I missed that) does not discuss zone forks.

Scenario description:
Suppose I would like to transfer (tx1) 1 BTC to the Ethereum Mainnet, and assume both networks are zones connected to the Cosmos hub. The (BTC)ABCI verifies that the BTC tokens are indeed locked, sends a message to the (Ethereum)ABCI that the tokens have been transferred. Additionally, Cosmos validators reach consensus on the the state of the Cosmos blockchain, taking into account the state of the BTC-blockchain as well as the state of the Ethereum blockchain.

Question:
What happens when the Cosmos validators reach consensus on the BTC transaction, and the BTC network (soft)forks, assuming that the initial transaction (tx1) is no longer present in the Bitcoin blockchain?

Hypottheses:

  1. The Cosmos network comes to a grinding halt, as it is immutable and currently presents an invalid state.
  2. The Cosmos validators wait _n-_seconds, where n is the assumed safe waiting time for the slowest consensus mechanism in the participating zones. Following the above scenario, validators must wait at least 60 minutes to be reasonably sure that no fork appears on the Bitcoin blockchain.
  3. Just though of a third option: accept the invalid state. However, this would result in creating tokens for free on the Ethereum blockhain.

Following point 2, if relevant: who determines this waiting time? And who manages the risk in case of a long fork (e.g. Bitcoin once had a 32 block fork due to sync issues; also consider Ethereum’s DAO incident).

In short, it seems that the speed at which Cosmos validators reach consensus, although they use Tendermint consensus, is throttled by the zone with the slowest consensus mechanism.


#2

The security of Zone is determined by Zone’s blockchain state.

For example If you send BTC to Cosmos hub. You have to wait at least 10 mins (The block time of BTC).

But after that process, you can send BTC from Cosmos hub to every other zones within 3~5sec.


#3

Hi Peter,

Thanks for replying. Your explanation makes sense. However, I’m still not sure though what happens when Bitcoin forks. For example, assume a transaction (tx1) is included in block 100 (b100). After ten minutes waiting, those BTC are send to another Cosmos hub.
However, at the Bitcoin network a fork appears, creating a new block with height 100, but without tx1 (b100’).
Let’s assume, for the sake of argument, that tx1 is not included in any block after b100’. In that case, we would have created money ot of thin air, as this money resides within another cosmos hub, but has no counterpart on the BTC network.

Suppose such a scenario happens, how will the Cosmos network deal with this inconsistency?


#4

I think, that kind of situation is controlled by BTC pegg zone.

If the BTC blockchain is totally divided by two chains, the BTC pegg zone will

separate BTC 1 and BTC 2. So, If another BTC (with block height 100) comes to Cosmos hub,

this BTC doesn’t merge with original BTC coins.