我们可以持续关注 Stacks,观察它能否真正成为比特币 L2,并以一个智能合约平台来有效的利用还在沉睡中的 BTC。
免责声明:本报告的内容反映了作者的观点,仅供参考,并非买卖代币或使用协议的建议。本报告中的任何内容都不是投资建议,也不应被理解为投资建议。
在比特币网络展现新的可能性
2023 年初,"铭文 (Ordinals)" 引入比特币网络,引发了新的一场如何应当对待网络区块空间的争论。 同一年 5 月,市场对于 BRC-20 的需求激增,导致比特币网络短暂无法处理区块,迫使了全球最大的中心化交易所币安暂时停止比特币提现。
Ordinals 的名字来源于 ordinal 一词,意思是 "按顺序排列的数字",是由 Casey Rodarmor 于 2023 年 1 月创建的一个协议,它对比特币脚本进行了改编,实现了能够将任意数据附加到比特币的最小单位 “聪 (sats)" 上的功能。由于通过铭文能够在比特币区块链上存储文本、图像、语音、视频和代码,自然的导致在比特币生态上出现了许多 PFP 与 NFT,如同以太坊一样(了解更多)。

截至 4 月 24 日,市值排名前 10 的 NFT 集合;来源:Coingecko
如今,在 Odinals 出现一年多之后,比特币网络上发行的 NFT 项目中有三个进入了所有 NFT 市值的排名前 10 名 (NodeMonkes、Runestone 和 Bitcoin Puppets),表明了作为一个可行的智能合约平台的潜力。
比特币 L2 和 Stacks

这也导致了比特币网络上 L2 项目的激增。根据 defillama 的数据,在撰写本文时 (4 月 15 日),有 11 个项目被归类为 "比特币侧链",总 TVL 接近 9 亿美元。虽然对于这些项目是否实际以比特币网络为 L1 等的 争议存在,但正在快速成长的 TVL 和项目数反映出市场对比特币叙事的兴趣越来越大。

在这些项目中,Stacks 近期的发展可谓独树一帜。它不仅是 2017 年推出的 OG 项目,也是从 2021 年起就目标将智能合约引入比特币网络。以面,我们就来探讨 Stacks 的近况,以及即将推出的重大升级 "Nakamoto 升级"。
Stacks 的开始 - Blockstack

Munib Ali 2016 年的 TED 演讲视频;来源:TEDx Talks
2017 年,Muneeb Ali 博士完成了他的学位,发表了关于 Stacks (当时称为 Blockstack) 的白皮书,并在 CoinList 上的代币销售中成功筹集了 5200 万美元。在此之前,他和他的早期团队已经直接在比特币 L1 上构建了一个名为 Onename 的协议和应用程序,可以在比特币网络上创建去中心化的身份和档案页面。这些经验助于在 2017 年塑造 Stacks 的想法,并且激励团队于创建一个更强大的平台。
Blockstack 注意到现有的互联网过度依赖于中心化的数据存储和管理,因此希望利用区块链技术创建一个去中心化的网络,让用户对自己的数据拥有主权,创建一个区块链层,让开发者可以轻松地构建 dApps,类似于以太坊。
而在 2019 年,Blockstack 生态的代币 Stacks (STX) 获得了美国证券交易委员会 (SEC) 根据 A+ 法规批准,成功筹集了 2300 万美元。这是首个获得美国证券交易委员会批准的代币销售,引起了市场相当热烈的关注。
从 2018 年到 2020 年,Stacks 团队专注于建设坚实的项目基础设施。Stacks 是一个跨链共识区块链,与比特币网络无缝集成,旨在帮助比特币上的程序编辑功能。该团队还为 Stacks 开发了定制编程语言 Clarity。在此期间,Stacks 从 Union Square Ventures、Harvard Endowment、Winklevoss Capital 和 Naval Ravikant 等知名投资者处筹集了资金。
Stacks 2.0
"我认为比特币是最好、最分散的货币层。目前,所有流通的比特币中有 1% 是在以太坊上以封装比特币 (wBTC) 的形式发行的,这意味着用户有需要在智能合约中使用比特币。与其将比特币封装在某个智能合约平台中,为什么不将智能合约功能移植到比特币网络中呢?" -- 摘自 『Bitcoin DeFi? It's a Thing, Says Stacks Founder Muneeb Ali, Decrypt』。
2021 年 1 月,Blockstack 推出 Stacks 2.0 主网,成为 Stacks 网络。如 Muneeb Ali 的采访所示,Stacks 2.0 的出发点是在不修改比特币的情况下,将智能合约功能移植到比特币网络中。该链的设计继承了比特币网络的去中心化和安全性,同时增加了智能合约功能,以提高网络的可扩展性。
转移证明 (Proof-of-Transfer)

转移证明流程;来源:stacks.co
Stacks 的共识机制 -- 转移证明 (Proof-of-Transfer, PoX),可以看作是燃烧证明 (Proof of Burn) 的延伸,是继承比特币网络安全的关键。燃烧证明指的是工作证明 (PoW) 环境中的一种共识机制,通过燃烧网络中的加密货币来进行挖矿。
与矿工燃烧比特币的 "燃烧证明" 不同,在 "转移证明" 中,矿工将比特币发送给参与 Stacking 过程的 STX 持有者。矿工 (Miner) 可以通过运行 Stacks 节点参与挖矿过程,Stacks 节点使用比特币网络作为锚链来生成和挖掘区块。转移证明机制如下:
- 注册 (Registration):矿工通过向网络发送共识数据,注册成为候选矿工。
- 承诺 (Commitment):注册矿工通过向 STX 代币持有者发送比特币来参与挖矿。
- 选举 (Election):使用可验证随机函数 (VRF) 挑选矿工,当选的矿工在 Stack 区块链上创建新区块。
- 集结 (Assembly):被挑选的矿工创建区块,并获得 STX 代币作为奖励。
通过选举程序选出的矿工需要将 Stacks 链上所有新交易的哈希值记录在比特币区块中,并通过遵循转移证明,来完成为比特币矿工与为维护 Stacks 链的 Stacker 的激励体系。所谓 "Stacking" 的操作与权益证明 (PoS) 网络上的 “Staking" 类似,不同之处在于 Stacking 是通过锁定 STX 获得锚链 BTC 的代币作为奖励。矿工和 Staker 的具体角色如下图所示:

矿工和 Stacker 的角色;来源:stacks docs
[矿工]
- 矿工向 Stacker 发送 BTC,以获得 Stacks 的交易手续费和区块奖励。
- 根据矿工发送的 BTC 的数量比例决定每个矿工通过 VRF 被挑选的机率。
- 当选矿工赢得在 Stacks 链上创建新区块和流播微区块的权利。
- 当选矿工获得 STX 和交易手续费作为区块奖励。
[Stacker]
- Stacker 将其持有的 STX 锁定一定的周期。
- 可以选择独立 Stacking 或与其他 Stacker 共同 Stacking(进行池化)。
- Stacker 提供自己的 BTC 地址,以领取 BTC 奖励,领取奖励的概率与锁定的 STX 数量成正比。
- Stacking 的 STX 将在一开始设定的锁定周期结束后解锁。
比特币 L2?
Stacks 2.0 的意义在于,让 Stacks 随着主网的启动和转移证明机制的引入,能够在比特币网络上发挥智能合约平台的功能。然而,在比特币网络上称其为 L2 存在一些争议。
- Stacks 2.0 有自己的代币,并且有独立的安全预算,与比特币网络截然不同。
- 安全预算:指为维护网络完整性而分配的资源,包括采矿奖励资金、运营成本、网络费用等。
- 在 L1 中,资产不会被安全和验证者存入或提取,如以太坊和其他生态系统中的 L2。
基于上述原因,很难将 Stacks 2.0 与传统的 L2 归为一类。然而, Stacks 也很难称作为侧链,因为 Stacks 链上的交易最终都必须在比特币网络上结算。Stacks 链的这种独特结构,使得 Stacks 的联合创始人 Muneeb Ali 在 2021 年接受 Decrypt 采访时将其称为 "Layer 1.5"。
由于比特币网络一开始并不是一个智能合约平台,因此引入智能合约或提高可扩展性的举措并没有像以太坊和 EVM 链一样。参考 Spartan Group 在 2023 年 12 月发佈的文章 『BITCOIN LAYERS - Tapestry of a Trustless Financial Era』 就可以更进一步了解如何区别比特币 L2。

比特币 L2 的三难困境;来源:BITCOIN LAYERS — Tapestry of a Trustless Financial Era
如上图所示,比特币 L2 三难困境包括:
- 开放网络 (Open Network):采用开放网络,而不是联盟模式。
- 无新代币 (No New Token):不引入新代币。
- 完全的虚拟机/全局状态 (Full VM/Global State):采用 "Global State",而不是有限的链下合约形式。
Stacks 可以被视为满足了条件 1 和 3,但不满足条件 2 的比特币 L2 解决方案。作为对比,闪电网络满足了条件 1 和 2,但由于采用了 "本地共识" 方法,将交易记录在有别于主链的点对点网络上,因此未能满足条件 3。
走向 Stacks 3.0,Nakamoto 升级
Stacks 现有的问题
上述 Stacks 链的独特结构是 Stacks 能够作为比特币网络上的智能合约平台发挥作用的原因,但它也因而给系统带来一些问题,包括:
- 安全模型
- Stacks 链拥有独立的安全预算,这与比特币网络的安全预算不同,前者是由 Stacks 矿工支付的 BTC 定义的。
- 这使得链的安全性高度依赖于 Stacks 矿工的预算,意味着安全风险增加的可能性。
- 性能和可扩展性
- Stacks 链与比特币网络之间的连接结构(如转移证明机制)有助于提高去中心化和安全性,但限制了链上性能和可扩展性。
- 特别是通过矿工选举创建新区块的过程,将 Stacks 链与比特币区块生成周期联系在一起,导致交易确认延迟非常高。
- 这不仅是用户体验上的漏洞,也是 Stacks dApp 开发困难的根源。
- MEV 问题
- 拥有相当比例比特币哈希率的比特币矿工可以在其挖掘的比特币区块中,审查其他 Stacks 矿工传送的承诺 (Commitment) 交易(为了参与 STX 挖矿而传送 BTC 的交易),从而确保自己获得 Stacks 奖励和交易费用。
主要目标和设计变更
主要目标
Nakamoto 版本是计划在今年对 Stacks 链进行的一次重大升级,以解决 Stacks 链的上述问题,提高链的性能和安全性。
- 快速区块 (Fast blocks)
- 用户提交的交易在一个区块内被挖掘和确认的时间从几十分钟缩短到几秒钟。
- 在 Nakamoto 升级后,通过分离矿工选举过程与区块生成机制,允许矿工在到下一次矿工选举过程之前,能够生成多个区块。
- 通过比特币的终结 (Finality) 性实现交易安全性
- Stacks 链上的交易由比特币网络的哈希能力来保障。
- 这意味着交易在比特币网络上进行结算,从而保证了交易在最安全网络上的不可更改性。
- 提高抗 MEV 功能
- 改进了为了获得 STX 奖励的 BTC 竞标机制,以解决矿工选举过程中的 MEV 问题。
- 更改了矿工选举算法,使比特币矿工不具有 Stacks 矿工的优势。
更改区块生成机制和 Stacker 角色
Nakamoto 升级之前,Stacks 链上生成的区块与比特币区块的比例固定为 1:1,导致区块生成时间与交易确认时间缓慢。
Nakamoto 升级后,"Tenure-based block production" 的机制将被引入,以加快区块生成速度。Stacks 链中的一个区块与比特币区块不在是 1:1 对应,而是在当选矿工的任期内(也就是在比特币区块生成周期内)矿工能够生成多个 Stacks 区块。这种机制将区块生成和确认时间缩短到 5 秒左右,极大地提高了 Stacks 的可扩展性。
而这时生成的 Stacks 区块将由 Stacker 进行验证。在 Nakamoto 升级之前,Stacker 只是锁定 (Stacking) STX 代币,为 Stacks 网络的经济安全做贡献,但在 Nakamoto 升级之后,Stacker 将承担签名者的角色,负责验证、存储、签名和传播矿工任期内产生的每个 Stacks 区块。矿工和 Stacker 之间的相互关系如下图所示:

Nakamoto 升级后,矿工和 Stacker(或签名者)如何互动;来源:stacks docs
- 矿工向 Stakers 传送 BTC,以参与 Stacks 矿工的选举流程。
- 当新矿工当选时,会发生 "任期变更 (tenure change)" 交易,授予新矿工新的任期。
- 矿工每秒创建和验证区块的过程中,都必须收集 Stakers 的签名。
- 区块验证需要至少 70% 的 Stacker 在区块上签字认可。
如上图所示,矿工需要 Stacker 的签名才能创建下一个区块,Stacker 需要进行签名操作才能在转移证明机制下获得奖励,并解锁自己所 Stacking 的 STX 代币。
改变链式结构,实现比特币的终极性
签名者 (Stacker) 在任期变更(或矿工选举)期间,通过只对最新生成的区块进行签名来防止矿工任意分叉 Stacks 链。这意味着 Stacker 负责监督矿工,对之前生成的区块进行验证,并确保新区块是基于最新区块生成的。
此外,矿工在提交交易(任期变更交易)时,必须包含索引区块哈希值 (indexed block hash),其中包括上一任矿工任期内记录的第一个 Stacks 区块的哈希值和区块本身的哈希值。这确保了 Stacks 区块链的状态被记录在比特币区块中,每一任矿工相同工作,确保 Stacks 区块链的历史被持续记录在比特币网络上。

比特币区块、Stacks 区块和库存位图之间的关系图;来源:stacks docs
因此,Stacks 区块和比特币区块之间的关系如上图所示,Stacks 链上在第 N 期间提交的交易,要到下两个期间,即第 N+2 才会被记录到比特币区块中,代表要经过三次的任期变化,才有办法让逆转 Stacks 交易跟逆转比特币区块一样困难。从用户的角度来看,链的结构与我们所熟知的 L2 相同,交易在几秒钟内就能得到确认,而在比特币的结算需要较久的 30 分钟左右。
这一系统也给 Stacks 链的安全预算带来了良好的变化。Stacks 区块验证的机制是通过至少 70% 的 Stacker 的签名来发生的,使得 Stacks 的安全预算提升高达 Stacking 资产的 70%,而一旦交易实现了比特币的最终结算,该安全预算就可以达到比特币 51% 的挖矿能力。
总结一下 Nakamoto 升级后的 Stacks 机制:
- 矿工在提交任期变更交易时,必须包含一个索引区块哈希值与上一任期中记录的第一个区块哈希值。
- 签名者将强制矿工根据上一任期内签署的最后一个区块生成下一个区块。
- 第 N 任期内提交的交易被将在第 N+2 个任期内写入比特币区块,具有比特币终结性。
Nakamoto 升级后,Stacks 链的交易速度将大大提升,并同时实现比特币的终局性,确保数据的不可篡改性。对于用户来说,这意味着更快的交易确认速度,而对于系统来说,则是更接近于真正的比特币 L2,继承比特币的安全性。
解决比特币 MEV 问题
在 Nakamoto 升级之前,Stacks 链中的 MEV 问题主要通过以下方式发生。拥有相当比例比特币哈希率的比特币矿工,如 F2Pool,能够审查其他 Staking 矿工在比特币区块内提交的提交交易,以调整他们提交的 BTC 出价金额,确保他们能够获得 Staking 区块的区块奖励和交易费用。 这种行为减少了 Stakers 的 BTC 奖励,也破坏了对采矿过程的信任。
Nakamoto 升级引入了几项新的矿工选择标准,以提高区块挖掘过程的公平性。
- 矿工参与近期的区块
- 矿工必须在近期 10 个区块都中有参与参与矿工的纪录,才有资格在任期变更时被选中。
- 该标准可以促进矿工社区的稳定性,并阻止偷取区块链奖励的企图。
- 考虑过去出价的中位数 (Median of Past Bids Method)
- 矿工被选中的概率是根据过去 10 个区块中记录的所有 BTC 出价的中位数计算得取。
- 该标准可以防止矿工通过提交异常出价获得区块奖励。
- 考虑出价总和的绝对值 (Absolute Bid Total)
- 矿工选择过程基于稳定的经济标准,考虑出价总和的绝对值,而不是考虑基于即时挖矿环境的出价变量。
通过引入这些防止 MEV 的标准,Nakamoto 升级将提高 Stacks 区块链挖矿过程的透明度和信任度。
规划 Nakamoto 升级

Nakamoto 升级路线图; 来源:nakamoto.run
自 2022 年底发布 sBTC 和 Nakamoto 白皮书以来,Stacks 基金会和相关开发人员已经为 Nakamoto 升级工作了很长时间。如上图所示,自 2024 年 2 月 Nakmoto 的功能最终确定并集成到测试网 (称为 Nakamoto 里程碑 0.3,代号为 Argon) 以来,Nakamoto 升级的更新一直在紧锣密鼓地进行。而 Nakamoto 升级的第一阶段现已在主网上线,升级将陆续推出。
Nakamoto 升级包括两个阶段,每个阶段都会进行硬分叉。该过程分为 "实例化 (Instantiation)" 和 "激活 (Activation)" 两个阶段,目的是在 Nakamoto 更新之后,在全面激活功能之前允许有一段时间进行最后的调整,如修复漏洞,从而排除链上环境变化能造成的干扰。
原计划
- 第一阶段:实例化 (4 月 22 日开始)
- POX-4 (传输证明机制的升级版) 合约和 Nakamoto 版本中包含的大部分代码将被应用,但功能不会启用。
- 为签名者和合作伙伴至少留出两个 Stacking 周期,让他们能够注册 POX-4 合约。通过这期间,验证注册 POX-4 的签名者是否正确验证区块,并确定是否可以进入激活阶段。
- 第二阶段:激活 (预计在 5 月 15 日至 5 月 29 日之间进行)
- 这一阶段将应用 Nakamoto 更新,包括基于签名者的系统、快速区块和比特币最终性,并激活 Nakamoto 规则。
- Nakamoto 规则是指区分 Nakamoto 升级前后的整体逻辑。

Nakamoto 发布计划;来源:Nakamoto Launch: Testnet and Mainnet Rollout Overview
计划的变动
升级的第一阶段 (实例化) 已于 4 月 22 日开始,假定没有发现重大 Bug 并完成实例化,第二阶段计划于 5 月中旬开始。 然而,在第一阶段开始之后,发现了签名者恢复系统 (Signer Resiliency/Recovery) 中的一些缺陷,因此 Stacks 基金会于 5 月 1 日宣布修改原计划。 要点如下
- Nakamoto 升级最初的激活阶段只包括一个基本的签名者恢复系统。
- 升级到高级签名者恢复系统的计划是在 Nakamoto 升级激活后的 2024 年底部署,但在实例化阶段签名者入职并取得进展后,判斷需要高级签名者恢复系统。
- 因此在 Nakamoto 升级激活阶段之前,将增加 8 周的开发时间,签名者恢复系统代码于 7 月 15 日完成,Nakamoto 升级版本于 8 月 28 日激活。
- 工作內容
- 增强矿工对签名超时和签名者错误的恢复能力
- 加强签名者反应和密钥丢失情况下的流程
- 改进矿工任期的创建和延长方式
- 改进对于网络不确定性的预防和闪存块处理

수정된 나카모토 릴리즈 타임라인; 출처: stacks.org
根据修订后的计划,代码开发将在 8 周后的 7 月 15 日完成,而原定于 5 月中旬的 Nakamoto 升级的激活阶段,将在大约 3 个月后的 8 月 28 日开始。好消息是,原定于第三季度进行的 sBTC 升级不会推迟,预计激活阶段开始后的第四周进行。
sBTC - 实现 L2 的最后一块拼图
Nakamoto 升级预计在 5 月份全面激活,其目的是大幅提高 Stacks 链的性能,实现 Stacks 区块的比特币终结性。然而,要真正成为比特币网络的 L2,Nakamoto 升级只是成功的一半。

区分比特币 L2 的标准; 来源:light tweet
Nakamoto 升级发布后,Stacks 将拥有类似于 Sovereign Rollup 的环境。然而,只有将比特币网络的原生资产 BTC 带入链中并加以利用,它才能作为真正的比特币智能合约平台和 L2 发挥作用。Stacks 创始人 Muneeb Ali 在同一条推文中表示,将 BTC 移入和移出 比特币 Layer 是最难的部分,并解释说,sBTC 是最接近无信任桥梁的解决方案,是一个去中心化的公共签名者群体,在不修改比特币 L1 的情况下能对 BTC 执行挂钩机制。


sBTC 基于两个主要属性,在比特币网络和 Stacks 链之间架起了 BTC 资产的桥梁
- 1:1 可赎回性: 除非 Stacks 链停止运行,否则 sBTC 和 BTC 始终可以以 1:1 的比率赎回。
- 开放的成员资格:任何人都可以加入 sBTC 协议,任何中心化实体都无法控制 BTC。
此前,Stacker 链上有如 xBTC 和 aBTC 等 BTC 的相关资产,如以太坊的 wBTC(wrapped BTC),但它们是基于通过中心化托管机构,需要多方签名的桥接方式。而 sBTC 则是在转移证明机制上使用 Stacker 作为一组签名者,以无信任的方式实现 BTC 桥接。

sBTC 如何工作 (1); 来源:stacks docs

sBTC 如何工作 (2); 来源:sbtc.tech
sBTC 的更新和实施计划于 2024 年第三季度进行。Nakamoto 升级和 sBTC 的更新是 Stacks 雄心勃勃朝向成为比特币网络首选智能合约平台的关键里程碑,我们可以持续关注 Stacks,观察它能否真正成为比特币 L2,并以一个智能合约平台来有效的利用还在沉睡中的 BTC。

来源:BITCOIN LAYERS — Tapestry of a Trustless Financial Era
<参考资料>
- Stacks docs
- Stacks: A Bitcoin Layer for Smart Contracts
- sBTC: Design of a Trustless Two-way Peg for Bitcoin
- Jeff Benson and Daniel Roberts, Bitcoin DeFi? It’s a Thing, Says Stacks Founder Muneeb Ali, Decrypt
- Katelyn Peters, Blockstack (Stacks): What it is, How it Works, FAQ, Investopedia
- muneeb.btc tweet
- light tweet
- Stacks, A Showcase For Stacks Nakamoto Release Transactions
- Stacks, What’s Next for Stacks After Nakamoto Upgrade
- The Spartan Group, Bitcoin Layers: Tapestry of a Trustless Financial Era
- Mitchell Cuevas, Nakamoto Activation: 8 Weeks of Additional Development Time Expected, Stacks Foundation