2月18日中午,我们在哔哩哔哩和大家介绍了一款非常神奇的,可以让 CKB 随处可用的产品:ckb.pw。之所以说它可以让 CKB 随处可用,是因为根据 CKB 的一些设计,在 ckb.pw 中,我们可以用以太坊地址接收 CKB,而且,接收的 CKB 并不是 ERC-20 代币,而是 CKB 链上的原生代币。不仅如此,在未来该产品还将支持向比特币、EOS、Tron 等任意主流公链地址收发 CKB。
认真的吗?听到这里,小编已经开始怀疑起自己的耳朵了。于是端起了小板凳,来到 Nervos 哔哩哔哩直播间一探究竟。视频连接
https://v.qq.com/x/page/b3068yjp29o.html
原来,开发这款神奇产品的团队是雷兔(Lay2),用一句话来形容团队主理人 Frank 的话,那就是:创过业的北大计算机学霸才是好的产品经理。Frank 在三年前投身到区块链的创业行列中,做过闪电网络、状态通道等相关产品,在遇到 CKB 之后,便一发不可收拾,成为 Nervos 各大社区中金句频出的活跃担当。
在 Nervos 技术社区「Don't trust, just 怼」的氛围熏陶下,Frank 对 CKB 的研究也越来越深。在经过多个日夜的琢磨,他准备先在 lock script 上搞些事情。
因为以太坊签名用的是跟 CKB 一样的 secp256k1,但是它们两个的哈希函数却不同,CKB 用的是 blake2b,以太坊用的是 keccak256,Frank 发现只要把后者部署到 CKB 上,就可以在 lock script 里调用 keccak256 去计算哈希,而计算出的哈希配合签名就可以还原出以太地址对应的 pubkey,再跟 args 传进来的 ETH 地址(pubkey 后二十个字节)比对,即可验证以太坊私钥的签名。
是不是很神奇?为什么在 CKB 上可以变了法的去玩耍 lock script?如果是在以太坊上,只能去用 keccak256 算法,想要更换哈希算法,就必须通过硬分叉的方式实现。但是在 CKB 上就是另一番光景了。因为 CKB 的灵活性,可以让它验证任何逻辑的 lock script,不论你是想用 blake2b 还是 keccak256,更换哈希算法只需要部署一个合约。
所以,CKB 可以从底层支持不同的签名算法,这也就意味着不同公链上开发出的协议都可以直接或者间接的用在 CKB 上,而不需要对方对 CKB 做任何的适配。我们可以直接利用其他公链现成的基础设施和协议,CKB 又重新定义了区块链里的「拿来主义」。
那么另一个问题又来了,如何把以太坊地址映射为 CKB 地址呢?CKB 的地址分两种,短地址和长地址,以太坊的地址映射过来之后,就会是一个 CKB 长地址,自带整个 lock script,这事实上是把以太坊地址当作参数传给了 lock script,然后用上面的逻辑验签解锁。
用 Frank 的话来说,full address 类似于「全址」,lite address 就类似于脱址。脱址更健康,但是全址更香。
如果上面的讲解过于具体的话,那么我们再用两个通俗的类比再来介绍一下 ckb.pw:
ckb.pw 做到了什么?
To 小白版:
自从 iPhone 引领 sim 卡变革之后,市面上出现了三种尺寸的 sim 卡,且互相不兼容,当时我们多么希望能够拥有一个「sim 卡三件套」,能够自由转换,随意插拔。而 ckb.pw 就像是区块链里的 sim 卡三件套,我到了哪条链上都可以自我适配,且正常使用。
To 矿工版:
可以理解为,通过 ckb.pw,有一种币所有的 ASIC 矿机都可以挖。
ckb.pw 为什么能做到?
To 小白版:
比特币就像计算器,只能处理一些简单的算术问题;以太坊等公链就像 IOS 系统,必须要系统支持开放接口,第三方才可以在系统上建立应用;CKB 就像安卓系统,系统可以为上层应用提供极大的灵活性,所有的应用都可以根据自身的需求,做自定义的设计,这也是为什么 ckb.pw 能做到这些功能的原因。
To 矿工版:
ASIC 矿机只能挖一种币,而 FPGA 可以根据需要更换不同的算法,挖不同的币种。CKB 就像矿机中的 FPGA,可以根据不同的需求做不同的开发和设计。
事实上,Frank 目前在做的是 pw-sdk,ckb.pw 是 pw-sdk 的第一款产品。而 ckb.pw 刚面世不久,就已经引起了很多区块链 OG 的注意,很多小伙伴因为它的无限可能而彻夜未眠。
Nervos 用近两年的时间打造了安全且灵活的底层基础设施,现在我们希望有更多的开发者在 CKB 上创造出不一样的惊喜,我们希望可以用开发者们的切身体验来告诉大家:在 CKB 上,可以开的脑洞还有很多,你怎么知道你的奇思妙想不会火?