From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 77909C016F for ; Sun, 24 May 2020 21:50:37 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 53D0421544 for ; Sun, 24 May 2020 21:50:37 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HWZ9iRMdqWjp for ; Sun, 24 May 2020 21:50:35 +0000 (UTC) X-Greylist: delayed 00:06:05 by SQLgrey-1.7.6 Received: from w1.tutanota.de (w1.tutanota.de [81.3.6.162]) by silver.osuosl.org (Postfix) with ESMTPS id 355FB2043A for ; Sun, 24 May 2020 21:50:34 +0000 (UTC) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w1.tutanota.de (Postfix) with ESMTP id AADF2FA056C for ; Sun, 24 May 2020 21:44:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1590356667; s=s1; d=tutanota.de; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender; bh=od9FMCpOVvXP/7WizB/Ji9f12x0Jffy6GXDjYMXsj/Y=; b=MY8jRBj0Bsue1dZZu+nAo5zTz7Sbg/763U3KDghi/9TqzF2wUgmD3PL5h6D3dzkA kC4YeJXzhNH4j46Z/22Kc0R4VHfqGEF3W42Jl/CUrSiMzjpeXyITXS0Xz2FjouN+Gtf 3k7hPhuuQsVFEEH8zWdJgl+AR/PLzd9ggDJzhWYI5iPX+kLVpmHRya+59pzRWClKhhO lNwzuzhboDT+65mLBmqIy1Xn819G/vGapgXQyi4S7xmFSG9qXfZ9a6WLqvcklKyp1jF S51wRXNOCMDTX2+XxFWde+sB3bkkBbeufWwu/AULlFCccWFTYRe8EA6PLTepbcoha4G UwN2dWaqYQ== Date: Sun, 24 May 2020 23:44:27 +0200 (CEST) From: prayank@tutanota.de To: bitcoin-dev@lists.linuxfoundation.org Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_68088_655160920.1590356667683" X-Mailman-Approved-At: Sun, 24 May 2020 23:55:19 +0000 Subject: [bitcoin-dev] Post-mix(coinjoin) usage with multisig and cpfp in bitcoin core wallet X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2020 21:50:37 -0000 ------=_Part_68088_655160920.1590356667683 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I have explained the whole idea with a proof of concept in this link:=C2=A0= https://medium.com/@prayankgahlot/post-mix-usage-using-multisig-and-cpfp-e6= ce1fdd57a1 Does it make sense to add such options in bitcoin core wallet and how is th= e overall idea once we have taproot because for now people can check if the= tx involves a multisig address? Reading Peter Wuille's reply here it seems taproot will improve privacy for= multisig:=C2=A0 https://www.reddit.com/r/Bitcoin/comments/etagx4/please_explain_taproot_and= _schnorr_signatures/fffljnl/ Looking for some feedback to work on this idea and don't want it to just re= main an article on medium.=C2=A0 Thanks Prayank ------=_Part_68088_655160920.1590356667683 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I have explained the whole idea with a proof of concept in this l= ink: https://medium.com/@prayankgahlot/post-mix-usage-using-multisig-and-cpf= p-e6ce1fdd57a1

Does it make sense to add s= uch options in bitcoin core wallet and how is the overall idea once we have= taproot because for now people can check if the tx involves a multisig add= ress?

Reading Peter Wuille's reply here it see= ms taproot will improve privacy for multisig: 

Looking = for some feedback to work on this idea and don't want it to just remain an = article on medium. 

Thanks
=
Prayank

------=_Part_68088_655160920.1590356667683-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 18369C016F for ; Mon, 25 May 2020 06:54:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 144052033B for ; Mon, 25 May 2020 06:54:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ijru0ViCSR-u for ; Mon, 25 May 2020 06:54:38 +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 silver.osuosl.org (Postfix) with ESMTPS id 52E7520385 for ; Mon, 25 May 2020 06:54:38 +0000 (UTC) Date: Mon, 25 May 2020 06:54:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1590389675; bh=OHCwiHAgpZdTTvpjO1E6scwKA9WvCvFmszLcZJdas5o=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From; b=RYI99Kx/MzTnNQLdk+wX+t0DxLd/Ue6uzClJIBtqQvdgP9yaROowhFR4+tNTW8f6q tG7V9wSBXoZk8wAd0MHBxEg3ZyEWt0lyYCS18iKXXZy36wLS3CFqixvsY+i23O3K0r zwB07Rn3WSFN7agO7Zy0I6rQQRHfLsYksp6cM/Wc= To: "prayank@tutanota.de" , Bitcoin Protocol Discussion From: ZmnSCPxj Reply-To: ZmnSCPxj Message-ID: <3K6kmk75oNFwNf_E4xqPgf5URJOf4c64Iyxi1HOgEpvvZrdn_wBWxbx3hRBEDfu2MjC5kF6N0ejpjqeG_5FTGIFD_45sFyhLCtMvhJNdq3E=@protonmail.com> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [bitcoin-dev] Post-mix(coinjoin) usage with multisig and cpfp in bitcoin core wallet X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 May 2020 06:54:40 -0000 Good morning Prayank > I have explained the whole idea with a proof of concept in this link:= =C2=A0https://medium.com/@prayankgahlot/post-mix-usage-using-multisig-and-c= pfp-e6ce1fdd57a1 The article is not clear I think, so please confirm my understanding below. Participants: * "Peer 3" - Payee * "Peer 2" - Payer * "Peer 1" - Enabling tr\*sted third party Goal: Payer wants to pay to the payee 0.006BTC Current Conditions: * Payer owns 0.01 BTC in a single UTXO * Third Party owns 0.05 BTC in a single UTXO Protocol: 1. Payer and Third Party compute a 2-of-3 address with the public keys of = Payer, Payee, and Third Party. 2. Payer and Third Party individually pay their owned funds to the 2-of-3 = address. 3. After confirmation, they consume the new outputs into another transacti= on with equal-valued outputs, hiding who owns which coins. Is my understanding correct? If so, I believe JoinMarket has a superior technology, which does not requi= re a tr\*sted third party; it simply requires one or more UNtrusted third p= arties to participate in signing a single transaction that does not require= paying to an intermediate m-of-n address (thus all inputs are singlesig). Basically JoinMarket allows the market taker to decide how much the equal-v= alue outputs are, and to define the address it goes to. The destination address need not be one the market taker controls, it can b= e to a payee. This technique is the only out-of-the-box way that a JoinMarket wallet can = spend funds from a JoinMarket wallet. JoinMarket as well already includes how to get in touch with enabling third= parties (called "market makers"). Regards, ZmnSCPxj From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 8BCC9C016F for ; Mon, 25 May 2020 12:16:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 7420A87DB0 for ; Mon, 25 May 2020 12:16:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D2L888nVBDGL for ; Mon, 25 May 2020 12:16:12 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from w1.tutanota.de (w1.tutanota.de [81.3.6.162]) by hemlock.osuosl.org (Postfix) with ESMTPS id 3BBDA87E25 for ; Mon, 25 May 2020 12:16:12 +0000 (UTC) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w1.tutanota.de (Postfix) with ESMTP id 49302FA030C; Mon, 25 May 2020 12:16:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1590408970; s=s1; d=tutanota.de; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=lozN64Hv5f7rXzjG7cgvWqEZkX35gOCAjziA9MeXsII=; b=XJhsgR4j1WIQ5DDLHu21Y/HbGp+f9N2izpmxIEhCM2Rl8gcc/nhE4DTzjhSSV+VS l5e7MdebYH35ODa3ZRDxSmVGNJ1qdWrEsnBhgBqP0MihUbU/dYLTFMTVHoYhlI5ZdEp qoS3mVryHJ2ybnnUrWTgk+yIyu2DyUdhF1CyMVcNJQw0qot7Cp62YzvAFUuCR68+4A1 iFjXgE24lqoYeBvgXgj+/XZvF8z/4yYKpkp9tftk7O+em19GWIsw3RearxJf4Eh5lSK l6hN1JcG8BUK/5XVg8IwbG/MtRreMdv8IlCmlFGqIN+6XXW8F/dLC7BrLq0gPHigWVu 7YMJGOlOUA== Date: Mon, 25 May 2020 14:16:10 +0200 (CEST) From: prayank@tutanota.de To: ZmnSCPxj Message-ID: In-Reply-To: <3K6kmk75oNFwNf_E4xqPgf5URJOf4c64Iyxi1HOgEpvvZrdn_wBWxbx3hRBEDfu2MjC5kF6N0ejpjqeG_5FTGIFD_45sFyhLCtMvhJNdq3E=@protonmail.com> References: <3K6kmk75oNFwNf_E4xqPgf5URJOf4c64Iyxi1HOgEpvvZrdn_wBWxbx3hRBEDfu2MjC5kF6N0ejpjqeG_5FTGIFD_45sFyhLCtMvhJNdq3E=@protonmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_95414_1402029184.1590408970272" X-Mailman-Approved-At: Mon, 25 May 2020 12:39:11 +0000 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Post-mix(coinjoin) usage with multisig and cpfp in bitcoin core wallet X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 May 2020 12:16:14 -0000 ------=_Part_95414_1402029184.1590408970272 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello=C2=A0ZmnSCPxj,=20 Thanks for the feedback. 1. Peer 1 doesn't need to be a trusted third party, it can be implemented i= n a way that some peers involved in this system can provide liquidity for o= thers and incentives can be a small fee. 2. Yes joinmarket is awesome and its payjoin will be better to achieve the = same but I was trying to contribute and add more options for people to impr= ove privacy on Bitcoin. If we have different ways to mix it will be harder = for spy companies to analyze of some of the transactions. 3. Also one such setup might not make a huge difference but a chain of such= mixers will surely work better if everything done correctly.=C2=A0 4. Maybe multisig usage is not ideal for such things right now and I am not= the best person when it comes to coding but think that better privacy for = multisig will make it possible for lot of ideas to be implemented on Bitcoi= n using different multisig setups and combination of other things that we a= lready have.=C2=A0 Prayank May 25, 2020, 12:24 by ZmnSCPxj@protonmail.com: > Good morning Prayank > >> I have explained the whole idea with a proof of concept in this link:=C2= =A0https://medium.com/@prayankgahlot/post-mix-usage-using-multisig-and-cpfp= -e6ce1fdd57a1 >> > > The article is not clear I think, so please confirm my understanding belo= w. > > Participants: > > * "Peer 3" - Payee > * "Peer 2" - Payer > * "Peer 1" - Enabling tr\*sted third party > > Goal: Payer wants to pay to the payee 0.006BTC > > Current Conditions: > > * Payer owns 0.01 BTC in a single UTXO > * Third Party owns 0.05 BTC in a single UTXO > > Protocol: > > 1. Payer and Third Party compute a 2-of-3 address with the public keys o= f Payer, Payee, and Third Party. > 2. Payer and Third Party individually pay their owned funds to the 2-of-= 3 address. > 3. After confirmation, they consume the new outputs into another transac= tion with equal-valued outputs, hiding who owns which coins. > > Is my understanding correct? > > If so, I believe JoinMarket has a superior technology, which does not req= uire a tr\*sted third party; it simply requires one or more UNtrusted third= parties to participate in signing a single transaction that does not requi= re paying to an intermediate m-of-n address (thus all inputs are singlesig)= . > > Basically JoinMarket allows the market taker to decide how much the equal= -value outputs are, and to define the address it goes to. > The destination address need not be one the market taker controls, it can= be to a payee. > This technique is the only out-of-the-box way that a JoinMarket wallet ca= n spend funds from a JoinMarket wallet. > > JoinMarket as well already includes how to get in touch with enabling thi= rd parties (called "market makers"). > > > Regards, > ZmnSCPxj > ------=_Part_95414_1402029184.1590408970272 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello ZmnSCPxj,


Than= ks for the feedback.


1. Peer 1 = doesn't need to be a trusted third party, it can be implemented in a way th= at some peers involved in this system can provide liquidity for others and = incentives can be a small fee.

2. Yes joinmark= et is awesome and its payjoin will be better to achieve the same but I was = trying to contribute and add more options for people to improve privacy on = Bitcoin. If we have different ways to mix it will be harder for spy compani= es to analyze of some of the transactions.

3. = Also one such setup might not make a huge difference but a chain of such mi= xers will surely work better if everything done correctly. 
<= div>
4. Maybe multisig usage is not ideal for such things rig= ht now and I am not the best person when it comes to coding but think that = better privacy for multisig will make it possible for lot of ideas to be im= plemented on Bitcoin using different multisig setups and combination of oth= er things that we already have. 


Prayank



May 2= 5, 2020, 12:24 by ZmnSCPxj@protonmail.com:
Good morning Prayank
I have ex= plained the whole idea with a proof of concept in this link: https://m= edium.com/@prayankgahlot/post-mix-usage-using-multisig-and-cpfp-e6ce1fdd57a= 1

The article is not clear I think, so = please confirm my understanding below.

Partici= pants:

* "Peer 3" - Payee
* "Pee= r 2" - Payer
* "Peer 1" - Enabling tr\*sted third party

Goal: Payer wants to pay to the payee 0.006BTC
<= /div>

Current Conditions:

*= Payer owns 0.01 BTC in a single UTXO
* Third Party owns 0.05= BTC in a single UTXO

Protocol:
=
1. Payer and Third Party compute a 2-of-3 address with the = public keys of Payer, Payee, and Third Party.
2. Payer and T= hird Party individually pay their owned funds to the 2-of-3 address.
3. After confirmation, they consume the new outputs into another t= ransaction with equal-valued outputs, hiding who owns which coins.

Is my understanding correct?

<= div>If so, I believe JoinMarket has a superior technology, which does not r= equire a tr\*sted third party; it simply requires one or more UNtrusted thi= rd parties to participate in signing a single transaction that does not req= uire paying to an intermediate m-of-n address (thus all inputs are singlesi= g).

Basically JoinMarket allows the market tak= er to decide how much the equal-value outputs are, and to define the addres= s it goes to.
The destination address need not be one the mar= ket taker controls, it can be to a payee.
This technique is t= he only out-of-the-box way that a JoinMarket wallet can spend funds from a = JoinMarket wallet.

JoinMarket as well already = includes how to get in touch with enabling third parties (called "market ma= kers").


Regards,
= ZmnSCPxj

------=_Part_95414_1402029184.1590408970272-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 47B2BC016F for ; Tue, 26 May 2020 02:46:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 3566A85D72 for ; Tue, 26 May 2020 02:46:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Mlvzg3irSxQu for ; Tue, 26 May 2020 02:46:14 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-40141.protonmail.ch (mail-40141.protonmail.ch [185.70.40.141]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 43FDF85D6C for ; Tue, 26 May 2020 02:46:14 +0000 (UTC) Date: Tue, 26 May 2020 02:46:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1590461171; bh=fBEsXk0PYRbKCAiAYIVWOIXs73yIMKQuC78gZwjwKyA=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=U7ZJdoMGQcEECVr+eCHMkHemghxkCpuKyhRU/I4OXsl6pFr/Yxcg0kYhHAObRns/r DxKlAm7sJk0Gqwm4H35a7fkVcj3eBkgXa6NgrDlcZrfz0/qopE7YOF+Eeqqiv637Vu W4gJLbbkFT3p/sxn3TJtzSulvx8IqxuGlysp5pF4= To: "prayank@tutanota.de" From: ZmnSCPxj Reply-To: ZmnSCPxj Message-ID: In-Reply-To: References: <3K6kmk75oNFwNf_E4xqPgf5URJOf4c64Iyxi1HOgEpvvZrdn_wBWxbx3hRBEDfu2MjC5kF6N0ejpjqeG_5FTGIFD_45sFyhLCtMvhJNdq3E=@protonmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Post-mix(coinjoin) usage with multisig and cpfp in bitcoin core wallet X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2020 02:46:16 -0000 Good morning Prayank, > 1. Peer 1 doesn't need to be a trusted third party, it can be implemented= in a way that some peers involved in this system can provide liquidity for= others and incentives can be a small fee. It is not clear in the article, but you mention using a 2-of-3, and show 3 = participants. It seems to me that Peer 1 and Peer 3 (2-of-3) can simply sign to spend the= funds coming from Peer 2, and split the funds of Peer 2 among them, withou= t getting input from Peer 2. That is the reason why I consider this tr\*sted --- Peer 2 has to trust Pee= r 1 does not collude with Peer 3 to steal the funds of Peer 2. Unless I have misunderstood your article, which is why I asked for clarific= ation. > 2. Yes joinmarket is awesome and its payjoin will be better to achieve th= e same but I was trying to contribute and add more options for people to im= prove privacy on Bitcoin. If we have different ways to mix it will be harde= r for spy companies to analyze of some of the transactions. * While JoinMarket has *a* PayJoin implementation, what I described in the = previous email was not a PayJoin, it is standard CoinJoin where one of the = equal-valued outputs is to the payee. * In particular, PayJoin requires the cooperation of the payee, what I de= scribed does *not* require anything from the payee other than a destination= address and an amount to pay. * Your described technique (as I understand it) is not too different from w= hat JoinMarket already does for normal sends, with the JoinMarket technique= having the advantage that it works with the current paradigm of "send paym= ent to this address" without reconnecting to the payee. The advantage you describe is largely had only if the technique is signif= icantly different. For instance, CoinSwap and CoinJoinXT are different enough from CoinJoin = to be valuable in this respect. > 3. Also one such setup might not make a huge difference but a chain of su= ch mixers will surely work better if everything done correctly.=C2=A0 > > 4. Maybe multisig usage is not ideal for such things right now and I am n= ot the best person when it comes to coding but think that better privacy fo= r multisig will make it possible for lot of ideas to be implemented on Bitc= oin using different multisig setups and combination of other things that we= already have. Schnorr (which is introduced as a package deal with Taproot) already makes = all n-of-n look the same as 1-of-1 without tr\*sted setup, and makes hidden= m-of-n possible with some kind of setup (possibly untrusted I think, but I= am not enough of a mathist to describe this, in any case my base understan= ding is that the setup for m-of-n Schnorr requires a complex ritual involvi= ng a number of communication rounds). Taproot allows to hide explicit m-of-n in a script behind some kind of n-of= -n or m-of-m. So multisignature usage would automatically gain such advantage once Taproo= t gets deployed. In any case, if you are still interested in protocol design with some amoun= t of focus on privacy, please consider reading this article as well: https:= //zmnscpxj.github.io/offchain/generalized.html What exactly is your goal here. Regards, ZmnSCPxj From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 226E1C016F for ; Tue, 26 May 2020 12:50:17 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 5106922CC6 for ; Tue, 26 May 2020 12:50:16 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5Q4HtmrVasVs for ; Tue, 26 May 2020 12:50:07 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from w1.tutanota.de (w1.tutanota.de [81.3.6.162]) by silver.osuosl.org (Postfix) with ESMTPS id 9F2AC20497 for ; Tue, 26 May 2020 12:50:06 +0000 (UTC) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w1.tutanota.de (Postfix) with ESMTP id C97C0FA03BE; Tue, 26 May 2020 12:50:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1590497403; s=s1; d=tutanota.de; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=myCybCZg0r8QvIF912ergS+SZm6f3C4sN6xeC4lHbg4=; b=NhYkaI3jPPbEjaBsb/QCTbQ9Gz54UfL3UOFXmpHnYUciL4o2/YRaU92XPdj61sda bmd6aMWH7QIIXAFwNAd7GnHm8ftDiA0qGHT+E6tuLaQ0d1scRJ3gPnhZD+OyCzIxdFP qHLHxR/ghWei2m01TeOMSc1jpbGpYrFM3m4tvEBKrM+HoQjrn9LFNa6xrpyk9lVkyK3 lJvt4gta/4lzZcdOVmIcfg7f9xdkrQeFBWavRRVeezSm5QP9++fqcbOFudlC0lGVQMi BeWJbP30wk7wUqT9TJlyqOmhXrmkJSg1dLsneo7DUhKPIJDsriGx3BLRJsDi5m9VvZu gbM8SZj2yA== Date: Tue, 26 May 2020 14:50:03 +0200 (CEST) From: Prayank To: ZmnSCPxj Message-ID: In-Reply-To: References: <3K6kmk75oNFwNf_E4xqPgf5URJOf4c64Iyxi1HOgEpvvZrdn_wBWxbx3hRBEDfu2MjC5kF6N0ejpjqeG_5FTGIFD_45sFyhLCtMvhJNdq3E=@protonmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_148858_1297327866.1590497403804" X-Mailman-Approved-At: Tue, 26 May 2020 13:04:58 +0000 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Post-mix(coinjoin) usage with multisig and cpfp in bitcoin core wallet X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2020 12:50:17 -0000 ------=_Part_148858_1297327866.1590497403804 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello=C2=A0ZmnSCPxj, Thanks for your response. The spending tx of multisig can be decided earlier and all three can review= the outputs involved in it. All 3 txs involved in the system if we conside= r only one mixer and not a chain will get confirmed in the same block as we= are using CPFP so child pays for 2 parent txs. However, disputes are possi= ble and to manage it we will have to make the system complex with things li= ke Peer 1 locking some amount in a 2 of 2 multisig with Peer 2 or some othe= r incentives structure. Initially we can try to keep it simple and a way to= spend coins after coinjoin with the help of another person you trust. Yes, you described coinjoin in joinmarket but the problem I am trying to so= lve is: spend coins after coinjoin because post-mix usage is as important a= s coinjoin. Some users dont follow the best practices after coinjoin and it= makes coinjoin useless or less effective in that case and sometimes for ot= hers involved in the process as well. Samourai has few options for users to do this and one of them is: Stonewall= x2 which is a mini coinjoin and similar to what I was trying with this idea= . End goal is to create more options for users to spend UTXOs easily in diffe= rent ways after coinjoin which makes it difficult for people trying to anal= yze transactions or algorithms monitoring, flagging, reporting txs 24/7 Its just an idea for now and maybe I might find better ways to solve this p= roblem once I start working on it. For me it makes sense to experiment with= things and provide more options for users but I wanted to see what others = think about it who are more experienced and skilled to develop bitcoin rela= ted projects. Thanks for this link:=C2=A0https://zmnscpxj.github.io/offchain/generalized.= html=C2=A0 Looks interesting. Prayank May 26, 2020, 08:16 by ZmnSCPxj@protonmail.com: > Good morning Prayank, > > >> 1. Peer 1 doesn't need to be a trusted third party, it can be implemente= d in a way that some peers involved in this system can provide liquidity fo= r others and incentives can be a small fee. >> > > It is not clear in the article, but you mention using a 2-of-3, and show = 3 participants. > It seems to me that Peer 1 and Peer 3 (2-of-3) can simply sign to spend t= he funds coming from Peer 2, and split the funds of Peer 2 among them, with= out getting input from Peer 2. > > That is the reason why I consider this tr\*sted --- Peer 2 has to trust P= eer 1 does not collude with Peer 3 to steal the funds of Peer 2. > > Unless I have misunderstood your article, which is why I asked for clarif= ication. > >> 2. Yes joinmarket is awesome and its payjoin will be better to achieve t= he same but I was trying to contribute and add more options for people to i= mprove privacy on Bitcoin. If we have different ways to mix it will be hard= er for spy companies to analyze of some of the transactions. >> > > * While JoinMarket has *a* PayJoin implementation, what I described in th= e previous email was not a PayJoin, it is standard CoinJoin where one of th= e equal-valued outputs is to the payee. > * In particular, PayJoin requires the cooperation of the payee, what I d= escribed does *not* require anything from the payee other than a destinatio= n address and an amount to pay. > * Your described technique (as I understand it) is not too different from= what JoinMarket already does for normal sends, with the JoinMarket techniq= ue having the advantage that it works with the current paradigm of "send pa= yment to this address" without reconnecting to the payee. > The advantage you describe is largely had only if the technique is signi= ficantly different. > For instance, CoinSwap and CoinJoinXT are different enough from CoinJoin= to be valuable in this respect. > >> 3. Also one such setup might not make a huge difference but a chain of s= uch mixers will surely work better if everything done correctly.=C2=A0 >> >> 4. Maybe multisig usage is not ideal for such things right now and I am = not the best person when it comes to coding but think that better privacy f= or multisig will make it possible for lot of ideas to be implemented on Bit= coin using different multisig setups and combination of other things that w= e already have. >> > > Schnorr (which is introduced as a package deal with Taproot) already make= s all n-of-n look the same as 1-of-1 without tr\*sted setup, and makes hidd= en m-of-n possible with some kind of setup (possibly untrusted I think, but= I am not enough of a mathist to describe this, in any case my base underst= anding is that the setup for m-of-n Schnorr requires a complex ritual invol= ving a number of communication rounds). > Taproot allows to hide explicit m-of-n in a script behind some kind of n-= of-n or m-of-m. > > So multisignature usage would automatically gain such advantage once Tapr= oot gets deployed. > > In any case, if you are still interested in protocol design with some amo= unt of focus on privacy, please consider reading this article as well: http= s://zmnscpxj.github.io/offchain/generalized.html > > What exactly is your goal here. > > Regards, > ZmnSCPxj > ------=_Part_148858_1297327866.1590497403804 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Hello ZmnSCPxj,

Thank= s for your response.

  1. The spending tx of mul= tisig can be decided earlier and all three can review the outputs involved = in it. All 3 txs involved in the system if we consider only one mixer and n= ot a chain will get confirmed in the same block as we are using CPFP so chi= ld pays for 2 parent txs. However, disputes are possible and to manage it w= e will have to make the system complex with things like Peer 1 locking some= amount in a 2 of 2 multisig with Peer 2 or some other incentives structure= . Initially we can try to keep it simple and a way to spend coins after coi= njoin with the help of another person you trust.
  2. Yes, you descr= ibed coinjoin in joinmarket but the problem I am trying to solve is: spend = coins after coinjoin because post-mix usage is as important as coinjoin. So= me users dont follow the best practices after coinjoin and it makes coinjoi= n useless or less effective in that case and sometimes for others involved = in the process as well.
  3. Samourai has few options for users to d= o this and one of them is: Stonewallx2 which is a mini coinjoin and similar= to what I was trying with this idea.
  4. End goal is to create mor= e options for users to spend UTXOs easily in different ways after coinjoin = which makes it difficult for people trying to analyze transactions or algor= ithms monitoring, flagging, reporting txs 24/7
Its just a= n idea for now and maybe I might find better ways to solve this problem onc= e I start working on it. For me it makes sense to experiment with things an= d provide more options for users but I wanted to see what others think abou= t it who are more experienced and skilled to develop bitcoin related projec= ts.


Looks intere= sting.

Prayank


=
May 26, 2020, 08:16 by ZmnSCPxj@protonmail.com:
Good morning Prayank,

<= /div>
1. Peer 1 doesn't need to be a trusted third party, it can= be implemented in a way that some peers involved in this system can provid= e liquidity for others and incentives can be a small fee.
<= div>
It is not clear in the article, but you mention using a = 2-of-3, and show 3 participants.
It seems to me that Peer 1 a= nd Peer 3 (2-of-3) can simply sign to spend the funds coming from Peer 2, a= nd split the funds of Peer 2 among them, without getting input from Peer 2.=

That is the reason why I consider this tr\*st= ed --- Peer 2 has to trust Peer 1 does not collude with Peer 3 to steal the= funds of Peer 2.

Unless I have misunderstood = your article, which is why I asked for clarification.
= 2. Yes joinmarket is awesome and its payjoin will be better to achieve the = same but I was trying to contribute and add more options for people to impr= ove privacy on Bitcoin. If we have different ways to mix it will be harder = for spy companies to analyze of some of the transactions.
<= div>
* While JoinMarket has *a* PayJoin implementation, what = I described in the previous email was not a PayJoin, it is standard CoinJoi= n where one of the equal-valued outputs is to the payee.
* I= n particular, PayJoin requires the cooperation of the payee, what I describ= ed does *not* require anything from the payee other than a destination addr= ess and an amount to pay.
* Your described technique (as I un= derstand it) is not too different from what JoinMarket already does for nor= mal sends, with the JoinMarket technique having the advantage that it works= with the current paradigm of "send payment to this address" without reconn= ecting to the payee.
The advantage you describe is largely h= ad only if the technique is significantly different.
For ins= tance, CoinSwap and CoinJoinXT are different enough from CoinJoin to be val= uable in this respect.
3. Also one such setup mig= ht not make a huge difference but a chain of such mixers will surely work b= etter if everything done correctly. 

4. M= aybe multisig usage is not ideal for such things right now and I am not the= best person when it comes to coding but think that better privacy for mult= isig will make it possible for lot of ideas to be implemented on Bitcoin us= ing different multisig setups and combination of other things that we alrea= dy have.

Schnorr (which is introd= uced as a package deal with Taproot) already makes all n-of-n look the same= as 1-of-1 without tr\*sted setup, and makes hidden m-of-n possible with so= me kind of setup (possibly untrusted I think, but I am not enough of a math= ist to describe this, in any case my base understanding is that the setup f= or m-of-n Schnorr requires a complex ritual involving a number of communica= tion rounds).
Taproot allows to hide explicit m-of-n in a scr= ipt behind some kind of n-of-n or m-of-m.

So m= ultisignature usage would automatically gain such advantage once Taproot ge= ts deployed.

In any case, if you are still int= erested in protocol design with some amount of focus on privacy, please con= sider reading this article as well: https://zmnscpxj.github.io/offchain/gen= eralized.html

What exactly is your goal here.<= br>

Regards,
ZmnSCPxj

------=_Part_148858_1297327866.1590497403804-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 43782C016F for ; Wed, 27 May 2020 04:12:01 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 2C88387E93 for ; Wed, 27 May 2020 04:12:01 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JEq6+v02v-zg for ; Wed, 27 May 2020 04:11:59 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-40135.protonmail.ch (mail-40135.protonmail.ch [185.70.40.135]) by hemlock.osuosl.org (Postfix) with ESMTPS id 439DE87D8E for ; Wed, 27 May 2020 04:11:59 +0000 (UTC) Date: Wed, 27 May 2020 04:11:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1590552717; bh=VqqgVxSh008aBdmHAX12AM5lwhAaN8xkIJBCQi4gaJc=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=kvmUGiKk9EoAkLlSg+q+Kg1Yno+jA6J6HJpKW+D5kKfSjYorVaGDs5IYz3hxyzLrt 9EM0rc8/NjvX7+B5mZiQos23EV7MOc5a/LP/mqTveNMaPdug4ho0WgH/LvUbPM+R3b k3JbnXDFTNWOo0XpBjJwdjR7FkyraLq2QJUsmAEM= To: Prayank From: ZmnSCPxj Reply-To: ZmnSCPxj Message-ID: <5cRx3Q_UFKDJkF0Jc8XcZEHHwbPxc85YbGPcITRMweC9qdfhmZLT3AVdnqpej5poLdl8t2JiHyRofBD22yv_lxFlxz2J6N8eiBHsMRM_cBQ=@protonmail.com> In-Reply-To: References: <3K6kmk75oNFwNf_E4xqPgf5URJOf4c64Iyxi1HOgEpvvZrdn_wBWxbx3hRBEDfu2MjC5kF6N0ejpjqeG_5FTGIFD_45sFyhLCtMvhJNdq3E=@protonmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Post-mix(coinjoin) usage with multisig and cpfp in bitcoin core wallet X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 May 2020 04:12:01 -0000 Good morning Prayank, > 1. The spending tx of multisig can be decided earlier and all three can = review the outputs involved in it. All 3 txs involved in the system if we c= onsider only one mixer and not a chain will get confirmed in the same block= as we are using CPFP so child pays for 2 parent txs. However, disputes are= possible and to manage it we will have to make the system complex with thi= ngs like Peer 1 locking some amount in a 2 of 2 multisig with Peer 2 or som= e other incentives structure. Initially we can try to keep it simple and a = way to spend coins after coinjoin with the help of another person you trust= . The payee is not necessary here and you can remove the intermediate transac= tions that pay to 2-of-3s. > 2. Yes, you described coinjoin in joinmarket but the problem I am trying= to solve is: spend coins after coinjoin because post-mix usage is as impor= tant as coinjoin. Some users dont follow the best practices after coinjoin = and it makes coinjoin useless or less effective in that case and sometimes = for others involved in the process as well. ... I already mentioned this, but what I am describing is *how JoinMarket spend= s coins from its wallet*. That means that what I am describing is *how JoinMarket performs spends aft= er mixing, i.e. post-mix*. I was not describing how JoinMarket performs mixing. Is that clearer now? Regards, ZmnSCPxj