diff --git a/docs/website/data/team.tsx b/docs/website/data/team.tsx index b7f5e9e27b..bac5750330 100644 --- a/docs/website/data/team.tsx +++ b/docs/website/data/team.tsx @@ -33,6 +33,11 @@ const ROOCH_TEAM: Record = { name: "Justin Y.", twitterUsername: "justinkn08", avatar: "/images/people/justin.jpg" + }, + baichuan: { + name: "Bai Chuan", + twitterUsername: "muzixinly", + avatar: "/images/people/baichuan.jpg" } }; diff --git a/docs/website/pages/blog/babylon-integration-for-rooch-network.en-US.mdx b/docs/website/pages/blog/babylon-integration-for-rooch-network.en-US.mdx new file mode 100644 index 0000000000..14bed8473f --- /dev/null +++ b/docs/website/pages/blog/babylon-integration-for-rooch-network.en-US.mdx @@ -0,0 +1,81 @@ +--- +title: Babylon integration for Rooch Network +description: "As the native application layer of Bitcoin, why does Rooch Network want to integrate Babylon, and what can Rooch Network bring to Babylon?" +author: baichuan +date: 2025/01/06 +category: Developer +--- + +import PostHeader from "/components/blog/postHeader"; + + + +## What is Rooch Network? +Rooch Network is a native application layer for the Bitcoin ecosystem, based on the Stackable L2 solution, serving as the go-to Bitcoin assets launchpad and Bitcoin application infra for users and devs. + +## What is Babylon? +Babylon has realized a secure, cross-chain-free, and custody-free Native Staking solution for BTC Layer2 and other POS chains by building a complex UTXO script contract on the Bitcoin mainnet. + +## Why Rooch integration Babylon? +[Babylon](https://github.com/babylonlabs-io) provides the [Bitcoin staking protocol](https://docs.babylonlabs.io/assets/files/btc_staking_litepaper-32bfea0c243773f0bfac63e148387aef.pdf) that allows Bitcoin holders to stake their BTCs natively on the Bitcoin chain to protect any PoS chains. The staking is trustless in the sense that the BTC resides in a self-custodian vault on the native Bitcoin network, without being bridged elsewhere. + +Rooch chains can integrate with the Babylon BTC staking protocol to get Bitcoin security. This leads to the following benefits. + +- **Better economic security:** There is native BTC staked to protect the rollup and improve its economic security. This is made more important for Rooch chains with fewer adoptions. In addition, the staked BTC achieves *slashable safety*, a strong security property that equivocations by L2 sequencers are held accountable and the BTC stake is slashable, even when equivocating L2 sequencers constitute a majority. +- **Fast finality:** The improved economic security will benefit the Rooch chains for fast finality. If the user is willing to trust the votes backed by the BTC stake, then the user can confirm transactions and make decisions without waiting for the lengthy challenging period in optimistic rollups. +- **Reorg resilience of L2 transactions:** Once a transaction is included in an L2 block signed by the majority of BTC-backed finality providers, the sequencer cannot publish a different L2 block at the same height on L1. +- **Provide transaction proof**: Provide proof of existence and proof of non-existence of transactions, implement a trusted message verification mechanism, and effectively verify the authenticity of transactions. + +## System architecture +The following figure depicts the system architecture. The “→” arrow denotes data flow; for example, X→ Y means “Y queries data from X and the data flows from X to Y”. + +### Babylon integrated with Consumer Chain flow +![](/blog/babylon-integration-for-rooch-network/babylon-integration-consumer-chain.jpeg) + +### Babylon integrated with Rooch architecture +![](/blog/babylon-integration-for-rooch-network/babylon-integration-for-rooch.png) + +### System components + +The design involves the following main components: + +1. **Finality contract:** a CosmWasm smart contract that maintains all finality signatures submitted from Rooch finality providers. + - It will be deployed on the Babylon chain. + - It will query Babylon for determining finality provider’s status and voting power. +2. **Rooch finality provider:** daemon program that receives BTC stake and submits finality signatures to the finality contract on Babylon. + - It connects to a Babylon node for querying voting power of itself. + - It connects to finality contract in a Babylon node for submitting finality signatures. + - It connects to a Rooch node to get L2 block metadata. +3. **Rooch node with finality gadget:** The Rooch-node will further equip a finality gadget that tallies all finality signatures, determines finalisation status of L2 blocks, and only notify Rooch-node itself about finalised L2 blocks. + - It connects to a Babylon node for querying voting power of finality providers. + - It connects to finality contract in a Babylon node for querying finality signatures. + - It connects to an Bitcoin L1 node to receive batch data to derive L2 blocks. + +### Key workflows + +1. **Finality provider:** keeps submitting finality signatures over L2 blocks to the finality contract. + Upon a new L2 block in the Rooch chain, + - Get L2 block metadata. + - Query Babylon chain to determine whether itself has voting power at this height. + - If yes, sign and submit a finality signature to the finality contract. +2. **Finality contract:** verifies incoming finality signatures and identifies equivocations. + Upon a finality signature, finality contract verifies it and checks if it’s conflicting. + - If valid and non conflicting with any existing ones, then accept. + - If invalid, then reject. + - If valid but conflicting with an existing finality signature, emits an event so that anyone can slash the finality provider and BTC stake under it. +3. **Rooch-node with finality gadget:** keeps talliing L2 blocks derived from L1 w.r.t. finality signatures and finality providers’ voting power distribution, and determines BTC staking finalisation status of L2 blocks. The derivation pipeline is modified so that it only outputs BTC staking-finalised L2 blocks. + Upon a new L2 block derived from L1, the Rooch-node does the following + - Query finality contract to get all finality signatures over this L2 block. + - Query Babylon to get all finality providers / BTC delegations of this consumer, and use the L2 block’s timestamp to determine the voting power table at the time of this block. + - Tally finality signatures and determine whether the L2 block receives a quorum. + - If this L2 block receives a quorum and its prefix is BTC staking-finalised, then mark this L2 block BTC staking-finalised and output it in the derivation pipeline. + +## What does Rooch bring to Babylon? + +As the native application layer of Bitcoin, Rooch will automatically parse and maintain the full amount of UTXO data in the state tree of the Move contract. By parsing the OP_RETURN data in the unspent output (UTXO), it can obtain the user's staking information on the Babylon network, including the number of BTC staked and the unlocking time. This can bring the following benefits to Babylon. + +- Expand Babylon's Staking/Restaking scenarios, bringing more gameplay to the ecosystem without any additional operations + +## Summary + +With the staking scalability brought by Babylon's BTC staking protocol to Consumer Chain and Layer2, Rooch chain will be given better security and fast finality, as well as proof of transaction existence. At the same time, the parseable UTXO data provided by Rooch can expand Babylon's Staking/Restaking scenarios and bring more gameplay to the Babylon ecosystem. diff --git a/docs/website/pages/blog/babylon-integration-for-rooch-network.zh-CN.mdx b/docs/website/pages/blog/babylon-integration-for-rooch-network.zh-CN.mdx new file mode 100644 index 0000000000..a6bed5d577 --- /dev/null +++ b/docs/website/pages/blog/babylon-integration-for-rooch-network.zh-CN.mdx @@ -0,0 +1,81 @@ +--- +title: Babylon 集成 Rooch Network +description: "作为Bitcoin 的原生应用层,Rooch Network 为什么要集成 Babylon,Rooch Network 又能为 Babylon 带来什么?" +author: baichuan +date: 2025/01/06 +category: Developer +--- + +import PostHeader from "/components/blog/postHeader"; + + + +## Rooch Network 是什么? +Rooch Network 是 Bitcoin 的原生应用层,基于堆叠式 L2 解决方案,为用户和开发者提供比特币资产的启动平台和比特币应用基础设施。 + +## Babylon 是什么? +Babylon 通过在比特币主网上构建复杂的 UTXO 脚本合约,为 BTC Layer2 和其他 POS 链实现了安全、无跨链、无托管的原生质押解决方案。 + +## 为什么 Rooch 要集成 Babylon? +[Babylon](https://github.com/babylonlabs-io) 提供了 [比特币质押协议](https://docs.babylonlabs.io/assets/files/btc_staking_litepaper-32bfea0c243773f0bfac63e148387aef.pdf),允许比特币持有者在比特币链上质押 BTC,以保护任何 PoS 链。质押是无需信任的,因为 BTC 位于原生比特币网络上的自托管保险库中,而无需在其他地方进行桥接。 + +Rooch 链与 Babylon BTC 质押协议集成,以获得比特币安全性。这带来了以下好处。 + +- **更好的安全性:** 有原生 BTC 质押来保护 Layer2 并提高其安全性。此外,质押的 BTC 实现了 *可削减*的安全性,这是一种强大的安全特性,即使模棱两可的 L2 测序器占大多数,L2 序列器的重复行为也会被追究责任,BTC 质押也是可削减的。 +- **快速最终性:** 改进的安全性将使 Rooch 链受益,实现快速最终性。如果用户愿意信任由 BTC 质押支持的投票,那么用户可以确认交易并做出决策,而无需等待漫长的挑战期。 +- **L2 交易的可重组弹性:** 一旦交易被纳入由大多数 BTC 支持的终结性提供者签名的 L2 区块中,序列器(Sequencer)就不能在 L1 上的同一高度发布不同的 L2 区块。 +- **提供存在性证明:** 提供交易的存在性证明和不存在证明,实现可信消息验证机制,能够有效地验证交易的真实性。 + +## 系统架构 + +下图描述了系统架构。“→”箭头表示数据流;例如,X→Y 表示“Y 从 X 查询数据,数据从 X 流向 Y”。 + +### Babylon 集成 Consumer Chain 流程 +![](/blog/babylon-integration-for-rooch-network/babylon-integration-consumer-chain.jpeg) + +### Babylon 集成 Rooch 架构图 +![](/blog/babylon-integration-for-rooch-network/babylon-integration-for-rooch.png) + +### 系统组件 + +设计涉及以下主要组件: + +1. **Finality合约**:CosmWasm 智能合约,用于维护 Rooch finality provider 提交的所有最终性签名。 +- 它将部署在 Babylon 链上。 +- 它将查询 Babylon 以确定 finality provider 的状态和投票权。 +2. **Rooch finality provider**:守护程序,接收 BTC 质押并将最终性签名提交给 Babylon 上的 finality合约。 +- 它连接到 Babylon 节点以查询自身的投票权。 +- 它连接到 Babylon 节点中的finality合约以提交最终性签名。 +- 它连接到 Rooch 节点以获取 L2 区块元数据。 +3. **装配 Finality gadget 的 Rooch Node**:Rooch 节点将装配一个finality gadget,用于统计所有最终性签名、确定 L2 区块的最终状态,并且仅将最终确定的 L2 区块通知给 Rooch 节点本身。 +- 它连接到 Babylon 节点,用于查询 finality provider 的投票权。 +- 它连接到 Babylon 节点中的 finality合约,用于查询最终性签名。 +- 它连接到比特币 L1 节点,以接收批量数据来派生 L2 区块。 + +### 关键工作流程 +1. **Finality provider**:持续向finality gadget合约提交 L2 区块的最终性签名。 +Rooch 链中出现新的 L2 区块时, +- 获取 L2 区块元数据。 +- 查询 Babylon 链以确定其自身是否在此高度具有投票权。 +- 如果是,则签署最终性签名并将其提交给finality gadget合约。 + +2. **Finality合约**:验证传入的最终性签名并识别模棱两可之处。 +最终性签名出现后,Finality合约对其进行验证并检查其是否冲突。 +- 如果有效且与任何现有签名不冲突,则接受。 +- 如果无效,则拒绝。 +- 如果有效但与现有最终性签名冲突,则发出事件,以便任何人都可以削减 finality provider 及其下的 BTC 质押。 + +3. **装配 Finality gadget 的 Rooch Node**:持续计算从 L1 派生的 L2 区块,最终性签名和finality provider的投票权分布,并确定 L2 区块的 BTC 质押最终化状态。派生管道经过修改,因此它仅输出 BTC 质押最终化的 L2 区块。 +当从 L1 派生出新的 L2 区块时,Rooch 节点执行以下操作 +- 查询finality合约以获取此 L2 区块的所有最终性签名。 +- 查询 Babylon 以获取此消费者的所有finality provider/BTC 委托,并使用 L2 区块的时间戳确定此区块时的投票权表。 +- 统计最终性签名并确定 L2 区块是否获得法定票数。 +- 如果此 L2 区块获得法定票数并且其前缀为 BTC 质押最终态,则将此 L2 区块标记为 BTC 质押最终态并将其输出到派生管道中。 + +## Rooch 为 Babylon 带来了什么? +Rooch作为Bitcoin 的原生应用层,会自动解析维护全量的 UTXO 数据到Move 合约的状态树中,通过解析未花费输出(UTXO)中OP_RETURN 数据,可以获取到用户在Babylon 网络上质押相关信息,包括质押BTC 数量及解锁时长。这可以给Babylon 带来以下好处。 + +- 扩展Babylon的 Staking/Restaking 场景,给生态带来更多玩法,且无需任何额外操作 + +## 总结 +借助 Babylon 的 BTC 质押协议给 Consumer Chain 和 Layer2 带来的质押扩展性,将给Rooch 链带来更好的安全性和快速最终性,以及交易的存在性证明。同时,Rooch 提供的可解析的 UTXO 数据,能够扩展Babylon的 Staking/Restaking 场景,给 Babylon 生态带来更多玩法。 diff --git a/docs/website/public/blog/babylon-integration-for-rooch-network/babylon-integration-consumer-chain.jpeg b/docs/website/public/blog/babylon-integration-for-rooch-network/babylon-integration-consumer-chain.jpeg new file mode 100644 index 0000000000..1bf1759a9b Binary files /dev/null and b/docs/website/public/blog/babylon-integration-for-rooch-network/babylon-integration-consumer-chain.jpeg differ diff --git a/docs/website/public/blog/babylon-integration-for-rooch-network/babylon-integration-for-rooch.png b/docs/website/public/blog/babylon-integration-for-rooch-network/babylon-integration-for-rooch.png new file mode 100644 index 0000000000..9df93643de Binary files /dev/null and b/docs/website/public/blog/babylon-integration-for-rooch-network/babylon-integration-for-rooch.png differ diff --git a/docs/website/public/images/people/baichuan.jpg b/docs/website/public/images/people/baichuan.jpg new file mode 100644 index 0000000000..f5f58b0379 Binary files /dev/null and b/docs/website/public/images/people/baichuan.jpg differ