# 跨链通信第一原则

![](https://257174947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBWcOe1vv1kAaKeEaXb62%2Fuploads%2FIXjedr2CUdMjUxnjtvK2%2Fimage.png?alt=media\&token=9f6d87e6-474f-41c9-b88e-7f9f223e2a52)

当前的加密生态系统已扩展到多链世界，dapp 分散在以太坊、Fantom、Solana 等第 1 层（L1）； Layer-2s (L2s)，如 Optimism、Arbitrum； 和 Cosmos 和 Polkadot 等多链生态系统。 按照区块链设计，链与链之间是没有责任互相信任的，因此每条链都在孤岛中运行，链之间几乎没有交互。 为了创建一个流动的多链世界，我们需要跨链交换数据（互操作性）并允许应用程序相互交互（可组合性）。 这些重要属性共同实现并构成了跨链通信。

X-Chain 互操作性：跨链交换数据的能力\
X-Chain 可组合性：应用程序能够跨其他链读取和写入状态\
**互操作性和可组合性**不仅是跨链通信的特征，它们甚至可以是第 1 层（L1）和像 Optimism 或 Arbitrum 这种使用rollups技术 的通信（从技术角度来说不是区块链） ，但是跨链通信（Cross-Chain communication）这个概念被广泛使用，而实际上应该是**跨领域通信**。

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27706%27%20height=%27370%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FdDo_7CQ0eEtI2wJdk8poZ.png\&w=1920\&q=90)

领域A（比如以太坊）上的用户想要向领域B（例如 Polygon）传递消息，要转发的消息可以是向另一个地址发送资金或执行存款。 因此，为了传达领域 A（以太坊）上的状态变化，这反过来又会影响领域 B（Polygon）的状态，

我们需要考虑： 如何跨领域转移或依赖这些更改？

在传输过程中，如何知道信息是真实的？ 如果信息属实，请验证该领域是否按照商定的条款行事？

如果任一领域没有按照商定的条款行事，这些领域将等待多长时间才能被视为该过程不成功？

**传输或中继更改**

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27693%27%20height=%27355%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FSPSml1NNBZcDo7aGrKOp4.png\&w=1920\&q=90)

由于两个领域都是封闭的环境，彼此之间没有任何联系。 所以我们需要一个协调器介入并提交或中继新状态到域 B。这个协调器可以是一个路由器，就像 Connext 一样，也可以是一个验证器，就像 Ren 一样。 因此，假设总会有人在域之间传达这些变化，这被称为*活跃度假设（证明）*。**Liveliness assumption**.

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27503%27%20height=%27677%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FoypFC65RTS80AuoIoNi30.png\&w=1080\&q=90)

**信任中继信息**

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27691%27%20height=%27353%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FveXGmFJcyGLQoyXTs_n95.png\&w=1920\&q=90)

协调器帮助我们跨域交流状态变化，这些领域是封闭环境，无法完全验证外部信息。 因此，每当域 A 或 B 都根据协调器通知的更改采取行动时，可能需要外部第三方诚实行事。 这本质上给了我们一个*信任假设（证明）*。**Trust assumption**

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27700%27%20height=%27355%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FeYpTj8DTLtTsCMBANxNv6.png\&w=1920\&q=90)

区块链系统可以通过使系统更宽容地依赖多个实体并假设大多数人是诚实的来克服这一点。 请注意，这只会使其更宽容，但不会消除*信任假设（证明）*。**Trust assumption**

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27551%27%20height=%27498%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2F5N1EA_scEMCBxGkVYtGeb.png\&w=1200\&q=90)

Ren 中使用了一个这样的解决方案，其中协调者的角色由一组验证者扮演，他们需要 1/3rd+ 的合作才能验证消息。

**公平交换问题**

公平交换可以是两个域都按照商定的更改行事，也可以不发生任何更改。\
因此，一旦验证了域 A 上的更改，域 B 必须对这些更改采取行动，否则这些更改也将在 A 上恢复。

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27467%27%20height=%27711%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FN6v1rsc5-u1FqYBnxZtm5.png\&w=1080\&q=90)

**验证状态变化**

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27697%27%20height=%27345%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FML9ex7D3BDSaZ01wcY7-y.png\&w=1920\&q=90)

任何验证只有在确定的时间内具有可操作的结果时才有意义。 如果验证延迟超过商定的时间范围，则认为通信不成功。 对域进行的任何有条件的更改都将在此期间后恢复。\
因此，假设协调器能够在固定的时间上限内验证跨域的变化，这被称为同步假设\*（证明）\*。**Synchrony assumption.**

![](data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27508%27%20height=%27507%27/%3e)![](https://mirror.xyz/_next/image?url=https%3A%2F%2Fimages.mirror-media.xyz%2Fpublication-images%2FuCPA020K5t9f6H2aqo3A8.png\&w=1080\&q=90)

另一方面，在异步（非同步)模型中，交付更改的延迟没有上限，但每个更改最终都必须在任何有限的时间范围内交付。 原子交换（Atomic swaps）通常使用 htlcs 完成，具有固定的跨域交换时间框架，其中资金被锁定在源域(起始链）上，并在目标链上原子解锁。 Connext 借鉴了这种机制，其中路由器必须在交易到期（时间范围）之前完成目标域 (B) 上的 txn。 如果路由器延迟通信超过到期期限，则 txn 将还原回源域 (A) 上的用户。 因此，实际上，每个互操作性或跨域通信都需要：

.域之间存在协调者 ⇒ **活跃度假设** \*\**（证明）*

.协调者要么是受信任的，要么在一个组中至少有一个诚实的协调者⇒**信任假设** **（证明）**

.这个诚实的协调者能够在商定的时间上限内验证跨域的状态变化⇒**同步假设**\*（\***证明）**

正如我们将在后续文章中会进一步阐述的，这些假设在构建跨域通信的各种参与者如何相互交互方面发挥着关键作用。
