hypermine-bc / hypermine-bc/hypersign

Do we need an AuthServer?

Open
#35 5 comments 0 reactions 1 assignee Claimed by @Vishwas1 View on GitHub
discussion
Dominant language
No language data
Stars
11
Forks
12
PR merge metrics
No merged PRs in 30d

Description

I've been looking at the readme file, and the problem which this project aims to solve is very important. Even I've been working on this, but not getting much time to work on this/ would like to contribute.

From the Readme, I see that purpose of AuthServer is to verify signatures. Here, phone and computer are peers and they have to depend on the AuthServer as a middleman for functioning. I think a server is not required to verify signatures since it's pure Elliptic Curve Cryptography which means the phone and computer can do themselves. A computer browser can generate a random number, this number should be relayed to the phone using something like [WebRTC](https://webrtc.org) for it so sign it using the private key and can relay the number with the signature back to the computer browser UI and a continuous WebRTC connection can be established between the browser and the phone. Further, signature requests for every action from the dApp can be sent to the phone for signing as long as the connection is active.

Currently, there is a service called [WalletConnect](https://walletconnect.org). My concerns are that the connection is through a centralized server. It means if their server shuts down for a few minutes, users won't be able to use their phone to sign transactions on a dApp running on their computer.

It'd be really great if we can establish a local connection using something like WebRTC, in case the user's computer and phone are on the same WiFi network and only use a centralized server if both devices are not on the same network. P2P communication between the computer and phone can remove the dependency of an authentication server.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.