CKB Stablecoin Payment 的实现
作者:Jimmie,来自 10K Ventures
1. 概述
CKB stablecoin payment 是一种基于 CKB 网络的去中心化稳定币支付解决方案,允许用户通过 CKB 和比特币的联合网络,利用如 RGB++ 和 Fiber Network 等 Layer 2 扩展,生成并管理与美元挂钩的稳定币 RUSD,实现快速、低成本、安全的跨链稳定币支付。
2. 核心组件介绍
2.1 CKB(Common Knowledge Base)
2.1.1 CKB 是什么
CKB 是 Nervos Network 的 Layer 1 区块链,其主要功能可以总结为共识与执行(Consensus & Execution) 以及数据可用性(Data Availability),通过建立在其之上的支付通道、RGB++ 提升可扩展性。
它基于 PoW 共识机制,类似于 BTC,并采用了升级版的 BTC 算法 NC-MAX,该算法通过加快交易确认时间和降低孤块率,提升了网络的效率和响应能力,与 BTC 每 10 分钟一个区块的固定间隔不同,CKB 会根据网络活动动态调整区块间隔(大约每四小时调整一次),从而优化性能。
CKB 采用了 Eaglesong 哈希函数,这是一个专门为 Nervos Network 定制的哈希函数,作为 SHA-256 的替代,它提供了相同的安全性。
CKB 采用了 Cell模型作为其数据结构的核心,是 BTC 的 UTXO 记账模型的改进版本:
通过双脚本系统,允许更灵活的数据存储和验证,支持资产发行和智能合约执行。提供数据存储和状态管理功能,确保所有链上资产和数据的长期可用性。
2.1.2 Cell 模型
Cell 模型及其特点:
Cell 模型类似于 BTC 的 UTXO 模型,但通过引入双脚本实现了智能合约脚本的链上数据存储和验证。存储任意类型的数据或资产:在 BTC 的 UTXO 模型中,每个交易输出只能包含简单的金额信息和所有权;而 CKB 的每个 Cell 都可以存储智能合约代码),并在交易中通过外部调用触发这些脚本执行,这意味着每个 Cell 都能够独立执行与其相关的智能合约逻辑,具有可编程性。状态与计算分离:因为 Cell 存储了智能合约的代码和状态,允许每个 Cell 独立执行合约逻辑复杂的计算任务可以在 Layer 2 或链下执行,执行结果则通过交易同步回 Layer 1,确保网络的安全性和数据的一致性。并行执行和打包交易:通过 Cell 模型,不同 Cell 中的智能合约可以实现并行执行,而同时,不同 Cell 的交易结果可以打包更新上链,这种方式使计算更加高效并且降低交易费用。
Cell模型的工作原理:
Cell 是由输入和输出组成的:类似于 BTC 的 UTXO 模型,Cell 通过输入和输出来执行交易和状态更新每个 Cell 可以作为交易的输入被花费,并生成新的输出,创建新的 Cell。Cell 的组成元素:每一个 Cell 包含 Capacity,Updated Data,Lock Script,Type Script。Capacity(容量):Capacity 记录了 Cell 储存空间的大小,也代表了 CKB 代币的存储价值用户创建的 Cell 需要根据数据量分配一定的 Capacity,确保链上存储空间得到有效利用。Data(数据):它是 Cell 模型的核心特性之一,可以存储从简单数字到复杂智能合约状态的任意信息,允许在区块链上存储多样化的数据。双脚本系统:Lock Script 用于身份验证,类似于 BTC 的签名机制,防止未授权用户访问或修改 Cell 中的数据用户必须提供正确的签名或多重签名才能解锁并使用 Cell;Type Script 定义了 Cell 的数据验证逻辑,用于设定在未来交易中如何使用或更改 Cell 的规则,通过执行智能合约或规则验证来决定交易或状态的合法性。Live Cell & Dead Cell:Live Cell 指的是当前仍然未被花费的 Cell,仍然可以用作输入进行下一笔交易或状态更新;当一个 Cell 被花费后,它就成为 Dead Cell,不能再被使用,但其历史记录保留在链上以确保可追溯性。状态租赁机制:用户需要通过支付 CKB 代币来租赁链上的存储空间,从而保障长期的数据存储,同时防止状态爆炸(State Bloat)。
2.1.3 可编程性 & CKB-VM
Cell 模型是 CKB 可编程性的基础:支持在每个 Cell 中存储智能合约的状态和执行脚本,使合约的执行和资产的管理紧密结合
通过图灵完备的 RISC-V 虚拟机(CKB-VM),开发者可以在链上执行自定义的智能合约。RISC-V 指令集的灵活性赋予开发者更多编写合约的自由,使 CKB 能够支持复杂的合约逻辑。
CKB-VM支持多种语言:包括 C 和 Rust 等流行语言。这种广泛的兼容性使 CKB-VM 有别于通常仅限于特定语言的其他区块链的虚拟机,向更广泛的开发者社区开放。CKB 网络还支持 JavaScript、Rust、Go 和 Java 等主流语言的 SDK,方便开发者使用熟悉的工具进行开发。
兼容性与扩展性:CKB-VM 的设计确保了与 BTC 的 UTXO 模型和其他区块链兼容,同时支持高度扩展的智能合约和复杂应用。
2.1.4 PoW 共识机制
CKB 采用类似于 BTC 的 PoW 共识机制,保障网络的安全性和去中心化,与BTC类似,矿工通过竞争计算哈希值来打包区块,从而保障网络的不可篡改性和抗审查性。
NC-MAX 算法:相比 BTC,CKB 引入了改进的 NC-MAX 算法。这个改进允许更高的吞吐量并优化了区块打包效率,降低了孤块率,并提升了交易确认速度,使其适合大规模的应用场景,如资产存储和支付结算。
Eaglesong 哈希函数:Eaglesong 哈希函数的定制设计通过 ASIC 中立性、高效性、安全性 和 网络公平性,为 Nervos CKB 网络提供了性能和安全方面的优势,确保去中心化的同时,提升了挖矿效率和网络扩展性。
2.1.5 多层次安全架构
CKB 采用了多层次的安全架构::Layer 1 专注于数据的最终结算和状态的安全保存,Layer 2 则用于扩展交易处理能力。
分离的架构确保了主链(Layer 1)的安全性:减少了处理交易时的负载,提高了整体网络的稳定性
2.1.6 与 BTC 的联系及正统性
UTXO 模型的跨链互操作性:
CKB 的 Cell 模型是 BTC UTXO 模型的扩展。BTC 用户能够将其资产映射到 CKB 网络,借助 CKB 网络的灵活性进行存储、智能合约操作和去中心化金融(DeFi)应用。由于 Cell 与 BTC UTXO 在结构上相似,且 CKB 可以兼容 BTC 签名算法,用户可以用 BTC 钱包操纵 CKB 链上资产,对于其他 UTXO 公链同理。
正统性:CKB 通过采用 NC-Max(Nakamoto Consensus Max)与 BTC 保持理念上的一致性,NC-Max 是中本聪共识的改进版本,提供了更好的安全性和性能。
社区支持:Nervos 社区由众多区块链技术爱好者、开发者和矿工组成,并得到了部分 BTC 社区的支持,正统性在于它继承了 BTC 的去中心化思想,并通过扩展功能满足了更广泛的需求。
2.1.7 CKB 在稳定币支付中的角色
存储与管理稳定币余额:CKB 的 Cell 模型 是稳定币存储的基础,用户的 RUSD 等稳定币余额存储在链上的 Cell 中。每个 Cell 包含完整的余额信息,确保了资产的安全性和可追踪性。
记录交易状态:CKB 支持在链上记录交易的每一个状态变化,所有的支付流程都可以通过 Cell 模型透明化地记录并追踪。这种机制在稳定币支付中至关重要,确保了交易的安全性和可验证性。
智能合约的执行:稳定币支付过程中的条件支付、锁定等复杂操作都可以通过 CKB-VM 支持的智能合约实现。
2.2 RGB++
2.2.1 RGB++ 是什么
RGB++ 是一种去中心化的资产发行和智能合约协议,适用于 Bitcoin UTXO 模型和其他 UTXO 公链。
RGB++ 协议继承了 RGB 协议的将链上和链下分别创造一个交易并进行绑定的思想,不同之处在于 RGB 利用客户端验证,将更多 BTC 网络无法存储的数据和无法实现的智能合约移到链下,并创建对应的交易与链上进行绑定,而 RGB++ 将这些无法存储的数据和无法实现的智能合约移到 CKB,使 CKB 成为 BTC 的智能合约结算层。
2.2.2 基本功能
通过 RGB++,将 CKB 作为 BTC 的影子链:作为 BTC 的补充链,承担 BTC 原生无法处理的包括在图灵机中的复杂逻辑和智能合约操作。
与 BTC 网络交互:
交易发生:在 BTC 网络中,用户通过常规的 UTXO 模型完成交易,而涉及智能合约执行的部分则通过 RGB++ 将合约状态和数据绑定到 CKB 上。验证逻辑:在 BTC 网络上进行的交易记录将通过 RGB++ 与 CKB 上存储的合约状态同步,通过特定的验证逻辑来确保交易的合法性,每当网络发生交易,RGB++ 会触发 CKB 上的合约执行,通过链上合约逻辑检查交易是否符合预定的规则,例如余额是否充足、签名是否有效、合约条件是否满足等。
RGB++ 使用客户端验证(Client-Side Validation)的模式来确保链下数据的私密性和完整性,只有在链下验证通过时才会将数据提交至 CKB 进行最终结算。
资产发行与管理:RGB++ 允许用户通过链下协议发行资产(如稳定币、代币等),并使用 CKB 来管理这些资产的生命周期(不仅包括资产的发行和流通,还包括更复杂的操作,如时间锁、条件支付等功能)。
RGB++ 实现了 BTC 的高安全性与 CKB 的可编程性结合。
2.2.3 同构绑定(Isomorphic Binding)
资产&状态跨链同步:同构绑定是指在 BTC 和 CKB(或其他 UTXO 公链,如 Cardano)之间,将资产和状态通过一种绑定机制保持同步。每当 BTC 链上发生资产交易时,RGB++ 会在 CKB 上映射出与之对应的合约状态或资产变动。
扩展 UTXO:在同构绑定中,BTC 链上的每个 UTXO 会在 CKB 上有对应的 Cell(UTXO 容器),并记录与之对应的资产状态和智能合约条件。
资产绑定:当用户在 BTC 链上持有某种 RGB++ 资产时,CKB 上的 Cell 会存储相应的资产状态,两条链之间通过同构绑定确保这些资产信息的一致性。
交易的同步:当 RGB++ 代币交易发生时,同构绑定机制会在 BTC 网络生成 Commitment,在 CKB 链上,对应的 Cell 会被消耗,而新的 Cell 会生成用来分配资产。
同构绑定的优点 – 赋能 BTCFi
智能合约支持:BTC 无法原生支持图灵完备的智能合约,而通过同构绑定,CKB 可以作为智能合约的执行层,管理 BTC 资产的复杂交易条件,如时间锁、条件支付等。资产管理的灵活性:同构绑定允许在 CKB 上管理 BTC 网络中流通的资产,用户可以通过 CKB 的灵活编程能力执行复杂的金融操作,而无需改变 BTC 的底层协议。
2.2.4 Leap
RGB++ Layer 升级提出: 将 CKB 与 BTC 之间的绑定关系扩展到所有 UTXO 链,通过 “换绑” 实现资产跨链。
BTC 与其他 UTXO 链之间的无桥跨链:它的核心目的是让 BTC 链上的 RGB++ 资产能够无缝转移到其他 UTXO 链上,它通过切换资产绑定的 UTXO,支持在多个区块链上管理和转移资产。
无桥技术:Leap 通过同构绑定(Isomorphic Binding)技术,以及切换不同链上的 UTXO,而不依赖传统的 Lock-Mint 跨链桥,实现资产的跨链转移。
操作流程:例如,用户可以通过 Cardano 链来控制原本在 BTC 链上的 RGB++ 资产,并在 Cardano 链上进行资产的拆分和转移。
发布 Commitment:首先,用户需要在 BTC 链上发布一个 Commitment,声明要将 BTC UTXO 绑定的资产解除绑定。Cardano 链绑定:接下来,在 Cardano 链上发布一个新的 Commitment,将该 RGB++ 资产与 Cardano 的 eUTXO 绑定。修改锁定脚本:然后,修改 RGB++ 资产在 CKB 链上的锁定脚本,将解锁条件从 BTC UTXO 切换为 Cardano 链上的 eUTXO。这一步允许资产持有人通过 Cardano 链控制原本在BTC链上的资产。
CKB 在 Leap 中的作用:
CKB 扮演了类似索引器和数据可用性(DA)层的角色。所有的 RGB++ 资产数据仍然存储在 CKB 链上,CKB 作为第三方见证人来处理 Leap 请求,并确保跨链资产的安全性。CKB 提供了安全性和可信度:相比传统跨链桥中常见的多签或 MPC(多方计算)机制,CKB 的安全性和去中心化属性更为可靠。
2.2.5 RGB++ 在稳定币支付中的角色
稳定币的发行和流通:通过 RGB++ 在 BTC 链上发行稳定币,借助 CKB 实现资产的智能管理。
跨链资产管理:通过 RGB++ Layer和 CKB 的结合,确保稳定币支付在不同 UTXO 链上无缝操作。
智能合约支持:为稳定币支付提供复杂的支付条件、时间锁等功能,提升支付的灵活性和安全性。
桥梁作用:RGB++ Layer 充当BTC(以及其他 UTXO 链)和 CKB 之间的桥梁,扩展了 BTC 的可编程性和资产管理能力,使 BTC 的稳定币支付功能更加多样化和灵活。
2.3 Fiber Network
2.3.1 Fiber Network 简介
Fiber Network 是 CKB 上类似于 BTC 闪电网络的 Layer 2 扩展方案:它专门为提升 CKB 的链下支付能力设计,允许用户在链下进行快速、低成本地支付。通过支付通道实现链下交易,减少主链的压力,提升交易速度。
链下支付的特点:Fiber Network 通过支付通道实现了链下的快速转账,降低了对 CKB 主链的依赖,并提升了交易的吞吐量。
现状:截至 2024 年 9 月,根据 mempool 的数据,当前 BTC 闪电网络中安置了 3 亿多美元的资金,节点数量约为 1.2 万个,彼此之间构建了近 5 万条支付通道。基于 Nervos CKB 的 Fiber Network 已经上线测试网。
2.3.2 技术要点
链下支付通道(Fiber Channels):Fiber Network 通过创建支付通道,允许用户在链下直接交换资产,直到通道关闭时才将最终状态提交到 CKB 主链进行结算。
链上合约(HTLC):
类似于 BTC 闪电网络,Fiber Network 现在也使用哈希时间锁合约(HTLC) 来保障链下交易的安全性;如果链下交易在约定时间内没有被确认,可以通过 HTLC 自动退回资产。PTLC:Fiber Network 在 HTLC 的基础上改良,避免整条支付路径图使用同一加密值,将使用 PTLC 来防止对交易关联性的隐私泄漏。
多跳路由(Multi-Hop Routing):Fiber Network 和 BTC 闪电网络一样,支持通过多个节点进行支付路径的跳转,基于 Dijkstra 算法来搜索支付路径,从而降低路由费用并提高多跳路径支付的成功率。
监控服务-瞭望塔(Watchtower Service):用户可以利用全天候监控服务来监控支付通道的状态,防止恶意节点尝试进行双重支付或作弊行为(防止交易参与者把过期的 Commit 提交上链),该服务可以自动追踪交易并报警。
2.3.3 Fiber Network 与 BTC 闪电网络的不同
多资产支持:
BTC 闪电网络之前仅支持 BTC 的链下支付,现在可通过 Taproot Asset 升级支持其他资产。Fiber Network 支持多种资产,包括 CKB、BTC、RGB++ 稳定币等。
手续费和交易速度:
BTC 闪电网络由于在 BTC 链上运行,打开和关闭通道时需要支付较高的 BTC 手续费,尤其当 BTC 交易费用上涨时,通道操作成本大幅增加。Fiber Network 由于依赖 CKB,拥有更高的 TPS 和更低的交易费用,这使得打开和关闭通道的操作成本更低,提供了更好的用户体验。
跨链互操作性:
BTC 闪电网络主要用于 BTC 网络内的支付,尚不支持其他 UTXO 链的跨链支付。Fiber Network 支持多种资产的流通包括:BTC 原生资产(包括铭文、符文等)、CKB 、RGB++ 原生资产(包括RUSD等)。跨链资产链下支付:借助 RGB++ Layer,所有 UTXO 链的资产,都可以进入闪电网络。Fiber Network 与 BTC 闪电网络可以互联:实现跨链支付(只能 Fiber Network 发出,BTC 闪电网络接收),用户可以通过 Fiber Network 使用 CKB 或 RGB++ 资产购买 BTC 闪电网络上的资产,并确保跨链交易的原子性(不会出现部分资产成功/失败跨链的情况)。
2.3.4 Fiber Network 在稳定币支付中的角色
Fiber Network 用于支持链下的稳定币转账,确保支付的即时性和低成本。
Fiber Network 通过创建链下支付通道,让用户能够在链下进行高频交易,减少对主链的压力。
Fiber Network 支持跨链原子支付,使得稳定币支付可以安全地跨越多个链。
2.4 Stable++
2.4.1 Stable++ 简介
Stable++ 是一个 CKB 生态的去中心化的超额抵押稳定币协议,允许用户通过抵押 BTC 或 CKB 来铸造与美元挂钩的 RUSD。
RUSD 理论上是第一个基于 RGB++ 协议直接在比特币网络上发行的稳定币,利用 CKB 的能力提供更本地化和高效的解决方案。
手续费:用户抵押 BTC/CKB 铸造 RUSD 和归还 RUSD 赎回 BTC/CKB 都需要收取手续费。
RUSD 质押:用户可以通过借出的质押 RUSD 获得治理代币 STB。
治理代币 STB:用户可以通过质押 STB 参与抵押物的清算获得收益;用户可以通过质押 STB 参与手续费分成。
跨链互操作性:RUSD 可以通过 RGB++ 的同构绑定和 Leap 功能实现 UTXO 链账户之间的转账。
较低的最低质押比例(MCR):得益于高效清算,降低了协议和稳定性提供者面临潜在损失的风险,从而降低了对于抵押物价值的需求
去中心化:Stable++ 是完全去中心化、独立运行的协议,无需任何实体的控制或许可,用户可自由、安全地与系统交互。
2.4.2 清算机制 – 双重保险
概述:清算机制是在抵押品价值下降至某个临界点(最低质押比例借出 RUSD)时触发的保护措施,确保生成的 RUSD 稳定币始终有足够的抵押品支持,系统会自动清算那些抵押不足的用户,以维持整体系统的稳定性
稳定池(Stability Pool):
为解决发生大面积清算时效率低下的问题,Stable++ 使用稳定池来代替大多数借贷协议通用的拍卖方式进行清算,无需在市场上寻找清算人。自动清算:稳定池需要 LP(用户)预先存入 RUSD 来作为储备,当清算发生时,稳定池中与坏账等额的 RUSD 会被直接销毁,同时抵押物会直接分配给 LP。通过稳定池自动清算的能力,用直接分配超额抵押物来代替传统拍卖,提升了稳定币在出现大面积清算的运行效率和稳定性。
重分配:
概述:当稳定池没有足够的储备来完成坏账清算时,坏账与抵押物将通过充分配机制在借款人之间分配。债务重分配:当清算池无法覆盖全部坏账时,剩余的债务会在所有借款人之间按比例重分配。抵押物分配:所有借款人共同消化坏账的同时,也会获得按比例分配的超额抵押作为奖励。通过让所有借款人共同承担坏账,这个机制确保了系统中没有未覆盖的债务,避免了系统性风险的积累。2.4.3 Stable++ 在稳定币支付中的角色
Stable++ 协议生成稳定币 RUSD,作为支付中使用的主要稳定币。
Stable++ 通过创新的清算机制,改进了传统的超额抵押方式,保证了 RUSD 价格的稳定性。
Stable++ 借助 RBG++ 的同构绑定和 Leap 能力,使 RUSD 成为第一个真正能够在任何支持 UTXO 的链上自由流通的稳定币,进一步拓宽了稳定币的流通性。
2.5 JoyID
2.5.1 JoyID 是什么
JoyID Passkey 钱包是结合 Passkey 密钥管理的加密钱包。
在 Nervos 的生态系统中,JoyID 被设计为一个跨链、去中心化的身份认证和管理工具,使用户可以安全地存储和使用加密货币以及其他去中心化应用。
2.5.2 主要功能
无需密码和助记词:通过生物识别即可访问钱包,实现无私钥登陆。
支持 BTC 和 Fiber Network:用户可以更快、更高效地交易,并且可以帮助拓展 CKB 的应用场景。
多链支持:不仅支持 BTC 和 Nervos CKB,JoyID 也支持 ETH 和一系列 EVM 链。
通过 Passkey 获得额外安全性:Passkey 通过与硬件设备相关联的 secp256r1 签名生成区块链交易所需的 secp256k1 签名,因为 secp256r1 签名不会在交易中暴露只会通过生物信息生成,所以给钱包增加了额外的安全性。
安全和易用的结合:
安全性:硬钱包 > Passkey钱包 > 软件非托管钱包 > 托管钱包易用性:Passkey钱包 > 托管钱包 > 软件非托管钱包 > 硬件钱包
2.5.3 JoyID 在稳定币支付中的角色
JoyID 作为用户接口,允许用户在 CKB 网络中进行稳定币支付,管理他们的 RUSD 资产和支付通道。
JoyID 通过其优秀的能力组合(安全性,易用性,多链支持),可以进一步赋能基于 CKB 的稳定币支付与其他交易。
3. 支付链路
支付发起与接受:用户可以通过 JoyID 钱包开设支付通道,进行稳定币支付。稳定币发行:RGB++ 和 Stable++ 协同工作,Stable++ 通过超额抵押 BTC 或 CKB 生成 RUSD,然后通过 RGB++ 在链上发行。跨链交易和流通:RGB++ 通过同构绑定和 Leap,将 BTC 链(以及其他 UTXO 链)和 CKB 链无缝连接,允许 RUSD 以及其他资产在多个 UTXO 链上进行跨链操作,扩展了资产流通范围 ,并保证数据同步。交易记录与结算:Fiber Network 与 CKB 的结合,支持了链下支付的快速处理,并且 CKB 作为 L1链保障了交易的最终结算,确保所有交易状态和资产的安全性。复杂交易的基础:CKB 的虚拟机和 Cell 模型提供智能合约的执行环境,支持复杂的支付条件和自定义合约逻辑,同时也保证了 Stable++ 协议的去中心化。