Beginner IBC question


#1

The link to the IBC paper is dead
https://github.com/cosmos/ibc/raw/master/CosmosIBCSpecification.pdf

I have some general questions about IBC

Overview
The way I am understanding IBC is that each pair of chains that can transact directly will do so through a pair of on chain light clients doing validation of the other chain, thus allowing assertions about the state of the other chain. Hubs are introduced as a way to avoid having to introduce a new light client on each existing chain for each new chain that arrives.

Is this correct?

PegZones
It is stated that PegZones, which are separate Tendermint style chains, are required when connecting to a chain without strong finality guarantees , e.g. probabilistic finality in PoW chains. The way it is described, the PegZone just picks some fixed threshold block depth to consider probabilistic chain finalised. But in the model, as I describe above, its not clear why you need an entirely new chain to do this? why cant the light client doing the validation do this directly?

Arbitrary state
Why is it that IBC only supports token balances now? are there novel conceptual challenges which emerge when one attempts to support arbitrary state? Again, as described above, it would not seem so.


#2

@bedeho That content has moved here: https://github.com/cosmos/cosmos-sdk/tree/master/docs/spec/ibc

Where did you see that link?


#3

This link is right there in the README

Blockquote
IBC was first outlined in the Cosmos Whitepaper, and later described in more detail by the IBC specification paper.

I would still very much appreciate an answer to my main question though.