dewi-alliance / grants

Details of the DeWi Alliance Grant Program
41 stars 15 forks source link

Enabling Multisig in Helium Libraries #34

Closed syuan100 closed 2 years ago

syuan100 commented 2 years ago

Elevator Pitch: Multisig support for all transactions have been in blockchain-core for a while now. However, there are no easy ways to access the multisig capabilities currently outside of erlang and rust. By establishing conventions and exposing dev tooling in the JS for general multisig support, we will enable the developer community to build more secure products that serve the Helium community.

Value Prop: Multisig transactions allow developers to create custodial accounts that enable more secure/decentralized bridging to other chains. By enabling these bridges, it unlocks millions if not hundreds of millions of dollars of liquidity into the ecosystem currently dominated by only a few large, centralized exchanges.

Additionally, multisig opens up an array of possibilities that developers can build novel Helium products with (Example: Multisig addresses can be constructed from ecc_compact keys that miners currently use).

Total fiat/hnt ask: $10,000 ($20,000 for expedited timeline)

Name: @syuan100

Project Deliverables: JS Library support for these functions:

Acceptance criteria: Code demonstration that creates a multisig address, initiates a transaction to be signed by multisig members, collects signatures to create a multisig signature, and then submits the transaction successfully to the blockchain.

Milestone + Date Deliverable Summary Cost
MS1 (March 28 / March 14*) JS Implementation Implement project deliverables above in the helium-js lib 70%
MS2 (April 11 / March 21*) Demonstration End to end demonstration as outlined in Acceptance Criteria above 20%
MS3 (April 18 / March 28*) Documentation Update helium-js readmes to include documentation for multisig functions 10%

* Expedited timeline dates

syuan100 commented 2 years ago

Draft PR to see what library support looks like: https://github.com/helium/helium-js/pull/278

syuan100 commented 2 years ago

Grant updated to reflect the multisig support already in helium-crypto-rs

JessmFromEarth commented 2 years ago

Thanks for submitting this steven, I'll shoot you a DM so we can talk further

abhay commented 2 years ago

Would love to see the scope of the ask here but this is a slam dunk for me:

My only request is to work with core team members to define the UX around the JS wallet (work with helium-js devs) and Rust wallet (work with rust wallet devs). The rust wallet, in particular, needs some coordination as there is already a 'multisig' component in it around chain variables.

Also see how we did multisig in the xorf-generator. It's a good way to define multisig pub keys in a JSON format.

syuan100 commented 2 years ago

@JessmFromEarth Updated:

The dates mentioned are if we were to approve and start the grant today (Feb 7). Depending on if this is approved as is, will adjust dates based on when work actually starts.

syuan100 commented 2 years ago

@JessmFromEarth rescoped this grant for now to be more granular to just implementing JS lib updates.

syuan100 commented 2 years ago

Closing in favor of #47 with new grantee