[COSMOS] protocol across the chain IBC Overview

A. What is IBC?

IBC is an abbreviation interchain communication protocol (Inter-Blockchain Communication Protocol). Transfer data and status information between a plurality of different block chain through the packet-switched network. The initial purpose is to achieve more through cross-license chain transfer protocol by IBC.
IBC's goal is to transfer information between the application of two separate seven network, relay outside the chain needs to relay packets between network chains do A and B chains of. After receipt of the data link chain B of A must be able to independently verify the information it contains to prove the authenticity proof it represents a state (corresponding to its operation) in the A chain. In order for IBC protocol to work, must rely on trust mechanism-based, to believe in chain A and B chains in their respective consensus algorithm, but also believe that light client authentication by verifying the header information of the area, proving once in the block chain It had happened.

II. How to achieve IBC?

1. Connect lifecycle

1.1 to establish a connection

Between the two strands must first establish a "connection" that is, the initial trust relationship with each other; at the moment the connection is established the two strands of data to be exchanged based trust (trusted root) - that is, two of PoS networks strand certifier public key set, the root of trust must be really independent inspection by a third party .

1.2 remain connected

Throughout the ongoing connection to get the other side of New physique, based root of trust and continuous header area , you can build the other side of the block from the height of connection, and continuous follow-up to verify the correctness of any height of the header area ; these zones header is verified IBC basis of trust packet.

1.3 Disconnect

When there is bifurcation or security events, to timely close the connection; this can be a chain governance or to trigger automatically detect cheating.

2. The data packet, and acknowledgment timeout handling

2.1 Packet

By metadata (header) and opaque data payload (data body) packet thereof. Header contains the type, sequence number, source link ID, a target ID chains, timeout parameters; data volume contains block chains need to understand the application layer and the data processing, which is the source chain to prove state change.

2.2 Receipt

It is a "reverse" packets, B-chain and after processing the received data packet from the A-chain, the A chain will send a corresponding receipt.

2.3 timeout handling

When the transmission source of the packet chain, may specify a timeout parameter represented by a stamp on the block height or the data in advance in the target strand; target strand timeout data packets received will not be processed, but if the source chain data packet sent after the acknowledgment timeout has not been received, the state will be a corresponding data packet chain to do rollback.

3. Strict sort of messaging

To get the whole system working, passing data packets must maintain strict global ordering:
· consensus algorithm ensures that process transactions in the chain follow a single accurate sorting.
· IBC protocol ensures that messages about the state of the transaction processing chain to follow precisely the sort in a single pass in the process of cross-chain.
· IBC implemented sorting channel control mechanism: each strand is maintained for each connection to send and receive two channels, each channel maintains a counter, counter to the outflow channel transmission message generation sequence number, the counter for receiving channel checking the sequence number of the message flows.
· Ensure strict ordering is a prerequisite for global state consistency derivation.

4. The consensus requirement

IBC protocol security needs of the end of the consensus algorithm to prevent double flowers, the final performance of different algorithms is not the same consensus:
· Tendermint and PBFT class consensus algorithm satisfies immediate finality (the best)
· Ethernet Square Casper FFG consensus algorithm provides fast final sex
· Bitcoin class consensus algorithm (PoW, Tezos) to provide the final probability, it is necessary to select the application layer security threshold

Three .IBC specification and development progress

The key discussions around the IBC protocols and standards related activities and deliverables:
https://github.com/cosmos/ics
https://github.com/cosmos/ics/tree/master/spec
 
Code IBC realization of the agreement:
HTTPS: / /github.com/cosmos/cosmos-sdk
 
IBC working group:
Telegram: ibcprotocol

Guess you like

Origin www.cnblogs.com/preminem/p/11227408.html