What are the problems that Spacemesh is trying to solve?
On the product level we aim to solve 3 main problems:
1. Cryptocurrency fair global distribution.
We aim to create the world’s most fairly distributed and decentralized cryptocurrency. One of the main challenges facing a cryptocurrency today is how to fairly distribute it to billions of people across the globe without needing them to buy it with a local currency. We believe that current methods for coin distribution, such as ICOs, airdrops, participation in mining pools and IEOs all have serious deficiencies and that the problem remains as yet unsolved.
2. Lack of an infrastructure for a global means of payment.
We aim to create a cryptocurrency that is highly usable as means of payment between any two people in the world without any possibility of censorship. On the technical level, we aim to solve inherent issues involved in PoW based consensus mechanisms, mining pools, ASIC mining as well as the inherent issues involved in PoStake-based consensus mechanisms, such as a centralized plutarchy of rich validators, validators' incentives to collude to diverge from protocol, and the strong centralization of consensus forces.
3. Lack of satisfactory blockchain and smart contracts infrastructure for creation of fair communities.
Smart contracts at scale will transform society by allowing any community to create and operate their own fairness rule system on the platform. We will get the technology into the hands of the masses, and achieve the scale necessary to fulfill the promise of the Blockchain. We will enable creators, writers, artists, journalists and merchants to automatically enforce the terms of payment contracts, ensuring that they get paid for their work, and that social inequality will be reduced by fundamentally changing the extractive nature of our economy to one of equal participation by all players.
What is the Spacemesh security assumption?
The Spacemesh mainnet is safe so long as the basic security assumption holds true. This assumption states that as long as no more than ⅓ of the total storage space committed to the platform by all full nodes who participate in the consensus protocol is controlled by malicious entities who collude to attack the network, the network is secure.
While an attack by more than ⅓ of the storage is on-going, honest parties may not be able to agree on a canonical transactions history. This means that during the attack
(i) Users may not able to execute transactions.
(ii) Honest miners may spend resources and won’t get rewarded due to blocks that seem valid, but turn out to be invalid.
(iii) A seller may think that a payment was confirmed with a high level of confidence, but in truth it would be reversed after the attack ends. So an attacker may be able to double-spend by paying 2 sellers with the same coin - a history rewind attack.
Once the attack ends, Spacemesh's self-healing method restores both liveliness and safety and all honest parties will agree again on one true transaction history that doesn’t include invalid transactions (for example: 2 transactions that spend the same coin) so the attack’s damage is limited to what can happen during the attack as described here.
What is the Spacemesh Testnet maximum transactions rate?
90 transactions per second. We set the Testnet various protocol parameters to limit the base-layer growth rate and the amount of bandwidth required to download blocks, so home miners can use their existing hard drives and a fraction of a typical home Internet connection capacity to run testnet full nodes. With up to 10,000 active miners and a limit of up to 250GB per year base-layer growth rate, the Testnet can support up to 90 transactions per second.2 This is about 18x better than Bitcoin and 12x better than Ethereum's current transaction processing rate at full network capacity3.
What is the Spacemesh Main net maximum transactions rate?
We don’t know yet. We are releasing an open Testnet to test the performance and security of the network with different parameters. Based on the results of those tests we plan to establish the key Main net parameters, which will determine the Main net maximum transaction rate.
What is the expected transaction confirmation time?
Under normal operational conditions4 the expected base-layer transaction confirmation time is 7.5 minutes with overwhelming confidence probability5. Under adversarial conditions or bad network conditions, the confirmation time may be longer depending on how long the attack is ongoing and the attacker's strength.
2 2 weeks epoch. 90 bytes average coin transfer transaction size. 200kb activation transaction size.
3 Using Bitcoin's and Ethereum's actual average transaction rates at full network capacity. 30 days average, March 2019.
4 Good overall p2p network conditions and no malicious full nodes, and with a layer width of 5 minutes and a 100 nodes Hare consensus committee
5 P = 1 - 2-40 = 0.99999999999
What is the environmental impact of using storage instead of POW ASICs?
Spacemesh is designed to enable millions of ordinary people with desktop PCs to use already available disk space on their systems to establish their identities for participation in distributed consensus. There are hundreds of millions of people worldwide today with this kind of system already available to them, and about 80 million new desktop PCs are sold a year6.
Spacemesh is designed to use commodity-level digital storage such as magnetic drives and SSD drives. To make any kind of non-negligible environmental impact due to additional drives being manufactured because of Spacemesh mining, worldwide drive manufacturing will need to grow above current levels. As of 2019, about 640 million new drives are made and sold worldwide7. Even in the scenario where 1M additional drives are manufactured yearly due to Spacemesh, the overall impact on the environment over the current environmental harm of storage manufacturing is negligible (about 0.15% increase in impact).
An additional component is the increased electricity consumption due to home users leaving their PCs on 24x7 for Spacemesh mining instead of shutting them down and starting them up on a daily-basis. This amounts to about $7 a month8 and is negligible compared to Bitcoin electricity costs. 100,000 Spacemesh mining PCs will demand about $700K per month in electricity costs9. Bitcoin's current electricity costs are about $440 million per month10.
Spacemesh has a one-time POW-like setup process per miner with an expected duration, depending on the amount of storage that a miner commits, to establish his identity on the platform. The expected duration for the Testnet release will be about 48 hours for PCs with a standard GPU and a minimum commitment size of about 150GB. The storage committed by this one-time process to Spacemesh can be used for an unlimited period of time as a proof of space-time. In this scheme, there is no ongoing energy consumption due to the constant computational race involved in current POW-based protocols.
Assuming honest users leverage their existing PCs, the energy cost per transaction while the protocol is running is negligible compared to POW systems. With 85 tx/s and 1 million Spacemesh home miners, the cost per transaction in terms of power consumption is about 3 US Cents per month for Spacemesh, compared with $50 for Bitcoin11.
6 https://www.statista.com/statistics/272595/global-shipments-forecast-for-tablets-laptops-and-desktop-pcs/ https://www.statista.com/statistics/269044/worldwide-desktop-pc-shipments-forecast/
8 Assuming $0.10 kwh and 100 watts power usage
9 Assuming about 3 hours a day normal PC usage vs 24 hours a day for Spacemesh miners
11 $0.12 average us kwh cost. See https://digiconomist.net/bitcoin-energy-consumption . $7 average increase in home miner power bill due to PC open 24x7 instead of few hours a day. Assuming 85 tx/s.
How does Spacemesh achieve a high-degree of decentralization?
Spacemesh is designed to be run by home desktop PC owners from around the world. There are tens of millions of such people with sufficient system and internet connectivity who can join the platform, form a global decentralized computer and cryptocurrency and provide security for it. Decentralization is achieved where there is a large number of non-coordinated entities with a high-degree of geographical distribution, and since the barrier for entry for such people is extremely low in Spacemesh compared to any other blockchain platform, we believe this is achievable. In the case of POW systems, the only way to be profitable for a miner is to purchase dedicated hardware which is not useful for any other purpose (in the range of few thousand dollars at minimum) and join a mining pool. Mining pools cause centralization as they are means of coordination and cooperation between miners.
There are two main aspects of decentralization: mining power decentralization and coin distribution decentralization. Spacemesh achieves both, as the same home miners who provide mining power to the network with an extremely low barrier-to-entry are also the ones who mint Spacemesh coin as award for their contribution. So, Spacemesh will create the world’s most decentralized crypto currency with coin distributed by the miners to other people.
To achieve a high-degree of decentralization, these centralization vectors need to be vastly decreased. By "centralization vectors" we mean rich entities who run dedicated storage mining farms: mining whales. The cost model for Spacemesh greatly favors honest home users over mining whales as the cost model for the honest home user with an existing PC amounts to just the increase of the electricity bill due to leaving his computer on for longer and the loss of free storage space which could be used for other data, while whales have datacenter, computing hardware, networking, storage media and DevOps costs.
Whales get an advantage in the form of discounts on hardware costs due to the "economies of scale" factors: discounts on storage and computing due to large-scale purchases. Because storage is a commodity, this discount is limited to about 20% compared to home users with limited budgets who will purchase dedicated storage for the purposes of using it for Spacemesh. However, the hardware cost of an honest user is zero as he is reusing hardware already purchased for purposes of interactive pc apps use at home. In the long term, and as the network grows, it might not be profitable to mine with dedicated hardware at all, so whales wont be able to price out honest users.
Low Barrier to Entry
How does the Spacemesh protocol ensure fairness for honest home miners considering resources rich cloud miners?
In the short term, it might be profitable to mine Spacemesh Coins both on the cloud and at home. However, cloud mining is less profitable than using existing hardware and Internet connectivity at home on existing PCs due to cloud storage, operations and computation related costs. In the long term it might not be profitable to mine on the cloud, while mining still being profitable on existing PCs and hard drives at home due to changes in the award frequency and the total committed storage to the platform. Although rich entities do get discounts on storage devices due to economies of scale considerations12, enterprise storage and cloud storage are more expensive than desktop storage13 and in addition, cloud miners need to pay the costs of computation, memory and networking required to generate the periodic proofs required for participation in the consensus protocol. We have been modeling various rich cloud entities attack scenarios together with IT and cloud computing experts and have not been able to come up with an attack that favors such entities over honest miners using existing PCs at home.
How does the Spacemesh protocol deal with mining pools?
There is no advantage for miners to join a mining pool. The main reason for joining a pool is due to the expected time to recieve a block award for a miner with modest resources. The Spacemesh protocol solves this issue by providing a much higher expected award frequency as there is a large number of blocks every few minutes, each submitted by a unique miner. With 200 blocks every 5 minutes, there are up to 400 more blocks in 10 minutes in Spacemesh than in Bitcoin. Joining a mining pool, which often involves paying the pool a percentage of block award fee, is not beneficial to Spacemesh miners. In addition, due to the Spacemesh protocol's race-free property and linearity of mining awards relative to storage commitment size, there is no other advantage to join a pool.
12 About 20% discount on bulk storage devices purchases
13 $90 per TB enterprise storage vs $27 per TB for home storage.
What is the POET Service?
POET is a network service that provides Proofs of Elapsed Time to Spacemesh nodes. These proofs are used together with proofs of space to create proofs of space-time. Proofs of space-time are used in the Spacemesh consensus protocol to prevent sybil attacks on the Spacemesh network by associating a cost with each identity and to establish a full node's eligibility for participation in an active role in the consensus protocol and to win coin awards for that participation.
This protocol is responsible for proving that a certain amount of time (T) has passed. It does so by using sequential work as a proxy for elapsed time. This sequential work cycle takes a known amount of time (T) to execute. Miners don't have to do the sequential work individually, but they can join PoET servers that may serve many miners at a single time. Users can then query the server to prove a certain amount of time has passed. If tech improves, or someone constructs a more efficient algorithm and the time needed to generate the predetermined sequential work changes, we can make adjustments to the required amount of sequential work to make sure it takes time T. (In other words, that the time taken for each sequential work cycle remains the same.)
Doesn’t PoET create an energy waste issue?
No. One PoET server (which serves millions of Spacemesh full nodes) has the same negligible environmental impact as allocating and operating one web server with one fully utilized commodity CPU core. Spacemesh PoET is a software only solution that doesn’t involve any expensive dedicated custom hardware and it works on commodity-grade web server hardware. Since PoET is performing sequential non-parallelizable work, there is no advantage for custom ASIC hardware implementations over the reference open source implementation running on commodity-grade server hardware.
Does PoET create a centralization issue?
Not really. Spacemesh PoET is a free open source reference implementation that is designed to be run by multiple parties without any limitation. For the main net platform release, PoET servers will be configurable to require a small transaction free from full nodes who use the service. This will make running PoET services profitable to 3rd parties in a decentralized market context. Spacemesh will run few foundation PoET servers as a safety measure to ensure that there will always be at least one live PoET service available for protocol participants. Unlike other platforms which use sequential work, Spacemesh full nodes running on desktop PCs at home are not expected to run the PoET service on their systems. Spacemesh PoET is also trustless in the sense that full nodes verify POET service results and don’t need to trust a PoET service operator.
What is the Spacemesh governance model?
The Spacemesh development company builds and maintains the open source software platform, compensates full-time core developers and researchers who work on the project full time (currently 20 people) and recommends the main net economic model, the coin issuance protocol and other platform parameters. There are currently no plans for on-chain governance for the Spacemesh main net. All Spacemesh software is 100% open source provided under a permissive license which allows anyone to use the technology for other kinds of networks without any limitations.
What is a permissionless system?
In a permissionless system, anyone can use a scarce resource and thereby participate in decision-making process of the system. For example, in a PoW based blockchain anyone can become a miner and attempt to create the latest block by expending computational resources.
Protocols to achieve consensus on the ledger
As we are running on a peer-to-peer network, different blocks are visible to different nodes at different times. So we need a way to establish which blocks are eligible to be part of the ledger. We do this using 2 consensus subprotocols:
Byzantine-fault-tolerant consensus protocol. The purpose of the Hare is to achieve consensus about which blocks should be voted for in the next layer. Every honest miner who is eligible to produce a block votes on previous blocks according to the Hare protocol results.
For each block we need to make a decision about contextual validity - that is, is the block part of the ledger or not. To do this, we simply need to count how many votes are “for”, and how many are “against” the block. Once a block has been determined to be contextually valid by the Tortoise, the longer time has passed, the less chance there is that the block will be excluded from the final ledger. History is thus set, and the state of the ledger advances.
our topology is a mesh, not a chain
In Bitcoin and Ethereum, you have one block in each layer, and so the layers of block after block voting on history makes a single “chain”. Each layer (of a single block) moves the state of the ledger forward.
In Spacemesh, as there can be hundreds of blocks in each layer, the voting is more complex and leads to a “mesh” of blocks voting for multiple other blocks. This “mesh” of voting which blocks are contextually and syntactically valid follows certain rules - the rules set up by the Hare and Tortoise protocols. Each block “views” previous blocks (in the layer before theirs), and bases their understanding of the ledger on what they see. They then vote for previous blocks that they consider to be valid, and this moves the state of the ledger forward.