|
1 | 1 | # How Orchestration Works |
2 | 2 |
|
3 | | -Blockchain orchestration relies on protocols and mechanisms that allow |
4 | | -blockchains to communicate and transact with each other securely and |
| 3 | +Blockchain orchestration relies on protocols and mechanisms that allow |
| 4 | +blockchains to communicate and transact with each other securely and |
5 | 5 | efficiently. The primary objectives of blockchain orchestration are: |
6 | 6 |
|
7 | | -- **Interoperability:** Enabling different blockchain networks to interact |
| 7 | +- **Interoperability:** Enabling different blockchain networks to interact |
8 | 8 | and transact with one another. |
9 | | -- **Scalability:** Facilitating the collaboration of multiple blockchains |
| 9 | +- **Scalability:** Facilitating the collaboration of multiple blockchains |
10 | 10 | without compromising performance. |
11 | | -- **Security:** Ensuring that cross-chain transactions are secure and |
| 11 | +- **Security:** Ensuring that cross-chain transactions are secure and |
12 | 12 | trustworthy. |
13 | 13 |
|
14 | | -To achieve these goals, several foundational technologies and protocols |
15 | | -have been developed, with the |
16 | | -[Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/) |
| 14 | +To achieve these goals, several foundational technologies and protocols |
| 15 | +have been developed, with the |
| 16 | +[Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/) |
17 | 17 | being one of the most prominent. |
18 | 18 |
|
19 | 19 | ### Inter-Blockchain Communication (IBC) |
20 | 20 |
|
21 | | -The [Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/) |
22 | | -is often compared to the TCP/IP protocol of the internet. Just as TCP/IP |
23 | | -enables different computer networks to communicate across the internet, |
| 21 | +The [Inter-Blockchain Communication (IBC) protocol](https://ibcprotocol.org/) |
| 22 | +is often compared to the TCP/IP protocol of the internet. Just as TCP/IP |
| 23 | +enables different computer networks to communicate across the internet, |
24 | 24 | IBC allows blockchains to communicate securely with each other. |
25 | 25 |
|
26 | 26 | #### How IBC Works |
27 | 27 |
|
28 | | -IBC operates on a straightforward premise: by adhering to a common set |
29 | | -of communication protocols, blockchains can securely transfer data and |
30 | | -tokens between one another. Here's a high-level overview of how IBC |
| 28 | +IBC operates on a straightforward premise: by adhering to a common set |
| 29 | +of communication protocols, blockchains can securely transfer data and |
| 30 | +tokens between one another. Here's a high-level overview of how IBC |
31 | 31 | achieves this: |
32 | 32 |
|
33 | | -- **Light Client Verification:** Each blockchain maintains a |
34 | | - [light client](https://github.com/cosmos/ibc-go/blob/34628eb0c1ca0ca9721c6e3923cf048e1172b8b0/docs/docs/03-light-clients/01-developer-guide/01-overview.md) |
35 | | - of the other blockchain. A light client is a simplified version of a |
36 | | - blockchain client that only retains enough information to verify |
37 | | - transactions and proofs, without needing to store the entire blockchain |
| 33 | +- **Light Client Verification:** Each blockchain maintains a |
| 34 | + [light client](https://github.com/cosmos/ibc-go/blob/34628eb0c1ca0ca9721c6e3923cf048e1172b8b0/docs/docs/03-light-clients/01-developer-guide/01-overview.md) |
| 35 | + of the other blockchain. A light client is a simplified version of a |
| 36 | + blockchain client that only retains enough information to verify |
| 37 | + transactions and proofs, without needing to store the entire blockchain |
38 | 38 | history. |
39 | | -- **Relayer:** A [relayer](https://github.com/cosmos/relayer) is an |
40 | | - off-chain process that listens for transactions on one blockchain and |
41 | | - relays them to another. The relayer facilitates communication between |
42 | | - blockchains but does not have any special permissions or abilities—it |
| 39 | +- **Relayer:** A [relayer](https://github.com/cosmos/relayer) is an |
| 40 | + off-chain process that listens for transactions on one blockchain and |
| 41 | + relays them to another. The relayer facilitates communication between |
| 42 | + blockchains but does not have any special permissions or abilities—it |
43 | 43 | merely passes messages between chains. |
44 | | -- **IBC Handshake:** Before two blockchains can communicate, they perform |
45 | | - a handshake, establishing a trusted channel between them. This involves |
| 44 | +- **IBC Handshake:** Before two blockchains can communicate, they perform |
| 45 | + a handshake, establishing a trusted channel between them. This involves |
46 | 46 | verifying each other's consensus state using light clients. |
47 | | -- **Packet Transfer:** Once the connection is established, IBC allows |
48 | | - the transfer of data packets. These packets can represent tokens, smart |
49 | | - contract commands, or other data. The receiving blockchain uses light |
50 | | - client verification to ensure the data is valid and hasn’t been tampered |
| 47 | +- **Packet Transfer:** Once the connection is established, IBC allows |
| 48 | + the transfer of data packets. These packets can represent tokens, smart |
| 49 | + contract commands, or other data. The receiving blockchain uses light |
| 50 | + client verification to ensure the data is valid and hasn’t been tampered |
51 | 51 | with. |
52 | | -- **Finality and Acknowledgement:** After a packet is successfully |
53 | | - processed by the receiving blockchain, an acknowledgment is sent back |
| 52 | +- **Finality and Acknowledgement:** After a packet is successfully |
| 53 | + processed by the receiving blockchain, an acknowledgment is sent back |
54 | 54 | to the originating blockchain, confirming the transaction's completion. |
55 | 55 |
|
56 | | -The modularity of the IBC protocol allows it to be adapted for various |
57 | | -use cases and blockchain types, making it a versatile tool for blockchain |
| 56 | +The modularity of the IBC protocol allows it to be adapted for various |
| 57 | +use cases and blockchain types, making it a versatile tool for blockchain |
58 | 58 | orchestration. |
59 | 59 |
|
60 | 60 | ### Interchain Accounts (ICA) |
61 | 61 |
|
62 | | -[Interchain Accounts (ICA)](https://github.com/cosmos/ibc/blob/main/spec/app/ics-027-interchain-accounts/README.md) |
63 | | -is a feature built on top of IBC that allows one blockchain (the |
64 | | -controller chain) to control an account on another blockchain (the |
65 | | -host chain). This enables seamless cross-chain operations and automation, |
| 62 | +[Interchain Accounts (ICA)](https://github.com/cosmos/ibc/blob/main/spec/app/ics-027-interchain-accounts/README.md) |
| 63 | +is a feature built on top of IBC that allows one blockchain (the |
| 64 | +controller chain) to control an account on another blockchain (the |
| 65 | +host chain). This enables seamless cross-chain operations and automation, |
66 | 66 | allowing for complex interactions between blockchains. |
67 | 67 |
|
68 | 68 | #### How ICA Works |
69 | 69 |
|
70 | | -The ICA protocol enables a controller chain to request the creation of an |
71 | | -account on a host chain. The host chain creates the account and delegates |
| 70 | +The ICA protocol enables a controller chain to request the creation of an |
| 71 | +account on a host chain. The host chain creates the account and delegates |
72 | 72 | control of it to the controller chain. |
73 | 73 |
|
74 | | -- **Account Creation:** The controller chain (e.g., Agoric) requests an |
75 | | - account on the host chain (e.g., Osmosis) using the IBC protocol. The |
76 | | - host chain then creates the account and delegates control to the |
| 74 | +- **Account Creation:** The controller chain (e.g., Agoric) requests an |
| 75 | + account on the host chain (e.g., Osmosis) using the IBC protocol. The |
| 76 | + host chain then creates the account and delegates control to the |
77 | 77 | controller chain. |
78 | | - |
79 | | -- **Reification in Agoric:** When the controller chain is Agoric, control |
80 | | - of the account is reified as a JavaScript object. In this case, the |
81 | | - Agoric chain reifies host chains as Chain objects within its Orchestration |
82 | | - API. For example, `const chain = orch.getChain('osmosis')` creates an |
83 | | - object that represents the host chain Osmosis. A call to |
84 | | - `chain.makeAccount()` results in the Agoric chain acting as the controller |
85 | | - and requesting the creation of an Interchain Account (ICA) on the Osmosis |
86 | | - chain. This operation produces an `OrchestrationAccount` object, which |
| 78 | +- **Reification in Agoric:** When the controller chain is Agoric, control |
| 79 | + of the account and Chain objects within its Orchestration |
| 80 | + API are reified as JavaScript objects. For example, |
| 81 | + ``` |
| 82 | + const chain = orch.getChain('osmosis') |
| 83 | + ``` |
| 84 | + creates an object that represents the host chain Osmosis. A call to |
| 85 | + `chain.makeAccount()` results in the Agoric chain acting as the controller |
| 86 | + and requesting the creation of an Interchain Account (ICA) on the Osmosis |
| 87 | + chain. This operation produces an `OrchestrationAccount` object, which |
87 | 88 | provides access to control the ICA. |
88 | | - |
89 | | -- **Access Control:** Whoever has access to the JavaScript object can |
90 | | - control the account. In Agoric's architecture, access to this object is |
91 | | - only passed to authorized parties. In particular, the party that called |
92 | | - `chain.makeAccount()` gets access to it, ensuring secure access |
| 89 | +- **Access Control:** Whoever has access to the JavaScript object can |
| 90 | + control the account. In Agoric's architecture, access to this object is |
| 91 | + only passed to authorized parties. In particular, the party that called |
| 92 | + `chain.makeAccount()` gets access to it, ensuring secure access |
93 | 93 | delegation. |
94 | | - |
95 | | -- **Transaction Execution:** The controller chain (e.g., Agoric) can now |
96 | | - send IBC messages to execute transactions on the host chain (e.g., Osmosis) |
97 | | - as if it were a local user. This includes transferring tokens, interacting |
| 94 | +- **Transaction Execution:** The controller chain (e.g., Agoric) can now |
| 95 | + send IBC messages to execute transactions on the host chain (e.g., Osmosis) |
| 96 | + as if it were a local user. This includes transferring tokens, interacting |
98 | 97 | with smart contracts, and performing other blockchain operations. |
99 | | - |
100 | | -- **Automation:** Using ICA, the controller chain can automate operations |
101 | | - on the host chain. For instance, Agoric can programmatically manage assets |
| 98 | +- **Automation:** Using ICA, the controller chain can automate operations |
| 99 | + on the host chain. For instance, Agoric can programmatically manage assets |
102 | 100 | on another chain, automating workflows that span multiple blockchains. |
103 | 101 |
|
104 | 102 | ### Why Agoric's Approach Stands Out |
105 | 103 |
|
106 | | -Agoric's unique programming model, which is already distributed and |
107 | | -asynchronous, makes it particularly well-suited for Interchain Accounts. |
108 | | -When contracts on Agoric interact, the system is designed to handle cases |
109 | | -where the other contract may reside on a remote machine or another |
110 | | -blockchain. This inherent architecture allows Agoric to seamlessly control |
111 | | -and manage Interchain Accounts, further enhancing the orchestration |
| 104 | +Agoric's unique programming model, which is already distributed and |
| 105 | +asynchronous, makes it particularly well-suited for Interchain Accounts. |
| 106 | +When contracts on Agoric interact, the system is designed to handle cases |
| 107 | +where the other contract may reside on a remote machine or another |
| 108 | +blockchain. This inherent architecture allows Agoric to seamlessly control |
| 109 | +and manage Interchain Accounts, further enhancing the orchestration |
112 | 110 | capabilities. |
113 | 111 |
|
114 | | -By leveraging ICA, blockchain orchestration becomes more flexible and |
115 | | -powerful, enabling direct, programmable interactions between blockchains. |
116 | | -This unlocks a wide range of possibilities, from decentralized finance |
| 112 | +By leveraging ICA, blockchain orchestration becomes more flexible and |
| 113 | +powerful, enabling direct, programmable interactions between blockchains. |
| 114 | +This unlocks a wide range of possibilities, from decentralized finance |
117 | 115 | (DeFi) to supply chain management and beyond. |
0 commit comments