# 一分钟读懂Gravity Bridge协议

By [luxebeng](https://paragraph.com/@luxebeng) · 2022-05-31

---

### 1 基本概况

Gravity Bridge 是以太坊和 Cosmos 生态之间的跨链桥，允许人们通过在以太坊端锁定代币并在 Cosmos 端铸造等价代币，将代币从以太坊转移到 Cosmos 中，并可以再次返回。

### 2 项目详情

**2.1 团队**

Gravity Bridge 背后的主要开发团队是 Althea Networks。

[Deborah Simpier](https://www.linkedin.com/in/deborah-simpier-a88063169/) - Co-Founder。

[Justin Kilpatrick](https://www.linkedin.com/in/kilpatrickjustin/) - Co-Founder。

[William Moglia](https://www.linkedin.com/in/william-moglia-96b97877/) - 社区经理。

**2.2 资金与合作**

Altgea 团队目前还未进行过融资。

**2.3 社区**

*   Twitter: 16202个粉丝。
    
*   Discord: 2477个成员。
    

### 3 协议实现

在 Cosmos 生态中，链间的互操作性很容易，因为可以使用 IBC 协议来传输任何加密资产。然而，在 Cosmos 和以太坊之间传输加密资产在技术上非常复杂，因为 EVM 的设计并不与 IBC 协议兼容，IBC 数据包无法在以太坊中有效地解码。

![Gravity 架构图](https://storage.googleapis.com/papyrus_images/ae99baa05655ff4dd860e2708653044c15a0879503db862a638e98e7664dea60.png)

Gravity 架构图

**3.1 Peggy模块**

*   Peggy 具体包含5个部分。如下：
    
    1）以太坊智能合约：充当资产托管人，能够托管以太坊原生代币并发行 Cosmos 原生代币；
    
    2）Witness：负责证明以太坊中的事件，Witness 组件运行一个完全验证的以太坊节点，待交易打包完成并过去 100 个块后，达到了确定性阈值，则向 Peg zone 提交数据来证明以太坊内的状态变化。
    
    3）Peg zone：一个独立的区块链网络，建立在 Tendermint 共识之上，允许用户执行和查询交易，是 Cosmos 与以太坊通信的转接点。
    
    4）签名者：签名者使用以太坊所能解析的 secp256k1 签名方案对消息数据进行签名，并将其发布到 Peg zone 中，以便可以传递到智能合约中进行验证。
    
    5）中继器：中继器组件会将签名者签名的交易列表（数组）发布到以太坊智能合约上。运行逻辑：例如，用户想将一些代币从 Cosmos 中移出，并将它们转换为以太坊上等值的代币，交易会先发送到 Peg zone 中，将IBC 协议数据转为为 secp256k1 格式，以便以太坊可以对此解析，以此实现跨链桥互操作。
    
*   Peggy的运行过程如下： 从 Cosmos Hub 开始，通过 IBC 将代币交易数据移动到 Peg zone，Peg zone 接收传入的 IBC 数据包：包含用于发送代币交易数据,让签名者将 IBC 数据包转换为 secp256k1 格式，以便以太坊可以对此解析。 之后中继者会等待，直到他们看到 2/3 的签名者已经签署了该笔交易，然后将该交易列表发送到以太坊智能合约所在的 EVM 执行环境中。以太坊智能合约现在检查交易列表是否有效，若符合要求，智能合约会生成用户代币的 ERC20 版本，并发送到用户指定的以太坊地址中。
    

**3.2 Gravity 实现方案**

Gravity Bridge 以 Peggy 技术框架为基础，部署了 4 个主要部分：1）以太坊智能合约 Gravity.sol；2）Gravity 模块（Peg zone）；3）编排器（The orchestrator）；4）中继者。

*   Gravity Bridge 部署在以太坊上智能合约为 Gravity.sol，合约采用多签管理。主要功能是将 ERC20 代币锁定在以太坊上，以便在Cosmos 上进行铸造。锁定在 Gravity.sol 中的代币返回 Cosmos 上的代币。 Gravity.sol 智能合约由 Cosmos 的验证者负责运行，用户将 Cosmos 上的代币通过 IBC 协议发送到 Gravity 模块（Peg zone），并指定以太坊上的哪个地址应该接收它们，Gravity 模块会创建相应类型的代币数据，由签名者对其进行签名，并通过中继者将其发送到 Gravity.sol 智能合约中，由 Gravity.sol 将相应的代币转移到目标地址中。
    
*   带有 Gravity 模块的 Cosmos 链上的每个验证者都必须运行一个以太坊全节点，同时运行一个编排器（The orchestrator），以此来监控以太坊上的事件状态。编排器中的一个参数叫做 EthBlockDelay，用于让验证者确信给定交易事件在以太坊链上是具备完全最终性，并确保每个验证者对链有相同的看法。 当编排器从Gravity.sol合约中看到事件时，它会将事件放入Cosmos 消息中，对其进行签名，然后将其广播到Cosmos链，Gravity 模块接收这些消息并跟踪哪些验证者为该事件进行了验证。当一个事件超过 2/3 以上签名，Gravity 模块会进行相应状态改变，例如，当收到 SendToCosmosEvent 时，Gravity 模块会为目标地址铸造代币。
    
*   考虑到以太坊的交易费用高昂，Gravity模块会对交易进行批量处理。当用户想要将代币从Cosmos发送到以太坊上的地址时，他们会将代币发送到 Gravity 模块。Gravity 模块从他们的账户中扣除代币，然后将一笔交易放入交易池中，交易池存储所有尚未成批的Cosmos到以太坊的交易。
    
*   中继器负责监控交易池中的交易批次，并可以计算给定批次是否有利可图，如果批次中包含的费用高于将其提交给以太坊的 Gas 成本，则这是一个有利可图的批次。该计算会考虑以太坊链上当前的平均 Gas 价格、链上的拥塞以及该代币与以太坊 Gas 之间的汇率等参数。 批次交易处理有个额外优势：抗审查性，Gravity Bridge 协议通过定义每个批次的交易，然后要求每个验证者进行验证和签名，并转播，确保每一个存取款事件都需要被超过 2/3 的验证者签名才能得以执行。
    

参考资料

[Gravity Bridge 投研报告](https://asset.first.vip/uploads/20220323/Report_Gravity_Bridge_Henry_PC_CN-56327948.pdf)

[Everything You Need to Know About the Gravity Bridge Chain](https://blog.cosmos.network/gravity-is-an-essential-force-of-the-cosmos-aligning-all-planets-in-orbits-in-the-composable-b1ca17de18cc)

---

*Originally published on [luxebeng](https://paragraph.com/@luxebeng/gravity-bridge)*
