Community Wiki for SIP-007

I’ve been seeing some questions about various terms in the Stacking forum post and SIP that need clarification.

I think this is a great opportunity to utilize the Blockstack community wiki that @fluidvoice has created (and @friedger helps maintain). Can we help Brad and Friedger out by crowdsourcing explanations for the following terms here? Or propose updated terms for each so we can reduce confusion?

  • Stacking
  • Stacking Consensus Mechanism
  • Stacks 2.0
  • Stacks Mining
  • Proof of Transfer (PoX)

Let’s start a thread here!

8 Likes

Proof of Burn (PoB): The mining mechanism used in Stacks 1.0, Blockstack’s first implementation of the blockchain and platform core
.
Proof of Transfer (PoX) : The Stacks 2.0 mining mechanism. As part of Stacking consensus enables benefits not possible with just proof-of-work or proof-of-stake.

Stacks : the name used for both (1) the Blockstack blockchain and (2) the name of the Blockstack native token, which is also known by it’s ticker symbol STX.

Stacks 2.0 : the second major version of the Blockstack blockchain and platform core. Implemented in the Rust programming language. It includes native Stacks mining, the Clarity smart contract language, and other improvements.

Stacking : The consensus algorithm used for Stacks 2.0.
Stacking takes the same Bitcoin used in Stacks 1.0 (PoB), but instead of destroying it, transfers it to users who are (1) holding Stacks tokens and (2) actively participating in the consensus algorithm. Once every reward cycle (roughly once per month), every user who meets the eligibility for Stacking would receive a reward (a payout) of Bitcoin from the network.

Stacking Consensus Mechanism : see (Stacking)

6 Likes

Nice Brad! This is a great, thank you. Do you feel we need to further differentiate the process where folks hold stacks from the entire consensus mechanism (which includes PoX)?

1 Like

As I read and digest, I’m using the wiki (blockstack.world) as sorta my technical blog to write down my understanding. Then will post here or link to it for feedback. I’m still digesting SIP-007 and forum thread :slight_smile:

1 Like

There are a few community members that made an infographic about Stacking consensus mechanism. It will be great to add that in the community wiki. :innocent:

yes, will include it when you give it to me :slight_smile: blockstack.world/#Stacking

1 Like

I edited the entry about Blockstack. Some comments:

  • We want to separate out Blockstack PBC from Blockstack the project. Most people only care about Blockstack the project and the company is less important. I think PBC can have a separate entry where details about the company can go.

  • Blockstack can be described in many ways e.g., decentralized computing network, new decentralized internet, web 3, app development platform and so on. I’m trying to go for the “software for a user owned internet” terminology. I think the average readers gets confused about “new internet” vs internet. To them it’s the same thing. Also, the reader won’t know what’s new/different about it. User ownership is a key property of Blockstack and anchoring descriptions around user ownership can help. Saying that it’s “Software for” catches the case where there are many different parts of the software stack (storage, Clarity, Stacks blockchain etc). And we can then break up the different parts as well.

Excited to see this community effort – great work @fluidvoice!

5 Likes

OK, noted. I’ll update as per your feedback.

Thanks for your work on this, Brad! We’ll get more community input on this as you continue to update :slight_smile:.

@fluidvoice @jrmith to eliminate confusion, it will be nice to explicitly define the participating segments with the proposed consensus mechanism. I grabbed these definitions from @muneeb.

  1. Stacks Miners: They mine newly minted Stacks and are spending Bitcoin in PoX fashion. Miners write blocks and get transaction fees on top of newly minted Stacks.

  2. Stacks Holders (Stackers): They hold the current liquid STX supply, run full-nodes, and receive Bitcoin payouts. They do not write blocks and do not get transaction fees. They also don’t spend Bitcoin (but receive it).

Feel free to tweak @fluidvoice for our community wiki!

1 Like

[ edit: btw, keeping track of wiki todo’s in the wiki >> blockstack.world/#todo ]

Yes, it is confusing. A Stacker (Stacks holder) is a person that can run a full-node or it’s the node itself? The term “node” is explicit - it’s a device not a person. So how about this? >>

Node = Stacks Node = Stacking Node = involved in Stacking consensus
Miner = Stacks miner = Stacking Miner = involved in Stacking consensus
Stacker = Node ?

My confusion is a Stacker always a Stacking Node or can it also be a non-Stacking Node that holds STX but not participating in consensus?

The difference between a Stacks node and a miner is minimal. You can tell your Stacks node to go assemble a block out of unconfirmed transactions in the mempool and send a key-register and block-commit transaction to try and mine it (per SIP 001).

A Stacker would want to run a full Stacks node simply because they need to be able to identify for themselves which Stacks chain forks exist, so they can bless the dominant fork. It’s out of their own self-interest. If they simply used a remote Stacks node, a man-in-the-middle could lie to the Stacker about which Stacks forks exist in order to trick him/her into blessing the wrong fork.

1 Like

@jude OK, that sounds similar to why people run a bitcoin full-node. So is this accurate?..

Stacks Holder = device w/Stacks wallet containing STX but non-syncing and not participating in Stacking consensus.
Stacks Node = a Stacks holder that is syncing the Stacks blockchain, participating in Stacking consensus (Stacking Full Node)
Stacks Miner = a Stacks node that’s performing mining functions of the Stacking consensus protocol.

2 Likes

Yeah, those are good descriptions. Running a Stacks full node carries the same motivations as running a full Bitcoin node – you do it so you can be sure about the state of the network without having to trust anyone in particular (just the majority of miners).

1 Like

@jude what about this also?
Pool Node = a Stacks Node (non Full Node) that is staking STX and participating in Stacking consensus and rewards but does not sync the blockchain. The chain syncing and reward distribution is performed by the Pool operator.

A diagram would be extremely helpful here.

1 Like

I don’t think that’s accurate. First, there is no staking in this protocol. Second, a node that doesn’t sync isn’t a node – it’s a wallet. Maybe this should be a “Stacking wallet”?

@jude thanks. Will update wiki. Pls comment as you see fit >> blockstack.world/#Nodes
I said staking in the loose sense of Stacks Nodes are doing a kind-of staking (STX) though rewarded in something else (BTC).
I was just thinking of including pool nodes and storage nodes in the broader sense of all the nodes on the network that could be involved in the Stacks eco-system as far as Tx/Rx of STX. So also Apps and Storage servers that might be paid services via subcriptions, pay walls, etc., using Clarity/STX contracts. Or put another way, if I was to draw a diagram of all the possible entities participating in the 2.0 ecosystem - how would I label them?

1 Like

Thank you for creating the wiki! Your work has been instrumental in helping me (somewhat) understand SIP-007.

1 Like

Thanks. Well I’ve only just started to learn myself so it will be improved a lot soon as I’m able to absorb more info in the forum, Discord, online meetups like upcoming one in NYC, etc.

1 Like