hypersign-protocol / whitepaper

2 stars 0 forks source link

Explain IBC in a very simple way #2

Open Vishwas1 opened 2 years ago

Vishwas1 commented 2 years ago
Vishwas1 commented 2 years ago

Remittance

image

IBC resembles with International Wire transfer

Remittance IBC
Source Country Source Blockchain
Destination Country Destination Blockchain
Bank Account Wallets
Amount Amount
Providers (western union) Relayers
SWIFT / FedWire Channel
Sending USD to US bank account Locking coins in Source chain
Receiving INR from Indian bank account Minting vouchers at destination chain
Vishwas1 commented 2 years ago

Relayers

Relayers Implementations

Vishwas1 commented 2 years ago

Light Clients

Connections

Channel

image

image

Packets

Modules communicate with each other by sending packets over IBC channels.

IBC packets contains

{
   destinationPortId,
   destinationChannelId,
   sourcePortId,
   sourceChannelId,
   TimeoutTimestamp,
   TimeoutHeight,
   Data [] byte
}

Receipts and Timeouts

So because of TimeoutTimestamp field in packets, there is no worry of loosing funds. Since in case any mishaps happens during IBC, like relayer going offline or something, post timeout, the funds will be any way unlocked at the source chain.

Acknowledgment

One questions - as a IBC app developer, I do not have to worry about any of the concepts of IBC like connections, channels etc, Its being abstracted out to us. All I should care about, a) what goes into Data field of the packet - specific to my usecase b) IBC callback - what I would do once the success full IBC transfer happens. Is that correct ?

Modules

IBC handler.


IBC handles the creation of a handshake based connection and the authentication, transport, and ordering (TAO) of opaque data packets relayed between modules on separate ledgers. Ledgers can be run on solo machines, replicated by many nodes running a consensus algorithm, or constructed by any process whose state can be verified. The protocol is designed for safe simultaneous use between any number of modules on any number of ledgers connected in arbitrary topologies.