Browse Source

feat: added discussion point based on Diwaker's feedback

fix/microblocks-feedback
Patrick Gray 4 years ago
committed by Patrick Gray
parent
commit
d873bca746
  1. 14
      src/pages/understand-stacks/microblocks.md

14
src/pages/understand-stacks/microblocks.md

@ -19,7 +19,7 @@ still inheriting the security of Bitcoin.
## Transaction states
The Stacks block production model is described in [SIP-001][]. The standard outlines the mechanism by which elected
The [Stacks block production model][] is described in SIP-001. The standard outlines the mechanism by which elected
block leaders can produce blocks on the Stacks blockchain either by batching transactions or by streaming them.
Microblocks are the product of the streaming model.
@ -28,9 +28,13 @@ into microblocks during the current epoch. Transactions included in microblocks
been confirmed by an anchor block, but can be assumed to be highly likely to achieve finality in the order in which the leader
packaged them.
While there is a high degree of confidence that streamed blocks are finalized in the order in which a block leader
selects them, there is still a chance that microblocks can be reorganized in an anchor block. The processing order of
transactions in microblocks can change depending on on how the microblock is finalized in the anchor block.
A primary feature of any blockchain is that it can be reordered by the miners in order to avoid malicious actors in the
mining pool. Because of this reordering ability, any transaction (whether it is included in an anchor block or a
microblock) is subject to potential reordering. As more blocks are added to the chain, the likelihood of a transaction
being reordered decreases. For example, many exchanges wait until at least 3 Bitcoin blocks have been added to report
a transaction as fully confirmed. This would be known as a 3 block confirmation. Microblocks provide between a 0-1 block
confirmation. A transaction that has been included in a microblock is likely to remain in that order, and the order of
the transaction is known (unlike a transaction in mempool).
-> If a transaction is dependent on a chain state that could by altered by previous transactions with serious
implications, you should carefully consider whether it should be performed using microblocks.
@ -88,7 +92,7 @@ The state of microblock transactions should be carefully communicated to users.
included in an anchor block, and your application design should reflect this.
[proof-of-transfer consensus mechanism]: /understand-stacks/proof-of-transfer
[sip-001]: https://github.com/stacksgov/sips/blob/main/sips/sip-001/sip-001-burn-election.md#operation-as-a-leader
[stacks block production model]: https://github.com/stacksgov/sips/blob/main/sips/sip-001/sip-001-burn-election.md#operation-as-a-leader
[mining microblocks]: /understand-stacks/mining#microblocks
[anchor mode]: /understand-stacks/transactions#anchor-mode
[anchormode]: https://stacks-js-git-master-blockstack.vercel.app/enums/transactions.anchormode.html

Loading…
Cancel
Save