BTC 二层网络 Stacks 可能面临哪些挑战?
2023-06-19 17:40
Beosin
2023-06-19 17:40
订阅此专栏
收藏此文章
PoX 机制的复杂性在目前已给 Stacks 团队带来了一些难题,后续子网的引入更会使得整个网络的复杂性陡增。


撰文:@EatonAshton2,Beosin 安全研究员


自 2023 年 2 月 Ordinals 协议推出后,BTC NFT 的铸造与 BRC-20 代币的热潮导致 BTC 网络高度活跃。随之而来的是 BTC 网络手续费飙升,网络堵塞。此外,BTC 网络不支持智能合约的特性限制了更复杂的生态业务发展。市场开始将注意力聚焦在 BTC 二层网络与应用,以期望捕获 BTC 生态增长的收益。


本文我们将为大家解读 BTC 二层网络 Stacks,我们将从其架构设计讲到其生态部分,以及面临的挑战问题。



Stacks 是什么?


Stacks 由 Muneeb Ali 基于其博士论文创建,该论文仔细介绍了一个围绕 BTC 构建的互联网框架。早期该项目被称为 Blockstack,2020 年正式改名为 Stacks。它将自己定义为 BTC 的智能合约层。


架构设计:


Stacks 在自己的区块链上执行用 Clarity 编写的智能合约并在 BTC 上最终结算交易。两条链通过 Proof of Transfer 机制交互(具体内容在共识机制介绍),从而利用 BTC 网络的安全性确保交易安全。


Source: Beosin


由于 Stacks 的交易数据需要由 BTC 网络确认,而 BTC 网络大约每 10 分钟产生一个新区块,那么 Stacks 如何扩容和提速呢?


首先,Stacks 设计了一种特殊机制,允许 Stacks 链上产生称为微区块流 (microblock stream) 的多个小区块,让负责确认 Stacks 当前区块的矿工充分利用 BTC 网络产生两个区块的时间间隔,处理更多交易。当比特币确认当前区块时,这些微区块也将实现最终确认,并且下一个 Stacks 区块会链接到当前最后一个微区块。如下图所示:


Source: Dystopia Labs, Beosin

Mechanism Detail:

https://github.com/stacksgov/sips/blob/main/sips/sip-001/sip-001-burn-election.md#operation-as-a-leader


Stacks 设定确认微区块的矿工将获得这些微区块手续费的 60%,而产生这些微区块的节点将获得手续费的 40%,以鼓励矿工打包微区块和避免微区块的滥用。


其次,Stacks 目前已推出 Hiro HyperChains,可以将其理解为 Stacks 的 Layer2,为开发者提供高性能的区块链开发平台,以满足低延时,高 TPS 的应用场景。当然,其它种类的子网也将可以构建在 Stacks 上以应对各种需求。这些子网都会先在 Stacks 网络确认交易,然后在 BTC 网络确认最终的状态。


共识机制:Proof of Transfer(PoX)


Stacks 采用了一种称为 Proof of Transfer(PoX) 的共识机制。PoX 是两条区块链之间的共识算法,可以看作是 Proof of Work + Proof of Burn。与 PoW 一样,PoX 要求矿工花费已有的资源 (BTC),以竞争铸造下一个 Stacks 区块的机会;与 PoB 类似,PoX 要求矿工「燃烧」掉 BTC 获得 STX 代币奖励。


PoX 的一个特点是矿工花费的比特币不会被销毁,而是转移给已锁定 STX 代币的 STX 代币持有者,这称为 Stacking。通过 PoX 机制,矿工花费 BTC 竞争 Stacks 的出块权力,获得 STX 代币奖励和该区块的交易手续费;STX 持有者通过锁定 STX 代币,获得 BTC 奖励,目前 APY 约 9%。


Source: 

https://docs.stacks.co/docs/stacks-academy/proof-of-transfer


Stacks 网络会使用一个可验证随机函数 VRF 随机选择出块者(花费的 BTC 越多,被选中的概率越大)。当矿工获得 Stacks 出块权力后,他们会开始打包新的 Stacks 区块。每个 Stacks 区块都包含一个指向前一个 Stacks 区块的哈希指针与指向对应 BTC 区块的哈希指针,从而将 Stacks 网络和 BTC 网络连接起来。


Stacks 下一个重要升级 Nakamoto 会带来哪些变化?


Nakamoto 是 Stacks 下一个重要升级,预计在 2023 年 Q4 完成。该升级将优化 Clarity 语言,引入子网和 sBTC。这一升级将为下一次 BTC 生态的爆发提供比较完善的基础条件。


子网:


Stacks 将会引入支持其它编程语言和执行环境的子网,如 EVM 子网。这会将以太坊上的项目更容易迁移到 Stacks 网络上,让 Stacks 捕获 EVM 链的资金和流量。同时这些智能合约都可以使用比特币作为其资产,并最终在比特币网络上结算。


子网是 Stacks 的扩容解决方案,通过牺牲一定的去中心化提高网络性能。子网可以选择高网络带宽的矿工节点或是属于子网白名单的矿工节点来处理子网的交易,以确保高性能。


sBTC:


sBTC 是 Stacks 在 Nakamoto 升级中推出的去中心化的 BTC 锚定方案。sBTC 的引入将解决 BTC 二层网络如何使用 BTC 资产的问题,在 Stacks 和 Stacks 子网上的智能合约能够使用 sBTC 开展借贷,兑换,铸造稳定币等各种 DeFi 业务,增加 BTC 生态的 TVL。


目前市场上已有很多种 BTC 锚定资产,如将 BTC 引入以太坊的 Wrapped BTC(wBTC),RenBTC 和 tBTC;将 BTC 引入 BTC 二层 RSK 网络的 RBTC。锚定原理大致相同:先在 BTC 网络上锁定 BTC,然后在目标网络上铸造相同数目的锚定 BTC;在目标网络上销毁锚定 BTC,然后在 BTC 网络解锁相同数目的 BTC。但关键在于锁定 BTC 资产的中心化程度,比如 wBTC 是由加密货币托管服务商持有用户锁定的 BTC,中心化风险较高。之前 3AC 和 Alameda 就是 wBTC 的合作经销商,他们的破产导致一些用户无法顺利将 wBTC 换回 BTC。RBTC 采用 BTC 网络的多重签名地址负责锁定 BTC,使用 Powpeg 机制确保 BTC 锁定的信息正确传递到 RSK 网络并执行签名,进一步降低了中心化风险。


sBTC 在 BTC 网络中使用门限签名钱包管理锁定的 BTC,在 Stacks 网络中通过智能合约铸造 BTC,从而实现非托管,去中心化的 BTC 锚定。要执行 peg-out 操作解锁 BTC 必须获得有效的签名:至少获得 70%stackers(锁定 STX 代币在 PoX 中获得 BTC 奖励的用户)的签名权力。这样大大降低了资产托管的中心化风险。


Source: https://stx.is/sbtc-pdf


Stacks 的优势


生态优势:


Stacks 是目前最活跃的 BTC 二层网络。在 Ordinals 协议推出后,市场对 BTC NFT 的兴趣逐渐增加,Stacks 上的 NFT 活动也开始活跃。据 Muneeb Ali 的说法,Stacks 网络已铸造价值超 65 万美元的 NFT。


此外,Stacks 的 DeFi 项目 Alex 在今年上半年 TVL 上涨 500%,当前 TVL 达 $24.61M。Alex 是 Stacks 的头部 Dex,产品构建非常完善,提供交易,借贷,打新,永续合约等功能。随着 Stacks 的升级和 BTC 生态的增长,Alex 还有更大的发展空间。


Stacks 生态的 Arkadiko 项目类似 MakerDAO,专注于超额抵押资产铸造去中心化稳定币 USDA,提高 Stacks 网络的资产流动性。虽然该协议还未爆发,但我们可以期待 sBTC 引入 Stacks 网络后它的表现。


Source: https://twitter.com/muneeb/status/1456007656305479684


Citycoin:


CityCoin 是一个构建在 Stacks 上的协议,允许社区通过花费 STX 代币来获得 Citycoin 的奖励,从而为城市的财政做出贡献。参与者花费 STX 代币成为「矿工」挖 Citycoin,花费的 STX 代币中的 30% 会存放在城市金库中,剩余的 70% 作为 CityCoin Stackers 的奖励。如果你理解了上文的 PoX 机制,Citycoin 的激励设计几乎与其相同。


source: 

https://docs.citycoins.co/core-protocol/mining-citycoins


迈阿密是第一个加入该项目的城市,推出了 MiamiCoin(MIA)。迈阿密城市金库钱包的总价值已超过 2000 万美元,约占迈阿密市公共预算的 2%,这些资金将会用于回馈当地社区。纽约随后也加入了该计划,推出了 NYCCoin。这让更多公众接触并使用数字资产和钱包,为区域的公共服务筹集资金,也帮助 Stacks 的品牌树立了良好形象。


Stacks 可能面临的挑战


PoX 的设计风险:


PoX 需要 BTC 矿工花费 BTC 参与 Stacks 出块的竞争,从而获得 STX 代币奖励。目前 BTC 矿工之间竞争的较小,收益丰厚(1000 STX/ 区块,每 4 年奖励减半,最后降至 125 STX/ 区块),矿工有很大动力参与 Stacks 出块的竞争。从下图数据可以看到,参与 7278 次竞争的矿工花费了约 3.56 个 BTC,获得了 1337000 个 STX 代币(当前约为 29.4 个 BTC)


Statistics: https://app.onstacks.com/


如果未来 Stacks 奖励减少,而参与竞争的矿工人数增加,矿工获得的 STX 代币奖励小于其花费的 BTC,那么矿工还会继续参与 PoX 吗?根据 Onstacks 的数据,目前参与 PoX 的活跃矿工仅 6 位。后续 Stacks 继续发展,假设矿工数只增加 10 倍,而 STX 奖励再过一年左右的时间即将减半到 500 STX/ 区块,那么 STX/BTC 汇率需要再翻 2.5 倍才能保证矿工有利可图,从而有动力参与 PoX。因此,要么 STX 的价值能继续提升,要么参与竞争的矿工人数有上限,才能保证 Stacks 的网络继续运行。Stacks 能像 BTC 一样即使经历矿工「关机」也可以重新复苏吗?


PoX 的合约漏洞:


2023 年 4 月 19 日,Stacks 发现其 pox-2 合约中的 stacks-increase 函数存在漏洞,导致 bc1qpyjutel6d4gj50dscphjrqcp29ljtfjel7ccap 地址获得了比理论计算上更多的 BTC 奖励。该计算错误是因为 stacks-increase 函数将诸如数据库修改的操作与决定状态更改的逻辑混在一起,然后使用 reward-cycle-total-stacked 作为全局变量在连续迭代中保存状态。目前 Stacks 团队暂时将 Stacks 切换到 PoB 共识,后续将 pox-2 替换为 pox-3 合约,然后 Stacks 恢复采用 PoX 共识。社区中有开发者呼吁将 Clarity 改良为函数式,表达式导向的开发语言,以方便静态分析和进行形式化验证,避免在未来主网上再次出现此类漏洞。


总结


Stacks 无疑是 BTC 二层网络的头部项目,有持续发展的生态和优质的品牌效应,而且即将迎来重大升级:可靠、无需信任的 BTC 桥,sBTC,子网和 Clarity 语言的优化,为 BTC 生态的爆发提供基础条件。但同时 PoX 机制的复杂性在目前已给 Stacks 团队带来了一些难题,后续子网的引入更会使得整个网络的复杂性陡增。如何确保 Stacks 网络正确运行,顺利完成 Nakamoto 升级是 Stacks 团队需要努力解决的挑战。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

Beosin
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开