什么是 Stacks?

Stacks 是一个用于智能合约的比特币层;它使智能合约和去中心化应用能够以最小化信任的方式将比特币作为资产使用,并在比特币区块链上结算交易。

Stacks 是一种不同于侧链的比特币智能合约层,与比特币有更深且持续的连接。Stacks 使应用和智能合约能够将 BTC 作为它们的资产或货币并在比特币主链上结算它们的交易。 Stacks 的目标是通过将 BTC 转变为一种有生产性的而非被动的资产,并通过支持各种去中心化应用,来扩大比特币经济。

Stacks 层拥有自己的全局账本和执行环境,以支持智能合约并避免用额外交易压垮比特币区块链。然而,Stacks 层的独特之处在于它具有本地比特币智能合约大多数理想属性,但无需为比特币增加额外功能或复杂性即可实现。它还提供用于更高性能和附加功能的机制,例如更快的出块时间和去中心化的挂钩(peg)。

作为一个比特币层,Stacks 拥有以下使其独特的创新:

chevron-right由比特币保障安全hashtag

由比特币保障安全:为 Stacks 交易实现比特币最终性;在 Stacks 层发生的交易由整个比特币算力保障。也就是说,要逆转这些交易,攻击者需要对比特币进行重组(reorg)。这些交易在比特币上结算并具有比特币最终性。此外,Stacks 层会随比特币发生分叉,因此 Stacks 上的任何状态会自动跟随比特币的分叉。

chevron-right最小化信任的比特币挂钩(peg)hashtag

最小化信任的比特币挂钩:为一种新颖的去中心化、与比特币挂钩的资产 sBTC 奠定基础,使智能合约可以使用与比特币挂钩的资产以最低的对手方风险更快、更便宜地运行。这也使得 Stacks 层上的合约能够通过挂钩的 peg-out 交易向比特币写入,而无需依赖集中化的封闭实体集。原子交换和资产:Stacks 已经具有原子 BTC 交换功能,并支持比特币地址拥有和转移在 Stacks 层上定义的资产。Magic swaps 和 Catamaran swaps 是在比特币 L1 的 BTC 与 Stacks 层上的资产之间的去中心化原子交换示例,这些示例已处于上线状态。此外,用户可以在比特币地址上拥有像 STX、稳定币和 NFT 等 Stacks 层资产,并在他们愿意的情况下通过比特币 L1 交易转移这些资产。

chevron-rightClarity 语言hashtag

Clarity 语言:支持 Clarity,这是一种用于可证明智能合约的安全、可判定语言。使用 Clarity,开发者可以在执行之前以数学确定性的方式知道合约能做什么和不能做什么。去中心化挂钩合约将受益于 Clarity 语言的安全属性。特别值得注意的是,Clarity WASM 是对 Clarity 虚拟机所做的一个改变,提供显著更快的执行时间,同时为 Rust 和 Solidity 开发者可能在 Stacks 上编写智能合约创造了潜在路径,尽管这项工作不属于 Nakamoto 版本发布的一部分。

chevron-right对比特币状态的认知hashtag

对比特币状态的认知:具备对完整比特币状态的认知;它可以无需信任地读取比特币交易和状态变化,并执行由比特币交易触发的智能合约。比特币读取功能有助于保持去中心化挂钩状态与锁定在比特币 L1 上的 BTC 一致,除此之外还有其他用途。

chevron-right可扩展且快速的交易hashtag

可扩展且快速的交易:将通过多种机制提供高性能和可扩展性,包括更快的 Stacks 层区块。此外,像子网(subnets)这样的可扩展性层可以在性能与去中心化之间做出不同的权衡,相较于主 Stacks 层。

我们可以通过回顾中本聪在 2010 年设想推广比特币的方式来了解 Stacks 背后的目标和精神:

"……成为一个完全独立的网络和独立的区块链,同时与比特币共享 CPU 算力……世界上所有网络将共享合并的 CPU 算力,从而增加总体强度。"

这是 Stacks 设计决策中的一个重要主题。在比特币领域这有点矛盾,Stacks 网络是一个比特币 L2,但它确实有自己的代币。这是一个有意且关键的设计决策,主要目的是为了维持去中心化,而不是依赖于一个联盟。如果这让你感到困惑或你持怀疑态度,这是可以理解的——随着我们阅读文档,我们会更深入探讨这些想法。

Stacks 的核心技术组件

1

转移证明(Proof of Transfer)

转移证明(PoX)是 Stacks 链的出块机制。本质上,它试图以程序化方式重现 PoW 的出块模式。Stacks 矿工花费 BTC 以获得挖掘新 Stacks 区块的机会。在底层,这种出块机制将 Stacks 区块锚定到比特币区块,使得逆转一个 Stacks 区块与逆转一个比特币区块一样困难。那是一个重要的主张,我们将在关于 Nakamoto 出块的章节中更详细地解析它。

了解更多关于 PoX 的信息

2

Stacks 的原生代币:STX

Stacks 层的原生代币(STX)对于 PoX 共识至关重要:STX 用于(a)激励 Stacks 矿工在比特币 L1 之外维护 Stacks 层的全局账本,以及(b)激励参与挂钩机制的阈值签名者。现有的缺乏原生代币的比特币挂钩方法无法支持无许可、开放的系统,最终会退回到使用托管方或信任已知联盟成员。

3

Clarity

Clarity 是 Stacks 使用的智能合约语言。它从零开始设计,使开发者更容易编写安全、可靠的智能合约。此外,由于它是为 Stacks 和比特币专门构建的,内置了读取比特币状态的函数,这意味着你可以使用比特币状态在 Clarity 中执行操作。例如,你可以设置检查以确保某个特定的比特币交易已经发生,然后再在 Clarity 中执行铸造(mint)函数,这恰好也是第三个组件 sBTC 所采用的机制。

了解更多关于 Clarity 的信息

4

sBTC

sBTC 是 Stacks 层上最小化信任的双向比特币挂钩。sBTC 是使比特币可编程并通过 Stacks 将完整智能合约功能带到比特币的关键。sBTC 不是一个联盟(federation),而是作为一个开放网络的去中心化双向挂钩解决方案运行,旨在以尽可能低的对手方风险将智能合约功能带入比特币。

了解更多关于 sBTC 的信息

chevron-rightStacks 与区块链技术的目的hashtag

在评估新的区块链技术时,保持它们的原始意图和目的完整是很重要的。如果我们回顾比特币,它最初被设计为:

  • 去中心化

  • 不可变

  • 安全

你可能听说过区块链三难困境——在去中心化、可扩展性和安全性之间寻找平衡的问题。Stacks 采用将链分层的方式来解决这个三难困境。

所以在最底层,你有基础层: 比特币。比特币是最去中心化、最安全、最不可变的区块链网络。然而,这也伴随着一些权衡:

  • 与其他网络相比,比特币非常慢。比特币大约每 ~10 分钟才写入一个新区块,使其吞吐量与为速度而设计的网络(如 Solana)相比可忽略不计。

  • 比特币也很“无聊”。以太坊在比特币之后出现,试图为软件实现比特币为货币所做的事情。以太坊的目标是成为某种去中心化的超级计算机,作为智能合约(写入区块链的代码)的全球计算环境。

  • 比特币不可扩展。因为每个新区块必须传播到网络上的每个节点,比特币只能以网络中最慢节点的速度运行。

现在我们正在看到像 Cosmos 这样的模块化区块链网络的兴起,旨在使人们更容易启动自己的区块链网络。尽管如今出现的大多数新区块链协议将这些特性视为缺点并试图消除它们,Stacks 社区则有不同的看法。

Stacks 的方式

Stacks 采用分层方法:基础结算层是比特币,可扩展性和功能性通过在其之上添加层来实现。L2 有许多不同类型和不同的构建方式。它们都有不同的权衡,并各自以自己的方式实现可扩展性或功能性的目标。

通过采取这种分层方法,我们能够拥有与以太坊等链相同的所有功能,但建立在比特币之上。

因此 Stacks 是一个具有某些独特属性(例如拥有自己的代币)的比特币二层,它作为一种激励机制,用于维护其所有交易的历史账本并以自己的安全预算运作(除了比特币的安全预算之外——在下一节中会详细说明)。

这是将 Stacks 与像闪电网络(Lightning)这样的其他比特币层区分开的因素之一。

  • 闪电网络并未为比特币增加任何额外功能;它只是帮助扩展比特币已有的功能并帮助其更快运行。闪电网络也是短暂的——它没有永久状态——因此不适合需要跟踪数据和维护状态的智能合约等用途。

  • 与此相对的是 Stacks,它为比特币增加了附加功能,但最终仍在比特币上结算(我们也将在下一节中讨论这一点)。

其好处在于我们可以保持职责分离并保持比特币简单而坚固,持续产出区块,同时为功能和速度添加额外层。如果那些其他层遭到妥协,基础层将保持不受影响。这在构建旨在成为全球去中心化货币(比特币)以及建立在该货币之上的去中心化经济(Stacks)时非常重要。

在有了这些背景之后,让我们深入探讨 Stacks 与比特币的具体连接方式。


附加资源

最后更新于

这有帮助吗?