Skip to main content

Decentralized Threshold Signature Service Implementation

  • Team Name: Rui Morais
  • Payment Address:
    • FIAT (Sent by email to grants@web3.foundation on 09/08/2024, 16:07 UTC+1)
    • Polkadot: 14bBGQFAgKqdbGVDSWkm6dA8ZQzt9GxGSTALrD8SeafWW9gL
  • Level: 2

Project Description 📄​

General Overview​

This project is a continuation of this one and aims to build a decentralized threshold signing service leveraging the Olaf protocol. The service will operate off-chain, providing a secure and cost-effective alternative to on-chain threshold signature mechanisms within the Substrate/Kusama/Polkadot ecosystem.

Technical Details​

Each participant in the threshold signing group will run a dedicated node application. This application will include:

  • Core Threshold Signing Protocol: The service will use the Olaf threshold signature protocol, which was implemented in the previous grant.

  • Peer-to-peer networking via rust-libp2p (Milestone 1):

    • Peer discovery: nodes will identify and discover each other through a Distributed Hash Table (DHT) that maps their Substrate/Polkadot/Kusama public addresses to their peer IDs.

    • Secure communication: libp2p_noise provides secure, authenticated channels between participating nodes for exchanging protocol messages.

  • Integration of the Olaf protocol with the underlying network (Milestone 2), managing:

    • Distributed Key Generation (DKG) and signing rounds.

    • Local storage of key shares and protocol state.

  • A Command Line Interface (Milestone 3) that allow users to:

    • Configure node settings (network addresses and peer IDs).

    • Configure protocol settings (threshold and number of participants).

    • Execute the Olaf protocol.

Ecosystem Fit​

This project is useful for any Substrate/Kusama/Polkadot based project that wants to use a secure off-chain decentralized threshold signature service that is cheaper than using the theshold signing funcionality of the network directly.

The most similar project we found is this, but it is out of date and unmantained.

Team members​

  • Rui Morais

Contact​

Team's experience​

Development Roadmap 🔩​

Overview​

  • Total Estimated Duration: 3 months
  • Full-Time Equivalent (FTE): 1 FTE
  • Total Costs: 30,000 USD
  • DOT %: 50%

Milestone 1 - Development of the Node​

  • Estimated duration: 1 month
  • FTE: 1
  • Costs: 10,000 USD
NumberDeliverableSpecification
0a.LicenseGPLv3
0b.DocumentationWe will provide inline documentation of the code.
0c.Testing and Testing GuideCore functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0d.DockerWe will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone.
1.aDevelopment of the NodeTwo peers running on different machines are able to discover each other through their Substrate/Kusama/Polkadot address, establish a connection, and exchange messages.

Milestone 2 - Integration of Olaf into the Node​

  • Estimated duration: 1 month
  • FTE: 1
  • Costs: 10,000 USD
NumberDeliverableSpecification
0a.LicenseGPLv3
0b.DocumentationWe will provide inline documentation of the code.
0c.Testing and Testing GuideCore functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0d.DockerWe will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone.
1.aIntegration of Olaf into the NodeTwo peers on different machines exchange messages and successfully produce a threshold signature using the Olaf protocol with hardcoded protocol parameters.

Milestone 3 - Decentralized Threshold Signature Service CLI​

  • Estimated duration: 1 month
  • FTE: 1
  • Costs: 10,000 USD
NumberDeliverableSpecification
0a.LicenseGPLv3
0b.DocumentationWe will provide both inline documentation of the code and a basic tutorial that explains how the service can be used.
0c.Testing and Testing GuideCore functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0d.DockerWe will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone.
0e.ArticleWe will publish an article/workshop that explains how the service works under the hood and how it can be used from a user perspective.
1.aDecentralized Threshold Signature Service CLITwo peers on different machines exchange messages and produce a threshold signature using the Olaf protocol with protocol parameters defined by user input from the CLI.

Future Plans​

  • Develop a webwallet for the user interface or integrate it in an established webwallet of the ecosystem, if there is interest.