top | item 20053354

Hedgehog Ethereum wallet: Build DApps like apps, without centralized keys

144 points| roneil | 6 years ago |hedgehog.audius.co

56 comments

order

roneil|6 years ago

Hey all - I'm Roneil, one of the cofounders of Audius. We built Hedgehog to solve a specific pain point we faced - how can we get non crypto-native / non-technical users to sign up for a decentralized app? Current onboarding flows using Metamask and other alternatives were too cumbersome, time-consuming, and restrictive for our needs. We needed a way to generate a wallet on behalf of a user without them even knowing crypto was operating behind the scenes.

Hedgehog lives in your front end Javascript code. A user enters a username (or email) and password, which is used to secure a set of encrypted auth artifacts that are generated client-side and stored in the browser’s localStorage / on your (the application developer's) server. In this way, the encrypted auth artifacts can be retrieved and consumed on secondary devices without centralizing custody and control of the private key.

If the centralized server hosting the keys goes down, users can continue to access their wallet on the devices they already have. If the centralized server is compromised or operated by bad actors, the resources required to decrypt a stored auth artifact would be immense. However - this is why we recommend using Hedgehog only in low-to-no financial value use cases.

This approach is not without tradeoffs - but for the right use-cases we believe this will provide a needed alternative.

Happy to answer any questions you all have!

thinkmassive|6 years ago

Very cool, glad to see people tackling Ethereum UX! Your project seems similar to the Burner Wallet by Austin Griffith: https://github.com/austintgriffith/burner-wallet

Assuming you've seen that project, how does Hedgehog compare?

Do you have recommendations on handling the initial funding of a wallet, especially for your target market of non-technical users? (after they have the wallet, how do they obtain ETH or other tokens to get started?)

vinliao|6 years ago

Hey Roneil, I'm really new to crypto development and I'm having a hard time finding crypto communities for developers (the one who builds stuff). I've checked out eth's forum but it's not really developer focused, it's too general.

Where do you usually hang out? I would like to learn more about building crypto stuff and would like to participate in a community. Can you point me in the right direction?

Thank you!

PS: I have completely no idea what Audius is about, but it sounds cool. Good luck!

corbinpage|6 years ago

Awesome work, and it's great to see more tools in this important area.

How do you handle the "Forgot Password" problem?

Say, if a user clears out local storage and forgets their password. Is there a way to recover it from what's stored on the server?

rladd|6 years ago

Hi Roneil

It looks very cool. Just skimming the documentation, there isn't anything on how to perform actual wallet functions, or whether encrypt/decrypt data using public/private keys is available (which is something I'd find super useful!). Am I missing it, or is it just a matter of looking through the code?

Thanks for making something as cool as this open source!

michaelsbradley|6 years ago

Has there been any thought as to how the REST API + database side of this could be replaced with ipfs/swarm? I'm not sure how it would work, and there would likely be additional trade-offs, but it would be nice if the "D" in DApps could be retained in full.

aey|6 years ago

That is fantastic! Any way to integrate other chains?

atomical|6 years ago

Is there any way to recover a login and password if the user forgets it?

tomhschmidt|6 years ago

This is so badly needed in the Ethereum space. Metamask is a massive drag and a known onboarding blocker -- Hedgehog seems like a huge leap forward. Congrats team!

aakilfernandes|6 years ago

This could occupy a useful space, but it is by no means a Metamask replacement (which they explain why).

miguelmota|6 years ago

The hedgehog library is completely unsafe considering that any third party library or browser extension loaded in the website using the SDK can loop through localStorage to read the entropy value therefore recreating the hd wallet and stealing the user's account.

xrd|6 years ago

This.

This is why FinneyFor uses an iFrame to keep the private key safe in localStorage only accessible from JS running on the same domain. FinneyFor uses postMessage to communicate between the parent frame when payment is processed, so you get the benefits of creating transactions in any kind of browser, but none of the risks as the parent rightfully points out.

https://finneyfor.com/

alexgpark|6 years ago

Looks compelling, been waiting for something like this to come along. Built a couple dapps with Metamask and the popups and mnemonic phrases and browser extension installation were a serious UX issue that had no real workaround and seemingly no timeline for improvement. AFAIK, development seems to have slowed or stopped entirely on Metamask? Will try working with this and share any feedback. Nice work guys, thanks for moving the space forward

danfinlay|6 years ago

MetaMask is actually working hard on these problems, and building faster than ever, but they're big problems that aren't trivially fixed in a point release. You can expect some big announcements this summer.

ejanus|6 years ago

What are you working on ?

ErikAugust|6 years ago

Certainly a much needed application in the Ethereum space.

As a blockchain game developer, I have talked ad nauseum (https://steemit.com/marketing/@steem.marketing/cache-the-gam...) about reasons why we switched away from Ethereum for most transactions (but not all).

The UX of the wallet being one difficulty for adoption. There are other even bigger reasons (in my opinion) - variable mining fees per transaction being a large one.

asenna|6 years ago

This looks brilliant, addresses a very real pain point and your landing page communicates it well with the demo. Kudos!

Will give this a try on our Dapp.

emilyhou|6 years ago

This is awesome! Looks so much more streamlined and easier to use. Excited to see it used widely.

zeroxfe|6 years ago

I guess you can't change your password (while keeping the same private key), can you?

roneil|6 years ago

You can! This would re-encrypt your locally decrypted wallet seed using the new credential and store it under the newly generated lookup key

invalidmonk|6 years ago

Excited to see what people build with this

ranidu|6 years ago

Awesome launch!