转移证明(Proof of Transfer,PoX)

在前面的部分中,我们回顾了 Stacks 的愿景和理念,并多次讨论了它与比特币的关联以及如何在不修改比特币本身的情况下扩展功能。

在本节中,我们将介绍实现这一点的区块生成机制:转移证明(Proof of Transfer)。

本节将对转移证明做概念性概述。有关区块生成在技术层面如何具体发生的更多细节,请查看关于 区块生成.

区块链的共识算法需要计算或金融资源来保护区块链。去中心化共识的总体做法是使任何单一恶意行为者几乎不可能拥有足够的计算能力或所有权份额来攻击网络。

现代区块链中流行的共识机制包括工作量证明(proof of work),节点投入计算资源,以及权益证明(proof of stake),节点投入金融资源来保护网络。

烧毁证明(proof of burn)是另一种较少使用的共识机制,矿工通过“烧毁”(销毁)一种工作量证明加密货币来竞争,作为计算资源的替代物。

转移证明(PoX)是对烧毁证明机制的扩展。PoX 使用已建立区块链(此处为比特币)的工作量证明加密货币来保护新的区块链。然而,与烧毁证明不同的是,矿工并不销毁加密货币,而是将承诺的加密货币转移给网络中的其他参与者(此处为 Stackers)。

这允许网络参与者保护 PoX 加密货币网络并以基础加密货币(BTC)获得奖励。因此,PoX 区块链依附于其所选的 PoW 链。Stacks 使用比特币作为其锚定链。

为什么选择比特币?

Stacks 选择比特币作为驱动共识的区块链有多种原因。它是最早的区块链协议,于 2009 年发布,并已成为加密货币社区之外认可的资产。过去十年中,BTC 一直保持着最高的市值。

比特币倡导简洁与稳定,历经时间考验。对网络施加影响或发起攻击对潜在的黑客而言几乎不可行或不切实际。它是为数不多能吸引公众关注的加密货币之一。比特币已成为家喻户晓的名字,被各国政府、大型企业和传统银行机构认可为一种资产。最后,比特币被广泛认为是可靠的价值储存,并提供了广泛的基础设施以支持 PoX 共识机制。

SIP-001 提供了完整的 说明为何选择比特币来保护 Stacks 的理由清单arrow-up-right.

circle-info

顺便说一下,SIP 是 Stacks 改进提案(Stacks Improvement Proposal)的缩写,它是社区成员就对网络进行更改达成一致的流程。详细阅读 SIP 是熟悉 Stacks 实现层面的绝佳方式。所有 SIP 都可在 SIPs 部分 的文档中找到。

释放比特币资金的潜力

在前一节我们讨论了 Stacks 能够让我们在比特币之上构建去中心化经济,并且 PoX 是实现这一目标的关键组成部分。

原因有两方面。首先,作为我们在此处介绍的 PoX 挖矿过程的一部分,每个 Stacks 区块的哈希都会记录到比特币交易的 OP_RETURN 操作码中。如果你不熟悉,OP_RETURN 操作码允许我们在比特币交易中存储最多 40 字节的任意数据。

circle-info

Stack Exchange 回答arrow-up-right 对该操作码的原因和历史提供了很好的概述。

这是 Stacks 继承比特币安全性的第一部分:其历史按区块逐个锚定到比特币链。任何人都可以使用默克尔根来验证这些哈希,以确定历史是否正确。

此外,在中本聪升级(Nakamoto Upgrade)之后,Stacks 不再自行发生分叉。协议层面要求矿工在最后挖出的 Stacks 区块之上进行构建,这意味着 Stacks 由比特币 100% 的算力以及来自其矿工的 Stacks 安全预算共同保护。 我们将在 区块生成 一节中覆盖了其中的几种以及 Stacks 的比较。

此外,PoX 过程的一部分还涉及每个 Stacks 区块知道它锚定到哪个比特币区块。Clarity(Stacks 的智能合约语言)内置了用于读取此类数据的函数,例如 get-block-infoarrow-up-right,该函数返回的内容中包括一个名为 burnchain-header-hash的字段,它提供了对应于该 Stacks 区块的比特币区块头哈希。

这使我们能够做一些非常有趣的事情,比如通过监听链并验证某些交易是否发生,从而在 Clarity 合约中触发特定事件。你可以在 Catamaran Swapsarrow-up-right看到这一点的实际应用,其他有趣的项目如 Zestarrow-up-right 也在寻求扩展此功能。

所有这些的最终目标是实现 web3 的愿景:在比特币作为结算层和作为基础去中心化货币的基础上,构建去中心化经济并实现用户对资产和数据的真正所有权。

转移证明合约与技术细节

转移证明功能通过一个 Clarity 智能合约arrow-up-right在 Stacks 链上实现。该合约的概述可在文档中找到。

你可以通过阅读相关的 SIP 来查看最初的 stacking 和转移证明设计, SIP-007arrow-up-right。你也可以使用 Hiro 的 APIarrow-up-right 来获取转移证明的详细信息,包括相关的合约地址。

最后更新于

这有帮助吗?