🤝 Connection Handshake: Establish Trust
Learn how chains verify each other's consensus state
Enable inter-blockchain communication protocols
Your Progress
0 / 5 completedConnection Handshake
Before chains can exchange packets, they must establish a **connection** through a four-way handshake protocol. This handshake verifies that both chains have correct light clients of each other and agree on connection parameters.
The handshake is similar to TCP's three-way handshake but includes an extra step for bidirectional verification. Once complete, the connection is in the OPEN state and multiple channels can be created over it.
Interactive: Handshake Simulator
Watch the four-step connection handshake between Chain A and Chain B.
ConnOpenInit
Chain AChain A creates connection in INIT state and specifies Chain B's client
ConnOpenTry
Chain BChain B verifies Chain A's state and creates connection in TRYOPEN state
ConnOpenAck
Chain AChain A verifies Chain B's TRYOPEN state and moves to OPEN
ConnOpenConfirm
Chain BChain B verifies Chain A's OPEN state and moves to OPEN
🔍 Handshake Verification
At each step, chains verify cryptographic proofs before progressing:
Channel Handshake
Once a connection is established, **channels** can be created for specific applications. Channel handshake is similar but adds application-specific version negotiation.
Light Client Updates
Throughout the handshake, relayers submit **light client updates** with block headers and validator signatures. Each chain maintains a light client view of the other chain's consensus state.
💡 Key Handshake Properties
- ✓Bidirectional Verification: Both chains verify each other's state cryptographically
- ✓No Trusted Third Party: Light clients eliminate need for trusted relayers
- ✓Version Negotiation: Chains agree on IBC version and application versions
- ✓Idempotent: Handshake can be retried if messages are lost or timeout