Skip to content

Commit 7c38f48

Browse files
Eddie Yegitbook-bot
Eddie Ye
authored andcommitted
GITBOOK-28: change request with no subject merged in GitBook
1 parent b8988ef commit 7c38f48

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+8327
-0
lines changed
93.6 KB
Loading
732 KB
Loading
122 KB
Loading

.gitbook/assets/assets.png

786 KB
Loading

.gitbook/assets/chain_abstraction.png

38.1 KB
Loading

.gitbook/assets/clusters (1).png

67.2 KB
Loading

.gitbook/assets/clusters.png

67.2 KB
Loading

.gitbook/assets/connext_flow.png

219 KB
Loading

.gitbook/assets/external.png

30.8 KB
Loading

.gitbook/assets/flow.png

127 KB
Loading

.gitbook/assets/local.png

29.7 KB
Loading

.gitbook/assets/manageRouter.png

23.2 KB
Loading

.gitbook/assets/nat.png

13.6 KB
Loading

.gitbook/assets/native.png

29.1 KB
Loading

.gitbook/assets/optimistic.png

1.16 MB
Loading

.gitbook/assets/read_tokenId.png

113 KB
Loading

.gitbook/assets/receiveNextAsset.png

4.4 KB
Loading
78.1 KB
Loading

.gitbook/assets/routerAddresses.png

12.7 KB
Loading

.gitbook/assets/themis.png

393 KB
Loading

.gitbook/assets/wallet.png

24.5 KB
Loading

README.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# What is Connext?
2+
3+
Connext is a modular protocol for securely passing funds and data between chains. Developers can use Connext to build crosschain apps (**xApps**) - applications that interact with multiple domains (blockchains and/or rollups) simultaneously.
4+
5+
## Why Do We Need xApps?
6+
7+
Blockchains do not scale to the level of volume needed for mainstream adoption.
8+
9+
Ethereum and other programmable blockchains solve this problem by [moving users, funds, and data to multiple parallel domains](https://ethereum.org/en/layer-2/) (sidechains, rollups, and other chain-like constructions). This, however, creates a new challenge: a _fragmented_ user experience.
10+
11+
Similar to how Youtube users do not need to understand Google's distributed database infrastructure, decentralized application users should not need to consciously think about what chain they are on, or how to move between chains. In other words, applications should _abstract_ the multichain experience by becoming xApps, and do so while retaining the security and trust-minimization properties of the underlying chains.
12+
13+
## Design Philosophy
14+
15+
Connext is built with three core design principles in mind that make it the best option for developers looking to build xApps without compromising on trustlessness.
16+
17+
### Modularity
18+
19+
Connext utilizes a modular hub-and-spoke architecture, which derives its security from Ethereum L1 and _plugs into_ the battle-tested **canonical** messaging bridges that underpin the security of each Ethereum-connected domain.
20+
21+
Messages in Connext are added to a merkle root generated on each spoke domain, which are then optimistically aggregated into a singular root on Ethereum L1. In the event that fraud occurs, the system falls back to using the canonical messaging bridge for each chain ecosystem. In other words, a message passed between Polygon and Optimism is secured by a proof that is posted to Ethereum and verified by the Polygon PoS bridge and Optimism rollup bridge. Similarly, a message passed within the Cosmos ecosystem is verified by IBC.
22+
23+
This mechanism gives developers the **best possible** trust guarantees for whichever chains they want to build on. For fraud to occur in our Polygon to Optimism example, there would need to be a compromise of Polygon or Optimism's canonical bridges _and_ Connext's failsafe mechanisms.
24+
25+
### Security
26+
27+
Bridges and crosschain messaging are some of the most critical infrastructure in the space, with a high potential risk for catastrophe in the event of hacks or bugs. In the past 18 months, almost **$2B** has been lost to bridge hacks.
28+
29+
Connext utilizes Watchers, automated offchain actors, that observe the network and halt message passing in the event that fraud or a hack is observed. This ensures that damage due to the failure of any individual part of the network is minimized.
30+
31+
Additionally, Connext follows a strict philosophy of secure development, requiring rigorous external review for code changes and working closely with the security community to educate auditors on bridge security risks and collaborate on creating best practices.
32+
33+
### Simplicity
34+
35+
Migrating to a completely new multichain development workflow can be challenging.
36+
37+
Rather than reinventing the wheel, Connext tries to mimic and extend existing development patterns as much as possible. The protocol implements a single, simple primitive - `xcall` - which allows devs to asynchronously interact with contracts living on another chain/rollup similarly to how you would `call` a contract living on the same chain/rollup.
38+
39+
Connext additionally plugs into the tooling and supporting infrastructure that is _already_ widely used in the ecosystem. Have a development workflow that isn't well supported by Connext? [Let us know](https://discord.gg/pef9AyEhNz) and our community can help build support for it!
40+
41+
## What Can I Build With Connext?
42+
43+
In short, pretty much anything! Here are some of the ideas that members of our community are working on:
44+
45+
* Executing the outcome of **DAO votes** across chains
46+
* Lock-and-mint or burn-and-mint **token bridging**
47+
* **Aggregating DEX liquidity** across chains in a single seamless transaction
48+
* Crosschain **vault zaps** and **vault strategy management**
49+
* **Lending funds** on one chain and borrow on another
50+
* Bringing **UniV3 TWAPs** to every chain without introducing oracles
51+
* **NFT bridging** and chain-agnostic NFT marketplaces
52+
* **Storing data on Arweave/Filecoin** directly from within an Ethereum smart contract
53+
54+
## Where Do I Go Next?
55+
56+
If the above information was overwhelming, don't worry! We have plenty more resources to help you learn about Connext:
57+
58+
* If you're a developer and want to start building with `xcall`, check out our Developer Quickstart and Examples.
59+
* Want to learn more about how the protocol works? Read through the How Connext Works section.
60+
* Are you an infrastructure operator? Help run the network by operating a Connext router.
61+
* Still not sure where to go? Join our [Discord](https://discord.gg/pef9AyEhNz) server and chat with us in the `#dev-hub` channel.

SUMMARY.md

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Table of contents
2+
3+
## ✨ Concepts
4+
5+
* [What is Connext?](README.md)
6+
* [How It Works](concepts/how-it-works/README.md)
7+
* [Architecture](concepts/how-it-works/architecture.md)
8+
* [Transaction Lifecycle](concepts/how-it-works/transaction-lifecycle.md)
9+
* [Background](concepts/background/README.md)
10+
* [What is a Bridge?](concepts/background/what-is-a-bridge.md)
11+
* [Modular Bridges](concepts/background/modular-bridges.md)
12+
* [Message Verification](concepts/background/verification-mechanisms.md)
13+
* [Use Cases](concepts/use-cases.md)
14+
* [FAQ](concepts/faq.md)
15+
16+
## 🤝 Developers
17+
18+
* [Introduction](developers/intro.md)
19+
* [Quickstart](developers/quickstart.md)
20+
* [Guides](developers/guides/README.md)
21+
* [Frontend](developers/guides/sdk-frontend-integration.md)
22+
* [SDK](developers/guides/sdk-guides.md)
23+
* [Estimating Fees](developers/guides/estimating-fees.md)
24+
* [Tracking xCalls](developers/guides/xcall-status.md)
25+
* [Authentication](developers/guides/authentication.md)
26+
* [Handling Failed xCalls](developers/guides/handling-failures.md)
27+
* [Nested xCalls](developers/guides/nested-xcalls.md)
28+
* [Reference](developers/reference/README.md)
29+
* [SDK](developers/reference/sdk/README.md)
30+
* [SdkShared](developers/reference/sdk/sdkshared.md)
31+
* [SdkBase](developers/reference/sdk/sdkbase.md)
32+
* [SdkPool](developers/reference/sdk/sdkpool.md)
33+
* [SdkRouter](developers/reference/sdk/sdkrouter.md)
34+
* [SdkUtils](developers/reference/sdk/sdkutils.md)
35+
* [Types](developers/reference/sdk/types.md)
36+
* [Contracts](developers/reference/contracts/README.md)
37+
* [Calls](developers/reference/contracts/calls.md)
38+
* [Routers](developers/reference/contracts/routers.md)
39+
* [Stableswap](developers/reference/contracts/stableswap.md)
40+
* [Subgraphs](developers/reference/subgraphs/README.md)
41+
* [Entities](developers/reference/subgraphs/entities.md)
42+
* [Sample Queries](developers/reference/subgraphs/sample-queries.md)
43+
* [Subgraph Resources](developers/reference/subgraphs/subgraph-resources.md)
44+
* [Integration](developers/reference/integration/README.md)
45+
* [Adapters](developers/reference/integration/adapters.md)
46+
* [Receivers](developers/reference/integration/receivers.md)
47+
* [Examples](developers/examples/README.md)
48+
* [Simple Bridge](developers/examples/simple-bridge.md)
49+
* [Authenticated Greeter](developers/examples/authenticated-hello.md)
50+
* [Ping Pong](developers/examples/ping-pong.md)
51+
52+
## 📦 Usecases
53+
54+
* [xERC20](usecases/xerc20/README.md)
55+
* [How xERC20 Tokens Work with Connext](usecases/xerc20/how-xerc20-tokens-work-with-connext.md)
56+
* [Requirements](usecases/xerc20/requirements.md)
57+
* [Setup Guide](usecases/xerc20/setup-guide.md)
58+
* [Chain Abstraction](usecases/chain-abstraction/README.md)
59+
* [Chain Abstraction Guide](usecases/chain-abstraction/chain-abstraction-guide.md)
60+
* [xGovernance](usecases/xgovernance.md)
61+
62+
## 📜 Resources
63+
64+
* [Subgraphs](resources/subgraphs.md)
65+
* [Deployments](resources/deployments.md)
66+
* [Supported Chains](resources/supported-chains.md)
67+
68+
## 🖥 Routers
69+
70+
* [Basics](routers/routers-intro.md)
71+
* [Spinning Up](routers/spinning-up.md)
72+
* [Guides](routers/guides/README.md)
73+
* [Community Guides](routers/guides/community-guides.md)
74+
* [Providing Liquidity](routers/guides/liquidity.md)
75+
* [Managing Your Router](routers/guides/management.md)
76+
* [Security](routers/guides/security.md)
77+
* [Reference](routers/reference/README.md)
78+
* [Configuration](routers/reference/configuration.md)

concepts/background/README.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Background
2+
3+
4+
5+
{% content-ref url="what-is-a-bridge.md" %}
6+
[what-is-a-bridge.md](what-is-a-bridge.md)
7+
{% endcontent-ref %}
8+
9+
{% content-ref url="modular-bridges.md" %}
10+
[modular-bridges.md](modular-bridges.md)
11+
{% endcontent-ref %}
12+
13+
{% content-ref url="verification-mechanisms.md" %}
14+
[verification-mechanisms.md](verification-mechanisms.md)
15+
{% endcontent-ref %}
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Modular Bridges
2+
3+
The vast majority of generalized bridges out there today are _monolithic_. This means that they are tied to a specific verification mechanism that is implemented as a core part of the bridge construction.
4+
5+
Connext is the first example of a generalized crosschain messaging mechanism that is _modular_, plugging into the best available verification method for a given ecosystem.
6+
7+
## Clusters
8+
9+
To understand why Connext is designed the way that it is, let us first explore the concept of [Clusters](https://blog.celestia.org/clusters/).
10+
11+
A cluster is a sovereign set of domains that share security and can communicate with one another using trust-minimized methods. For example, Ethereum and its rollups form a cluster. Cosmos chains are another cluster. Singular "monolithic" chains, such as Solana are also their own cluster.
12+
13+
<figure><img src="../../.gitbook/assets/clusters (1).png" alt=""><figcaption></figcaption></figure>
14+
15+
In the [Message Verification](verification-mechanisms.md) section, we broke down the different methods that exist to secure a message that travels between two domains. As we noted, the **best available mechanism** for verifying messages is different based on the specific pair of domains we want to communicate between. Another way to say this is that there is a _heterogenous_ topology for message verification mechanisms across all networks.
16+
17+
For example, between a rollup and its L1, the most secure verification mechanism is to use the rollup bridge itself.
18+
19+
{% hint style="danger" %}
20+
The security of a domain is always the security of its weakest link. This means that _any_ method of passing messages to a rollup that isn't the rollup bridge introduces at least _some_ trust assumptions and security overhead, which in turn weakens the benefit of using a rollup (vs a less secure domain such as a sidechain) in the first place.
21+
{% endhint %}
22+
23+
On the other hand, the most secure way to verify a message that passes between two discrete chains is a light client (zk or otherwise). Light client implementations exist in some places, but not everywhere yet - and it's highly unlikely that a single light client protocol will "win" every single pathway between sovereign chains.
24+
25+
## Pluggable Verification
26+
27+
Modular bridges make the verification layer (and potentially other parts!) of the [bridging stack](what-is-a-bridge.md) pluggable. By doing this, they can leverage _existing_ methods of message verification wherever possible. This gives the best possible security for applications that may want to interact with multiple (heterogenous) domains simultaneously.

0 commit comments

Comments
 (0)