作者:Faust & 雾月,BTCEden
2024年7月,CKB官宣了RGB++ Layer的正式启动,标志着此前发布的RGB++协议彻底从理论落地为工程化产物,并将引入更细致、更实践的应用场景。仰仗着在BTC与CKB、Cardano等泛UTXO公链之间构建BTCFi生态的愿景,RGB++ Layer很快成为了人们关注的焦点。
概括来说,RGB++ Layer以RGB++协议为基础,应用同构绑定和Leap技术,为RGB++原生资产或铭文/符文在BTC、CKB、Cardano等UTXO型公链之间提供“无需跨链桥”的全链交互体验;应用CKB图灵完备的智能合约环境,为比特币构建从资产发行到完成复杂DeFi功用的必要条件。
且由于RGB++ Layer背靠CKB完备的账户笼统生态,兼容比特币账户和钱包,能够为比特币用户发明良好的体验,为BTCFi的大范围采用铺平道路。
下文中,让我们深化了解RGB++ Layer的大致工作原理和特性,瞻望其为BTCFi生态带来的改动。由于其理论基础树立在RGB++协议之上,我们将先从协议自身开端讲起。
RGB++协议:RGB++ Layer的理论基石
RGB++协议发布于今年1月,其中心理念是用CKB链上考证的方式,替代RGB协议的“客户端考证”,实质是把CKB当做去中心化的索引器,将数据存储、资产来源考证等任务交由CKB完成,由后者作为RGB协议的考证层和DA层,以处置RGB协议在UX上的弊病、不利于支持Defi的缺陷。
与“一次性封装”的概念相呼应,RGB++引入了同构绑定的概念,以CKB链上的拓展型UTXO——Cell作为铭文/符文类资产的数据载体,再令Cell与比特币/Cardano/Liquid链上的UTXO树立绑定关系,最终让RGB++资产继承比特币等UTXO公链的安全性,以避免发作双重支付。
这种“绑定XXX以继承XXX安全性”的思绪,相似于理想中银行账户要绑定手机号和身份证。
举个例子,假定Alice要给BOB转去一些TEST代币,她能够生成一个声明,将存储TEST资产信息的Cell与Bob的比特币UTXO绑定起来。假如Bob打算再把TEST代币转给他人,绑定的比特币UTXO也要发作转移。
这样一来,承载RGB++资产数据的Cell,和比特币UTXO之间有1对1绑定的关系,只需比特币UTXO没有被双重消费,绑定的RGB++资产就不会被双花。
说到RGB++ Layer,它实践是对RGB++协议中止工程化落地的产物,其主打的两大特性,包括同构绑定和Leap无桥跨链,下面让我们深化了解下同构绑定和Leap的技术完成原理。
同构绑定与Leap:BTCFi的资产发行与无桥跨链层
为了真正了解同构绑定和Leap的思绪,我们先简单说下CKB的Cell模型。
Cell实质是拓展型UTXO,有LockScript、TypeScript、Data等多个字段,LockScript的作用和比特币的锁定脚本相似,用于权限考证;TypeScript相似于智能合约代码,Data则用于寄存资产数据。
假如你要在CKB链上发行RGB++资产,首先要创建一个Cell,并在相关字段里写好代币符号和合约代码,比如代币符号为TEST。之后你能够把这些Cell拆解,并分发给很多人,就和比特币UTXO的拆分和转移方式一样。
由于Cell与比特币UTXO在结构上相似,且CKB能够兼容比特币签名算法,用户能够用比特币钱包支配CKB链上资产。假定你具有某个Cell,你能够对锁定脚本中止设置,使解锁条件与比特币UTXO的解锁条件分歧,这样就能够用比特币账户私钥支配CKB链上的Cell。
上述特性在CKB、BTC和其他UTXO公链之间也能够完成,比如你也能够用Cardano账户改写CKB链上的资产数据,RGB++资产的控制权也能够从BTC账户转移到Cardano账户,而无需跨链桥。下面我们将对这个话题展开解释。
前面我们曾提到,RGB++资产需求绑定比特币、Cardano、Liquid等公链上的UTXO,相似于理想中银行账户要绑定手机号和身份证;其次,RGB++资产自身只是一堆数据,这些数据需求有数据库之类的存储媒介,CKB链上的Cell能够充任其数据库。
然后我们能够在权限考证这块做设置,允许人们用BTC、Cardano等不同公链的账户,去改写CKB链上的RGB++资产数据。这便是同构绑定的中心目标。
RGB++ Layer提出的“Leap”和无桥跨链,其实是基于同构绑定技术,对RGB++资产绑定的UTXO中止“换绑”,比如你的资产之前绑定了比特币UTXO,往常能够换绑到Cardano、Liquid、Fuel等链上的UTXO,这样就能够把资产控制权限从BTC账户转移到Cardano账户上。
从用户感知的角度看,这其实等价于资产跨链,CKB充任了相似于索引器和数据库的角色。但不同于传统的跨链方式,“Leap”只改动资产数据的运用权限,数据自身还是存储在CKB链上的,这种方式比Lock-Mint方式更简约,也免去了对映射资产合约的依赖。
以上只是同构绑定和Leap的产品效果阐明。下面让我们经过细致案例,来了解它们的技术完成思绪。
同构绑定的完成方式
让我们来了解下同构绑定的技术完成方式。假定Alice有100枚TEST代币,数据寄存在Cell#0 中,与比特币链上的UTXO#0 有绑定关系。
往常,Alice要把40枚TEST代币转给Bob。首先,她要把Cell#0拆分为两个新的Cell,其中Cell#1包含40枚TEST代币,转让给Bob;Cell#2包含60枚TEST,还是由Alice自己控制。
在这个过程中,Cell#0 绑定的BTC UTXO#0,也要拆分为UTXO#1 和UTXO#2,分别与Cell#1 和Cell#2绑定。当Alice把Cell#1转让给Bob时,能够一键操作把BTC UTXO#1也转让给Bob,在CKB和BTC链上完成同步买卖。
我们能够在此深度了解下同构绑定。其实这个概念的中心意义在于,CKB的Cell、Cardano的eUTXO和BTC UTXO都是UTXO模型,且CKB兼容比特币/Cardano签名算法,后两条链上发作的UTXO的合成和转移,也能够1:1同步给CKB链上的Cell。
这样一来,当我们对绑定着RGB++资产的BTC UTXO中止操作时,能够把操作结果同步给CKB链上的Cell,就似乎实体和影子的关系一样。另外我们也要留意,RGB++资产关联了BTC UTXO和CKB Cell这两个实体,两者都是RGB++资产的组成部分,缺一不可。
假如我们调查上面提到的Alice给Bob转账的案例,其大致流程为:
1. Alice在本地结构一笔CKB买卖数据(先不上链),这笔买卖指明将记载资产数据的Cell#0销毁,生成Cell#1送给Bob,Cell#2留给自己;
2. Alice在本地生成一个声明,把Cell#1绑定到BTC UTXO#1,把Cell#2绑定到BTC UTXO#2,并把Cell#1和BTC UTXO#1都送给Bob;
3.之后,Alice在本地生成一个Commitment(相似于hash),对应的原始内容包含第2步中的声明+第1步中生成CKB买卖数据。Commitment的数据之后要被记载到比特币链上;
4.Alice在比特币链上发起买卖,把UTXO#0销毁,生成UTXO#1送给Bob,UTXO#2留给自己,并把Commitment以OP_Return操作码的方式写到比特币链上;
5.第4步完成后,再将第1步生成的CKB买卖发送至CKB链上。
上面省略了一些比较复杂的细节。事实上,当Alice把自己的RGB++资产转移给Bob时,要先中止复杂的身份证明,证明自己的确是Cell#0 的主人。这里面触及的事情,包括:
1.证明Cell#0 和BTCUTXO#0的确有绑定关系;
2.Alice证明自己是Cell#0和BTC UTXO#0的实践控制者。
要留意,写有RGB++资产数据的Cell和比特币UTXO能够被比特币账户同步改写,整个交互流程中,经过比特币账户即可完成一键式操作。上述场景不只限于比特币和CKB之间的同构绑定,能够拓展到Cardano、Liquid、莱特币等宽广的范畴,想象空间还是很大的。
Leap的完成原理与支持场景
前面我们曾提到,Leap功用实践就是切换RGB++资产绑定的UTXO,比如将其从比特币换绑到Cardano,之后就能够用Cardano账户控制RGB++资产。尔后你还能够在Cardano链上转账,把控制RGB++资产的UTXO拆分转移给更多人。
经过这种方式,RGB++资产能够在多条UTXO公链上转移和分发,但却能够绕开传统跨链桥Lock-Mint的方式。在这个过程中,需求由CKB公链充任相似于索引器的角色,见证并处置Leap央求。
假定你要把BTC绑定的RGB++资产转移给Cardano账户,最中心的几步无外乎:
1. 在比特币链上发布Commitment,声明将BTC UTXO绑定的Cell解绑;
2. 在Cardano链上发布Commitment,声明将Cell绑定至Cardano UTXO;
3. 变卦Cell的锁定脚本,将解锁条件关联的比特币UTXO,变为Cardano上的eUTXO。
我们能够留意到,在这整个流程中,RGB++资产数据依然寄存在CKB链上,只是把解锁条件关联的比特币UTXO,变卦为Cardano链上的eUTXO。当然细致的执行流程比上面说的复杂不少,在此不赘述。
此外在leap计划中有一个隐性前提,即CKB公链作为一种第三方的见证人、索引以及DA设备。作为公链其可信度要远超传统跨链桥的MPC和多签等方式。
其实基于Leap功用还能够完成很有意义的场景,比如我们能够完成“全链买卖”。假定我们横跨比特币、Cardano和CKB搭建起索引器,构建一个买卖平台,允许买家和卖家买卖RGB++资产,买家能够把自己的比特币转给卖家,然后用自己的Cardano账户接纳RGB++资产。
这个过程中,RGB++资产的数据还是记载在Cell中,但这个Cell会被转移到买家手中,然后其解锁权限从卖家的比特币UTXO变卦为买家的Cardano eUTXO。
Wrapper
固然Leap功用关于RGB++资产是圆满的,但还是有一些瓶颈:
关于比特币和Cardano而言,RGB++资产实质是基于OP_RETURN操作码的铭文/符文/染色币。这些公链节点无法感知到RGB++资产的存在,而CKB实践上是以索引器的身份从中参与谐和。也就是说,关于比特币和Cardano而言,RGB++ Layer主要支持的是铭文/符文/染色币的Leap,而不是BTC、ADA等原生资产的跨链。
对此,RGB++ Layer官方引入了Wrapper,能够简单了解为一种基于狡诈证明和超额质押的桥。以rBTC wrapper为例,它将BTC桥接到RGB++ Layer,在RGB++ Layer上运转的一组智能合约会监控桥的守护者。假如守护者有歹意行为,他们的抵押物将被slash。假如守护者串通偷盗锁定的BTC,rBTC持有者能够取得全额赔偿。
在分离了Leap和Wrapper后,BTCFi生态中的各种资产如RGB++原生资产、BRC20、ARC20、符文等都能够跨到其他层或公链上去。
下图是应用LeapX的运用流程的一部分,能够看到它简直支持了一切BTCFi主流资产到不同生态体系的互操作性。并且对不同发行方式的资产都有相应的相应的处置流程,有一部分用的wrapper,有一部分用的是leap。
CKB-VM:BTCFi的智能合约引擎
上面我们主要解释了RGB++ Layer的同构绑定与Leap概念。下面让我们调查其他的要点。
在传统的BTCFi中,由于缺乏智能合约的支持,只能完成一些比较简单的Dapp,有些完成办法会有一定中心化风险,有些则比较蠢笨不灵活。
为了实往常区块链上可用的智能合约层,CKB为RGB++ Layer提供了CKB-VM,任何能够支持RISC-V虚拟机的编程言语都能够用于在RGB++ Layer上中止合约开发。开发者能够运用他们偏好的工具和言语,在统一的智能合约框架和执行环境下,完成高效、安全的智能合约的开发与部署。
以下是一段用C言语完成的CKB中用户自定义代币UDT的transfer办法。能够看到除了言语不同,其基础逻辑和普通的代币都是相同的。而由于RISC-V有普遍的言语和编译器支持,对开发者的智能合约开发入门请求就比较低,我们能够很轻松的用JavaScript、Rust、Go、Java 和 Ruby把这段逻辑重写出来,而非必需学习某种DSL言语才能够编写合约。
当然,言语只是编程的一个方面,细致的智能合约框架的学习是不可避免的。
原生AA生态:无缝衔接BTC与RGB++
最后让我们再简单了解下RGB++ Layer背后的原生AA与账户笼统生态。由于BTCFi实质是为原生的比特币资产提供多样性的Defi体验,能否兼容主流比特币钱包将会是BTCFi周边设备需求思索的重要要素,而RGB++ Layer直接复用了CKB的原生AA计划,能够在可开发者侧和用户侧都尽量与BTC和Cardano等重要的UTXO公链兼容。
在RGB++ Layer中,用户能够运用不同的签名算法中止鉴权。如,用户能够运用BTC、Cardano以至WebAuthn等账户、钱包或鉴权方式,直接支配RGB++ Layer上的资产。
我们以下面的钱包中间件CCC为例,它能够为钱包和dApp提供各种公链对CKB的可操作性。
下图是CCC的衔接窗口。我们能够看到,它支持Unisat和Metamask等主流钱包入口。
另一个例子是WebAuthn的完成,CKB生态钱包JoyID就是典型代表。经过 JoyID,用户能够直接经过生物辨认(如指纹或面部辨认)方式中止身份考证,完成无缝且高安全性的登录和身份管理。
能够说,同构绑定和Leap能够成立的基础就在于RGB++ Layer具有完备的原生AA计划,能够很好的兼容其他公链的账户规范,这种特性不但便于支持一些关键场景,同时也能够为UX扫清障碍。
总结
在上文中,我们对RGB++ Layer的全貌中止了调查,它能够作为铭文/符文/染色币等各种Memecoin的重要基础设备,完成全链交互的场景。而RGB++ Layer基于RiscV构建的智能合约执行环境,能够为BTCFi所需求的复杂业务逻辑发明土壤。
碍于篇幅所限,本文只是对RGB++ Layer中心技术的简单科普,并没有对许多复杂的细节中止系统性的科普。未来我们将持续关注RGB++ Layer的停顿,对该项目相关的一系列技术计划中止更为透彻和深度的解析,大家敬请等候!