Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 80CF4CC0 for ; Mon, 22 Apr 2019 17:06:50 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-40130.protonmail.ch (mail-40130.protonmail.ch [185.70.40.130]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B8852829 for ; Mon, 22 Apr 2019 17:06:49 +0000 (UTC) Date: Mon, 22 Apr 2019 17:06:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1555952807; bh=+QHBW/KhnraKAECLt/Euqab1hBH+0KaMS+zKTg33YPY=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:Feedback-ID: From; b=sK8orDqiR+bX8A0vbkzohkXn1VC5nu48rr78Z9UHet1Njey08Yt3p/kkODPv0+sqc 5qkgrEyqCrad4c39w+pqqX5+j4s4UrVSCZGOe7Kf989upmedBsPhJurr2nW9cMxxJJ H95iny1ZSPHDbVlEXHE3V4JOmmsW15ydpnQvil88= To: ZmnSCPxj , Bitcoin Protocol Discussion From: ZmnSCPxj Reply-To: ZmnSCPxj Message-ID: In-Reply-To: References: Feedback-ID: el4j0RWPRERue64lIQeq9Y2FP-mdB86tFqjmrJyEPR9VAtMovPEo9tvgA0CrTsSHJeeyPXqnoAu6DN-R04uJUg==:Ext:ProtonMail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, FROM_LOCAL_NOVOWEL, RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Mon, 22 Apr 2019 17:31:18 +0000 Subject: Re: [bitcoin-dev] Payjoin2swap: Enabling Payjoin Without Merchant Purchases X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Apr 2019 17:06:50 -0000 Good morning list, I observe that if the Lightning Network supports: 1. Wumbo channels (>167.772215mBTC channels) 2. Dual-funded channels Then payjoin2swap is implementable using LN operations. Given two UTXOs V and W you want to transfer some value S from V to W. 1. Connect to an LN node on Tor and listen to gossip, then disconnect. 2. Create two fake node addresses (A and B) and assign a unique Tor hidden= service to each. 3. Select two actual LN nodes with long uptime (use the lifetime of the ch= annels they have as a rough estimate) and a short distance between them wit= h good capacity and many alternate routes between them. 4. Connect A to one node and create a channel using V. Indicate that the channel should be unpublished (the LN protocol has a = flag existing for this already). Publishing channels is good for privacy if you intend to stay long on L= N (it invites "normal" traffic to hide your own payments in), but we do not= intend to stay long on LN here, so keep the channels unpublished. 5. Connect B to the other node and create a channel with dual-funding, req= uesting at least S from the other node to put in the channel, using W as yo= ur own UTXO. Again indicate the channel should be unpublished. 6. Transfer S satoshi over LN from the channel of A to the channel of B. 7. Cooperatively close both channels. It is possible to time the closes to be some blocks apart to make them = harder for blockchain analysis to link. This rides payjoin2swap on top of existing infrastructure. The drawback is that it is unlikely that existing LN implementations will a= pply ZeroLink for onchain funds, since much of the privacy on LN is with pa= ying over the long-lived offchain channels. This can erode privacy if either of the nodes you connect to uses the resul= t of the cooperative closes to later fund a published channel, possibly mix= ing it with other coins of their own. Regards, ZmnSCPxj