Hacker News new | ask | show | jobs
by esaminu 611 days ago
Hi All!

I wanted to show you guys EmailBTC, an app I’ve been working on for some time. It lets you send and receive bitcoin using just email addresses simplifying onboarding and making it super easy to use + send and receive.

I think for a lot of non crypto folks crypto is this scary new thing because the onboarding and usage experience is really novel. Upon introduction you have to write down your 12 words and we put scary messages everywhere about it. And then when you want to send and receive you have to transmit this complex combination of numbers and letters to someone and get it exactly right. Often people (myself included) will send a test transaction to make sure they have the right address.

EmailBTC aims to solve that by

   1. Making the onboarding experience super familiar

   2. Making basic usage (sending and receiving) super familiar and hard to get wrong
How it works

EmailBTC uses NEAR chain signatures behind the scenes. In the simplest terms, this technology allows you to sign things using non-existent private keys controlled by a well audited, distributed mpc network of nodes. To get a signature you pass in a derivation path which could be any string. And the mpc network prefixes the derivation path with the caller’s account Id so that derivation paths are scoped to you and can’t be accessed by other accounts.

EmailBTC submits a zero knowledge proof of your google token signature to a smart contract which then calls the mpc network after verification using your email address in the derivation path. This allow it to derive any Bitcoin signature using your token which is never submitted on chain, and your Bitcoin address can be computed using just your email address

Disclaimer

   • We are still pending an audit of the smart contract so please don’t store large amounts of money on it just yet

   • Testnet addresses can be changed at any time. The MPC network does not guarantee the same keys on testnet
Testnet - https://testnet.emailbtc.net - uses Bitcoin testnet4 which has many faucets e.g. https://mempool.space/testnet4/faucet that can be used for testing it out.

Have fun with it and let me know what you think!

Osman

1 comments

Can you explain a little bit more about deriving Bitcoin signature by using a google token ?
Sure! it uses the NEAR blockchain to get a chain signature based on the email address extracted from the token. The email is extracted from the unsigned token message that is sent to the smart contract along with a zero knowledge proof of the signature. The smart contract verifies the proof and then signs the user's payload using the email address and aud in the derivation path in the call to NEAR chain signatures.

Here is an example execution plan of getting the signature on NEAR: https://testnet.nearblocks.io/txns/FzzzN1f3auTTM8yvxZpy8YdQm...

More documentation on chain signatures: https://docs.near.org/concepts/abstraction/chain-signatures#...

Smart contract source code: https://github.com/esaminu/google-chain-signatures

That means Google can claim control of any email address, yeah?
At this stage yes but I'll be adding the ability to add a public key to your account on the smart contract and also deauthorize the proofs if you want complete custody. We can make the journey to full custody more gradual to improve UX.