The Official SSV Node Spec
SSV's spec serves as the blueprint for the SSV node, documenting design decisions and enabling testing, and interoperability.
The Secret Shared Validator (SSV) protocol was designed by the Ethereum Foundation (in collaboration with others) to build redundancy into the Eth2 Client architecture by removing any possible single points of failure. This necessitates that the fundamental SSV protocol design is free from any security vulnerability, ensuring that it functions as designed and does not open up attack vectors to Eth2 Clients operated by honest staking accounts.
To this end, the ssv.network team has spent the last 8 months in an intense R&D effort to finalize the SSV node technical specification(spec). Achieving this major milestone is an essential step in preparing for mainnet. And by ending the “theoretical” phase, SSV has completed a critical piece of the puzzle, enabling the team to align the implementation to the spec, giving us a clear vision of the last milestones before mainnet.
For those wondering, a spec is technical documentation used to describe a system, analyze its behavior, and support its design by verifying fundamental properties. In SSV’s case, it’s the blueprint that specifies the core logic of the SSV node. This blueprint helps standardize what an SSV node is and how it deterministically functions, serving as the one source of truth that documents all design decisions.
Developing a complex protocol like ssv.network without a spec is similar to navigating through rough terrain without any sort of map, or navigation. A spec allows us to define clear goals, test those goals, and later on graduate to an implementation phase which will safely lead us to those goals.
Without a spec, its hard to test assumptions and externalize your decisions for other contributors to review and improve upon. Developing a groundbreaking protocol like SSV can be prone to mistakes since you’re in a break first think later development mode.
When SSV started, there was no specification for how an SSV node should function, so while working on the spec, the team simultaneously worked on the implementation of the ssv.network protocol. The implementation is essentially a wrapper for the spec, allowing us to build on top of the core logic. At this stage, the team is working hard on aligning the SSV node implementation to the spec.
Having a spec enables us to do a few essential things:
The intent behind adding SIPs(SSV Improvement Proposals) to the ssv.network is to create a mechanism for proposing new features, collecting community technical input on issues, and for documenting the design decisions that have gone into the ssv.network protocol. For SSV implementers, SIPs are a convenient way to track the progress of implementations.
If anything about the spec needs to change or shifts from the original design, a SIP(SSV Improvement Proposal) is required. The community can submit SIPs with their reasoning behind the proposal and how the SIP can be implemented. This is similar to Ethereum’s EIPs, where developers constantly work on further developing the protocol through an incremental and democratic process.
Step-by-step implementation of a SIP:
We are currently in the process of alignment. This means we are aligning ssv.network node 0.2.6 with the spec. We’ll discuss each of these milestones once they’re closer to completion.
Milestones:
With the spec finally completed, the way forward is crystal clear. We’ll be releasing a post about the mainnet roadmap soon, concerning the SSV ecosystem, protocol, and the road ahead. Join our Shifu testnet to see the latest in DVT tech in action.
Website | Network Hub | Discord | Dev Center | Documentation | GitHub