The end of the prologue…
2022 was momentous and transformative, not just for Spacemesh but for the blockchain and crypto industry as a whole.
We saw the expansion of government overreach in the form of sanctions against Tornado Cash, as well as the logical consequences of all the hyper-centralized, FOMO-based infrastructure driving much of the existing crypto industry: the collapse of FTX.
But this only served to highlight the importance of Spacemesh’s mission. In order to bring blockchain to its true, revolutionary potential, we need something that is truly decentralized and truly censorship-resistant.
Spacemesh has also undergone a great many internal changes this year, where we said goodbye to many team members while welcoming many new ones. This has presented us with a great many challenges, but also opportunities. It is friction, after all, that drives us closer to the truth—and to our true potential.
2023 will be even more momentous, with genesis on its way.
Table of Contents
Amping Up Communication
We reached out to our community to help us translate important blog posts into many languages, in order to make Spacemesh as accessible as possible.
And, to keep our community apprised of our progress, we instituted bi-weekly tech updates on our discord server and twitter.
This year saw the culmination of the Spacemesh Social Causes program. We ran many drop challenges, with our community using their creativity to spread important ideas, using OONI to test online censorship, and planting 1250 trees.
If there’s anything we’ve learned this past year, it’s that the Spacemesh community is stronger together, and can accomplish great things together. And so, we asked members of our community if they’d be interested in joining a program of peer-to-peer learning and teaching.
Our first round of mentor-led learning will be starting in January of 2023.
2022 Technical Accomplishments
We made a great deal of progress with the protocol this year. In November, we released a version of the testnet which brought us ever closer to being feature complete with the inclusion a scale codec and changes to the address format. With the help of testing from our community, we were able to make vast improvements to the stability and longevity of our networks.
We’ve been focusing very much on resilience and security, with measures that will allow the network to recover from a split, the implementation of multiple PoET server support, and increasing the number of layers that can be kept in the Tortoise protocol’s memory.
Smapp has made massive strides in the past year, and now we’re almost feature complete for the genesis But there still left a lot of stuff to do in the coming year, like VM integration, support of other account types, and support for hardware wallets.
Some of the major features we’ve added this year include:
- Support for the new accounts and transaction structure.
- Updating keyPair derivation from mnemonics and preparing everything for hardware wallet integration.
- Switching to robust wallet file encryption (AES-GCM).
- Adding support for multiple wallets.
- Adding Sentry for bug reporting.
- Support custom location of node-data
- Introducing a new skin.
- Updating the Smesher and Network screens.
- Showing rewards in transaction log and smesher screen.
- Adding report an issue feature (via Sentry).
- Making it possible to autostart Smapp & Node.
We’ve been running benchmarks both locally on our own computers and also on cloud infrastructure to fine-tune the genesis parameters for PoST initialization. This involved extensive testing of various permutations of configurations and operating systems: Cuda and Vulkan drivers, NVIDIA and AMD GPUs, on Windows, macOS, and Linux, x86 and ARM. While Cuda and Vulkan (toolchains for running computation on GPUs) are somewhat frustrating to work with and are rather fragile, we’re happy to report that all major permutations are tested and working fine! We’re continuing to crowdsource benchmarks from community members, especially for hardware that we don’t have access to. If you’re interested in contributing, check out the gpu-post repository, see the community-contributed benchmarks in the README, and open an issue or a PR to add yours!
In parallel we’re also performing benchmarks across a variety of processors to find the best option for the Spacemesh-operated PoET servers. It’s important that we find the very fastest configuration for our PoET servers, because if someone else comes up with a faster PoET, they’ll gain an advantage in terms of voting weight and rewards. Spacemesh will operate several redundant PoET servers, distributed geographically and on different network infrastructure, for community nodes to rely on, and we encourage community members to run independent PoET servers to increase network diversity and decentralization.
2022 was a very productive year on the research front.
A thorough review of the Hare protocol was performed, including implementing a simulator, and we found several issues in need of fixing: communication footprint was identified to be a problem (~ 500 MB per layer), various attack scenarios based on equivocations were analyzed, and Hare was found to be vulnerable to ATX-level equivocations because it depends on honest nodes being in consensus on the active set.
To address these issues, In effect we redesigned the protocol. Version 1.0, targeting Genesis, was redesigned to support general equivocations defense, and even more sweeping changes will be coming with future versions.
Various attacks angles were identified in the Tortoise protocol, such as ballots pointing to non-existing blocks (aka “dangling pointers”), spam attacks being possible at ballot and block level, and random beacon attacks being possible based on grinding on the VRF seed (aka “POPS-VRF problem”). Changes in the protocol to mitigate these attacks were introduced in the form of prunable blocks, mutable ballots, and a redesign of POPS-VRF from scratch so that identity generation now shares the proof-of-work done during cryptographic initialization of storage for PoST.
Spam attack angles at the PoET level were identified and solved through a redesign of the PoET API. A PoET redundancy mechanism was also designed, so that nodes can connect to many PoET servers.
More ground work was done for the design of the Smart Contracts Platform. We changed the account model, added further details on the templates model, nonces, and transactions format. We investigated available VM platforms we could use as a base, such as WASM, RISC-V, Move, or EVM. The design of the Spacemesh VM was worked out, taking the form of an EVM+bundled L2 rollup with our unified block mechanics used as “decentralized sequencer”.
December in particular was a very busy month for the research team. Research had been relatively quiet for a few months as we switched from research mode into a focused, development mode in preparation for genesis. However, research is now running full throttle again for two reasons. The first is that we’ve identified a couple of critical issues that we discussed above, like defense against equivocations in Hare, and optimization of the bandwidth required for Hare. We have a plan to address both of these (see the linked forum topics for more) and are finalizing the specs before handing them to the dev team. The second reason is that, as the design of the 1.0 protocol is genesis-complete, the research team is shifting into a forward-looking mode, working on designs for features that will be added post-genesis, such as the full VM.
What to Expect in 2023
Genesis is right around the corner, and we couldn’t be more excited to share it with you.
We’ll be winning together soon!