Skip to content

Commit 4fc0b99

Browse files
Merge pull request #107 from thebrandonlucas/migrate-substack
Migrate Substack Articles to `blog/`
2 parents d2a4f3a + 2b4ac28 commit 4fc0b99

13 files changed

Lines changed: 1009 additions & 0 deletions
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
title: Now Accepting Payjoin
3+
description: An old bitcoin privacy technique gets its wings
4+
date: 2023-04-14
5+
authors: dangould
6+
---
7+
8+
The new payjoin client is live 🖖 [Payjoin.org](https://payjoin.org)
9+
launched the ability to send and receive payjoin from the static website
10+
using new Payjoin Software Development Kit. The response proved demand
11+
for better ways to collect payments without revealing the destination of
12+
those funds to the public. This experiement created loads of feedback we
13+
can use to help your favorite wallets and business integrate this
14+
bitcoin privacy upgrade.
15+
16+
<!-- truncate -->
17+
18+
## **Decrypt Covers Payjoin**
19+
20+
Alyssa Hertig broke down the goals of payjoin.org and how it works into
21+
prose rather than jargon:
22+
23+
> PayJoins are different. They\'re a CoinJoin between just two
24+
> users---the buyer and the merchant---at the time of sale. As such,
25+
> PayJoins can be baked into the process of buying anything with
26+
> Bitcoin.
27+
28+
Check it out [here on
29+
Decrypt](https://decrypt.co/126075/bitcoin-privacy-tool-confuse-surveillance-companies).
30+
Share it with a skeptic, their mind might change.
31+
32+
## **Geyser Campaign**
33+
34+
[The Payjoin project has raised two million sats on
35+
Geyser](https://geyser.fund/project/payjoin/), enough to run basic
36+
payjoin server infrastructure for more than a year! Funders are eligible
37+
for a [Payjoin Supporter nostr
38+
badge](https://badges.page/b/naddr1qqghqctedfhkjm3dwd6hqur0wf6x2uszyqn9sd3vxym742qpltjqf03kllyqu94xr3p63ydr5prta39h9eyc5qcyqqq82wg0z8tmw)
39+
for their support.
40+
41+
<img alt="Geyser Payjoin" src="/img/payjoin-geyser.png" />
42+
43+
## **A How-to Deep Dive**
44+
45+
When payjoin.org was put up a few weeks back, there was a demand for a
46+
step by step walkthrough of the process. In particular, the feedback
47+
asked for an explanation of what the Payjoin SDK does so that payjoin
48+
could be implemented it in other languages than Rust too. I'm publishing
49+
[this early
50+
draft](https://github.com/payjoin/rust-payjoin/blob/66ab3c39e64c3769c78df161b57a006bb22105db/MENTAL-MODEL.md)
51+
for feedback in an effort to answer that demand; build, show, and tell,
52+
more in public; and to kickstart foreign language bindings support. It
53+
should also help the Summer of Bitcoin students [get payjoin into the
54+
Bitcoin Dev
55+
Kit](https://github.com/payjoin/rust-payjoin/blob/66ab3c39e64c3769c78df161b57a006bb22105db/MENTAL-MODEL.md).
56+
57+
## **Bonus Podcast: Global Bitcoin Fest Taiwan 🎧**
58+
59+
My heart is in Taiwan, and its bitcoin scene is taking off. Virtually
60+
all of the ASIC chips for miners are manufactured there. Listen for a
61+
history and the future of bitcoin business, manufacturing, policy, and
62+
culture in Taiwan. It's worth a listen.
63+
64+
<iframe src="https://w.soundcloud.com/player/?auto_play=false&amp;buying=false&amp;liking=false&amp;download=false&amp;sharing=false&amp;show_artwork=true&amp;show_comments=false&amp;show_playcount=false&amp;show_user=true&amp;hide_related=true&amp;visual=false&amp;start_track=0&amp;url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F1491366769" frameborder="0" gesture="media" scrolling="no" allowfullscreen="true"></iframe>
65+
66+
Wishing the best weekend to you & yours,
67+
68+
Dan
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: What Does Privacy Mean?
3+
description: We want encryption for trade. What is that?
4+
date: 2023-04-25
5+
authors: dangould
6+
---
7+
8+
In February 2009 Satoshi
9+
[posted](https://satoshi.nakamotoinstitute.org/posts/p2pfoundation/1/):
10+
"The root problem with conventional currency is all the trust that\'s
11+
required. ... **Before strong encryption**... privacy could always be
12+
overridden by the admin based on his judgment call weighing the
13+
principle of privacy against other concerns, or at the behest of his
14+
superiors." Since the people we do business with and often even
15+
strangers may override bitcoin privacy I have to ask, **if**
16+
**communications privacy is protected by strong encryption, what keeps
17+
the transfer of value private?** The other day, Max Hillebrand
18+
[noted](https://damus.io/note1nxgydgv7aanqll7ge76nwquyku830k6ve7v28v75h4w5785yxktsaw6jug)
19+
his "hope" that existing bitcoin tech has already achieved the same
20+
level of security in response to Satoshi's words. Crypanalysis defines
21+
security against specific attacks a system can be proven to defend from.
22+
The tech on offer does not do this to my standard. I know we can extend
23+
that tradition and analogy to define the makings of secure value
24+
transfer and deliver it with guarantees.
25+
26+
<!-- truncate -->
27+
28+
## Guarantee some Privacy
29+
30+
The most basic guarantee is to break the most common pattern strangers
31+
use to spy on bitcoin users. That's what payjoin does, and why it fits
32+
into bitcoin exchange process to protect consumer privacy. This past
33+
week we drafted the the payjoin integration with bitcoin exchange
34+
software. The most advanced bitcoin exchange in Canada wants to upgrade
35+
first. There's so much more here that I want to blurt out but I'll keep
36+
it simple for now. **If you want payjoin in software you use, have the
37+
developers visit [payjoin.org](https://payjoin.org) and message me.**
38+
39+
## Interview Inbound
40+
41+
In a recent interview I got into the details of so-called "taint"
42+
analysis, how payjoin complements existing privacy tools, and the
43+
history and progress of bitcoin privacy enhancement. Stay tuned for the
44+
announcment.
45+
46+
## Payjoin on iOS, Android, and MacOS
47+
48+
BlueWallet fixed payjoin in their [latest
49+
release](https://github.com/BlueWallet/BlueWallet/releases/tag/v6.4.1).
50+
The [list](https://en.bitcoin.it/wiki/PayJoin_adoption) of payjoin
51+
capable software continues to grow. Can't wait to see who supports
52+
bitcoin privacy next.
53+
54+
Thank you for yours.
55+
56+
All the best to you,
57+
58+
Dan
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: Tracking Growth in Payjoin Adoption
3+
description: Dual-funding, Cahoots, ... SNICKER, and LNURL?
4+
date: 2023-05-03
5+
authors: dangould
6+
---
7+
8+
[Payjoin adoption](https://en.bitcoin.it/wiki/PayJoin_adoption) has been
9+
increasing steadily since its introduction in 2018. Payjoin started as a
10+
privacy-enhancing technique to allow merchants to combine their Bitcoin
11+
with customers, to save fees, and to better secure the origin and
12+
destination of their funds. It makes it more difficult for third parties
13+
to track and analyze Bitcoin transactions in general, which is a
14+
significant benefit for anyone who values financial privacy. This past
15+
week I documented the growth of the technology in a few big tables on
16+
the Bitcoin wiki.
17+
18+
<!-- truncate -->
19+
20+
::: captioned-image-container
21+
<figure>
22+
<a
23+
href="https://substackcdn.com/image/fetch/$s_!hQ2P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png"
24+
class="image-link image2 is-viewable-img" target="_blank"
25+
data-component-name="Image2ToDOM"></a>
26+
<div class="image2-inset">
27+
<img
28+
src="https://substack-post-media.s3.amazonaws.com/public/images/8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png"
29+
title="The table of payjoin adoption status from the wiki"
30+
class="sizing-normal"
31+
data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1239,&quot;width&quot;:1193,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:350794,&quot;alt&quot;:&quot;The table of payjoin adoption status from the wiki&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}"
32+
srcset="https://substackcdn.com/image/fetch/$s_!hQ2P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png 424w, https://substackcdn.com/image/fetch/$s_!hQ2P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png 848w, https://substackcdn.com/image/fetch/$s_!hQ2P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png 1272w, https://substackcdn.com/image/fetch/$s_!hQ2P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f86ee7e-a0f6-45a4-b2f5-d76c6fde10fb_1193x1239.png 1456w"
33+
sizes="100vw" data-fetchpriority="high" width="1193" height="1239"
34+
alt="The table of payjoin adoption status from the wiki" />
35+
<div class="image-link-expand">
36+
<div class="pencraft pc-display-flex pc-gap-8 pc-reset">
37+
<div class="pencraft pc-reset icon-container restack-image">
38+
<img
39+
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld2JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXJlZnJlc2gtY3ciPjxwYXRoIGQ9Ik0zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4IiAvPjxwYXRoIGQ9Ik0yMSAzdjVoLTUiIC8+PHBhdGggZD0iTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2IiAvPjxwYXRoIGQ9Ik04IDE2SDN2NSIgLz48L3N2Zz4="
40+
class="lucide lucide-refresh-cw" />
41+
</div>
42+
<div class="pencraft pc-reset icon-container view-image">
43+
<img
44+
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld2JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLW1heGltaXplMiBsdWNpZGUtbWF4aW1pemUtMiI+PHBvbHlsaW5lIHBvaW50cz0iMTUgMyAyMSAzIDIxIDkiPjwvcG9seWxpbmU+PHBvbHlsaW5lIHBvaW50cz0iOSAyMSAzIDIxIDMgMTUiPjwvcG9seWxpbmU+PGxpbmUgeDE9IjIxIiB4Mj0iMTQiIHkxPSIzIiB5Mj0iMTAiPjwvbGluZT48bGluZSB4MT0iMyIgeDI9IjEwIiB5MT0iMjEiIHkyPSIxNCI+PC9saW5lPjwvc3ZnPg=="
45+
class="lucide lucide-maximize2 lucide-maximize-2" />
46+
</div>
47+
</div>
48+
</div>
49+
</div>
50+
</figure>
51+
:::
52+
53+
The BIP78 payjoin protocol has been gaining traction in recent years and
54+
is now supported by several wallets beyond merchants. Recent additions
55+
include the [BitMask](https://bitmask.app) browser extension (mainnet
56+
launch impending),
57+
[nolooking](https://github.com/chaincase-app/nolooking) for LND, and
58+
[payjoin-client](https://github.com/payjoin/rust-payjoin) for Bitcoin
59+
Core. BIP78 allows sender and recipient to negotiate a payjoin
60+
transaction over the web, by allowing both parties to contribute
61+
transaction inputs. This foils the primary heuristic strangers use to
62+
surveil Bitcoin users. This protocol is gaining popularity as more users
63+
become aware of its benefits and as more wallets support it. Still more
64+
payjoins are made with protocols other than the most popular BIP78 even
65+
if those making them might not think of them that way.
66+
67+
## Payjoin Beyond BIP78
68+
69+
In addition to BIP78, there are other ways to spend Bitcoin with inputs
70+
from multiple sources that are still fundamentally payjoin transactions,
71+
too. Having included them on the [Payjoin
72+
Adoption](https://en.bitcoin.it/wiki/PayJoin_adoption) page their
73+
relationship to payjoin should be examined.
74+
75+
[Dual-funded channels](https://bitcoinops.org/en/topics/dual-funding/)
76+
(DFC) are a type of Lightning Network channel where both channel peers
77+
contribute funds to the channel, rather than just one. This allows them
78+
to transact on the Lightning Network in both directions in contrast to
79+
channels with a source of funds on only one side. This can reduce
80+
transaction costs and increase transaction speed. Sometimes classical
81+
payjoins are called, Pay-to-Endpoint (P2EP), with emphasis on their
82+
coordination using an interactive web address instead of a static
83+
bitcoin address. Like P2EP, Lightning nodes establish channels via
84+
publically addressable identifier.
85+
86+
Cahoots's Stowaway and Stonewallx2 are two other privacy-enhancing
87+
Bitcoin transaction methods that combine inputs and outputs between
88+
users to secure transaction details. Stowaway makes a payjoin, while
89+
Stonewallx2 makes a 2-party equal ouptut CoinJoin. Cahoots methods use a
90+
Tor-based
91+
[Soroban](https://medium.com/samourai-wallet/wallet-update-0-99-96-introducing-soroban-adc9a36a7ddb)
92+
rendezvous to a [PayNym](https://paynym.is/). PayNym serves as an
93+
endpoint that can be looked up in a public directory to establish secure
94+
connection over Tor relays.
95+
96+
## Payjoin sans P2EP
97+
98+
[SNICKER](https://gist.github.com/AdamISZ/2c13fb5819bd469ca318156e2cf25d79)
99+
is another type of transaction where multiple users contribute input to
100+
a transaction. Unlike P2EP, its users scan public data on the blockchain
101+
to find eligible counterparties. They transact without ever
102+
communicating directly. The SNICKER proposal is focused on equal amount
103+
CoinJoins, but could in theory be used to make transactions including
104+
transfers like payjoin, too (although between non-input-contributing
105+
users). Because it's non-interactive and common-input heuristic
106+
breaking, it serves us here to distinguish between payjoin and P2EP.
107+
108+
## P2EP sans Payjoin
109+
110+
[LNURL](https://github.com/lnurl/luds/blob/luds/01.md) is a protocol for
111+
generating Lightning Network payment requests and for providing
112+
additional Lightning-related information over the web. It enables
113+
Lightning wallets and services to provide users with QR codes or links
114+
that can be used to initiate Lightning payments or to access additional
115+
Lightning-related features. LNURL can also be used to facilitate other
116+
Lightning-related tasks such as opening channels and managing liquidity.
117+
Being [nonchalantly ubiquitous](https://github.com/lnurl/luds#services)
118+
in the lightning world, it proves the pay-to-endpoint concept is
119+
convenient and valuable to users.
120+
121+
My week had a few interruptions, so I made the most of it by collecting
122+
all of the payjoin projects evaluations in pockets of free time. Ready
123+
to evaluate payjoin for your project? Get in touch.
124+
125+
Have a great week.
126+
127+
Dan

0 commit comments

Comments
 (0)