Skip to content
This repository has been archived by the owner. It is now read-only.

Support Bitcoin Cash (or Bitcoin S2X) instead of legacy Bitcoin #11413

Closed
hugobuddel opened this issue Oct 10, 2017 · 14 comments
Closed

Support Bitcoin Cash (or Bitcoin S2X) instead of legacy Bitcoin #11413

hugobuddel opened this issue Oct 10, 2017 · 14 comments

Comments

@hugobuddel
Copy link
Contributor

@hugobuddel hugobuddel commented Oct 10, 2017

Description

Bitcoin has significant transaction fees. E.g. adding 10 USD of BTC to your Brave wallet can easily cost more than 1 USD in fees.

Instead, Brave could use Bitcoin Cash, the fork from a few months back: https://www.bitcoincash.org/

Or perhaps the Bitcoin Segwit 2X (S2X) fork coming in November.

Steps to Reproduce

  1. Fill Brave wallet
  2. Pay a large fee

Actual result:
Pay a large fee, e.g. > 1$ of btc.

Expected result:
Pay a small fee, e.g. < 0.1$ of btc.

Reproduces how often:
Most of the time, depends on BTC network congestion.

Brave Version

about:brave info:

0.18.36

Reproducible on current live release:
yes

Additional Information

@srirambv
Copy link
Collaborator

@srirambv srirambv commented Oct 10, 2017

cc: @mrose17

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 10, 2017

It seems that newer versions of Brave will use something called BAT (Basic Attention Token says Google?) instead of bitcoin? So it would be unwise to fill up a BTC-wallet now because it will be useless in a few weeks?

@NejcZdovc
Copy link
Member

@NejcZdovc NejcZdovc commented Oct 10, 2017

@hugobuddel no worries, we will convert BTC wallet into BAT wallet, so you will not lose any money. And yes we are converting from BTC to BAT

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 10, 2017

Trying to learn more about this: https://basicattentiontoken.org/first-phase-of-the-basic-attention-token-platform-nears-rollout/

Another future update will give users the option of going through a “Know Your Customer” (KYC) process in order to gain full control over their BAT wallet, including the ability to transfer BAT out of the wallet.

Requiring KYC sounds like a serious regression. My understanding with the current Brave was that it includes a bitcoin wallet and that you could export the private key and import it in another wallet (although I never tried, so could be wrong). I mean, Brave is open source and BAT is supposedly decentralized, so I don't understand how these restrictions will work.

But well, this issue can be closed, because support for bitcoin will be completely removed right? Any timeline for this (above page says September)?

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 10, 2017

Apparently it is already possible: https://basicattentiontoken.org/mercury-preview-now-available/
Very confusing to have to get information from various places. I'm going to try 0.19.

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 10, 2017

The 0.19 beta linked from that page used only 11.1 sat/byte as fee when doing the BTC-part of the BTC-BAT conversion, so it will take hours to confirm (if at all). The BAT transfer is still pending as well, probably waiting on the BTC transaction to confirm. It's only 4 dollar in value, so who cares.

I'm going to buy some BAT on bittrex, but don't know how to send it to Brave yet because I don't know the address (and I've got little experience with Ethereum tokens). How can I get the browser-address?

I was hoping to see the address in a blockchain explorer by looking up the BTC-BAT conversion, but the BAT transaction didn't confirm yet. I'll also try Uphold, but I'd prefer to chose my own exchange.

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 10, 2017

Transferred 10 and 18 BAT through uphold, and Brave has them, but I don't see the transaction anywhere, e.g. they don't show here: https://etherscan.io/token/BAT

How does this work? How does Brave know how much BAT it has?

@mrose17
Copy link
Member

@mrose17 mrose17 commented Oct 10, 2017

@hugobuddel - hi! you raise an interesting question. the answer is: in BAT Mercury, the BAT goes off-chain to avoid spending more gas. there is a "balance" server that reports the current and pending balance. you can look at the https://github.com/brave-intl/bat-balance repo to see how that works...

@bsclifton
Copy link
Member

@bsclifton bsclifton commented Oct 10, 2017

Closing this issue as wontfix; as noted above, we are in the process of switching to BAT 😄

@bsclifton bsclifton closed this Oct 10, 2017
@bsclifton bsclifton added the wontfix label Oct 10, 2017
@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 11, 2017

Thank you for the reference @mrose17. I'll do some more studying, because several things are still unclear to me. In particular why it is not possible to simply get the private key of the wallet, send BAT to and from it and why KYC would be necessary for any of that. The current setup doesn't look very decentralized.

No need to answer now; perhaps I'll come with some more well defined questions later. My main worry is that I'm currently trying to go all-brave (bugs and all) and hope that I won't regret it later because it'll turn out that I've added yet another trusted third party to my setup.

KYC to use a browser, how much worse can things get?

@evq
Copy link
Member

@evq evq commented Oct 12, 2017

Hey @hugobuddel. Thanks for comments, concerns and questions! I'll do my best to answer them.

Requiring KYC sounds like a serious regression. My understanding with the current Brave was that it includes a bitcoin wallet and that you could export the private key and import it in another wallet (although I never tried, so could be wrong). I mean, Brave is open source and BAT is supposedly decentralized, so I don't understand how these restrictions will work.

In the bitcoin proof of concept the wallet cannot be used as described as above as it is a multi-signature wallet and the browser only holds one of the required keys. The other key is held by BitGo and is used to restrict transactions to only those going through the settlement process. The BAT wallets are analogous with Uphold taking the place of BitGo.

The current setup doesn't look very decentralized.

You are correct that the current setup is not decentralized. Our goal is to provide feature parity with our existing bitcoin proof of concept first, moving to an increasingly decentralized system with future releases. This is just the first step and we are actively working toward the goals laid out in our roadmap.

KYC to use a browser, how much worse can things get?

KYC is not and will never be required to use the browser. The ability to make contributions to publishers anonymously is extremely important to us. But even that is an entirely optional process - you will never be required to contribute.

KYC will only be required if you wish to withdraw funds from your in-browser wallet.

To understand the reasoning here it is important to remember that we will be adding the ability to receive micropayments for viewing ads and give BAT grants directly to users. As a result we have a legal requirement to restrict the outputs of the system to entities who have gone through a KYC process. Furthermore, we cannot have custody of user funds. The current system is designed around these two conflicting requirements, a standard cryptocurrency wallet would fulfill the second requirement but not the first.

We understand that applying these same restrictions to a balance that comes entirely from your own deposits can be frustrating. Please don't consider the in-browser wallet to be a replacement for a normal cryptocurrency wallet. As you have observed, it is not and was never designed to be one.

Users who want a full wallet without KYC should use something designed for this purpose and only transfer funds into the browser wallet they want to go to publishers.

Thanks again for your comments and questions, I hope my answers help! Let me know if you have any more.

eV

P.S. We are actively working on changes to the wording on the add funds screen to clarify the unidirectional nature of the wallet. We're trying our best to communicate this counter-intuitive aspect, we don't want anyone to be caught by surprise!

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 12, 2017

Thank you @evq, much appreciated. What was not clear to me earlier from the documentation I found (and thus could be explained somewhere, like the funding page indeed):

  • The wallet is multisig with the second key held by 'you'. This is a beautiful cryptographic way to ensure you don't have the funds (benefits both you and the user). The entire wallet felt 'fake' without knowing this. What follows automatically from this:
    • Your BAT are secure, as in it would be hard for a hacker to steal the funds.
    • The payments are uni-directional and you can't use the wallet as a 'real' wallet.
    • The KYC requirement is optional and makes more sense.

What is not clear to me yet is

  • How to fund the wallet myself, as in I don't know how to find the address. Bought some BAT on bittrex and would like to send it to my wallet without going through uphold. (Not that I particularly mind uphold, I just don't want to be forced to use any third party; it costs 6 BAT to move the BAT from bittrex..)
  • How the off-chain transactions work. I'm hoping they are a micro payment channel, as in true transactions that are not yet signed (by you for transactions from the browser wallet, or by the wallet for incoming funds) so they can be replaced by newer transactions. Or something like that, trying to learn.
@evq
Copy link
Member

@evq evq commented Oct 12, 2017

@hugobuddel

Quick reply before I sign off, to fund your wallet there should be an orange button on the Payments settings page that says "Add funds". After the one time intro page, you can click any of the cryptocurrency logos to be taken to a page where you'll find the address for that particular network. You can actually fund with BTC, LTC and ETH in addition to BAT as Uphold will do automatic conversion (though obviously there is a fee associated). Anyway, you should be able to make a BAT transfer to the corresponding address. If the funding pages are not working for you please let me know, thanks!

@hugobuddel
Copy link
Contributor Author

@hugobuddel hugobuddel commented Oct 12, 2017

Thanks @evq, funding the wallet through that address was indeed successful!

I think my misunderstanding was that the popup says that "All transactions go through uphold", but that is (I suppose) not true for BAT transfers, assuming the receiving address is indeed the multisig address. That address is then 'owned' by the browser and uphold, but uphold did not have to actively do anything for this transaction to go through. Well, the 30 minute wait time is probably just Uphold's double-spend protection period in which they would refuse to sign a spending-transaction, but there doesn't seem to be anything they have to actively do to get the funds in the wallet.

Perhaps it would be more clear to me if the window would state that the (only) BTC/LTC/ETH transactions would go through Uphold to convert to BAT. (That, and that Uphold holds one of the keys of the multi-sig address.) And perhaps reorder the 4 options to have BAT as the first, since that is the primary token; BTC/ETH/LTC are just there as a convenience for users who don't have BAT yet (~everyone).

Hmm, the original issue here was a request to support Bitcoin Cash. This is now again a valid request: could you add BCC to the funding options :-)? Uphold supports it. But maybe that would not be necessary if it is clear for users that they can buy their BAT anywhere and send it to the wallet.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
6 participants
You can’t perform that action at this time.