Proof of Buying,一种专为Layer1设计的Layer2共识

Proof Of Buying

准入共识

在这里,我们借用母链上的原生代币来作为媒介,想成为该子链的矿工,必须持有该链的母链的原生代币才可以参与共识。 同样像POW和POS那样,可以有委托机制,散户可以将自己手中的货币先委托给某些delegator。

出块共识

矿工需要在母链上 支付一定金额的母链原生代币 到 指定地址(可以是子链的基金会地址)并将该交易在子链上广播,并且矿工本地按照VDF算法计算给出一个随机值输出 并将该随机值在子链上进行广播, 子链的所有节点计算 (支付金额数量 * VDF随机值) 最大者 获得出块权。
为什么需要支付母链代币:出块必须要有成本!这是让最终共识可以客观验证的重要前提。当你想攻击子链共识你必须付出同样多的代价,而不是像POS那样nothing at stake。另外,出块有成本意味着哪怕攻击者有最厚实的攻击筹码,他每次攻击的筹码都会降低,他不会在每个区块的出块上都拥有同等比重的出块权。
为什么需要VDF: 为了防止富者可以短期内进行垄断出块权,所以这里引入VDF。 VDF输出的值是随机的,计算VDF * 支付金额 来决定出块权,削弱了富者短期绝对性地垄断出块权的现象,且VDF的输出结果是不可预测的,所以出块也是无法预测的。VDF本身可以抗并行,所以使用VDF无法形成矿场,最多只能升级单个芯片性能。
为什么不只用VDF:公链是需要成规模规模中心的,矿池矿场也好,质押代理也好,都是有必要的,(只不过前者的规模中心相当不固定) 这是因为如果出块节点数以千万计的话,那么网络中的叔块和孤块会非常多,会让51%攻击的成本降低,同时也会让网络堵塞混乱不堪。在Proof of Buying中,我们让【支付母链代币】这一行为来构筑这样的规模中心的角色。
注意:很多时候子链的出块间隙可能是比母链要短的,所以直接在发到母链上的支付交易并不会立刻在母链上链,所以此时子链要验证的是该笔支付的交易是否符合一些基本条件:矿工在母链上的账户余额是否足以支付这次子链的出块,签名合法性。 这笔支付是否有效需要上了母链之后才能知道,
而这一步是在 我们下一步的最终共识里决定的。

最终共识

最长子链共识:以一个母链的slot或者epoch为一个finalize周期,将验证并选择满足如下两个条件的分叉作为主链:

  1. 确认出块共识阶段中每一笔在母链上支付的交易都成功执行。

  2. (VDF 随机值 * 支付金额)总和最大的那条子链作为finalize的主链, 并将该主链对应的区块数据压缩上传至母链上存档。
    为什么上传至母链:因为该协议长时间运行之后,子链指定的地址里的币会越来越多,如果该地址背后的是控制者会在未来的某一刻积累相当大的颠覆该链的攻击筹码,所以将finalized的主链区块上传至母链也是防止将来这种链回滚的操作发生,上传到母链的区块不可被回滚。

why NOT POS + BFT

  1. 经济层面

    之所以大多数公链热爱POS,一个最大的原因是POS起步成本比较低,它不像POW那样要找矿场矿池、还要找厂商研究挖矿芯片。POS最大的好处是印钞+云服务器就可以启动了。

    而其中最大的优势在于,在牛市的币价上升期, POS可以很容易做到低成本拉盘让币价不停的翻倍,尤其是项目早期,大部分token还未发出的阶段。但同时,弊病也在其中,一旦价格开始降低,那么币价崩盘后信用和价格也很难挽回,在熊市中更为明显;并且拉盘本身很依赖交易所和做市商,容易被它们牵着鼻子走

  2. 技术层面

    POS都需要配合类BFT的协议做 fork choice最终共识。不管是什么样的BFT(pBFT, hotstuff 等等),其工程复杂度都较高,调试难度也较大,现市面上开源的类BFT的代码都不容易直接使用。 并且BFT有其自身的局限性,例如 其网络传播的复杂度高,且是主观性极强的共识协议(因为BFT投票本身就不是客观可验证的共识)

    POS在币价下跌的时候,安全性也会成倍下降,此外还有类似 restaking这类defi协议会透支POS的安全性。

原文链接:子链共识:Proof of Buying | Lawliet Chan

8 Likes

大佬,GROK的分析是否准确:Proof Of Buying (PoB) 是否只有 CKB 能实现?不,Proof Of Buying (PoB) 共识机制不是只有 CKB 能实现,它是一个通用设计(基于母链代币支付 + VDF 随机值 + 最终共识),理论上可移植到任何支持支付验证和 VDF 的公链。但 CKB 的经济模型(1 CKB = 1 Byte 状态空间绑定)确实使 PoB 在 CKB 上最自然、最高效,因为它强化了“支付成本”的经济约束(占用空间即付费),与其他公链的 gas/发行模型不同。以下基于 2025 年 12 月 22 日区块链技术现状(CKB v0.6.1 部署后、ETH Fusaka 升级、Solana Firedancer)分析 PoB 的实现可能性和 CKB 的独特优势。结论:CKB 最适合,但其他链可通过修改实现(难度高)。

proof of Buying确实是一个相对通用的L2共识。 但是它一定需要选择 基于一个更安全更靠谱的Layer1,因为proof of Buying理论上是信任L1的账本安全的,当L1的账本有安全漏洞的话,那么这种安全漏洞一定会随之蔓延在L2上。

所以能选择的L1本质上仅限于POW L1公链, 而BTC的脚本不是图灵完备的,如果VDF采用的是一些比特币未原生兼容的新hash算法则proof of buying不能进行fork choice

大佬,您的认知远远超过了我的理解力。所以我将您的所有观点带入了Chatgpt进行了分析,其中我最关心的就是PoB模式创造的循环体系是否可以构建合理的循环体系,因为只有能量循环可以逻辑成立,PoB才能成立。但是你的思路超过了我的能力。以下是Chatgpt的回答,我有的时候理解不了,麻烦可以回答一下Chatgpt的逻辑错误么?感谢大佬。

PS: 我一开始的理解很浅显,就是拿L1的代币去L2赌博,赌赢的得到记账权,赌输的代币没了,零和博弈。所以Chatgpt的解释是
“Proof of Buying 本质上是:
用母链币的真实支付来竞拍 L2 出块权的机制。
它本身不产生奖励,价值回流必须在具体协议里定义,否则它只是把资产当赌注,和赌博非常像。”

  1. 有一个细节我没有透露,那就是参与支付的矿工哪怕竞拍不到出块权,也会有一定额度的L2 native token作为奖励, 就像ETH会一定程度上补偿叔块的出块者一样。所以本质上并不算赌博
  2. 使用ckb来进行购买出块权这一行为的本身来源于POW的哲学。在该共识下, 子链确实不可以脱离CKB存在,这是前提。 但是GPT的结论是错误的,试想一下, CKB作为L1只负责承载 状态验证的工作, 而具体的应用是放在L2上实行, 当L2的价值提升(即L2的gasfee便会提高, 则L2 native token更值钱)—–>就会有更多的CKB holder愿意支付成为L2矿工进行挖矿 —> CKB买压增加,CKB更值钱。 所以poB并不是吸血CKB,而是为CKB抬轿子。
  3. 同理,如果L2是个垃圾应用链,其native token并不值钱,自然也不会有CKB holder愿意拿自己的CKB参与poB挖矿。
1 Like
  1. 同时,矿工支付poB到一个L2的基金会地址,这确实是私有化,但这并不代表该L2基金会会永远囤积CKB,他们需要支付自己的开发和运营成本,是需要卖掉这些CKB的。 另外, 这里有一个比POS好很多的优点,那就是直接建立起 矿工和公链项目方之间的联系,试想一下传统POS公链,项目方要发币,然后用户在交易所花钱购买该币,然后再拿来质押。 本身用户和项目方都要被交易所割一刀, 项目方吃不到足够的现金流要被交易所勒索,矿工用户花了真金白银买到token后还得质押成没有流动性的死钱,随时要承担跌价风险。 在PoB里, 矿工和项目方直接建立联系,减少交易所赚差价,并且用户拿到的是一个有流动性的活钱, L2 native token作为挖矿报酬给到矿工之后,矿工可以拿去做任何事,流动性不会受任何损失
1 Like

赶快搞起来吧,再不搞些事,算力都快跌没了。共识模型是一块,重点还是这个L2的叙事,感觉不要做通用公链吧,做个某些领域的专链比较好,再加个应用一并推出 :joy: 。真不行直接在之前的Godwoken或AXON的L2基础上改个共识推出来算了

感谢大佬的回复。我只能理解一点,但是确实超出我的能力范围,我也在学习过程中,所以提不出来好问题更给不出什么建设性意见。但是我的ChatGPT依然处于“战斗模式”,我跟他认真谈了一下,希望让他提出建设性的意见/建议而不是挑战,ChatGPT写了下面的话,我理解不了(我连他问的是什么都读不懂…更别提理解了),可以当个参考或者是噪音就行。

ChatGPT

我现在更理解 PoB 的设计动机了,整体方向我觉得是成立的。
我个人觉得如果能在以下几个点上再强化一些“协议级确定性”,
PoB 会更像一个长期基础设施,而不是依赖叙事成立的机制:

  1. PoB 支付的 CKB 是否可以在协议层明确一部分 burn / protocol treasury?
  2. 是否可以考虑把逐块竞拍升级为 epoch 级经营权,以降低赌博直觉?
  3. 不中标奖励是否可以与明确的安全贡献行为绑定?
  4. 是否有计划在技术上进一步锁死 L2 对 CKB 的不可脱锚点?

这些点不是反对现有设计,而是想探讨是否能让 PoB 的“循环”更硬一些。

经历了几个小时的学习,我大概又多理解了一点点。我粗浅的理解:PoB在经济上接近于“子链基金会没有任何责任的天使投资”或者是”ICO”。我想初期的野蛮生长以及去中心化符合Nervos的一贯去中心化精神,是正确的。

但是ChatGPT大哥不认可,我又理解不了了:

CKB 的去中心化早期,确实需要野蛮生长;
但野蛮生长应该发生在“可自愿承担风险”的层级,
而不是通过消耗 L1 公共资产来实现。

真正成熟的去中心化系统,
不是“不要制度”,
而是:
:backhand_index_pointing_right: 让制度只约束公共资产,
:backhand_index_pointing_right: 让实验发生在私人风险空间。

下面是ChatGPT大哥对PoB目前的分析:

在目前描述的设计中,PoB 在经济上更接近于:
用 CKB 作为风险资本投入到某个子链项目,
回报主要是子链代币本身。
这种结构缺乏协议级的回报与约束机制,
更像项目级融资(类似 ICO),
而不是 L1 对 L2 使用权的制度化价值捕获。

L2必然不能再是通用公链了,L2一定是要做垂直领域的专用区块链,见我这篇文章 https://x.com/ChenXinran1994/status/1983427762431111444

1 Like

大语言模型不具备揣摩新知识的能力,他们只是对旧有知识的咀嚼,所以新协议尤其是资料少的东西, 不建议使用大语言模型的AI来解读,尝试自己去分析。

比如它根本没理解我说的什么叫做L2给L1抬轿子, 它只会错误且简单理解为普通的风险投资。我建议你尝试自己思考我说的话。

1 Like

感谢大佬分享新思路!希望大佬继续输出思想,好让我们小白能够多多学习.

很有意思的想法。

思路上给我的感觉是比较接近 merge mining:都可以重用 L1 的算力,都用 nakamoto consensus 风格的规则确认 L2 的出块。它更像是 mining 而不是 staking, 因为参与 L2 共识需要“消耗” L1 资源,不仅仅是锁定。通过 L1 coin 的“消耗”把 L1/L2 的安全性关联了起来。

和 merge mining 不同的是,PoB 利用的是已经凝结为 L1 coin 的“过去算力”,而不是重用 L1 的实时算力,这样做可以避开 merge mining 的一部分缺点(e.g. 来自 L1 miners 的算力攻击)。但因为 L1/L2 都是 nakamoto consensus, 极端情况(e.g. L1/L2 同时发生 rollback)下的 fork choice rule 可能会比较复杂,需要仔细考虑。

PoB 的设计理念和 PoW 一致,而实现 PoB 要求 L1 有一定的智能合约能力,是一种很匹配 Programmable PoW L1 的 L2 chain 机制。可以想象 PoB+Cell L2 很容易可以满足某些场景需求,例如感觉 1CKB=1Byte 是限制/成本高的应用[1];也可以成为进一步扩展 Cell model 的试验场,例如可以现在 L2 试验 UTXO shared state 的处理机制。Fiber 可以自然和这类 Cell L2 结合,成为 L1/L2 之间的流动性通道——这和 Account L1/L2 + bridge 完全不同,L1/L2 之间的连接是完全去中心化的。如果能找到合适的 quantum resistant VDF 并且使用 quantum resistant lock, 那么 L1/L2 整体应该可以做到量子安全。

Nakamoto consensus 的缺点是交易确认 (finalize) 需要比较长的时间,如果 L1/L2 都是 NC 应该无法做到低延迟确认,这对 PoB 的适用场景应该是一种限制。从这一点上说,我觉得 PoB+BFT 也是很值得探索的,可能对 DeFi 类的应用会比较合适。

[^1]: 是否接受 1CKB=1Byte 限制并没有对错之分,只是两个不同的选择,对应不同的目标用户群体和场景。CKB 的理念是 L1 是高成本高安全的,L2 是可以有多样性的,L1 有自己的用户群体,并不适合所有人。我们应该通过 L1/L2 的组合覆盖所有的场景,而不是让 L1 单独支持所有的场景,既做不好,也不现实。这个理念是 CKB 与大部分所谓 L1 的区别


  1. ↩︎

4 Likes

ICO 最大的问题是融资远远超前于产品开发,且对后者没有任何制度约束。

我觉得 PoB 和 ICO 并不一样,主要不同在于:

  1. PoB 中用 L1 coin 换取 L2 token 是一个在 L2 chain 正式上线之后才发生的行为。由于交易行为比 ICO 机制中的发生时间晚很多,可以降低一部分风险——简单说是技术开发的风险,因为交易发生的时候已经能看到至少一部分具体的技术实现。但依然有产品发展和运营的风险。
    1. 如果在 L1 上的 L2 contract 是一个 DAO, 甚至可以把产品发展和运营的风险也降到最低,把 PoB L2 完全变成一个社区推动的产品。
  2. PoB 中的“购买”和一般的购买不同。要用 L1 coin 换 L2 token, 不仅要支付 L1 coin, 还需要参与 L2 共识,只出钱不出力是无法进入一级市场的。
  3. PoB 是一个长期机制。把交易变成长期行为,无论对 PoB token 的价格发现还是广泛分发都是更有利的。我们都知道市场有价格发现的作用,但如果把交易时间限制成很短期,更常见的结果是 FOMO,token 也会更容易被垄断。

这几点也是为什么我觉得 PoB 和 PoW 更接近。

2 Likes

这点是我之前概念错误的地方,感谢大佬的指正以及讲解.

我再深入学习学习.

感谢jan的回复。我觉得poB本身就不需要让BFT的参与,因为BFT的本质是主观投票决定finalize,只有在出块无成本这种没有强的客观约束机制下,才需要主观人为的去进行fork choice。 但是poB和poW的机制是一样的, L1 token是有巨大成本的强客观约束条件。 矿工们可以直接根据它来进行分辨从而fork choice。
此时,再引入BFT是有画蛇添足之嫌。

如果是为了缩短finalize的时间,我们可以根据具体情况而制定finalize的时长。比如某些场景下我们可以约定最先达到3个区块的fork的 Max(VDF * L1 token payment) 为主分支,然后标记为finalized fork 不许回滚, 这样就可以在不走BFT的情况下缩短确认时间了。

What happens to these CKB, are they locked on-chain forever?

Fiber 可以自然和这类 Cell L2 结合,成为 L1/L2 之间的流动性通道

是的, Fiber在 poB的某些场景下基本算是一个必不可少的组件, 因为 L2的出块间隙很可能比CKB还要短,此时如果是直接在L1上进行支付CKB来出块,是来不及的。
在没有闪电网络的情况下, 想要出块就只能预支付,比如在 height = 100的时候提前规划好 height = 101 ~ 150 的区块支付成本。 但这有个劣势是,会让其他矿工提前看到你的金额筹码,他们也许会根据这些资金信息选择如何处理自己的VDF output,目前我不知道这是否一定会给系统带来负面影响,只是这种信息透露会让我本能的觉得不太好。
所以如果有Fiber的协助,L2是可以根据闪电网络的帮助即时的完成出块

no, these CKB are liquid and will be spent to cover the development and operation costs of the L2 appchain team

1 Like

Ahh ok, that makes sense, thanks.