ChainWeb is a multi chain braid that supports an IBC like interchain messaging protocol. This is minimally specified and implemented in the testnet. These is an intent to extend this messaging protocol beyond the braid to support other chains. This use case is basically identical to Cosmos.
The current chain web protocol does not need an introduction/handshake because all chains in the braid are introduced to each other at genesis. Adding new chains to the braid requires a restart/hardfork.
The protocol supports asynchronous broadcast messages with origin and destination chains and origin and destination pact contracts. There is a protocol level system for authenticating messages that pact contracts can invoke.
There are inputs and outputs that are provable with an accumulator proofs and are functional similar to IBC input and out queues.
Pact contracts are isomorphic to modules in the Cosmos SDK. Chainweb pacts address a specific module