Proposal Type
Wallet Nativeness
Amount Requested (in USDC)
5000 USDC
Payout Address
hotfrog8038.near
Open-Source License
GPLv3
Outcomes & Deliverables
We expect to deliver the following after one month since the beginning of the project:
-
Client-side library: implementation of a client-side library for the FROST protocol compatible with Near in Typescript.
-
Server-side library: implementation of a server-side library for the FROST protocol compatible with Near in Rust.
Solution
This post outlines the proposal for implementing FROST, a threshold signature protocol based on the Schnorr signature scheme, and adapting it to the Ed25519 signature scheme and the Near ecosystem. This protocol is particularly designed for scenarios with a large number of signers, ensuring both efficiency and signer anonymity.
The protocol starts with a Distributed Key Generation, where a secret key is generated that no single participant knows of. Instead, the participants generate shares of that secret key, that they can later use to sign an extrinsic. This is done by using the Pedersen’s variation of the Shamir’s secret sharing scheme, which allows the participants to verify their shares and does not require a trusted dealer. Our solution is:
-
Scalable and cheap: Only a single Ed25519 signature is submitted to the network and is independent of the number of signers.
-
User-friendly: A participant does not necessarily need to fund its account nor pay to send a transaction (the broadcaster account needs to pay for it, but how and if the fee is divided among participants will depend on the use case).
-
Private: The output Ed25519 signature is indistinguishable from any other signature on the network, and the signers are not known because the signing protocol happens off-chain.
Impact to Ecosystem
The goal of the project is to build a working prototype that can be integrated by established wallets of the ecosystem; the goal is not to be another competitor wallet.
This project is useful for any Near based project that wants to implement the functionality it provides, but it is specially suited for wallet developers. Besides that, it can be used as a backend wallet, instead of a front-end user focused wallet, in other applications.
Since the two subprotocols are independent of each other, the DKG protocol can be used as a building block for other use cases, such as ones based on threshold decryption.
Relevance to Onboard DAO
This project provides important wallet infrastructure that will contribute to onboard and retain end users, but also potentially attract institutional users due to the functionality it provides.
Team & Relevant Background
-
Name: Rui Morais
-
Email: ruipedromorais11@gmail.com
-
Github: Fiono11 · GitHub
-
Linkedin: https://www.linkedin.com/rui-morais
-
I have recently submitted a PhD thesis in Computer Science entitled “Contributions to Permissionless Decentralized Networks for Digital Currencies Based on Delegated Proof of Stake” (awaiting for the defense).
-
I have published the following papers:
- Echidna: A New Consensus Algorithm for Efficient State Machine Replication (IEEE BCCA 2023)
- Nero: A Deterministic Leaderless Consensus Algorithm for DAG-Based Cryptocurrencies (Algorithms 2022)
- A tool for implementing privacy in Nano (IEEE DAPPS 2020)
- Adamastor: a New Low Latency and Scalable Decentralized Anonymous Payment System (Arxiv)
Future Plans
If there is interest in the community, the next step is to actually implement a client (by forking one of the wallets of the Near ecosystem) and a server based on the developed libraries as a Proof of Concept implementation of a threshold signature scheme ready to be utilized by users.