Very good topic.
Proof of Buying brings L2 consensus closer to mining than staking: participation has a real, irreversible cost on L1, not just locked capital.
That direct economic link to L1 security meaningfully changes the dynamics compared to PoS.
The key question is how PoB can evolve into a sustainable long-term value and utility mechanism for CKB.
我又学习以及理解了2天。这个PoB模型好像真的有且只有CKB可以用:
PoB + Fiber =用 PoW L1 代币CKB(能量结晶)作为成本,通过链下即时支付状态通道表达出块意图,在 L2 侧完成高频、低延迟的随机出块竞争,再把结果最终锚定回 L1。
实现:能量传递+价值捕获
这样理解对么?
poB是最适合在CKB 上做的,但并不是唯一的。
之所以是poB最适合CKB,首先是因为CKB天生就是为L2服务的L1, 其次是因为ckb有足够强的脚本编程能力(BTC就没有) 并且是基于POW这种 trustless极高的Layer1.
如果你想在其他L1上做poB L2也是可以的,但要考量清楚,他们的L1是否足够可信。因为poB是有信任假设的,它是基于L1的安全来做自己的安全基石。当你选择的L1不够安全的时候, poB的安全风险也是显而易见的
3 Likes
Fai
26
写的好
,也确实挺适合CKB的。大咖们多探讨,希望把CKB的初衷L1+L2中的L2方案丰富起来。
补,如何解决L2出块间隙比L1短的情况下的出块共识问题
前面我们提及了proof of buy要在出块共识的时候通过 VDF + 支付L1 token的方式来竞选出块权, 但我没有解释一个问题,如何支付L1 token?
我们都知道, L2的出块间隔 跟L1往往不同, 如果L2比L1出块更慢还好, 倘若L2出块比L1更快呢? 此时,如果矿工支付L1 token来竞选高度为100的L2区块,那么当发起了一笔L1 token的转账之后,L2 的第100个区块已经要出块了,而L1的出块还早,这就导致你这个支付token的交易在L1上还未出块呢, L2已经出块了。 此时L2看不到此时L1 token谁支付的多,它便不知道当前块高的出块权应该给谁。
该问题如果不解决,那么使用proof of buy的L2的出块时长就必然会受制于L1的出块时长。 最终导致L2为求更好的解决方案不得不重回 pos + BFT之类的共识(比如 stacks的poX)
预支付
针对此类问题,proof of buy可启用预支付的方式,即矿工们可以提前一次性 为未来 N个区块 总共支付一笔L1 token。 然后每次L2出块时从中声明出部分额度来表示自己愿意为此次出块所支付的L1 token数量。具体流程如下:
从创始区块开始,矿工先在L1上隐私支付一笔token (我们假设其token数量是一个密文承诺,记作 A) 给proof of buy指定的地址。这之后, 每次L2出块的时候, 矿工在本地生成VDF Output的同时,也需要声明自己要为该区块支付的一笔L1 token数量,记作 a_n(a_n为明文数字,n表示块高。不需要在L2上真正支付,因为之前已经在L1上支付过了) 并生成一个zk proof,证明 a_0 + a_1 + … + a_n <= A, 此处表示自己已为该L2区块预支付过token了且金额足以支付从0到n的这些区块。
其他L2矿工拿到 (VDF_output,a_n, zk_proof) 之后, 根据L1上的A来验证 zk_proof,证明通过之后,将 VDF_output 和 a_n 代入计算中 来算出值 以得出该高度谁最终赢得出块权。
3 Likes