Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: CoinSanta on August 07, 2018, 09:54:15 PM



Title: Bitpay URIs to traditional BTC addresses
Post by: CoinSanta on August 07, 2018, 09:54:15 PM
Hi, with the enforcement of BIP70 protocol only payments, Bitpay has alienated the bulk of BTC users who do not use compatible wallets. On their payment page, there is a QR code shown. If we scan that code with non compatible wallets and send BTC, are the funds non recoverable?


I have also come across two decoders that convert the Bitpay URI to traditional BTC addresses. Can techies confirm if they are legit? It's kinda iffy to have to pay to a decoded address.
https://alexk111.github.io/DeBitpay/
https://decoder.bip70.org/

Thanks guys.


Title: Re: Bitpay URIs to traditional BTC addresses
Post by: TryNinja on August 07, 2018, 10:31:01 PM
Both are probably legit (I prefer the second one), but I would be careful with it.

If you don't want to trust any tool, you can get the address and amount by yourself with just a GET request.

You can actually get them on your own with a quite simple method:

Just send a GET request to the invoice URL with the header "Accept" equal to "application/payment-request" and you will see the payment data.

The output will look like this:

Code:
{
   "network":"main",
   "currency":"BTC",
   "requiredFeeRate":10.681,
   "outputs":[
      {
         "amount":1001600,
         "address":"159Z9Q2qUURpZN6F1VConaKguv1r1wjNXg"
      }
   ],
   "time":"2018-05-30T00:12:31.638Z",
   "expires":"2018-05-30T00:27:31.638Z",
   "memo":"Payment request for BitPay invoice 6iKSbiLdJkQGnuCoztCsU1 for merchant Electronic Frontier Foundation",
   "paymentUrl":"https://bitpay.com/i/6iKSbiLdJkQGnuCoztCsU1",
   "paymentId":"6iKSbiLdJkQGnuCoztCsU1"
}


Title: Re: Bitpay URIs to traditional BTC addresses
Post by: slaman29 on August 08, 2018, 07:46:18 AM
Just a question, sorry if this isn't related to the OP, but I use Bitpay not by choice and wondered a few times about why people would want to extract the BTC address to pay to.

First, is it more advantageous to do that direct payment instead of paying straight to the Bitpay invoice? Second, can Bitpay invoice still detect the payment if you make a direct payment to the address derived? Last, why would Bitpay ever do that? After you pay you can already see the address anyway. I don't understand this.


Title: Re: Bitpay URIs to traditional BTC addresses
Post by: OmegaStarScream on August 08, 2018, 07:54:07 AM
Just a question, sorry if this isn't related to the OP, but I use Bitpay not by choice and wondered a few times about why people would want to extract the BTC address to pay to.

First, is it more advantageous to do that direct payment instead of paying straight to the Bitpay invoice? Second, can Bitpay invoice still detect the payment if you make a direct payment to the address derived? Last, why would Bitpay ever do that? After you pay you can already see the address anyway. I don't understand this.

If the wallet you're using doesn't support that, you wouldn't be able to make the payment so you'll need a decoder like the ones posted above. I'm using this method and the invoice gets paid just fine.

Regarding BIP70: https://blog.bitcoin.org.hk/bitpay-is-using-the-payment-protocol-to-take-your-privacy-8093bf91eda7





Title: Re: Bitpay URIs to traditional BTC addresses
Post by: bob123 on August 08, 2018, 07:56:55 AM
Doing the GET-request as suggested by TryNinja is probably the safest way to get the correct address.

Under linux this can be done with one command:
Code:
curl -i -H "Accept: application/payment-request" -H "Content-Type: application/payment-request" https://bitpay.com/i/YourInvoiceID

And with jq installed (a commandline json processor) an appealing formatted output appears when entering:
Code:
curl -i -H "Accept: application/payment-request" -H "Content-Type: application/payment-request" https://bitpay.com/i/YourInvoiceID | jq



First, is it more advantageous to do that direct payment instead of paying straight to the Bitpay invoice?

Not every wallet has BIP70 implemented. Therefore some user might need the direct address to pay to.
Additionally people are used to send coins 'to addresses'. Using an bitpay invoice number or sending 'to a website' sounds somewhat weird to them.
 


Second, can Bitpay invoice still detect the payment if you make a direct payment to the address derived?

Yes.


Title: Re: Bitpay URIs to traditional BTC addresses
Post by: slaman29 on August 09, 2018, 05:12:57 AM
Just a question, sorry if this isn't related to the OP, but I use Bitpay not by choice and wondered a few times about why people would want to extract the BTC address to pay to.

First, is it more advantageous to do that direct payment instead of paying straight to the Bitpay invoice? Second, can Bitpay invoice still detect the payment if you make a direct payment to the address derived? Last, why would Bitpay ever do that? After you pay you can already see the address anyway. I don't understand this.

If the wallet you're using doesn't support that, you wouldn't be able to make the payment so you'll need a decoder like the ones posted above. I'm using this method and the invoice gets paid just fine.

Regarding BIP70: https://blog.bitcoin.org.hk/bitpay-is-using-the-payment-protocol-to-take-your-privacy-8093bf91eda7


Thank you for this information, had no idea some wallets don't support it. As I said, I use Bitpay sometimes, I don't like it and remember the first time I used it I thought it was strange that you only saw an invoice instead of the address. It isn't the worst thing I guess and it's sort of helpful to see the invoice in your history, but I name all my address spends anyway.

Does that mean if you can use Bitpay without extracting the address, people can guess what your wallet is? I see now Bitpay has been collecting my IP. So sad about all these socalled Bitcoin adopters. Good luck BP, I share it with 100s if not 1000s of people.


Title: Re: Bitpay URIs to traditional BTC addresses
Post by: bob123 on August 09, 2018, 06:57:39 AM
Does that mean if you can use Bitpay without extracting the address, people can guess what your wallet is? I

Do do you mean that someone can find out your address if you are using the bitpay service to receive payments?
If thats what you have meaned, then yes..

Addresses are public information. Anyone can see them. Even if you use BIP70 payment requests.
At least after someone has made a transaction, he can simply look at a block explorer to look for the receiving address.
But as mentioned above a simple GET-request is also enough to extract the address. This is because BIP70 is just a protocol ontop of the application layer. Transactions are still being sent 'to addresses'.



Title: Re: Bitpay URIs to traditional BTC addresses
Post by: slaman29 on August 10, 2018, 06:28:25 AM
Does that mean if you can use Bitpay without extracting the address, people can guess what your wallet is? I

Do do you mean that someone can find out your address if you are using the bitpay service to receive payments?
If thats what you have meaned, then yes..

Addresses are public information. Anyone can see them. Even if you use BIP70 payment requests.
At least after someone has made a transaction, he can simply look at a block explorer to look for the receiving address.
But as mentioned above a simple GET-request is also enough to extract the address. This is because BIP70 is just a protocol ontop of the application layer. Transactions are still being sent 'to addresses'.



No I mean, if people know I can use Bitpay, then they also know I am using a wallet that is compatible with BIP70 payment requests. As I refer above responses, I did not know some wallets could not support Bitpay. I know it is not a big problem, but now I am reading it up, it appears only 2 wallets are capable of receiving bitpay invoices, and yes, I'm using one of them. So now I know Bitpay knows I am a user of one of such wallets :)

I dislike already cookies that even tell websites what computer and OS I am using. So this upsets me a little bit. I had no idea Bitpay was like this.


Title: Re: Bitpay URIs to traditional BTC addresses
Post by: AdolfinWolf on August 10, 2018, 10:17:16 AM
No I mean, if people know I can use Bitpay, then they also know I am using a wallet that is compatible with BIP70 payment requests. As I refer above responses, I did not know some wallets could not support Bitpay. I know it is not a big problem, but now I am reading it up, it appears only 2 wallets are capable of receiving bitpay invoices, and yes, I'm using one of them. So now I know Bitpay knows I am a user of one of such wallets :)

I dislike already cookies that even tell websites what computer and OS I am using. So this upsets me a little bit. I had no idea Bitpay was like this.

No they don't necessarily. As posts above mentioned, you can still make a transaction to bitpay from a non-supportive BIP70 wallet, and Bitpay will have no clue from where the funds came from.

And even if they did knew that your transaction came from "one of such wallets", what use would that be? 95% of the bitcoin community uses Bitcoin Core / Electrum.

(Also, if you're using Electrum (I presume you do) like a "normal person" ( not looking at the Electrum server you connect to) you have more to worry about than Bitpay knowing what kind of wallet you use.)

Electrum works differently from a lot of other SPV clients. With Electrum, users are required to connect to Electrum servers. The way blockchain.info track the IP transactions is to see who relayed the transaction to them first. If you're using Electrum, the only possible IP address you would see there is the server's. This does not mean that your privacy is preserved; Electrum servers can see all the addresses in your wallet.