Skip to content

Commit f042d6c

Browse files
authored
Decentralized Threshold Signing Service (#2550)
1 parent 824e085 commit f042d6c

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# Decentralized Threshold Signature Service Implementation
2+
3+
- **Team Name:** Rui Morais
4+
- **Payment Address:**
5+
- FIAT (Sent by email to grants@web3.foundation on 09/08/2024, 16:07 UTC+1)
6+
- Polkadot: 14bBGQFAgKqdbGVDSWkm6dA8ZQzt9GxGSTALrD8SeafWW9gL
7+
- **[Level](https://github.com/w3f/Grants-Program/tree/master#level_slider-levels):** 2
8+
9+
## Project Description :page_facing_up:
10+
11+
### General Overview
12+
13+
This project is a continuation of [this one](https://github.com/w3f/Grants-Program/pull/2250) 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.
14+
15+
### Technical Details
16+
17+
Each participant in the threshold signing group will run a dedicated node application. This application will include:
18+
19+
- Core Threshold Signing Protocol: The service will use the Olaf threshold signature protocol, which was implemented in the previous grant.
20+
21+
- Peer-to-peer networking via [`rust-libp2p`](https://github.com/libp2p/rust-libp2p) (Milestone 1):
22+
23+
- 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.
24+
25+
- Secure communication: [`libp2p_noise`](https://docs.rs/libp2p-noise/latest/libp2p_noise/) provides secure, authenticated channels between participating nodes for exchanging protocol messages.
26+
27+
- Integration of the Olaf protocol with the underlying network (Milestone 2), managing:
28+
- Distributed Key Generation (DKG) and signing rounds.
29+
30+
- Local storage of key shares and protocol state.
31+
32+
- A Command Line Interface (Milestone 3) that allow users to:
33+
34+
- Configure node settings (network addresses and peer IDs).
35+
36+
- Configure protocol settings (threshold and number of participants).
37+
38+
- Execute the Olaf protocol.
39+
40+
### Ecosystem Fit
41+
42+
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.
43+
44+
### Related Projects
45+
46+
The most similar project we found is [this](https://github.com/nulltea/tss-libp2p), but it is out of date and unmantained.
47+
48+
### Team members
49+
50+
- Rui Morais
51+
52+
### Contact
53+
54+
- **Contact Name:** Rui Morais
55+
- **Contact Email:** ruipedromorais11@gmail.com
56+
- **Github:** https://github.com/fiono11
57+
- **Linkedin:** https://www.linkedin.com/rui-morais
58+
59+
### Team's experience
60+
61+
- Obtained a PhD in Computer Science with the thesis *"Contributions to Permissionless Decentralized Networks for Digital Currencies Based on Delegated Proof of Stake"* (awaiting for the defense).
62+
- Published the following papers:
63+
- [Echidna: A New Consensus Algorithm for Efficient State Machine Replication](https://ieeexplore.ieee.org/document/10338927) (IEEE BCCA 2023)
64+
- [Nero: A Deterministic Leaderless Consensus Algorithm for DAG-Based Cryptocurrencies](https://www.mdpi.com/1999-4893/16/1/38) (Algorithms 2022)
65+
- [A tool for implementing privacy in Nano](https://ieeexplore.ieee.org/document/9126023) (IEEE DAPPS 2020)
66+
- [Adamastor: a New Low Latency and Scalable Decentralized Anonymous Payment System](https://arxiv.org/abs/2011.14159) (Arxiv)
67+
- Has graduated the PBA Hong Kong cohort.
68+
69+
## Development Roadmap :nut_and_bolt:
70+
71+
### Overview
72+
73+
- **Total Estimated Duration:** 3 months
74+
- **Full-Time Equivalent (FTE):** 1 FTE
75+
- **Total Costs:** 30,000 USD
76+
- **DOT %:** 50%
77+
78+
### Milestone 1 - Development of the Node
79+
80+
- **Estimated duration:** 1 month
81+
- **FTE:** 1
82+
- **Costs:** 10,000 USD
83+
84+
| Number | Deliverable | Specification |
85+
| -----: | ----------- | ------------- |
86+
| **0a.** | License | GPLv3 |
87+
| **0b.** | Documentation | We will provide **inline documentation** of the code. |
88+
| **0c.** | Testing and Testing Guide | Core 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. |
89+
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
90+
| **1.a** | Development of the Node | Two peers running on different machines are able to discover each other through their Substrate/Kusama/Polkadot address, establish a connection, and exchange messages. |
91+
92+
### Milestone 2 - Integration of Olaf into the Node
93+
94+
- **Estimated duration:** 1 month
95+
- **FTE:** 1
96+
- **Costs:** 10,000 USD
97+
98+
| Number | Deliverable | Specification |
99+
| -----: | ----------- | ------------- |
100+
| **0a.** | License | GPLv3 |
101+
| **0b.** | Documentation | We will provide **inline documentation** of the code. |
102+
| **0c.** | Testing and Testing Guide | Core 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. |
103+
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
104+
| **1.a** | Integration of Olaf into the Node | Two peers on different machines exchange messages and successfully produce a threshold signature using the Olaf protocol with hardcoded protocol parameters. |
105+
106+
### Milestone 3 - Decentralized Threshold Signature Service CLI
107+
108+
- **Estimated duration:** 1 month
109+
- **FTE:** 1
110+
- **Costs:** 10,000 USD
111+
112+
| Number | Deliverable | Specification |
113+
| -----: | ----------- | ------------- |
114+
| **0a.** | License | GPLv3 |
115+
| **0b.** | Documentation | We will provide both **inline documentation** of the code and a basic **tutorial** that explains how the service can be used. |
116+
| **0c.** | Testing and Testing Guide | Core 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. |
117+
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
118+
| **0e.** | Article | We will publish an **article**/workshop that explains how the service works under the hood and how it can be used from a user perspective. |
119+
| **1.a** | Decentralized Threshold Signature Service CLI | Two 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. |
120+
121+
## Future Plans
122+
123+
- Develop a webwallet for the user interface or integrate it in an established webwallet of the ecosystem, if there is interest.

0 commit comments

Comments
 (0)