硬核丨Blockstack提出的PoX共识有何改进?

This article is not available in the current language yet. Showing the original version.
Blockstack 是一个开源的、开发者友好的生态平台,支持开发者基于它开发去中心化应用和智能合约。

Blockstack 概述

Blockstack 是一个开源的、开发者友好的生态平台,支持开发者基于它开发去中心化应用和智能合约。Blockstack 生态由多个系统组成,共同为开发者提供构建去中心化应用所需的组件:

区块链层。Stacks 区块链(https://github.com/blockstack/stacks-blockchain)是 Blockstack 生态的基础,它通过共识机制 PoX(Proof of Transfer,转移证明)继承了比特币网络的安全性,同时提供了智能合约语言 Clarity,开发者可以使用它编写安全的智能合约。去中心化存储。Blockstack Gaia 存储系统(https://github.com/blockstack/gaia)主要存储用户的应用程序数据,无需引入中心化信任方,可以为用户提供高性能和高可用性的数据读写。去中心化账户。Blockstack Connect 是一个 JS 库(https://github.com/blockstack/ux/tree/master/packages/connect),用于将 Blockstack 身份验证和智能合约集成到应用程序中。开发者工具。包括开发者程序库和工具包,比如:生成 Stacks 交易的 JS 库(https://github.com/blockstack/stacks-transactions-js)等。

4月24日启动的 Stacks 2.0 公开测试网(https://www.blockstack.org/testnet)共分为四个阶段,目前处于第二阶段 Argon 和第三阶段 Krypton 之间,用户可参与 Stacks Mining 以及 Clarity 智能合约开发,进行 PoX Stacking 操作需等到第三阶段。

PoX 介绍

2020年初,Blockstack 提出 Stacks 区块链共识机制的 2.0 版本(提案 SIP-007),在燃烧证明 PoB (Proof of Burn)的基础上使用传输证明 PoX (Proof of Transfer)。

Blockstack 原有 PoB 共识(提案 SIP-001)选择燃烧比特币(即发送比特币到特定的废弃地址)获取 Blockstack 原生代币 STX 的出块概率。PoB 的缺点在于对比特币社区的伤害,燃烧的比特币相当于永久销毁。

PoX 在 PoB 的基础上,将燃烧的比特币以一定比例返还给持币用户,返还的方式是直接通过比特币交易分配给每个满足条件的持币用户。

PoX 流程

PoX 中有两种角色:

Stacker - 在 Stacks 区块链上发送签名消息参与 Stacking 共识中的交易验证,从而获得参与奖励 BTC。Miner - 在 Stacks 区块链上发送比特币交易参与 Stacking 共识中的竞争出块,从而获得挖矿奖励 STX。

Stacks 区块链的 PoX 流程中有两个重要的角色:Stacker 和 Miner。Stacker 通过临时锁定 STX 来获取比特币,Miner 则通过转移比特币来获取 STX。

- Stacker

具备一定阈值以上数量的 STX 持有者,可以发送一个签名消息,将其持有的 STX 锁定一个奖励周期,并指定一个比特币地址来收取参与奖励,同时投票选择一个 Stacks Chain 的当前分支。

要成为 Stacker 需要 STX 持有者满足以下两个条件:

具备一定阈值以上数量的 STX 。可以发送一个签名消息,将其持有的 STX 锁定一定周期,并指定一个比特币地址来收取参与奖励,同时投票选择一个 Stacks Chain 的当前分支。

- Miner

Miner 通过“燃烧”比特币竞争成为 Leader 获取出块权,PoX 协议使用可验证的随机函数(VRF)按 Miner 发送的比特币数量加权排序,选择一个获胜矿工作为 Leader,由它产生新的区块,并发放奖励。Leader 选举是通过比特币区块大约每10分钟进行一次。以下为运行 Miner 节点的日志:

./target/release/stacks-node start --config=./testnet/stacks-node/conf/neon-miner-conf.toml

==> ./testnet/stacks-node/conf/neon-miner-conf.toml

INFO [1589252363.341] [src/chainstate/stacks/index/marf.rs:764] First-ever block 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206

INFO [1589252421.526] [src/burnchains/burnchain.rs:842] Node will fetch burnchain blocks 0-1822...

INFO [1589253317.540] [testnet/stacks-node/src/run_loop/neon.rs:50] Configured as a miner: checking if we have UTXOs at address: mnjQP5D5AtuyrsE1wbGvueyQFey24ginXn

INFO [1589253324.729] [testnet/stacks-node/src/run_loop/neon.rs:58] Have UTXOs, starting up as miner

INFO [1589253324.757] [src/chainstate/stacks/index/marf.rs:764] First-ever block 8aeecfa0b9f2ac7818863b1362241e4f32d06b100ae9d1c0fbcc4ed61b91b17a

INFO [1589253324.775] [src/chainstate/stacks/db/accounts.rs:179] STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6 credited: 10000000000000000 uSTX

转换日志中的时间戳可以看出节点在2020-05-12 11:00:21启动,并在 2020-05-12 11:15:17 成为 Miner。

在 PoX 流程中,不同的节点对奖励集取得一致共识是困难的,会面临分叉 fork 和丢失区块数据等问题,如何在节点间取得共识?Stacks的解决方法是 将共识分为两个阶段,即准备阶段(prepare)和奖励阶段(reward)。

准备阶段是指一个在奖励阶段之前的窗口期 w ,比如 240 个比特币区块,在此阶段主要确定以下两项:

锚定区块(Anchor)。这是 Stacks 链的区块,Miner 和 Stacker 均参与锚定区块的选择。在该阶段 Stacks 节点(Miner)确定某个区块是否达到 F * w 个区块确认,同时 Stacker 会广播发出由其签名的对锚定区块支持的消息,在窗口期 w 结束时,Stacks 节点将找到潜在的锚定区块。奖励集。奖励阶段结束奖励的比特币地址集,通过 Stacks 链的状态而确定。

奖励阶段,Miner 通过广播区块提交,将比特币提交发送至有效地址来竞争获取奖励。有效地址由两条规则决定:

如果 Miner 未从任何锚定区块的链上构建,则将提交的比特币发送到燃烧地址;否则将 Miner 提交的比特币发送到从奖励集中使用 VRF 随机选择的 5 个地址。

如缺少锚定区块数据,则 Stacks 节点将奖励阶段视为未选择锚定区块(比如回退到燃烧证明 PoB)。

参与 Stacking

在 PoX 中,Stacking 是指 STX 持有者通过临时锁定其 STX 赚取 BTC 作为参与奖励的过程。Stacking 是使用已有区块链的 PoW 加密货币保护新区块链的机制。其经济利益是,新加密货币的持有者可以通过积极参与 Stacking 来获得基础加密货币奖励。在目前提案中,基础加密货币是比特币。

- Miner 门槛

基于当前的了解,成为 Miner 需要:

持有 BTC运行 Miner 节点

之后可能会有一个单独的 Miner CLI 程序(参见 Github issue 1441),它将与 STX 节点协作,执行以下 Mining 操作:

Mining 前,Miner 通过比特币交易在比特币区块中注册其 VRF 密钥;收集交易并将其打包进区块中;生成一笔区块提交交易包括 VRF 密钥和区块哈希;广播该区块;生成并广播要附加到其区块的 micro 区块(可选)。

- Stacker 门槛

在目前的提案中,参与 Stacking 所需的 STX 的数量门槛与全网参与 Stacking 的总量挂钩,也就是说 Stacker 门槛是根据参与度动态调整的。PoX 矿工都会将比特币发送至一组满足以下条件的持币者:

持有的 STX 大于或等于流通总量的 0.02%,用来确保每个奖励周期都足以覆盖所有参与者。以25%为划分为两类参与度:- 小于25%,最小参与门槛为1/20000 * 流通量。- 介于25%~100%之间,最小参与门槛为1/5000 * 流通量。以流通量 648,439,298 STX 和 100% 参与率计算,门槛是持有 129687 STX。在奖励周期开始之前,广播签名消息。

Stacking 收益

PoX 中有两类角色,即有两种方式参与 Stacking 获得收益。

关于矿工 Miner 的收益,协议为提升 Miner 的参与度,设计了自适应的挖矿和燃烧机制,这样每个区块的奖励是动态。目前的提案是:前5年,区块奖励为 500 STX/Block,接下来的5年,区块奖励为 400 STX/Block,剩余时间,区块奖励为 300 STX/Block。

作为持币用户 Stacker,每个奖励周期每个“合格”的 Stacker 都会得到奖励,如参与 Stacking 的“用户”(奖励地址)较少,那么每个“用户”获得的收益相应地会较多。

具体的收益计算涉及到一些概念和因素:

Reward Set / Reward Address,奖励集/奖励地址,一个周期内5个地址将获得 PoX 奖励;Reward Cycle,奖励周期,一个周期为1000个区块;当前 STX 的流通总量;以及矿工转移 BTC 出块获得 STX 对应的实际价值。

举个例子,假设 STX 代币按照当前交易所价格稳定为 $0.2,且假设参与 Stacking 的奖励地址有4000个,且假设当前网络中矿工燃烧的比特币为100个。那么根据当前 STX 流动量(https://explorer.blockstack.org/),按 Stacker 的最低参与门槛锁定50,000个 STX 计算,Stacker 每月获得的 BTC 对应的美元价值约为$294。

可通过这个应用来进行预估:

https://stackulator.netlify.app/

如何阻止 Miner 联盟

由于 Stacking 奖励可能产生矿工联盟,SIP-007 中提到一种有时间限制(Time-Bounded)的 PoX 方案,在主网启动 x 年后,PoX 将转为 PoB。

初始阶段,10万个区块大约2年。使用上述提到的 Stacks 奖励。过渡阶段,40万个区块大约8年,每个奖励周期的奖励和燃烧率比例线性降低0.25%(100/400)。

 参考资料 

Blockstack 技术白皮书 v2.0:https://blockstack.org/whitepaper-ch.pdf

Token 白皮书 v2.0:https://blockstack.org/tokenpaper.pdf

PoX 白皮书 v0.2:https://blockstack.org/pox.pdf

SIP-001 Burn 选举提案:https://github.com/blockstack/stacks-blockchain/blob/develop/sip/sip-001-burn-election.md

SIP-007 Stacking 共识提案:https://github.com/blockstack/stacks-blockchain/blob/develop/sip/sip-007-stacking-consensus.md

Blockstack 路线图:https://www.blockstack.org/p/roadmap

Stacks 2.0 测试网网站:https://testnet.blockstack.org/

Stacking:https://forum.blockstack.org/t/stacking-a-new-consensus-algorithm-for-blockchains/10162

PoX:https://forum.blockstack.org/t/proof-of-transfer-pox-whitepaper/10315/16

奖励地址:https://forum.blockstack.org/t/stacking-protocol-adjusting-reward-threshold-based-on-participation/10649

Stacks 2.0 testnet updates:https://forum.blockstack.org/t/stacks-2-0-testnet-launch-update/10683

矿工的 CLI 程序:https://github.com/blockstack/stacks-blockchain/issues/1441

PoX AMA:https://mp.weixin.qq.com/s/NtFBtolLjYMyeia8G1_ZOA

Share to:

Author: PA荐读

Opinions belong to the column author and do not represent PANews.

This content is not investment advice.

Image source: PA荐读. If there is any infringement, please contact the author for removal.

Follow PANews official accounts, navigate bull and bear markets together
PANews APP
Three major US stock indices close lower collectively, HOOD up over 5.56%
PANews Newsflash