From 623a222d3c70a1dbb910e0a544b6b429b49330a6 Mon Sep 17 00:00:00 2001 From: DanGould Date: Sat, 13 Jan 2024 21:07:26 -0500 Subject: [PATCH 1/3] Add privacy link text --- privacy.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 privacy.txt diff --git a/privacy.txt b/privacy.txt new file mode 100644 index 0000000..7a94c1b --- /dev/null +++ b/privacy.txt @@ -0,0 +1,7 @@ +# Payjoin Privacy + +Satoshi left exactly one privacy problem open in the whitepaper, that transactions with multiple inputs "necessarily reveal that their inputs were owned by the same owner." In early bitcoin software, this was true. But nothing prevents one from making a transaction with inputs from multiple sources. Payjoin is the simplest way to do that. + +In a basic bitcoin transaction, a sender spends some bitcoin to a new transaction output paying someone and makes change from their funds at the same time. A third party looking at the transaction on chain could assume all input to a transaction must have come from that sender. + +In Payjoin, the sender and receiver both contribute funds, breaking Satoshi's assumption. The payment amount plus receiver input amount both go to the receiver and the sender gets change. Because bitcoin is stored in distinct transaction outputs, and not accounts, such a transaction looks the same as one where a sender spent multiple inputs to a receiver and made change. By breaking the assumption from the whitepaper, payjoin makes it much harder to be sure about who got paid how much. From 5f84bac52827a9cd976c6ea4e76f136616bf95de Mon Sep 17 00:00:00 2001 From: DanGould Date: Sat, 13 Jan 2024 21:07:44 -0500 Subject: [PATCH 2/3] Add scale link text --- scale.txt | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 scale.txt diff --git a/scale.txt b/scale.txt new file mode 100644 index 0000000..9a7545c --- /dev/null +++ b/scale.txt @@ -0,0 +1,34 @@ +# How Does Payjoin Scale Bitcoin? + +The Bitcoin blockchain is limited by block size. Approximately every ten minutes a new block is added to the chain. New blocks add 2MB of data on average [[1]](). Blocks are limited by transaction weight, or how much of each type of data is included in a transaction. + +The simplest way to scale any database is batching, which is exactly what Payjoin does. + +Payjoin enables multiple distinct parties to combine what would otherwise be distinct transaction intents into a joint transaction which lets them share transaction data they would otherwise both need to pay to add to the chain. + +## Your Typical Payjoin + +A typical payjoin combines a payment from sender to receiver with the consolidation of a receiver input. e.g Input {(A, 2), (B, 3)}{(B, 4), (A, 1)} where A pays B 1 BTC at the same time B consolidates their 3 BTC UTXO with A's payment. Without payjoin that would require two transactions +{(A, 2)}{(B, 1), (A, 1)} followed by {(B, 1), (B, 3)}{(B, 4)}. + +The Payjoin using exclusively Pay-to-Taproot addresses (P2TR) [here](https://mutinynet.com/tx/3c5436f1edf7d4c32a5ccf2448c1e963f52bb8a0fb6f8688d7e78a14e1cbe80b) is 211.75 vB. An analogous P2TR payment [here](https://mutinynet.com/tx/2c45dc6fef9feb32b9741cc3e6197eda94e1b0c45675e18818bfadce9fa94e20) is 152.25 vB and P2TR consolidation [here](https://mutinynet.com/tx/ef9263ed05c07f7ba933389eee7bfd62372e3dc4d1e697f96b7c66a215cc9b46) is 168.5 vB, for a total of 320.75 vB. + +The separate payment and consolidation have to pay for 51% more block weight to be mined than the Payjoin. What other scaling solution achieves that kind of savings? + + +## Opportunistic Consolidation + +Payjoin got its start as a way to make a sort of [coinjoin] from a payment. A receiver combines their input with the sender's, effectively joining a [consolidation]() transaction with a simple transfer. An observer looking at the payjoin is cannot tell it apart from a simple transfer where all of the inputs come from the same entity. + +< need visuals > + +not only does the total weight get shaved. wouldn't it be cool when wallet + +## Transaction Cut-Through + +Payjoin not only creates opportunity to batch consolidation, but may create any output with the incoming funds. Because payjoin involves live interaction, the receiver may open lightning channels, forward funds to a different wallet, pay for goods and services, or batch forward transactions with incoming funds without first taking them into a new UTXO. + +https://chaincase.app/words/lightning-payjoin +https://payjoin.substack.com/p/interactive-payment-batching-is-better + +[1](https://bitcoin.stackexchange.com/a/116350) {#1} \ No newline at end of file From c3cbea25f1d2eb3771a34623f7f8dd5846cc8d59 Mon Sep 17 00:00:00 2001 From: Brandon Lucas <38222767+thebrandonlucas@users.noreply.github.com> Date: Sun, 14 Jan 2024 20:51:14 -0500 Subject: [PATCH 3/3] feat: prettify privacy content --- privacy.txt | 7 -- scale.txt | 34 ------- src/routes/+page.svelte | 6 +- src/routes/lightning/+page.svelte | 69 ++++++++++++++ src/routes/privacy/+page.svelte | 35 ++++++++ src/routes/scale/+page.svelte | 85 ++++++++++++++++++ .../images/lightning-open-without-payjoin.png | Bin 0 -> 19605 bytes static/images/lightning-payjoin.png | Bin 0 -> 14768 bytes 8 files changed, 192 insertions(+), 44 deletions(-) delete mode 100644 privacy.txt delete mode 100644 scale.txt create mode 100644 src/routes/lightning/+page.svelte create mode 100644 src/routes/privacy/+page.svelte create mode 100644 src/routes/scale/+page.svelte create mode 100644 static/images/lightning-open-without-payjoin.png create mode 100644 static/images/lightning-payjoin.png diff --git a/privacy.txt b/privacy.txt deleted file mode 100644 index 7a94c1b..0000000 --- a/privacy.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Payjoin Privacy - -Satoshi left exactly one privacy problem open in the whitepaper, that transactions with multiple inputs "necessarily reveal that their inputs were owned by the same owner." In early bitcoin software, this was true. But nothing prevents one from making a transaction with inputs from multiple sources. Payjoin is the simplest way to do that. - -In a basic bitcoin transaction, a sender spends some bitcoin to a new transaction output paying someone and makes change from their funds at the same time. A third party looking at the transaction on chain could assume all input to a transaction must have come from that sender. - -In Payjoin, the sender and receiver both contribute funds, breaking Satoshi's assumption. The payment amount plus receiver input amount both go to the receiver and the sender gets change. Because bitcoin is stored in distinct transaction outputs, and not accounts, such a transaction looks the same as one where a sender spent multiple inputs to a receiver and made change. By breaking the assumption from the whitepaper, payjoin makes it much harder to be sure about who got paid how much. diff --git a/scale.txt b/scale.txt deleted file mode 100644 index 9a7545c..0000000 --- a/scale.txt +++ /dev/null @@ -1,34 +0,0 @@ -# How Does Payjoin Scale Bitcoin? - -The Bitcoin blockchain is limited by block size. Approximately every ten minutes a new block is added to the chain. New blocks add 2MB of data on average [[1]](). Blocks are limited by transaction weight, or how much of each type of data is included in a transaction. - -The simplest way to scale any database is batching, which is exactly what Payjoin does. - -Payjoin enables multiple distinct parties to combine what would otherwise be distinct transaction intents into a joint transaction which lets them share transaction data they would otherwise both need to pay to add to the chain. - -## Your Typical Payjoin - -A typical payjoin combines a payment from sender to receiver with the consolidation of a receiver input. e.g Input {(A, 2), (B, 3)}{(B, 4), (A, 1)} where A pays B 1 BTC at the same time B consolidates their 3 BTC UTXO with A's payment. Without payjoin that would require two transactions -{(A, 2)}{(B, 1), (A, 1)} followed by {(B, 1), (B, 3)}{(B, 4)}. - -The Payjoin using exclusively Pay-to-Taproot addresses (P2TR) [here](https://mutinynet.com/tx/3c5436f1edf7d4c32a5ccf2448c1e963f52bb8a0fb6f8688d7e78a14e1cbe80b) is 211.75 vB. An analogous P2TR payment [here](https://mutinynet.com/tx/2c45dc6fef9feb32b9741cc3e6197eda94e1b0c45675e18818bfadce9fa94e20) is 152.25 vB and P2TR consolidation [here](https://mutinynet.com/tx/ef9263ed05c07f7ba933389eee7bfd62372e3dc4d1e697f96b7c66a215cc9b46) is 168.5 vB, for a total of 320.75 vB. - -The separate payment and consolidation have to pay for 51% more block weight to be mined than the Payjoin. What other scaling solution achieves that kind of savings? - - -## Opportunistic Consolidation - -Payjoin got its start as a way to make a sort of [coinjoin] from a payment. A receiver combines their input with the sender's, effectively joining a [consolidation]() transaction with a simple transfer. An observer looking at the payjoin is cannot tell it apart from a simple transfer where all of the inputs come from the same entity. - -< need visuals > - -not only does the total weight get shaved. wouldn't it be cool when wallet - -## Transaction Cut-Through - -Payjoin not only creates opportunity to batch consolidation, but may create any output with the incoming funds. Because payjoin involves live interaction, the receiver may open lightning channels, forward funds to a different wallet, pay for goods and services, or batch forward transactions with incoming funds without first taking them into a new UTXO. - -https://chaincase.app/words/lightning-payjoin -https://payjoin.substack.com/p/interactive-payment-batching-is-better - -[1](https://bitcoin.stackexchange.com/a/116350) {#1} \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index dcdb147..b67db0c 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -68,7 +68,7 @@ If there is a wallet you’d like to see adopt payjoin or you are a wallet devel >Payjoin preserves privacy by breaking common assumptions made for traditional transactions used to spy on bitcoin users - + Learn More @@ -78,7 +78,7 @@ If there is a wallet you’d like to see adopt payjoin or you are a wallet devel >Payjoin can settle many transactions at once, allowing higher throughput, time savings, and opportunistically lower fees - + Learn More @@ -88,7 +88,7 @@ If there is a wallet you’d like to see adopt payjoin or you are a wallet devel >Payjoin allows Lightning nodes to fund and open all their channels in one transaction while maintaining privacy - + Learn More diff --git a/src/routes/lightning/+page.svelte b/src/routes/lightning/+page.svelte new file mode 100644 index 0000000..f23d820 --- /dev/null +++ b/src/routes/lightning/+page.svelte @@ -0,0 +1,69 @@ + + + + Lightning + + +
+

How Payjoin Improves Lightning

+
+
+ The Lightning Network (LN) is a second-layer solution built on Bitcoin that takes transactions + off-chain to allow for near-instant, final settlements with far lower fees, tremendously + increasing transaction throughput, improving privacy, and allowing for new use cases for + Bitcoin such as micropayments. It uses a network of payment channels between nodes to route + payments from source to destination. These channels require node operators to lock up + “liquidity” (bitcoin that can flow between one node and its channel partner) between their + channel partners. How much bitcoin you can spend in a channel is limited by how much liquidity + exists on your side of that channel. +
+
+ Setting up and managing liquidity in a Lightning Node can be cumbersome and expensive. + Transactions can't be sent immediately after the node has synced with the blockchain. You + first have to conduct a two-step process of funding the node's on-chain wallet and then + opening a channel with another node, which involves constructing another on-chain transaction + to lock up the funds between you and your channel partner. This is a two-step process of funding + the node, waiting for at least one confirmation (~10 minutes), then sending a channel open transaction + and waiting another ~10 minutes, paying two fees along the way. This is unnecessarily slow and + expensive. The node operator will likely want to open multiple channels to help ensure against + routing failures and to increase liquidity, making this a repeat process. +
+ Normal Lightning Channel Open Process +
+ Many other technical difficulties in setting up a node can be abstracted away for end users, + but liquidity requirements remain a challenge for all self-custodial nodes. In fact, there is + estimated to be 1 non-custodial user for every 8 custodial users, simply due to the challenges of self-custodial user interfaces — liquidity issues being one + of the primary setbacks. +
+

With Payjoin, We Can Do Better

+
+ Payjoin can simplify this process, saving both money and time by allowing the node operator to + do both the funding and the opening transaction at once. Instead of having to wait for two + transactions to confirm to open one channel, they can wait for one transaction to confirm for + as many channels as they'd like, provided they have sufficient funds. Since payjoin can + create transactions with multiple UTXOs, it can effectively batch transactions and open + multiple channels at once. +
+ Lightning Channel Open with Payjoin +
+ Payjoin also preserves privacy by removing the on-chain footprint (the size of your channels + and who you open channels with) normally left by lightning channels. A transaction sent over a + lightning channel opened via a payjoin transaction has far greater privacy than a normal + on-chain transaction. +
+
+ In summary, payjoin makes channel opens simpler because users now only have to make one + transaction instead of two, faster because they only have to wait for one transaction + to be confirmed, and cheaper because they only have to pay one fee. +
+
+
diff --git a/src/routes/privacy/+page.svelte b/src/routes/privacy/+page.svelte new file mode 100644 index 0000000..7958978 --- /dev/null +++ b/src/routes/privacy/+page.svelte @@ -0,0 +1,35 @@ + + + + Payjoin Privacy + + +
+

Payjoin Privacy

+
+
+ Satoshi left exactly one privacy problem open in the whitepaper, that transactions with + multiple inputs "necessarily reveal that their inputs were owned by the same owner." In early + bitcoin software, this was true. But nothing prevents one from making a transaction with + inputs from multiple sources. Payjoin is the simplest way to do that. +
+
+
+ In a basic bitcoin transaction, a sender spends some bitcoin to a new transaction output + paying someone and makes change from their funds at the same time. A third party looking at + the transaction on chain could assume all input to a transaction must have come from that + sender. +
+
+
+ In Payjoin, the sender and receiver both contribute funds, breaking Satoshi's assumption. The + payment amount plus receiver input amount both go to the receiver and the sender gets change. + Because bitcoin is stored in distinct transaction outputs, and not accounts, such a + transaction looks the same as one where a sender spent multiple inputs to a receiver and made + change. By breaking the assumption from the whitepaper, payjoin makes it much harder to be + sure about who got paid how much. +
+
+
diff --git a/src/routes/scale/+page.svelte b/src/routes/scale/+page.svelte new file mode 100644 index 0000000..489c0fa --- /dev/null +++ b/src/routes/scale/+page.svelte @@ -0,0 +1,85 @@ + + + + Scaling + + +
+

How Does Payjoin Scale Bitcoin?

+
+
+ The Bitcoin blockchain is limited by block size. Approximately every ten minutes a new block + is added to the chain. New blocks add 2MB of data on average [[1]](). Blocks are limited by + transaction weight, or how much of each type of data is included in a transaction. +
+
+ The simplest way to scale any database is batching, which is exactly what Payjoin does. +
+
+ Payjoin enables multiple distinct parties to combine what would otherwise be distinct + transaction intents into a joint transaction which lets them share transaction data they would + otherwise both need to pay to add to the chain. +
+
+
+

Your Typical Payjoin

+
+ In a basic bitcoin transaction, a sender spends some bitcoin to a new transaction output + paying someone and makes change from their funds at the same time. A third party looking at + the transaction on chain could assume all input to a transaction must have come from that + sender. +
+
+ In Payjoin, the sender and receiver both contribute funds, breaking Satoshi's assumption. The + payment amount plus receiver input amount both go to the receiver and the sender gets change. + Because bitcoin is stored in distinct transaction outputs, and not accounts, such a + transaction looks the same as one where a sender spent multiple inputs to a receiver and made + change. By breaking the assumption from the whitepaper, payjoin makes it much harder to be + sure about who got paid how much. +
+
+ The Payjoin using exclusively Pay-to-Taproot addresses (P2TR) + [here](https://mutinynet.com/tx/3c5436f1edf7d4c32a5ccf2448c1e963f52bb8a0fb6f8688d7e78a14e1cbe80b) + is 211.75 vB. An analogous P2TR payment + [here](https://mutinynet.com/tx/2c45dc6fef9feb32b9741cc3e6197eda94e1b0c45675e18818bfadce9fa94e20) + is 152.25 vB and P2TR consolidation + [here](https://mutinynet.com/tx/ef9263ed05c07f7ba933389eee7bfd62372e3dc4d1e697f96b7c66a215cc9b46) + is 168.5 vB, for a total of 320.75 vB. The separate payment and consolidation have to pay for + 51% more block weight to be mined than the Payjoin. What other scaling solution achieves that + kind of savings? +
+ +
+

Opportunistic Consolidation

+ +
+ Payjoin got its start as a way to make a sort of [coinjoin] from a payment. A receiver + combines their input with the sender's, effectively joining a [consolidation]() transaction + with a simple transfer. An observer looking at the payjoin is cannot tell it apart from a + simple transfer where all of the inputs come from the same entity. +
+ +
+ + TODO: visuals +
+ +
not only does the total weight get shaved. wouldn't it be cool when wallet
+
+
+

Transaction Cut-Through

+
+ Payjoin not only creates opportunity to batch consolidation, but may create any output with + the incoming funds. Because payjoin involves live interaction, the receiver may open + lightning channels, forward funds to a different wallet, pay for goods and services, or + batch forward transactions with incoming funds without first taking them into a new UTXO. +
+ + + +
+
+
diff --git a/static/images/lightning-open-without-payjoin.png b/static/images/lightning-open-without-payjoin.png new file mode 100644 index 0000000000000000000000000000000000000000..f0de2488fbbebce749871f1f978ca3db8455c948 GIT binary patch literal 19605 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 KMNUMnLSTY6Nb7?D literal 0 HcmV?d00001 diff --git a/static/images/lightning-payjoin.png b/static/images/lightning-payjoin.png new file mode 100644 index 0000000000000000000000000000000000000000..24f56500642f9674f12cfe9fc72706d643c801f8 GIT binary patch literal 14768 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 mw9m^