-
Notifications
You must be signed in to change notification settings - Fork 5.9k
BIP 77: Async Payjoin #1483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BIP 77: Async Payjoin #1483
Changes from 3 commits
acf020b
4923e4d
7b8fd05
0b33548
6a7c553
725ee3c
8f4e4f0
45ada7f
3da0a0b
e7a23cb
270ab25
c5d6ee3
424fd4a
04e1db6
753e1b3
e308e8c
185be8c
fc0948e
c700cca
c344252
397b9b7
5bf4d56
d68e3b6
7d4378e
9b102c8
6e63c2c
18257c4
6a0c97b
0cd6068
d2b3944
e02487f
ec2eb29
365ddd8
e7b3d15
1134f7b
4e50088
258b25e
f672de5
fd5ce56
55d4849
04754f6
0f86c5d
b5a564f
d5259ff
23a9fca
9e9aa34
343de7c
d309764
e302914
a084ae9
c315ffc
0957699
c41457a
ab5e65f
96ab113
ff27345
bb9831d
7bc05ad
b6313f0
55553cf
ae529fb
fd29801
1dfaf86
a8c9bfa
a32381a
97c67b3
605861a
dcfa431
ef1f44f
7651113
9b226e8
dcff59b
f54b13a
7b3b63c
010a2a7
3aac582
d950386
57aa14a
61b15e0
3a3a299
85170ae
d8285f7
4efd1be
7aa14d6
565f3c2
7afd61b
8dd2529
aecfbdb
348bc85
aefa13f
f3ff7db
0054291
29b60de
6123371
5c199bf
a41278f
38dbb13
96471f8
c428ff7
b07ef0f
77082dc
2b41563
1f53f97
22c9d0c
b1eee23
5e11110
d755885
26fb05d
fb19ce0
a007d1d
95400e6
a0d0747
2d8943a
920395e
e866b61
87ef5b2
d3a2f87
68157e3
36ae140
afe25ce
b1af831
d1ee440
df16bc0
b25e86d
9637da5
9959f36
f562b68
6b57a9f
b476d70
a9f336f
6035845
7664fd5
ee73048
e6a1f57
a2fd595
791908a
de138f5
16df846
361db94
10fc408
eb24399
3254750
4038cb5
0d4a8ae
66f67c1
94a6ee3
c3cfcc8
1a792fc
1ad8f26
5359356
3288afc
b44a549
83ca5b4
6d5e8af
80c48d8
9042380
17c3c73
8dbf65c
7b9f1c2
bc8e361
11d07ac
12fa9bd
fbbcbce
028eb0f
18afb55
c91b32c
4495b5c
83b5dd0
9d36e53
67a2766
8212938
e9ad19d
5ffccd4
123de6c
67413b7
3024216
6292450
1cdee1f
661bb2e
880da58
7daf553
f2ad25b
792e585
3fb5916
d30d3c8
3f5af41
e193922
0510be1
bbc67bc
8ac8fbe
b57a527
3e76fc7
4ad7629
ac23246
6412902
8551564
3c9efd1
52b774d
eb27ff4
ff7ae22
945f6e9
0ed98ac
be910a4
27d461e
65e8d38
67c2ad9
df31ae8
044a62e
cbdf04c
4aacdc6
ae1cb1d
8fec8bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -183,7 +183,8 @@ Senders that understand Bitcoin URI but don't support Payjoin will just | |
| ignore the `pj` parameter and proceed to typical address-based | ||
| transaction flows. | ||
|
|
||
| A `req-pj` parameter key, as specified in BIP 21, may be used instead of | ||
| A `req-pj` parameter may be used as a [BIP 21 forwards compatibility `reqparam`](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki#forward-compatibility) instead of | ||
| `pj` to signal that Payjoin is required. | ||
| `pj` to signal that Payjoin is required. | ||
|
|
||
| The parameter value must be [uppercased and the parameter should be placed last in the URI](#uppercase-url). | ||
|
|
@@ -234,9 +235,10 @@ These session-specific parameters use a bech32-inspired encoding. | |
| The HRP is used as the parameter key, followed by the '1' separator, | ||
| followed by the parameter value encoded using the bech32 character set in | ||
| [uppercase](#uppercase-url). No checksum is used. Parameters are separated | ||
| by a `+` character. There are no ordering requirements. | ||
| by a `+` character. | ||
|
|
||
| The following parameters are defined: | ||
| The following parameters are defined, and must be provided in reverse | ||
| lexicographical order: | ||
|
|
||
| - `RK`: encodes the *receiver key* as a 33-byte compressed public key. | ||
| Senders will initiate HPKE with the receiver using this key. | ||
|
|
@@ -526,9 +528,18 @@ Unlike Bitcoin URI parameters, which require switching back to Byte | |
| mode, the use of the URL fragment for session-specific parameters makes | ||
| it possible to stay in Alphanumeric mode. | ||
|
|
||
| The `pj` parameter mailbox endpoint URL SHOULD be the last Bitcoin URI | ||
| ### Parameter Ordering | ||
|
|
||
| The order of fragment parameters, Bitcoin URI parameters, as well as in the | ||
| sender's optional parameters have no defined meaning. | ||
|
|
||
| In the BIP 21 URI, the `pj` parameter mailbox endpoint URL SHOULD be the last | ||
| parameter to avoid QR mode switching. | ||
|
|
||
| Since variations might create a fingerprint for particular wallet software, | ||
| this document requires that fragment parameters MUST appear in reverse | ||
| lexicographical order. | ||
|
|
||
| ### Session Expiration | ||
|
|
||
| The directory may hold a message for an offline Payjoin client until that | ||
|
|
@@ -633,7 +644,7 @@ adversary, it is desirable to do so for standard OHTTP requests as well. | |
| [RFC 9180 Hybrid Public Key | ||
| Encryption](https://www.rfc-editor.org/rfc/rfc9180.html) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This section and perhaps the next one (Secp256k1 based DHKEM) may need to be more detailed. RFC 9180 (Section 7.1) lists the initial set of registered KEM identifiers. These include DHKEMs based on:
Instead of the 'Secp256k1-based DHKEM' section of this BIP pointing to a draft link, it could describe the scheme directly here
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd rather post to the draft, which IANA also links to as the authoritative reference rather than try to copy it. I also find the sentence structure "x may need to be more detailed" confusing because I don't know what inspired the comment. Do you have a reason why you prefer a specific level of increased detail? |
||
| (HPKE) is a modern IETF standard for secure | ||
| message exchange without TLS, which is not available in Bitcoin Core. | ||
| message exchange without TLS, since TLS is not available in Bitcoin Core. | ||
|
|
||
| This proposal uses `DHKEM(Secp256k1, HKDF-SHA256)` and | ||
| `ChaCha20Poly1305` AEAD for both OHTTP encapsulation and for end-to-end | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.