-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JS Keystore #1339
Comments
Should we use WalletConnect for this? I don't think the browser is secure enough to act as a key store. |
I'd be down for pioneering in WalletConnect. |
WalletConnect doesn't have Ledger support as far as I see. :/ |
So I propose having Ledger support via https://github.com/ZondaX/ledger-cosmos-js in the browser and using walletconnect for storing keys on mobile. Still I think for onboarding users and for smaller interactions with the chain a js keystore might be useful. |
Let's copy them :) |
A mobile phone is not that secure as a Ledger though. |
The number of Ledger owners is a tiny minority compared to cell phone owners. We'd be designing for the 1% case instead of the 80% case. There's an argument to be made that a key store made with open source software on a well-designed smart phone (such as iPhone & Android) is more secure than a Ledger. The answer is not obvious.
This is problematic. Every time a user reloads the site, they'll get new code from the server. This means the server is trusted. Unfortunately, while we can sign the code, it's impractical for us to control the server and there's no way for the browser to verify our code signature. This means that any future server compromise could compromise all user wallets without warning. I think this is leading our users into too much risk. See https://security.stackexchange.com/questions/173620/what-s-wrong-with-in-browser-cryptography-in-2017 for some thoughts on the subject. |
nice argument!
wouldn't we control a chrome plugin? would unsafe code be able to attack our chrome plugin code? |
Oh, if you want to do it as a browser plugin then I'm happy. I thought you wanted to do it in JavaScript. |
A "software wallet" as an extension is one solution. Maybe there are others. Any ideas? |
seems like taking the same approach as balance.io makes sense. however, there is no metamask for cosmos yet (we can build it) or speak with them about including cosmos. next would be wallet connect in my books - will serve more people and is a better ux than ledger. after that we can use ledger. i would also propose that we connect with @mappum to see if he has any shorter term plans to build a solution for this problem as he has expressed a desire to do so in the past. is this a satisfactory plan? |
Great sumup @jbibla |
How about we create a QR-Code for a transaction containing the transaction and the endpoint where to send the signed transaction to? A companion app just adds the signature and posts it to the endpoint. Question: How to trigger an update of the UI? Or is this even necessary? Note: this is common pattern in some other desktop wallets An MVP of this could be build in less then a week. |
WebSocket and yes, I think it's necessary. |
Done |
We currently rely on the key store integrated in the gaia binary. This is troublesome as we i.e. need to wait until the REST server is up until we can sign in the user. This also blocks us from moving Voyager to the browser.
The key store would need to be able to:
The text was updated successfully, but these errors were encountered: