Skip to content

Fix all references to smeshing #134

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"cSpell.words": [
"smesher",
"smeshers",
"Smeshing",
"Spacemesh"
]
Expand Down
6 changes: 3 additions & 3 deletions docs/learn/blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ title: Blocks and Transactions

In traditional blockchains such as Bitcoin or Ethereum each block contains a "backwards pointer" to the previous known block (i.e., the previous chain head). In this way it's not possible to replace a single, historical block without replacing every block that came after.

Due to its mesh design, Spacemesh doesn't work this way. Spacemesh blocks are freestanding, i.e., each individual block is deemed valid or invalid on its own right by the consensus mechanisms, Tortoise and Hare. The protocol allows for zero or more valid blocks in a given layer. The vast majority of layers are expected to have a single valid, effective block. Empty layers may occur from time to time when certain assumptions are violated, e.g., when many miners are offline and the Hare consensus mechanism fails.
Due to its mesh design, Spacemesh doesn't work this way. Spacemesh blocks are freestanding, i.e., each individual block is deemed valid or invalid on its own right by the consensus mechanisms, Tortoise and Hare. The protocol allows for zero or more valid blocks in a given layer. The vast majority of layers are expected to have a single valid, effective block. Empty layers may occur from time to time when certain assumptions are violated, e.g., when many smeshers are offline and the Hare consensus mechanism fails.

There can only be multiple valid blocks in a given layer when security assumptions are temporarily violated, e.g., when the network temporarily loses synchrony or > 1/3 of miners act dishonestly. In this case the protocol dictates that a single block be deterministically chosen as the only _effective_ block for the layer. Over time the network's self-healing mechanism ensures that all honest nodes reach consensus on the canonical set of valid, effective blocks, zero or one per layer.
There can only be multiple valid blocks in a given layer when security assumptions are temporarily violated, e.g., when the network temporarily loses synchrony or > 1/3 of smeshers act dishonestly. In this case the protocol dictates that a single block be deterministically chosen as the only _effective_ block for the layer. Over time the network's self-healing mechanism ensures that all honest nodes reach consensus on the canonical set of valid, effective blocks, zero or one per layer.

In practice this means that a _single historical block_ and its contents may be reorg'ed in or out of the canonical chain. When a historical change occurs, the state rolls back (i.e., reorgs) to the point of change and all subsequent canonical state (i.e., all transactions in the new canonical chain) is replayed from that point forward. This could mean that transactions in the canonical chain that were previously effective now become ineffective, or vice versa. It may also mean that the same transaction (uniquely identified by its transaction ID) may appear in multiple blocks, in the same layer or in multiple layers. When this happens, only the first instance of the transaction in the canonical chain is considered effective; later instances are ignored.

A layer contains zero or more blocks. Most layers contain exactly one block, but it's possible for a layer to have zero blocks (when the network is under attack, or during times when many miners were offline or otherwise acting Byzantine) or more than one block (e.g., after a network partition-and-rejoin). In rare cases of multiple blocks, the network will establish consensus on a single block as canonical; transactions in other blocks will not be included in the canonical mesh nor processed. A block may thus be _valid_ or _invalid_ and there may only be one _valid_ block per layer.
A layer contains zero or more blocks. Most layers contain exactly one block, but it's possible for a layer to have zero blocks (when the network is under attack, or during times when many smeshers were offline or otherwise acting Byzantine) or more than one block (e.g., after a network partition-and-rejoin). In rare cases of multiple blocks, the network will establish consensus on a single block as canonical; transactions in other blocks will not be included in the canonical mesh nor processed. A block may thus be _valid_ or _invalid_ and there may only be one _valid_ block per layer.

Blocks contain zero or more transactions. Blocks are uniquely indexed by their block hash.

Expand Down
8 changes: 4 additions & 4 deletions docs/learn/economics.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ id: economics
title: Economics
---

The primary goal of Spacemesh is to make mining from home easy and economically sustainable over the long term. This means that home miners should not be "priced out" by large-scale, industrial "whale" mining operations with large economies of scale. While we cannot perfectly eliminate economies of scale--for instance, large scale operations will likely be able to acquire data storage more cheaply on a per-TB basis, and will likely have access to cheaper power--what we can do (and, indeed, have done) is level the playing field by introducing _diseconomies of scale_ that favor home miners.
The primary goal of Spacemesh is to make mining (called "smeshing" in Spacemesh) from home easy and economically sustainable over the long term. This means that home miners (called "smeshers" in Spacemesh) should not be "priced out" by large-scale, industrial "whale" mining operations with large economies of scale. While we cannot perfectly eliminate economies of scale--for instance, large scale operations will likely be able to acquire data storage more cheaply on a per-TB basis, and will likely have access to cheaper power--what we can do (and, indeed, have done) is level the playing field by introducing _diseconomies of scale_ that favor home smeshers.

To understand how this works it's necessary to consider [marginal cost](https://en.wikipedia.org/wiki/Marginal_cost). For a miner running her node on a computer that she already owns and uses every day, on a home Internet connection that she already has, the marginal cost is effectively zero. More precisely, the marginal cost is the cost of the GPU-based PoST initialization (which amortizes to zero over time), and the cost of keeping the computer turned on and online all the time rather than during the hours she'd normally use it. For the average home miner with an unmetered broadband Internet connection this works out to around $10-20 annually. Such a miner simply needs to earn more than this per year from mining for it to be worthwhile.
To understand how this works it's necessary to consider [marginal cost](https://en.wikipedia.org/wiki/Marginal_cost). For a smesher running her node on a computer that she already owns and uses every day, on a home Internet connection that she already has, the marginal cost is effectively zero. More precisely, the marginal cost is the cost of the GPU-based PoST initialization (which amortizes to zero over time), and the cost of keeping the computer turned on and online all the time rather than during the hours she'd normally use it. For the average home smesher with an unmetered broadband Internet connection this works out to around $10-20 annually. Such a smesher simply needs to earn more than this per year from mining for it to be worthwhile.

By contrast, a hobbyist miner investing time and money into building a custom mining setup has both a higher startup cost and a higher ongoing cost. An industrial miner has an even larger, more complex cost structure. The cost of mining at scale--factoring in power, bandwidth, redundancy, fixing drive failures, devops, etc.--means that large scale mining operations are not able to compete on a marginal cost basis with home miners.
By contrast, a hobbyist smesher investing time and money into building a custom mining setup has both a higher startup cost and a higher ongoing cost. An industrial smesher has an even larger, more complex cost structure. The cost of mining at scale--factoring in power, bandwidth, redundancy, fixing drive failures, devops, etc.--means that large scale mining operations are not able to compete on a marginal cost basis with home smeshers.

In short, if you're spending money to mine Spacemesh you're very likely to lose money and this is by design.
In short, if you're spending money to smesh, you're very likely to lose money - and this is by design.
4 changes: 2 additions & 2 deletions docs/learn/rewards.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ Rewards are added to a smesher's coinbase account (the one registered in its ATX

## Punishment

Every robust system of incentives must include sanctions as well as rewards. In the case of Spacemesh and other permissionless, public blockchains, block producers (miners) must be punished for violating the rules of the protocol or failing to contribute to consensus.
Every robust system of incentives must include sanctions as well as rewards. In the case of Spacemesh and other permissionless, public blockchains, block producers (i.e., miners, or smeshers in the case of Spacemesh) must be punished for violating the rules of the protocol or failing to contribute to consensus.

In Spacemesh Smeshers are _not_ punished for failing to contribute, e.g., for failing to publish proposals in their eligible slots. However, they do fail to receive rewards in this case which amounts to the same thing economically.

The only sanctionable offense in Spacemesh is equivocation, otherwise known as double voting: voting twice or submitting multiple proofs in the same slot. There are currently three types of equivocation in Spacemesh, corresponding to three components of the protocol: Hare, ATX, and Ballots. If a smesher generates, signs, and broadcasts conflicting Hare messages in the same round, or produces multiple ATXs targeting the same epoch, or produces multiple voting ballots in the same slot, other nodes will detect this malicious behavior and will generate and gossip a **malfeasance proof** containing the conflicting signed messages. In short order, every node in the network will flag the sanctioned smesher as malicious and future messages from the smesher will be ignored. It will thus immediately lose its eligibility to participate in consensus and will receive no future rewards.

Note that, unlike in proof of stake networks, **there is no slashing in Spacemesh.** In other words the coins earned by a smesher will not be reduced, and all coins earned prior to the moment of malfeasance are still valid and spendable.

However, once a malfeasance proof has been generated and broadcast for that smesher, its identity is effectively burnt. The only option is to delete the PoST files and generate them again from scratch using a new identity. Therefore it's essential that miners use caution when moving identities, and they must **never run two nodes attached to the same identity at the same time.** There's more information on how to avoid this in [our Advanced Smeshing Guide](../start/smeshing/smeshing_adv/equivocation.md).
However, once a malfeasance proof has been generated and broadcast for that smesher, its identity is effectively burnt. The only option is to delete the PoST files and generate them again from scratch using a new identity. Therefore it's essential that smeshers use caution when moving identities, and they must **never run two nodes attached to the same identity at the same time.** There's more information on how to avoid this in [our Advanced Smeshing Guide](../start/smeshing/smeshing_adv/equivocation.md).
2 changes: 1 addition & 1 deletion docs/learn/smeshing.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ title: What is Smeshing?

In short, smeshing is mining. Similar to Bitcoin and other public blockchains, smeshing is the process of dedicating scarce resources to the Spacemesh network in exchange for eligibility to produce proposals and earn rewards. At a high level, mining in Spacemesh works like it does in other blockchains: smeshers provably spend scarce resources in order to obtain eligibilities to participate in block production at certain points in time, are rewarded with coins for following the rules of the protocol and contributing to block production, and are punished for violating these rules.

However, unlike in other blockchains, the scarce resource committed to the protocol is _spacetime_ (as opposed to hashing power in proof of work, or staked capital and time value of money in proof of stake), and multiple miners participate in the creation of each block.
However, unlike in other blockchains, the scarce resource committed to the protocol is _spacetime_ (as opposed to hashing power in proof of work, or staked capital and time value of money in proof of stake), and multiple smeshers participate in the creation of each block.
2 changes: 1 addition & 1 deletion docs/learn/spacemesh.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Consider, for instance, Bitcoin. Industrial grade, specialized machines are a pr

It can be argued that Ethereum, with its Proof of Stake consensus algorithm, is also “green” and inclusive: one only needs to stake ETH in order to participate in consensus and block production. However, a validator must first acquire ETH to stake. While ETH is a liquid asset that can be purchased easily enough, it still requires access to an exchange which usually means having a bank account, passing a KYC/AML process, etc. Strictly speaking this process is not permissionless; by contrast, mining Spacemesh coins simply requires running the mining software and is thus 100% permissionless!

Furthermore, it’s possible for any proof of stake network, including Ethereum, to be effectively and invisibly captured by a small number of colluding actors that collectively control a substantial portion of the stake. This casts a shadow of concern over the security and censorship resistance of the network. However, Spacemesh, with its Proof of Spacetime consensus algorithm, allows anyone to participate in the smeshing process simply by allocating at least 256 GiB hard drive space. Like proof of work, honest miners in Spacemesh can always permissionlessly add more weight to their votes in the consensus mechanism, effectively routing around any such attempts at capture or censorship.
Furthermore, it’s possible for any proof of stake network, including Ethereum, to be effectively and invisibly captured by a small number of colluding actors that collectively control a substantial portion of the stake. This casts a shadow of concern over the security and censorship resistance of the network. However, Spacemesh, with its Proof of Spacetime consensus algorithm, allows anyone to participate in the smeshing process simply by allocating at least 256 GiB hard drive space. Like proof of work, honest smeshers in Spacemesh can always permissionlessly add more weight to their votes in the consensus mechanism, effectively routing around any such attempts at capture or censorship.

As such, the Spacemesh approach to securing the network and distributing rewards to the honest participants is not only environmentally-friendly, but also far more decentralized, and censorship resistant. With just some storage space and a stable internet connection, one can earn guaranteed rewards while also contributing to the security of the network.

Expand Down
Loading
Loading