Andreas Schildbach [ARCHIVE] on Nostr: 📅 Original date posted:2014-01-27 📝 Original message:On 01/27/2014 02:11 PM, ...
📅 Original date posted:2014-01-27
📝 Original message:On 01/27/2014 02:11 PM, Mike Hearn wrote:
> I would like to see Bluetooth continue to work for scan-to-pay even in
> the signed case. So for this reason the current approach with a BTMAC
> parameter in the Bitcoin URI seems to work universally across NFC tags
> and QR codes, and would allow download of a signed PaymentRequest even
> in the case where a QR code is used.
I'm not saying I'm against signed payment requests, but unfortunately
they are just too big for QR-codes. Then again, QR-codes *can* take up
to 2 KB. How big would a very basic trust chain plus signature be?
> Because a Bitcoin URI already contains a public key (hash), re-using
> that to establish an encrypted/authd connection on top of an insecure
> RFCOMM socket would seem to be relatively straightforward.
I was under the impression that addresses will go away. Can you
elaborate on the mechanism?
> Obviously such QR-encoded payment requests cannot grow in size as much
> as using other media. In particular, I expect PKI signed requests are
> out of question. However, in face to face payments the value of a sig
> based on PKI is highly questionable, and the fact the sig cannot be
> verified without TCP connectivity doesn't help.
>
> Just a correction here - the reason signed payment requests are "large"
> (about 4000 bytes) is exactly because they *can* be verified offline,
> i.e. by a Trezor. The signed payment request contains all the data
> needed to establish its authenticity, including certificates and the
> signature itself. No TCP connection is needed.
Ok, that's good news (to me). However, you are going to manage trust
stores (adding and revoking) without TCP?
> For face to face payments, I think signing is still useful. For one, we
> want to keep the distinction between "merchant" and "user" as blurry and
> indistinct as possible. A strong separation between merchants and
> consumers is one of the many bad things about the credit card system.
Ack.
> Whilst initially we'd expect the payment protocol to be used by online
> webshops, in future it could be used by little corner shops, children's
> lemonade stands and so on.
Well I'm thinking the other way round. Use Bitcoin where its already
used today -- face to face.
> you probably still would like a receipt if you buy
> something from a local market trader.
Yes, but where is the problem?
> Another use case - we heard a story about a restaurant owner who
> accepted Bitcoin. He printed a static bitcoin URI onto a QR code on the
> menu. A month or two later he discovered one of his waiters had
> re-printed the menus with his own QR code! The people thought they had
> been paying for the meal, and in fact it went right into the pocket of
> the waiter.
Sad story, but it's really a special case. Using a printed QR-code is
clearly the wrong tool for his task, for several reasons.
And again, how is he going to provide the payment request to the payer
without TCP?
> As to how it works, well, that's not hard. Comodo give away free email
> address certs with a few mouse clicks, it's no harder than signing up
> for a website.
We don't want to force people to sign up anywhere. Bitcoin is instant-on.
> - I chose to re-use the "bitcoin:" URL scheme
>
> Other wallets won't know what to do with it and would yield a strange
> error message.
Which is why I said we need some transition time.
> Rather than pack a file into a URL, if you don't want to
> use the current r= extension it's better for apps to just register to
> handle .bitcoinpaymentrequest files / the right MIME type. Downloading
> it and opening it would do the right thing automatically.
That's a good point. I'll implement this asap.
> Remember BIP 73 also! It says that with the apps built-in QR scanner, if
> you scan an HTTP[S] URI, you should try downloading it with a magic
> header. That way you can get a payment request file out of the server.
> Without the magic header (i.e. a normal generic barcode scanner app) it
> would open a web page containing a bitcoin URI clickable link.
Interesting, did not know about this BIP. However I don't understand the
usecase. Its not like my browsers always display QR-codes with URL of
the page being shown. And if the page in question bothers to show a QR
code, it could just as well also link to a payment request resource (as
suggested above).
Published at
2023-06-07 15:12:41Event JSON
{
"id": "a7422c9be454d11dddaa44752733ea89465ebbf0cdc16dbc717e7df2f2a17e1e",
"pubkey": "3215b3d77dff1f84eeb5ad46fb1206a8d1657b3ea765a80b5489ece3a702d2bc",
"created_at": 1686150761,
"kind": 1,
"tags": [
[
"e",
"e58bd7fc71e0b34db5ffe731162734e74d81715bfe40046de10c0268ccbf9fd4",
"",
"root"
],
[
"e",
"75dda57bd40db7d5c7c347216ad88b4b5e556997d64827de747e7002dd04006e",
"",
"reply"
],
[
"p",
"f2c95df3766562e3b96b79a0254881c59e8639f23987846961cf55412a77f6f2"
]
],
"content": "📅 Original date posted:2014-01-27\n📝 Original message:On 01/27/2014 02:11 PM, Mike Hearn wrote:\n\n\u003e I would like to see Bluetooth continue to work for scan-to-pay even in\n\u003e the signed case. So for this reason the current approach with a BTMAC\n\u003e parameter in the Bitcoin URI seems to work universally across NFC tags\n\u003e and QR codes, and would allow download of a signed PaymentRequest even\n\u003e in the case where a QR code is used.\n\nI'm not saying I'm against signed payment requests, but unfortunately\nthey are just too big for QR-codes. Then again, QR-codes *can* take up\nto 2 KB. How big would a very basic trust chain plus signature be?\n\n\u003e Because a Bitcoin URI already contains a public key (hash), re-using\n\u003e that to establish an encrypted/authd connection on top of an insecure\n\u003e RFCOMM socket would seem to be relatively straightforward.\n\nI was under the impression that addresses will go away. Can you\nelaborate on the mechanism?\n\n\u003e Obviously such QR-encoded payment requests cannot grow in size as much\n\u003e as using other media. In particular, I expect PKI signed requests are\n\u003e out of question. However, in face to face payments the value of a sig\n\u003e based on PKI is highly questionable, and the fact the sig cannot be\n\u003e verified without TCP connectivity doesn't help.\n\u003e \n\u003e Just a correction here - the reason signed payment requests are \"large\"\n\u003e (about 4000 bytes) is exactly because they *can* be verified offline,\n\u003e i.e. by a Trezor. The signed payment request contains all the data\n\u003e needed to establish its authenticity, including certificates and the\n\u003e signature itself. No TCP connection is needed.\n\nOk, that's good news (to me). However, you are going to manage trust\nstores (adding and revoking) without TCP?\n\n\u003e For face to face payments, I think signing is still useful. For one, we\n\u003e want to keep the distinction between \"merchant\" and \"user\" as blurry and\n\u003e indistinct as possible. A strong separation between merchants and\n\u003e consumers is one of the many bad things about the credit card system.\n\nAck.\n\n\u003e Whilst initially we'd expect the payment protocol to be used by online\n\u003e webshops, in future it could be used by little corner shops, children's\n\u003e lemonade stands and so on.\n\nWell I'm thinking the other way round. Use Bitcoin where its already\nused today -- face to face.\n\n\u003e you probably still would like a receipt if you buy\n\u003e something from a local market trader.\n\nYes, but where is the problem?\n\n\u003e Another use case - we heard a story about a restaurant owner who\n\u003e accepted Bitcoin. He printed a static bitcoin URI onto a QR code on the\n\u003e menu. A month or two later he discovered one of his waiters had\n\u003e re-printed the menus with his own QR code! The people thought they had\n\u003e been paying for the meal, and in fact it went right into the pocket of\n\u003e the waiter.\n\nSad story, but it's really a special case. Using a printed QR-code is\nclearly the wrong tool for his task, for several reasons.\n\nAnd again, how is he going to provide the payment request to the payer\nwithout TCP?\n\n\u003e As to how it works, well, that's not hard. Comodo give away free email\n\u003e address certs with a few mouse clicks, it's no harder than signing up\n\u003e for a website.\n\nWe don't want to force people to sign up anywhere. Bitcoin is instant-on.\n\n\u003e - I chose to re-use the \"bitcoin:\" URL scheme\n\u003e\n\u003e Other wallets won't know what to do with it and would yield a strange\n\u003e error message.\n\nWhich is why I said we need some transition time.\n\n\u003e Rather than pack a file into a URL, if you don't want to\n\u003e use the current r= extension it's better for apps to just register to\n\u003e handle .bitcoinpaymentrequest files / the right MIME type. Downloading\n\u003e it and opening it would do the right thing automatically.\n\nThat's a good point. I'll implement this asap.\n\n\u003e Remember BIP 73 also! It says that with the apps built-in QR scanner, if\n\u003e you scan an HTTP[S] URI, you should try downloading it with a magic\n\u003e header. That way you can get a payment request file out of the server.\n\u003e Without the magic header (i.e. a normal generic barcode scanner app) it\n\u003e would open a web page containing a bitcoin URI clickable link.\n\nInteresting, did not know about this BIP. However I don't understand the\nusecase. Its not like my browsers always display QR-codes with URL of\nthe page being shown. And if the page in question bothers to show a QR\ncode, it could just as well also link to a payment request resource (as\nsuggested above).",
"sig": "9524ee16ae5499a1b596e1fd265a7671fda02738a715c2ae201825a5c306fd520aeaba4b332f01314d4bb2c21552aec1122e922980f9d3e5fd41d9f7d4e10533"
}