Live data from Hacker News

Multisig Vault

coinbase.com

11–20 of 40 posts

Re: Multisig Vault

#11

Keys are created and encrypted in the browser Key hijack in 5... 4... 3... Browser crypto isn't secure. One way to offset the risk is to use a browser plugin to perform the crypto operations, and even that isn't really a security guarantee. When you combine an incentive to break crypto (money) with a straightforward route to breaking it (browser crypto), you get a pretty dangerous situation.

Though I agree with you this leads to risky security issues, the mere fact that a major Bitcoin exchange is allowing users to hold their own private keys really puts a smile on my face today.

It is completely unheard of in the financial industry (and usually technically impossible before cryptocurrencies) to have a bank give away their "middle man" access of people's money and empowering their customers with complete control over their finances.

Re: Multisig Vault

#12
post #11

Keys are created and encrypted in the browser Key hijack in 5... 4... 3... Browser crypto isn't secure. One way to offset the risk is to use a browser plugin to perform the crypto operations, and even that isn't really a security guarantee. When you combine an incentive to break crypto (money) with a straightforward route to breaking it (browser crypto), you get a pretty dangerous situation.

Though I agree with you this leads to risky security issues, the mere fact that a major Bitcoin exchange is allowing users to hold their own private keys really puts a smile on my face today. It is completely unheard of in the financial industry (and usually technically impossible before cryptocurrencies) to have a bank give away their "middle man" access of people's money and empowering their customers with complete…

Which makes me wonder... The keys are generated in-browser. What if the users computer is compromised, and a malware succeeds in capturing the keys + bip38 passphrase? I don't know if this product will be pain in the ass for coinbase, if the user funds start disappearing from these multisig addresses.

All the best luck for this product, though.

Re: Multisig Vault

#13

> COINBASE KEY: The only key that Coinbase stores. > SHARED KEY: Encrypted with your password and stored > both by you and Coinbase. Are these the same key, or is there an inconsistency with the language here? How many keys does Coinbase store?

Coinbase stores one private key that we can access, and one private key that is encrypted with the user's vault password on the front-end and sent to us encrypted for storage. The third key is the user's and we never see that. We have no ability to access multisig vault funds without the user passphrase, which never touches our server.

Is there a way to sign a transaction offline but still run it through Coinbase? When it comes to decrypting private keys in the browser, unless the user inspects the javascript each and every time they use the site, there is no guarantee that it hasn't been silently replaced by code that steals keys.

Re: Multisig Vault

#14
post #13

Earlier quoted context omitted.

Coinbase stores one private key that we can access, and one private key that is encrypted with the user's vault password on the front-end and sent to us encrypted for storage. The third key is the user's and we never see that. We have no ability to access multisig vault funds without the user passphrase, which never touches our server.

Is there a way to sign a transaction offline but still run it through Coinbase? When it comes to decrypting private keys in the browser, unless the user inspects the javascript each and every time they use the site, there is no guarantee that it hasn't been silently replaced by code that steals keys.

Yes. You can sign transactions completely independently from Coinbase, provided you have your private key, encrypted shared key, and passphrase (the two keys are provided on a sheet of paper which you print out during vault creation).

https://github.com/coinbase/multisig-tool

Re: Multisig Vault

#15

> COINBASE KEY: The only key that Coinbase stores. > SHARED KEY: Encrypted with your password and stored > both by you and Coinbase. Are these the same key, or is there an inconsistency with the language here? How many keys does Coinbase store?

Different key. The other key is encrypted with BIP38 with your chosen password. I don't know how the actual interface works, if it is encrypted client-side or server-side. Anyway, on paper it sounds fantastic.

Yes, the shared key is generated and encrypted with your passphrase client-side, then sent to Coinbase. We never see the raw private key.

Re: Multisig Vault

#16
post #13

Earlier quoted context omitted.

Coinbase stores one private key that we can access, and one private key that is encrypted with the user's vault password on the front-end and sent to us encrypted for storage. The third key is the user's and we never see that. We have no ability to access multisig vault funds without the user passphrase, which never touches our server.

Is there a way to sign a transaction offline but still run it through Coinbase? When it comes to decrypting private keys in the browser, unless the user inspects the javascript each and every time they use the site, there is no guarantee that it hasn't been silently replaced by code that steals keys.

Yes, you can sign a transaction offline using our multisig vault recovery tool, which is open source:

https://github.com/coinbase/multisig-tool

You can use it to generate a transaction payload which can be broadcast from a client of your choice, including Toshi, our open source bitcoin node:

https://toshi.io/docs/#relay-transaction

Re: Multisig Vault

#17
coinbase-graig: is it possible with your current API to connect a third party service outside Coinbase to sign the transaction? say I want to do a retinal scan before the transaction is approved.

Re: Multisig Vault

#18
post #11

Earlier quoted context omitted.

Though I agree with you this leads to risky security issues, the mere fact that a major Bitcoin exchange is allowing users to hold their own private keys really puts a smile on my face today. It is completely unheard of in the financial industry (and usually technically impossible before cryptocurrencies) to have a bank give away their "middle man" access of people's money and empowering their customers with complete…

Which makes me wonder... The keys are generated in-browser. What if the users computer is compromised, and a malware succeeds in capturing the keys + bip38 passphrase? I don't know if this product will be pain in the ass for coinbase, if the user funds start disappearing from these multisig addresses. All the best luck for this product, though.

If the computer is infected, then yes it would be possible to steal both the private keys, and the passphrase. To avoid this attack scenario, we're investing pretty heavily in technologies such as CSP.

However, this can be mitigated with our group multisig vault, where separate users create their own keys. For malware to steal these, it would require infecting multiple computers.

Re: Multisig Vault

#19
post #13

Earlier quoted context omitted.

Is there a way to sign a transaction offline but still run it through Coinbase? When it comes to decrypting private keys in the browser, unless the user inspects the javascript each and every time they use the site, there is no guarantee that it hasn't been silently replaced by code that steals keys.

Yes, you can sign a transaction offline using our multisig vault recovery tool, which is open source: https://github.com/coinbase/multisig-tool You can use it to generate a transaction payload which can be broadcast from a client of your choice, including Toshi, our open source bitcoin node: https://toshi.io/docs/#relay-transaction

Excellent! Thank you for putting forth the extra effort and thinking this through. Many comparable online solutions in the Bitcoin space do not offer similar offline tools, making them a non-starter for business use.

Re: Multisig Vault

#20

Keys are created and encrypted in the browser Key hijack in 5... 4... 3... Browser crypto isn't secure. One way to offset the risk is to use a browser plugin to perform the crypto operations, and even that isn't really a security guarantee. When you combine an incentive to break crypto (money) with a straightforward route to breaking it (browser crypto), you get a pretty dangerous situation.

The only argument here is that crypto on internet connected (and potentially compromised) devices is insecure. There's nothing inherently more insecure about browser crypto.

Our multisig vault relies on BitcoinJS, which we had audited by an external consulting firm. We also don't allow multisig vault creation on browsers which don't support crypto.getRandomValues()

Post reply on HN