Tl;dr: We built the first open-source library that allows the Solana blockchain to incorporate Threshold Signature Scheme (TSS) technology and interact with crypto wallets like Zengo. We believe our TSS technology, which enables a user-friendly experience by eliminating the burdens associated with owning a private key, is critical to supporting Solana’s mass adoption. Solana joins public blockchains like Bitcoin, Ethereum, Binance Coin, Tezos and Terra who have similar TSS libraries. View our demo, below!
At Zengo, we’ve been at the forefront of blockchain security and how Threshold Signature Schemes (TSS) can enhance the native capabilities of blockchains.
A Threshold Signature Scheme removes the burden of a single atomic private key, splitting the generation of keys and key management responsibilities between multiple parties. Today we share the details on adding TSS support for the Solana blockchain.
Solana is one of the fastest growing ecosystems in crypto, with many projects spanning DeFi, NFTs, Web3 and more. Solana’s growth has also helped it become one of the top 10 cryptoassets by market capitalization as of this publication.
With Solana’s continued growth, we believe Zengo’s Threshold Signature Scheme implementation is pivotal to achieve responsible and secure key management for the masses.
In this post, we breakdown the details of our TSS for Solana as executed and implemented by our blockchain research team.
A Threshold Signature Scheme (TSS) removes the burden of the single atomic private key and splits the responsibility of key generation and key management between multiple parties.
In a threshold signature scheme, a set of ‘n’ participating parties which will be responsible for key generation, management and signing will interactively generate an m-of-n secret sharing of a single atomic key. Each participating party generates its own secret and uses it to distributively sign a transaction without revealing the secret to the other parties. For a high-level overview of TSS, please refer to our blog post: Threshold Signatures: The Future of Private Keys.
The Zengo team has invested significant efforts and resources implementing TSS and making the scheme compatible and reusable for blockchains and digital signatures algorithms. This compatibility allows us to rapidly onboard and add TSS support to new blockchains.
Zengo has implemented Threshold Signature Scheme (TSS) support for public chains like Bitcoin, Ethereum, Binance Coin (BNB), Zilliqa (ZIL), Libra, Tezos, Terra and others and we are always looking to extend our TSS support to other blockchains and projects.
We’ve chosen Solana for the following reasons:
Solana is a blockchain protocol that provides the fundamental infrastructure for a decentralized economy and enables open participation in the creation of new financial primitives to power the innovation of money.
Because our TSS is blockchain agnostic, it can easily integrate with this unique architecture and support all messages, related to both simple and smart contracts’ based transactions. This compatibility has allowed us to complete our PoC using MuSig2 over Ed25519 in a matter of days without a need for extensive or lengthy “integration” support from the Solana side.
We implemented an asynchronous signing process, which is a requirement in our use case for signing over the network. We used the Solana SDK and incorporated TSS generation and signing, providing a CLI tool for users. Here, each party generates its own secret share, and validates the shares of the other parties and the transaction that they’re signing.
Our implementation can be accessed directly using the command-line, as shown in the demo below, or by including the code in other Solana projects.
This tool implements generating Solana addresses, checking balances, requesting an airdrop from a faucet on Testnet/Devnet, and doing n-of-n signing.
It’s worth noting that even though Solana supports smart contracts that may allow users to add multi-signature security, there are still distinct advantages to using TSS. One main advantage is TSS transactions look exactly the same as regular transactions. Unlike MultiSig transactions, the TSS “magic” is applied in the mathematical layer, not in the application layer.
It was gratifying for our team to add TSS support to such a valuable and ambitious team looking to truly set money free laying the groundwork for open financial infrastructure. By leveraging our previous experience with generic TSS infrastructure, creating a developer-ready Solana TSS version was relatively straightforward.
However, our work with TSS is not yet done. We plan to extend this project by working with the Solana community to provide TSS support for more advanced use cases in the future. We’re open-sourcing our SDK to encourage developers to incorporate it into their Solana projects. As always, we welcome feedback and peer review to make our code even better.
For any requests or feedback send us a message at [email protected] or reach out via Twitter DM.