作者:Gina Abrams (Hiro PBC)
发布时间:2021年6月21日
备注:此文章发布于2021年6月21日。很多文中提到围绕微块尚未完成的工作目前已经完成。此文仅供您了解微块使用。更多新信息请前往https://docs.stacks.co/understand-stacks/microblocks查看文档。
Stacks块链在比特币区块链上结算区块,平均每十分钟一个区块。 为了向用户和应用程序提供更及时的交易状态和结果反馈,区块链现支持微块。 本文将讨论Stacks块链将如何支持微块以及它们是如何影响交易确认,预览浏览器、钱包和应用程序中对微块的支持。
Stacks块链中的微块将出现在Stacks块链API工具中,用来加快交易处理速度。 Stacks块将始终在比特币区块链上结算,将其作为终极事实来源,但微块打开了Stacks块链交易状态的一个新的低延迟全局视图。 微块旨在改善用户和开发人员的体验,是比特币扩容的下一步。
Stacks块链对交易采用分批处理的方法,允许在单个比特币交易中结算数千笔交易。 微块可以加快交易的处理速度。 比特币区块链的出块时间约为10分钟,但开发人员和终端用户将受益于更快的交易处理速度。 在处理交易(如STX币的转移、应用程序中的网络钱包交互和交易签名等)时,微块将大大减少与Stacks块链交互的延迟,交易状态的传递时间从分钟级减少到秒级。
微块是从Bitcoin-NG协议中借用的概念,这是一篇发表在USENIX ATC 2016上的研究论文。微块为当前的Stacks矿工引入了一个新选项,可以将交易从内存池流式传输到微块中,并获得特定微块的挖矿奖励。 开发人员在如何向矿工提交交易方面也获得了更大的灵活性。
协议层的微块是发布Stacks 2.0的一部分,矿工自1月以来就能够生产它们。 面向用户的工具(如资源管理器和钱包)中对微块的全面端到端支持正处于实施和测试阶段。 Hiro团队正在致力于以微块形式发送交易的客户端支持的剩余工作,以及通过Stacks网络钱包和资源管理器将微块流中的交易状态传达给终端用户的设计。
微块是一种设计选择,既为终端用户提供了低延迟交易的好处,又体现了Stacks块链上挖矿和交易的去中心化和开放式访问。 与传统上其他区块链所提供的相比,微块可以为需要更低延迟确认的应用程序提供更好的用户体验。
对于在Stacks块链上构建和访问应用程序、智能合约、DeFi 和其他项目的用户而言,微块在用户体验方面将有的重大改进,也是我们期望在Stacks方法中看到的将应用程序和智能合约引入比特币的众多改进之一。
我们将在未来几周内分享应用程序内部微块使用的技术建议和设计指南,那些有兴趣深入了解细节的人可以在GitHub上查看Stacks Blockchain SIP-001(链接:https://github.com/stacksgov/sips/blob/main/sips/sip-001/sip-001-burn-election.md),关注 GitHub 上的 Microblocks API PR,我们刚刚发布了附加文档,包括最佳实践。
Stacks矿工被激励持续性的进行微块挖矿,但并非必须这样做。微块交易费在微块的生产者和之后的矿工之间按四六分成,后者构建了一个确认它的Stacks块。给生产微块的矿工40%的费用是为了鼓励矿工积极地去挖微块而不忽略后续交易。给确认微块的矿工 60%的费用是为了鼓励他们下载并确认微块而不丢弃它们。除了赚取部分微块交易费外,奖励矿工可使他们选择去挖微块,这样就惠及Stacks块链和生态系统。
因为Stacks矿工可以选择要确认哪些(如果有)微块,交易的确认状态会随着“确认确定性”等级的增加而转变。这些可以被认为是传统区块链中零级确认和一级确认之间的中间确认状态。内存池中未确认的交易是否会被挖是不确定的。但是,一旦交易被包含在一个微块中,它就会被挖出就更加确定了,因为现在下一个Stacks矿工确认它就有经济激励。随着越来越多的 Stacks矿工将块提交交易发送到比特币的内存池,交易的确认确定性进一步增加,这些交易对应于Stacks块,如果被下一次抽签选中,微块将被确认。一旦微块流被后续的Stacks块确认,它就会收到与确认它的Stacks块相同等级的确认确定性(即一级确认)。
用户可以选择他们的交易是否必须包含在微块中、是否必须包含在Stacks块中,或者可以包含在任一块中。如果一方面用户愿意用确认确定性来换取较低的延迟,那么用户会要求仅在微块流中挖掘交易,而不是在Stacks块中挖掘交易。另一方面,如果用户更关心确认的确定性,而不太关心延迟,则用户会要求在 Stacks 块中挖掘交易。如果用户对任何一种方式都不太关心,那么用户将允许矿工选择交易的挖掘方式。