# 比特币上的最大侧链——Stacks

By [sirius](https://paragraph.com/@tradingscience) · 2022-10-01

---

Stacks的演变始于2013年。该项目由普林斯顿的计算机博士Muneeb Ali和Ryan Shea创建。Stacks 是Muneeb博士论文的产物，该论文详细介绍了一个可以围绕比特币区块链构建的互联网框架。这个框架被称为Blockstack。该项目最早被称为[Onename](https://techcrunch.com/2014/08/14/onename-io-aims-to-streamline-bitcoin-transactions/)，旨在简化比特币交易，由于参与了2014年的Y Combinator批次，使得初期的研发成为可能。在早期从Union Square风投、Naval Ravikant、SV Angel、Winklevoss资本等筹集了资金。

该项目在2017年通过Stacks加密货币的代币发行筹集了4700万美元，并在 2019年通过首次获得美国证券交易委员会资格的美国Reg A发行和同时发行的 Reg S筹集了2300万美元。超过4500名Stack持有者参与了这些发行，包括USV、Lux、DCG、Winklevoss资本、Blockchain资本、Foundation资本、Hashkey、Fenbushi等。2020年，Blockstacks更名为Stacks，并于2021年1月推出了与Clarity智能合约兼容的Stacks 2.0主网。

Stacks解决了在比特币上构建的主要困难

在比特币上构建应用和智能合约有两个基本挑战：

•可扩展性：比特币区块链的交易能力有限。

•安全合约：为了保护比特币区块链的安全性，智能合约脚本语言非常有限。

Stacks为这两个问题制定了解决方案。Stacks不是直接在比特币链上部署智能合约，而是在自己的第1层区块链上执行它们，并且仅使用比特币进行结算。

Stacks区块链如何与比特币区块链通信？一种称为转移证明(PoX)的新颖共识机制允许Stacks矿工通过比特币区块链上相同矿工消耗的挖矿能量在自己的区块链上写入新块。因此不需要进一步的能量消耗。

在microblock（微块）级别实现速度

对于去中心化应用，速度至关重要。众所周知，比特币区块链比大多数支持智能合约的顶级链都要慢。由于Stacks上产生的每个anchorblock（锚块）都必须存储在比特币上，因此可以假设Stacks的速度必须小于或等于比特币的速度。为了解决这个问题，Stacks设计了一种机制，允许其区块链通过称为微块的中间较小块，充分利用在比特币上产生的两个块之间的时间。这些区块可以利用更快的确认速度，当比特币确认一个区块时，微区块可以从Stacks结算到比特币并提供最终确定性。 因此，微块在利用比特币网络的安全性的同时提高了速度。

![](https://storage.googleapis.com/papyrus_images/aeae7ddc5ce6d03d35016042c48e3964e3b22d66c07d46c30e63970ad0c73f23.png)

智能合约需要Clarity

Stacks区块链使用Clarity编程语言为智能合约提供支持。Clarity将自己与最常见的智能合约语言区分开来，主要有两个原因：

•**可判定语言**：图灵（不）完备性是机器的一种属性，如果它可以被编码，那么理论上（无法）解决任何问题。然而，解决“任何”问题所需的时间显然是未知的，也不一定是上界的。像Solidity这样的图灵完备编程语言具有广泛的技术可能性，但大部分时间都未使用。事实上，gas费用消耗模型减少了编程设计的理论范围，并促使开发人员选择更简单、更简约的智能合约结构。然而，图灵完备的语言增加了错误的表面积，并使编写防黑客代码变得更加困难。Clarity编码语言是可判定的（图灵不完整）。这使其更加安全，并且便于开发人员在运行之前查看代码将执行的操作。

•**解释代码**：此属性允许无法审计智能合约代码的非技术用户在运行智能合约之前在UI中准确查看他们的余额将发生什么。

转移证明(PoX)和质押

比特币区块链上的传统工作量证明机制基本上是这样工作的：**矿工花费算力来猜测前一个区块的哈希值，第一个能够做到这一点的人会收到比特币作为其努力的奖励**。

所有Stacks交易都以比特币结算。这使Stacks交易能够从比特币的安全性中受益。由于Stacks区块链需要将其区块头广播到比特币区块链，在Stacks上实施工作量证明算法意味着额外的能源消耗。

Stacks选择了一种更节能的机制，使用比特币作为Stacks矿工代替算力使用的“数字能源”。这种机制称为转移证明(PoX)，它允许利用和扩展任何工作证明链，例如比特币。

这种共识机制涉及双方：**矿工和质押人**。

•矿工：使用PoX，矿工无需转换电力和算力来赚取区块奖励和交易费用。相反，他们将比特币（一种工作量证明货币）转移给Stacks代币的持有者。这使Stacks代币的持有者能够从共识中赚取比特币。这个过程称为质押。领导者选举发生在比特币上，新区块写入Stacks区块链。他们的成本函数由他们承诺在比特币区块链上转移的比特币数量表示。使用可验证随机函数在Stacks区块链中选出挖掘下一个区块的矿工（也称为“领导者”），并在矿工相对于其他矿工转移的比特币的数量随着比特币的数量而增加。当选矿工除交易费外，还可获得STX代币形式的币基奖励。为了避免在Stacks区块链而不是比特币区块链上挖矿时的激励失调，每个区块的币基奖励会根据比特币减半计划随着时间的推移而减少。

•**质押人**：他们暂时锁定他们的STX以支持网络的安全性和共识。作为奖励，质押人赚取BTC，矿工将其作为PoX的一部分转移。根据持有的STX数量，他们可以选择是独立质押还是加入质押池。控制某些STX阈值数量的STX持有者（或池）将能够发布签名消息，将其STX代币锁定一段时间，指定一个比特币地址以接收资金，并在Stacks链版本上发出信号（投票）/分叉作为当前的。 这些信息对网络上的（诚实的）矿工很有用。质押人提供一个比特币地址来接收矿工发送的比特币奖励。总而言之，在PoX中，矿工并没有将电力转化为算力来获得区块奖励。相反，他们利用已经开采的比特币将它们转移到质押人上。这种方法利用了比特币工作量证明，而不会产生进一步的环境影响。

矿工在STX中获得奖励，质押人在BTC中获得奖励有什么意义？赚取BTC的质押人可以依赖比STX更成熟、更稳定的加密货币。这应该有助于促进社区的初步采用并减少对原生STX加密货币的依赖。另一方面，矿工可以通过赚取BTC以外的加密货币来实现更多的多元化，但其成功和采用本质上依赖于比特币。通过使用原生加密货币，矿工可以以无需许可的方式加入Stacks区块链。矿工和质押人以互补的方式为STX市场动态做出贡献：由于锁定STX以获得BTC奖励的激励，质押人提供了购买压力。因此，矿工可以投资挖矿活动，因为他们知道他们作为奖励获得的STX代币将得到市场的大力支持。

PoX与权益证明(PoS)有何不同？第一个区别是矿工和质押人不是同一个实体，而在PoS中它们可以重合。此外，矿工实际上花费代币来参与矿工选举，而PoS中的验证器通过以原生代币的形式绑定他们的资本来帮助达成共识。与PoS区块链相反，Stacks区块链可以分叉，因为它不受“弱主观性”问题的影响。弱主观性意味着没有矿工/验证器能够在不信任其他节点的情况下识别“正确”的链。分叉的能力使区块链能够在可能严重影响PoS链功能的严重故障中幸存下来。最后，参与共识的参与者（即质押人）以与锁定在区块链中的代币(STX)不同的代币(BTC)获得奖励。

目前有超过4.36亿个STX被锁定[质押](https://link.zhihu.com/?target=https%3A//stacking.club/cycles/current)，占STX流通供应量的30%以上。平均质押APR在8-10%范围内。

**Stacks与同行相比如何？**

可以认为最接近Stacks的项目是Liquid网络、闪电网络和RSK。然而，Stacks代表了一种独一性，它与这三个项目中的每一个都在以下特点上有所区别：

•**Stacks区块的历史存储在比特币上**。通过赋予Stacks更高级别的安全性，这使得Stacks区块链与Liquid网络等侧链不同。在Stacks区块在比特币区块链上最终确定之前，在Stacks上创建私有分叉的恶意攻击者会暴露自己。然后诚实的矿工可以采取行动阻止攻击。

•**STX代币不与BTC挂钩**。与Liquid网络不同的是，Stacks区块链上产生的价值可作为安全保障，无需提供激励措施来保持比特币和侧链代币之间的挂钩。

•**Stacks交易独立于比特币交易**。由于Stacks不是像闪电网络那样的第2层解决方案，它的效用超出了比特币的纯可扩展性改进

•**Stacks矿工独立于比特币矿工**。这使得Stacks与像RSK这样的合并开采链不同，后者的网络安全依赖于比特币矿工的子集，在某些情况下，这些矿工可能会成为一个单一的实体，在去中心化方面具有重要意义。

**STX通证经济**

对于大多数第1层区块链原生代币，Stacks加密货币(STX)旨在支付交易费用和智能合约执行费用。这使得Stacks的长期价值取决于Stacks生态系统的增长以及对Clarity智能合约的相关需求，因为：

•由于交易费用较高，矿工可以看到开采的区块价值增加，这为他们购买STX以参与共识提供了动力。

•STX质押人将能够从Stacks生态系统的增长中受益，因为他们的比特币奖励不仅取决于币基，还取决于网络使用情况。

Stacks加密货币在创世区块中有13.2亿个STX。该分配已通过2017年的首次代币发行推出，其中Stacks筹集了约4700万美元，投资者以0.12美元的价格购买了STX。2019年，发生了两次受SEC监管的代币发行：Reg S发行筹集了760万美元，STX价格为0.25美元，而Reg A+发行筹集了1550万美元，STX价格为0.3美元。

**Stacks生态系统正在经历稳健的有机增长，主要由以下领域推动：**

**BNS .btc域名**：最初Muneeb Ali和Ryan Shea在2014年的尝试是创建了一个叫onename的项目试图将比特币地址变得人类可读从而实现转账方便，这个项目远早于如今已经大火的ENS甚至早于以太坊，后者Muneeb创造性的提出全新的转移证明机制POX,这个想法才变成了现实，.btc域名也是目前唯一同时拥有安全性（与比特币锚定出块分享比特币的安全性），匿名性（一个stx地址只能对应一个域名和一个btc地址，但是可以创建无数地址），与低gas费用的去中心化域名系统，这三个特性对一个去中心化域名系统来讲未来成为web3基础设施至关重要，而大部分域名系统只能拥有一个特性，要么像ens一样拥有以太坊的安全性，要么则是像.sol一样拥有低gas费用。最近.btc域名的注册量短短几天内翻了数倍，大量DID玩家涌入意识到BNS的巨大潜力。

**CityCoins**—CityCoins创建了一个创新协议，允许社区通过转发STX以换取奖励来为其城市的财政资源做出贡献。贡献者可以通过Stacks协议提供他们的STX。30%的转发STX代币由城市在托管钱包中收集。剩余的70%被有效质押，为CityCoin质押人提供STX奖励。迈阿密是第一个加入该项目并成为头条新闻的城市，甚至在该市市长弗朗西斯·苏亚雷斯宣布其薪水将以BTC计价之前。迈阿密钱包的总价值锁定已超过2000万美元，约占迈阿密市每年税收收入的20%。纽约也加入了该计划，根据公众的良好印象，更多的人将跟随他们。

**DeFi**—第一个在Stacks区块链上上线的DeFi平台是Arkadiko。该项目旨在通过自偿贷款发行一种名为USDA的稳定币。Arkadiko的锁定总价值已经达到6000万美元。另一个非常有前途的项目叫做Alex，这是一个DeFi协议，允许用户推出和交易他们自己的代币、借贷，而没有被清算的风险并参与增产农业。 Alex最近在White Star资本领投的一轮融资中筹集了580万美元。

**NFT**—Stacks生态系统拥有一些非常受欢迎的集合。

Stacks区块链正在进行重大升级，即Stacks2.1。2.1升级不会自动进行。准备好后，它只会在网络同意的情况下激活。升级应该在2.1中提供一些向后不兼容的功能，这些功能将有助于改善Stacks区块链的整体功能，并大大加强Stacks与比特币的内生联系，例如：

•质押改进：这些功能将使质押在时间（不会因冷却期而错过奖励周期）和资本使用（用户可以从一个周期到另一个周期自由增加他们的STX并收回未用于赚取奖励的STX）方面更加高效）。

•Clarity改进：这些功能将允许程序员利用更多的内置函数、更好的解析和转换原语。此外，开发人员可以使用PoX奖励信息在Stacks之上构建质押衍生品。

•带内区块链升级：这些功能将允许矿工和STX持有者在实施向后不兼容的升级（如当前的2.1升级）时对“停止日期”进行投票，并投票延长PoX机制的停止日期。

•可靠性改进：这些功能将有助于调整运行时成本，为使用迭代的智能合约腾出更多空间，以更好的方式管理比特币闪存块，提高矿工的抽签权重，并使多重签名和验证独立于他们到达的顺序。

结语：

将智能合约引入比特币是一个令人难以置信的雄心勃勃的计划，一个公平的问题可能是，当有这么多其他区块链可用于DeFi、NFT和其他应用时，是否真的值得付出努力。然而，比特币可以依靠最大的社区、最安全和去中心化的区块链之一，并且在全球范围内被采用，目前其他币种都无法与之媲美。由于加密货币市场正在获得更广泛的采用，去中心化和网络稳健性对于大型和具有系统重要性的机构来说变得至关重要。比特币就是那个网络。中本聪的生物接受智能合约兼容性的挑战是合乎逻辑的。在多链时代来临之际，世界上最著名的区块链在产品供应方面似乎远远落后于竞争对手。Stacks已经建立了一个理论上合理且操作灵活的基础设施来填补这一空白，并将比特币提升到一个新的水平，而目前Stacks上的最大应用BNS域名系统最有可能释放比特币未来在web3的潜力。

---

*Originally published on [sirius](https://paragraph.com/@tradingscience/stacks)*
