比特币关联

在上一节中,我们描述了 Stacks 将智能合约功能引入比特币而不修改比特币本身,并稍微解释了链的工作原理。这是一个宏大的承诺,但 Stacks 实际上如何实现它?以及是什么让 Stacks 在其他比特币层和像以太坊这样的区块链中独树一帜?

在深入 Stacks 如何工作的技术细节之前,先对它要解决的问题以及它如何实际做到这一点有一个高层次的概述是很重要的。我们将在文档中逐步深入探讨这些主题,但先获得一个高层次的整体图景有助于将所有内容串联起来。这个主题有点深,但它会让你深入理解 Stacks 所要解决的确切问题以及它是如何解决的。

我们开始吧。

比特币层的目的是什么?

去中心化信任是区块链的主要创新和承诺。即使在加密货币的世界里,2022 年发生的近期失败也多为集中的实体所致,进一步凸显了不依赖“受信任”中心化中介的系统的重要性。比特币是最安全、最持久、最有价值的区块链;它已被数百万人用作价值储存。它是坚固的、“硬”货币,具有前所未有的非托管所有权和缺乏通胀的特性。比特币区块链也是最好的结算层,因为它是最去中心化、最抗审查且最持久的区块链。

然而,比特币在设计上相对缓慢且功能最小化,并在演进上采取保守策略以保持这些强大属性。它平均每 10 分钟产生一个区块,只有每秒 5-7 笔交易。它不提供对完全表达性智能合约的原生支持,因此也无法支持能够利用其属性的复杂应用。结果是,比特币一直是一个被动而非生产性的资产。尽管具有吸引人且独特的属性,它并不是除价值储存和零星资金转移之外的应用平台。

比特币层改变了这一点。比特币层在不要求对比特币本身进行任何更改的情况下,扩展了比特币区块链的功能和性能。

我们如何定义什么是比特币层?

定义比特币层的含义很重要。关于什么构成在第 1 层之上的第 2 层系统有若干细微差别的观点,但我们认为构成理想比特币 L2 的属性以及我们做出的假设包括:

  1. 开源且去中心化的开发流程

  2. 完整的虚拟机支持以及使用富表达性高级语言编程的能力

  3. 快速的交易与区块时间(不需要等待比特币区块的 10-30 分钟)

  4. 在 L1 与 L2 之间移动 BTC 的信任最小化方式

  5. BTC 作为在 L2 应用中部署的主要资产

  6. 能够用 BTC 支付 L2 交易费用

  7. 能够单方面将你的 BTC 从 L2 提回且无对手方风险

Stacks V1 拥有属性 1 和 2,但缺少其余属性。Nakamoto 升级带来了属性 3、4 和 5,目前正在讨论并开展工作以实现属性 6。目前,Lightning 是唯一具备属性 7 的 L2,而真正利用这一点的唯一方式是运行你自己的 Lightning 节点,这对于大多数用户来说是一项复杂的工作。此外,Lightning 缺少属性 2,这意味着我们无法解锁超出比特币 L1 已具备功能的任何额外功能。

必须承认,比特币 L2 与像以太坊这样的其他 L1 上的 L2 在目标上有根本不同。虽然以太坊上 L2 的主要动机是提升可扩展性,但比特币 L2 的目标是同时增强可扩展性和功能性。这意味着比特币层无法验证在像 Stacks 这样的 L2 上发生的交易的有效性。相反,该层的虚拟机负责交易处理和验证,并将这些交易结算到比特币上,以便它们共享相同的历史和最终性。

Stacks 是比特币 L2 吗?

Stacks 是用于智能合约的比特币层。将其归类为 layer-1 (L1)、layer-2 (L2) 或侧链在很大程度上取决于所使用的定义。一般而言,L1 链是主权的,意味着 (a) 它们有自己的安全预算,且 (b) 它们可以在没有任何其他 L1 链的情况下生存。L2 链通常没有自己的安全预算,并共享底层 L1 链的安全性,且它们无法脱离底层 L1 链而独立存在。L2 可以采用许多不同的设计机制。

Stacks 在 2021 年初的初始版本有一个与比特币 L1 分离的安全预算。即便 Stacks 层在没有比特币 L1 的情况下无法运行,参与该项目的开发者仍将其描述为一个不同的系统,不容易套入现有分类,有时使用“1.5 层”这一术语(例如参见 这篇 Decrypt 文章arrow-up-right )。

2024 年的 Nakamoto 版本使 Stacks 能共享来自比特币的相同安全预算。换言之,100% 的比特币算力将决定 Stacks 层的最终性。要重组 Stacks 区块/交易,攻击者需要重组比特币 L1 本身(这非常困难,因此这是比特币层应有的出色安全属性)。

以太坊和其他较新生态系统中使用的 L2 定义不同,它侧重于仅使用 L1 安全性和 L1 矿工来提取资产的能力。根据该定义,考虑到 peg-out 签名者集合决定用户是否可以提取 sBTC,Stacks 层并不是一个明确的 L2。比特币无法在不更改比特币 L1 的情况下支持这种验证(未来可能会发生改变)。以太坊的 L2 定义也不能直接干净地映射到比特币 L2,因为当涉及比特币时,新的资产是在 L2 上发行的而不是在 L1 上(L1 上只有 BTC 作为资产)。因此,使用以提取资产安全性的定义并不直接适用,因为资产是在 L2 上定义和使用的,通常不会被提取回比特币 L1(BTC 本身除外)。更重要的是“在比特币上的结算”,即合约数据和状态是否受到 100% 比特币算力的保护。

请记住,比特币上的 L2 还必须服务于扩展功能性和可扩展性的额外目的,这意味着 L2 根据 L1 的功能实现根本不同的目标。

用户和开发者自然而然地将 Stacks 称为比特币 L2,因为这是一个更容易理解的概念。Stacks 层的一些属性也有助于将其作为比特币 L2 的概念:

1

比特币最终性

100% 的比特币算力决定区块排序和交易最终性。

2

共识在比特币上运行

Stacks 的共识在比特币 L1 上运行,Stacks L2 无法在没有比特币 L1 的情况下运作或存续。

3

sBTC 与经济单位

通过去中心化的比特币挂钩 sBTC,Stacks 层上的大部分经济将使用 BTC 作为计量单位。预计大多数用户会在钱包和应用中直接使用比特币,然后将他们的 BTC 挂钩回比特币 L1。

4

数据在比特币上哈希并存储

Stacks 上的所有数据和交易都会被自动哈希并在每个比特币区块上永久存储到比特币 L1。任何人都可以通过检查比特币上的对应哈希来验证 Stacks 上的某些数据是否有效。这种在 L1 上紧凑存储哈希的方式在某种程度上类似于 rollups(尽管存在其他差异)。你可以在 区块生产 一节中阅读更多关于此过程的内容。

5

合约可以读取比特币状态

Stacks 层上的合约可以读取比特币 L1 交易并对其做出响应。Stacks 层上的资产可以通过比特币 L1 交易简单地移动。

chevron-right回应怀疑者与批评者hashtag

鉴于以上所有细节,为什么有些人会认为 Stacks 不是比特币 L2?这个问题经常出现有几个原因:

  • 旧的安全预算资料:Stacks 的初始版本(2021 年初发布)有一个独立的安全预算,但随着 Nakamoto 版本改为继承 100% 的比特币算力。

  • 以太坊 L2 的提现定义无法直接映射:根据以太坊对 L2 的定义,用户应能够仅通过在 L1 上执行交易并仅依赖 L1 安全性来提取其基础层资产(例如 Lightning 确实如此)。该定义无法干净地应用于比特币 L2,因为资产并未在比特币 L1 上定义,而是在 L2 上定义。唯一相关的资产是来自比特币 L1 的挂钩 BTC,因为其他所有资产本身就是 L2 的原生资产。在即将发布的 Stacks 版本中,用户可以仅通过发送比特币 L1 交易来提取他们的 BTC,但比特币 L1 无法验证该复杂交易,且大多数 peg-out 签名者需要在 peg-out 请求上签名。理想情况下,比特币矿工可以验证此类交易,但那将需要对比特币 L1 进行更改。因此,Stacks 的设计优化为一种去中心化且可以在不对比特币 L1 进行任何更改的情况下部署的方法。如果未来能够对比特币 L1 进行更改,那么 Stacks 层的安全性也可以从中受益。

  • 健康的比特币怀疑态度:比特币社区成员通常对各种主张持怀疑态度,并关注任何虚假营销声明。这对于比特币生态系统来说通常是一件健康的事情,有助于建立免疫体系。一些社区成员在完全阅读技术细节和推理之前,可能会对 Stacks 作为比特币层或 L2 持怀疑态度。关于这个话题也有一个不错的 Twitter 讨论串。

那么为什么我们不称 Stacks 为“侧链”呢?比特币中的侧链通常具有不同于比特币 L1 的安全预算,通常是参与侧链的一部分比特币矿工(他们不遵循 100% 的比特币最终性),他们的共识在侧链上运行(与在比特币 L1 上运行相对),并且他们不会在比特币 L1 上发布他们的数据/哈希。鉴于 Stacks 层的共识在比特币 L1 上运行、它遵循比特币最终性并在 L1 上发布数据/哈希,因此并不符合侧链的这一清晰定义。

Stacks 与比特币的共生关系

Stacks 与比特币相辅相成。Stacks 利用比特币的极端去中心化、其 PoW 共识机制以及其作为加密货币的价值。

但 Stacks 也通过解锁额外的用例来补充比特币,从而随着时间推移增加其价值。这也有助于解决在区块奖励消失并且比特币必须仅靠交易费用运作时,比特币未来可维护性的额外问题。

如果比特币仅被视为价值储存,那么每笔交易的经济密度(即交易所交换的价值)将很小。但如果比特币是整个去中心化经济的基础,那么这些交易就会变得更有价值,从而提高交易费用。这对于在区块奖励下降时激励矿工继续维护网络安全至关重要。

关于打造以比特币为先的开发者体验

赋予 Stacks 网络连接比特币超级能力的因素之一不仅是其在协议层面如何连接比特币(如上所述),还在于我们如何在编程层面利用该比特币。

比特币 L2 的开发者体验(DevEx)应抽象掉比特币的复杂性,但也要保持 在比特币上构建的感觉 。听起来像是矛盾,但 Stacks 是如何实现的:

1

用 sBTC 支持比特币的流动

sBTC 解锁了比特币的可编程性。你可以获得 L2 的表达能力而不失去比特币熟悉的属性:计额、表示方式和信任模型。

2

直接接入 BTCFi

Zest、Bitflow、StackingDAO、Dual Stacking 以及 Stacks 上的其他主要 DeFi 协议为以比特币为先的智能、可组合应用提供开发者工具。

3

一个加密身份

Stacks 使用与 相同的 密码原语 — 相同的曲线(secp256k1)、相同的 hash160 构造 — 来推导 Stacks 地址。它们的格式不同(不同的版本字节/编码),但在底层:身份锚点是相同的 20 字节公钥哈希。

不同的层。相同的加密私钥。

4

对比特币状态做出反应

Clarity 常被宣传的一个特性是它内置了对比特币链状态的访问,但它实际上是如何做到的?由于 Stacks 的 PoX 机制,每个 Stacks 区块都与一个比特币区块相连接,并且可以通过 get-burn-block-info? 函数查询比特币区块头哈希。

Clarity 可以直接读取比特币状态。解析 BTC 交易。基于比特币活动触发逻辑。

5

以比特币速度在 L2 上捕捉时间

Clarity 合约可以通过比特币区块来衡量时间。这不仅是技术层面的——它具有象征意义:就像用太阳来计时一样,我们信任比特币的节奏。


更多资源

最后更新于

这有帮助吗?