算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
bitcoin-privacy-payjoin【设计与创意】PayJoin (BIP78 + v2): receiver-augmented payment that breaks common-input-ownership heuristic. v2 adds async relay support. USE WHEN: implementing PayJoin sender/receiver, designing privacy- preserving payment flows, integrating with payjoin servers.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
PayJoin = "P2EP" (pay-to-endpoint). The receiver adds their own input to the sender's tx, defeating the common-input-ownership heuristic.
Spec: BIP78 (sync) + BIP77 "Async Payjoin" (async via directory relay).
?pj=https://... (PayJoin
endpoint).Result: tx with inputs from BOTH sender and receiver. Heuristic analyst now can't tell which inputs belong to whom.
BIP78 v1 requires the receiver to be online during the payment. BIP77 v2 introduces a directory relay so receiver can be offline:
Sender can then sign + broadcast. End-to-end encrypted (sender + receiver have known pubkeys for the channel).
bitcoin:bc1q...?amount=0.001&pj=https://example.com/pj/endpoint&pjos=0
pj= for v1 and v2; in v2 it points at a directory mailbox endpoint.
pjos=0 disables output substitution (BIP77 requires it on the
BIP78-compatible path). BIP77 defines no new BIP21 parameters:
session data lives in the fragment of the pj URL (EX expiry,
OH OHTTP key config, RK receiver key) under a bech32-inspired
encoding — HRP as the parameter key, 1 separator, value in the
bech32 character set, uppercase, no checksum — with #
percent-encoded as %23 (BIP77 spec version 0.2.0, as of
September 2026).
| Aspect | CoinJoin | PayJoin |
|---|---|---|
| Multi-party | many participants | sender + receiver |
| Per-payment | dedicated round | seamless within payment |
| Fee | extra coordinator + on-chain | small overhead |
| Anonymity set | size of round | 2 |
| Frequency | periodic mixing | every payment can be PayJoin |
PayJoin is simpler to integrate (every payment can be a PayJoin) but provides smaller anonymity set per-payment. Combined effect with many users = chain-wide doubt.
payjoin-1.0.0,
on 12 August 2026 — one library covering both BIP78 and BIP77, with
typestate session workflows and event-log persistence. UniFFI
bindings: payjoin-python-0.2.0, payjoin-dart-0.2.2,
payjoin-csharp-0.1.0 and payjoin-javascript-0.2.0 (the JS and C#
releases landed 27 August 2026), all pinned to payjoin-1.0.0.
payjoin-cli was still at 1.0.0-rc.2 as of September 2026.PUT to its own
mailbox, since a BIP78 sender supplies no reply key.