作者:jolestar,来源:作者推特@jolestar
Bitcoin 上做通用计算智能合约的 Layer2 一直是个难题,因为无法依赖 Bitcoin 网络来保证智能合约安全。我们 18 年的时候尝试过让 Bitcoin 闪电网络支持了 WASM 的智能合约,但也需要第三方来提供仲裁,放弃了这个路线。
今年 Ordinals, BRC20 等 BTC 生态火爆的时候,展示了另外一种可能。它们只将 BTC 作为 DA,技术解决方案类似主权 Rollup,但得到了市场和用户的认可。然而,如果想进一步扩展生态,就会发现难题重重,Bitcoin 网络作为 DA 成本还是太高了。
于是我就想到那是不是可以换一种思路,Bitcoin 网络作为一种源 DA,而 Layer2 本身的 DA 通过另外的方式来解决,于是有了 Rooch 当前的方案。
Rooch作为Bitcoin的Side Rollup
1. 核心组件与交互:
- Bitcoin:主链,其区块信息被同步到Rooch,为Rooch提供验证数据。
- Rooch:作为Side Rollup,包含以下核心组件:
; ; - Bitcoin轻客户端:在Rooch中使用Move智能合约实现,负责校验从Bitcoin同步过来的区块头信息。
; ; - Relayer:定期将Bitcoin的区块头信息同步到Rooch的Bitcoin轻客户端。人都可以承担Relayer的角色,确保至少有一个诚实的Relayer可以确保整体安全性。
; ; - Rooch Sequencer:与Rooch中的应用合约交互,用于验证交易证明并处理相关应用的逻辑。
; ; - Rooch Full node:存储完整的Rooch链数据,并与DA交互同步交易信息。
- Client:用户或应用客户端,从 Bitcion 网络获取交易证明,并与应用合约交互。
2. 工作流程:
1. Relayer定期将Bitcoin的区块头信息同步给Rooch的Bitcoin轻客户端。
2. Bitcoin轻客户端在Rooch中校验和保存这些区块头信息。
3. 开发者可以使用Move智能合约在Rooch中创建应用,这些应用可以处理和验证Bitcoin交易,因为轻客户端可以提供验证交易的Merkle Tree证明。
4. 客户端从 Bitcoin 获取交易证明,并与应用合约交互。
3. 应用场景:
- 触发式应用:例如,当Bitcoin网络上完成某种交易时,自动触发Rooch中的某个合约执行。
- 数据复制与再执行:例如,将Bitcoin上的Ordinals,BRC20,GRC20等标准定义的json在Rooch中再次执行,使Rooch充当去化的Indexer服务。这样,人都可以部署一个Rooch节点,同步并重新执行交易,创建自己的Indexer服务。
这个方案的关键点:
1. Bitcoin 作为源 DA,它为 Layer2 提供时间,关键数据源,用户的 Ordinals 交易直接发送给 Bitcoin 网络。
2. Rooch 作为 Bitcoin Layer2,会通过智能合约执行 Bitcoin 网络上的 Ordinals 交易。
3. Rooch Layer2 可以发行 Layer2 上的 Coin 以及应用,围绕 Bitcoin 构建扩展生态。
4. 而 Layer2 自己的交易,可以通过写入另外一个 DA,来实现可验证,人都可以运行一个节点来校验 Indexer 提供放的数据。
5. 如果生态进一步发展,安全的需求提高,则可以接入一个仲裁层,通过欺诈证明或者有效证明的方式,增强安全性。比如由以太坊来提供仲裁。
这个方案是不修改 Bitcoin 的机制的前提下,实现 Bitcoin Layer2 ,提供应用支持的一种可行方案。
以前大家会限于门户之见,但我认为行业正在从以叙事逻辑转向应用逻辑,以应用为,基础设施只是提供支撑,就不会有门户之见了。
如果有对 Bitcoin 生态技术感兴趣的朋友欢迎和我联系,一起探讨技术方案以及实现。