From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Tue, 07 Jan 2025 07:59:44 -0800 Received: from mail-yb1-f190.google.com ([209.85.219.190]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <bitcoindev+bncBDI23FE35EIBBZM66W5QMGQEAAVW2IQ@googlegroups.com>) id 1tVBzb-0006u4-8n for bitcoindev@gnusha.org; Tue, 07 Jan 2025 07:59:44 -0800 Received: by mail-yb1-f190.google.com with SMTP id 3f1490d57ef6-e549eac4ae6sf6502665276.1 for <bitcoindev@gnusha.org>; Tue, 07 Jan 2025 07:59:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1736265576; x=1736870376; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:references:in-reply-to:message-id:to:from:date:sender:from :to:cc:subject:date:message-id:reply-to; bh=dD9Lzfp39WmgjboSEkUZ667qBPKLSrjBhhYd/3hCTaM=; b=pT+yXhUKc6meTQJ47Uv+aIFjOnOwrrIy/CPqcQozdQ+EaB99ZNqj+GP7BRXI6hbDnM QV9FgWNNhWvDqLEY8G9NjLUJh0s7w94sUi3SjUyUQY2rkbSvuujpzl7DIikDI5DApwJK kmItkVpQ3+oSw9/ymbKJlvvRJtpiER9AT2HRhMHyYv1AhAbQnrJEBmObCI3sk5pQLvTC kd4dP5vkAz5R3+jtAaihwDdGd7UCAke6sbJRa1+1b79lZEvPyfOT+5nvIFnFVWO/zwN3 toYcSDNXKtiohO9nwiHZKuy/PPZ1juBTIfNLwggVIvTfOtmfPVeXNuZMifxrP4+rfny7 CzBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736265576; x=1736870376; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:references:in-reply-to:message-id:to:from:date:from:to:cc :subject:date:message-id:reply-to; bh=dD9Lzfp39WmgjboSEkUZ667qBPKLSrjBhhYd/3hCTaM=; b=RZfqygOQeD+lUaSaQ1vEk2waeLn7QrZEarPOqPeV91+gRzvfT7IFAza9DPUCpv2OcZ M26oe2XTZGSMY44/Er+Scy+MmnfNa+pPttiNqyU8vdFvye0JRA3rfH8Bh00QWai44DM9 uYLpDJrc82iTHrfm8wWggD1gB7J325xmmw8MW4BFkVD4JSFzNDJzzSDLbZPa0Vpnb8xp /wSwzBYupaM2W6BXuF7vuHaozl+6giGf1KZ98EVPXs3EmDuWRfvHWojWwHEAeMpTEQTd AwA4KFU3fZiQ/QXZdI0/EaPC2wFU2wNTvyar0GSr6SV9M96lBXj1ZBzaatoOpXYIWW9U Iesg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736265577; x=1736870377; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-sender:mime-version :subject:references:in-reply-to:message-id:to:from:date:x-beenthere :x-gm-message-state:sender:from:to:cc:subject:date:message-id :reply-to; bh=dD9Lzfp39WmgjboSEkUZ667qBPKLSrjBhhYd/3hCTaM=; b=Jsm4rPT/zEWvol1Cc4uFUuLlslQHDjgSC/iVZaclmV29ZB5XRHGiInnnYCcauzSsDE 61ffE5sPtgcWFJNxIYskftBEIwUx0weLJpTS7lbElc0rSbARMdTxxYYvT/8DsWeXUjuF RKCJdp/Cud9UBnjkoEye2bcCxiyp/jZ242H5etWzytDu7NHXLHWySTIAUnog4idxVFnD D3Ys0Svr9zjKiBE/tbUbvjJJ8dKU33qKXdfoJmgnrTrLD5rl910LT3wiM63u5VyUl/s5 UXPR2BtkHcv08/UJhtIieqbum/mEQKlPfZWdGKipxRTCvWGhk9lUB1q3qj4VOLCxpt3x H2bg== Sender: bitcoindev@googlegroups.com X-Forwarded-Encrypted: i=1; AJvYcCWnjTDnf21j0EbX1Uc/rZKNRLcMtCCqpQauOr4NKUcKf/il444b/gJvCZ+qaP3EExv+HfJOsp/IzSrX@gnusha.org X-Gm-Message-State: AOJu0Ywb3Dwj8aOpzWJ9t7J1yueH60qFPpO7IB5qSPIorXG8p+liFG4Y /cZa6UJ409yGjpRjykzwcLcYalKW746wzJamK5hqmTEQbxWOTW+K X-Google-Smtp-Source: AGHT+IFlUyzsFg3Yd51iPji5piQ6O3XyCgjdj3EFhbzJMFQEsEJJ43x/3+iyEAeZ/Qp1l+c+qXU7Lg== X-Received: by 2002:a05:6902:2e0c:b0:e53:5eca:de59 with SMTP id 3f1490d57ef6-e538c2328a7mr48081868276.13.1736265576517; Tue, 07 Jan 2025 07:59:36 -0800 (PST) X-BeenThere: bitcoindev@googlegroups.com Received: by 2002:a25:ab85:0:b0:e47:56ee:7a99 with SMTP id 3f1490d57ef6-e549d7e3dc6ls604755276.0.-pod-prod-02-us; Tue, 07 Jan 2025 07:59:33 -0800 (PST) X-Received: by 2002:a05:690c:690b:b0:6e2:2600:ed50 with SMTP id 00721157ae682-6f3f813688dmr421643147b3.21.1736265573294; Tue, 07 Jan 2025 07:59:33 -0800 (PST) Received: by 2002:a81:ad03:0:b0:6ef:892f:89f3 with SMTP id 00721157ae682-6f3f57ea50dms7b3; Tue, 7 Jan 2025 07:56:02 -0800 (PST) X-Received: by 2002:a05:690c:f87:b0:6ef:4fba:8153 with SMTP id 00721157ae682-6f3f8106fd5mr408126037b3.10.1736265360925; Tue, 07 Jan 2025 07:56:00 -0800 (PST) Date: Tue, 7 Jan 2025 07:56:00 -0800 (PST) From: waxwing/ AdamISZ <ekaggata@gmail.com> To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com> Message-Id: <6a5ac106-6f8d-480d-91f6-0b9796977554n@googlegroups.com> In-Reply-To: <CAAQdECCq5n7zkRJboVwjLMWkGUP7-G2U7tK4Ekf5M9NqLypLQA@mail.gmail.com> References: <CAAQdECCdRVV+3ZoJhOotKEvmUV4yrV7EYWE8SOWCE1CF9tZ6Yg@mail.gmail.com> <E26BEB3C-1345-487D-A98C-2A7E17494B5E@sprovoost.nl> <CAAQdECCq5n7zkRJboVwjLMWkGUP7-G2U7tK4Ekf5M9NqLypLQA@mail.gmail.com> Subject: Re: [bitcoindev] Reiterating centralized coinjoin (Wasabi & Samourai) deanonymization attacks MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_51232_470179013.1736265360588" X-Original-Sender: ekaggata@gmail.com Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: <bitcoindev.googlegroups.com> X-Google-Group-Id: 786775582512 List-Post: <https://groups.google.com/group/bitcoindev/post>, <mailto:bitcoindev@googlegroups.com> List-Help: <https://groups.google.com/support/>, <mailto:bitcoindev+help@googlegroups.com> List-Archive: <https://groups.google.com/group/bitcoindev List-Subscribe: <https://groups.google.com/group/bitcoindev/subscribe>, <mailto:bitcoindev+subscribe@googlegroups.com> List-Unsubscribe: <mailto:googlegroups-manage+786775582512+unsubscribe@googlegroups.com>, <https://groups.google.com/group/bitcoindev/subscribe> X-Spam-Score: -0.5 (/) ------=_Part_51232_470179013.1736265360588 Content-Type: multipart/alternative; boundary="----=_Part_51233_1321520125.1736265360588" ------=_Part_51233_1321520125.1736265360588 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello nothingmuch, Sjors, list, Thanks nothingmuch for the writeup on coinjoins with coordinators. This general topic is rarely covered and while people like me know about=20 it, we (well, I) are/am too lazy to get into the details of what kinds of= =20 problems exist. I think there are two distinct categories of weakness here: 1/ the ability of the coordinator to Sybil a targeted user by *not*=20 including other unknown-to-coordinator entities in the join. This can be=20 done by blocking access of those other entities, and/or Sybilling by adding= =20 their own entities. This first weakness is absolutely fundamental for all participants *except*= =20 the coordinator; you can't code/algorithm/crypto your way around it.=20 Justification of that: the essence of this coordination is that it must be= =20 anonymous for the participants, that is the whole point. Therefore the=20 ability to distinguish between Sybils and non-Sybils cannot exist, in pure= =20 form. However: The weakness is ameliorated, but not removed, by using decentralization of= =20 having oneself be the coordinator for a join. I say "not removed" because= =20 the Sybil risk still exists, but the bar is set much higher for the=20 attacker, since they have to Sybil the whole ecosystem, i.e. they have no= =20 control over who else takes part. It is also ameliorated, but not removed,= =20 by cost imposition (see Joinmarket fidelity bonds e.g.). What's clear is that this risk is far worse with a static central=20 coordinator for all joins rather than the "each new participant=20 coordinates" model. Also to correct a common imprecision (so not ofc=20 addressed to you nothingmuch, but to the reader): the taker-maker model is= =20 *not* incompatible with coordinator blinding. 2/ the ability of the coordinator to tag a targeted user by shenanigans=20 with the blinding key, roundID etc. The story you tell on this is interesting. In short, as per the=20 "fundamental weakness" paragraph above, it's the nature of these systems=20 that the user is anonymous and ephemeral and therefore the only "identity"= =20 they have is the coin they bring to the join. Given that, attestations=20 being verifiable requires blockchain access as the ground truth. For=20 similar things in Joinmarket's protocol (and rest assured, we had the same= =20 requirement, basically), we never had to bat an eye, because we could make= =20 calls on the utxo set at any time, since we *force* users to use full=20 nodes. But as you say, it *should* still be fully possible with various=20 kinds of light client ... so I am wondering why the people working on the= =20 Wasabi project didn't consider this a sine-qua-non. Why even bother with=20 blinding if you're not going to give the client a surety that the blinding= =20 is actually doing anything? On reflection, I can see at least one counter-argument: suppose user2 is=20 looking at user1's signature on the context of the round, and they are=20 given key P for user1's signature and just told "trust me" by the=20 coordinator, and they go ahead, because user2 only has a light client and= =20 no merkle proofs. Well, if the coordinator lies about P, the user2 can find= =20 out later that day, using a full node or block explorer to check user1's=20 utxo. Now, if the coordinator's message is *signed* so as to be=20 non-repudiable, then user2 can prove to the world that the coordinator=20 lied. Conditional on that signing, I think this counter-argument is strong;= =20 in the absence of signing, with repudiable messages instead, then I think= =20 it's weak. I guess all this comes into particularly sharp focus now that we have=20 various different Wasabi coordinators. They should all be assumed to be run= =20 by the Feds, so to speak, and analyzed from that perspective. (not that=20 that wasn't true with only 1, just that it's more true, now). A few more specific Qs/comments: On the Samourai issue: > Because the key is not announced a priori, nor is it signed by the=20 participants' spending keys before output registration or signing[^5], the= =20 server can provide each input with a unique RSA key. Since the unblinded=20 signatures are made by different keys, the server can learn the mapping=20 from inputs to outputs.=20 My gut reaction is to do "permanent key tweaked with context" here, so the= =20 client could easily verify, based on remembering the permanent key, that=20 the correct (hash of date plus round number plus whatever) had been=20 applied. But that works in Schnorr family, I don't know if a key tweak can= =20 be applied to RSA? Perhaps this question is academic, but I want to know=20 how easily this could have been fixed in practice. (I don't know why they= =20 were using RSA, but I could imagine various practical reasons; there were= =20 after all known attacks on Schnorr blinded signing). > 2. use of deterministic shuffling in the transaction, ensuring that=20 signatures can only be aggregated in the absence of equivocation (assuming= =20 the corresponding Lehmer code has enough bits of entropy)=20 That's an elegant idea; I presume it depends on tx size being large enough= =20 (yeah, bits of entropy), but that certainly isn't an issue for the=20 Wa(bi)sabi design. Couldn't a similar trick be played with the=20 coordinator's receiving address (assuming that wasabi still works like=20 that, with a coordinator fee address in the tx)? > it seems to me that if it was controlled by a rational attacker it would= =20 not use the overt key tagging attack when covert ways of deanonymizing are= =20 available and just as effective.=20 It seems I missed something, here. What covert attacks are possible except= =20 for Sybilling, excluding other users from the round? - which is only at=20 best semi-covert. Maybe stuff like timing and tor? Cheers, waxwing/AdamISZ On Monday, January 6, 2025 at 8:31:34=E2=80=AFAM UTC-6 Yuval Kogman wrote: > On Mon, 6 Jan 2025 at 14:08, Sjors Provoost <sj...@sprovoost.nl> wrote: > > > Do we know based on observations or published server-side code whether > > this key was: > > > 1) the same for all time; or > > 2) unique for each round; or > > 3) unique for each registration request > > > > In case of (1) and (2) it would have been possible to detect a targeted= *=20 > attack, > > of course only if you were on the lookout. > > Only (2) would be correct behavior. If (3) was performed, then that is > just the tagging attack. If (1) was done, then that would have allowed > clients to stockpile blind signatures in earlier rounds, and register > excess outputs during the output registration phase of later ones to > disrupt them (wasabi 1 had this bug FWIW). > > if the archived code is considered reliable, then it seems (2) was the > implemented behavior: > > > https://github.com/Archive-Samourai-Wallet/whirlpool-server/blob/develop/= src/main/java/com/samourai/whirlpool/server/beans/Mix.java#L67 > > > Perhaps if the app kept sufficient logs, it would still be possible to= =20 > retroactively > > check this. > > I'm not aware of any such observation efforts. They would require > modifying the client, at least with the archived version that I saw > the `blindingParams` member is not used that way (there are other > debug logs in the whirlpool client, but not with this data). > > However, since the public key is only given in response to input > registration, i.e. after the server has learned of the intended UTXO, > and because in many cases an xpub linking that coin may have also been > revealed to the server, and the server controls the grouping of coins > into sets of 5, it seems to me that if it was controlled by a rational > attacker it would not use the overt key tagging attack when covert > ways of deanonymizing are available and just as effective. > > > * =3D I=E2=80=99m thinking of an active attacker who wants to track spe= cific UTXOs. > > They could preemptively =E2=80=9Cpersuade=E2=80=9D the coordinator serv= er to provide > > a different RSA key or round ID if they ever try to join a round. > > While this is certainly possible, maintaining plausible deniability is > easier if the server merely maliciously control the placement of > UTXOs, ensuring that targeted UTXOs end up only with xpub-revealed > and/or adversary controlled peers. > > > Are these round IDs logged by clients? > > In the case of wasabi, both my recollection and a cursory search > indicates that yes: > > > https://github.com/WalletWasabi/WalletWasabi/blob/42e7963d7fffc7f8f37fd9b= 6e8973235859ee7fb/WalletWasabi/WabiSabi/LoggerTools.cs#L36 > > I did not check in detail where this information is logged, and I > don't think a list of all published round IDs is logged. > > I would not encourage users to share such logs, or their data, without > careful considerations. Even if logs were scrubbed, revealing a/the > set of rounds in which a user participated can significantly harm > privacy, especially since participation in rounds and coin selection > does not take into account history intersection attacks. See also > these issues re log scrubbing > https://github.com/WalletWasabi/WalletWasabi/issues/6770 > https://github.com/WalletWasabi/WalletWasabi/issues/6670 (first was > closed without fixing, deemed duplicate of 2nd - i'd say it isn't - > which is still open...). > > One of the developers still working on wasabi indicated that there > will finally be some efforts to mitigate this class of attack: > > 1. redundant queries from isolated tor circuits of the round status > information where round IDs are published, and consistency checks for > the data returned > 2. use of deterministic shuffling in the transaction, ensuring that > signatures can only be aggregated in the absence of equivocation > (assuming the corresponding Lehmer code has enough bits of entropy) > > Since round IDs are published ahead of time in the status requests, > and clients explicitly choose which round to join before revealing any > of their intended inputs, the first mitigation is straightforward and > would present a significant barrier. > --=20 You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= 6a5ac106-6f8d-480d-91f6-0b9796977554n%40googlegroups.com. ------=_Part_51233_1321520125.1736265360588 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello nothingmuch, Sjors, list,<br /><br />Thanks nothingmuch for the write= up on coinjoins with coordinators.<br />This general topic is rarely covere= d and while people like me know about it, we (well, I) are/am too lazy to g= et into the details of what kinds of problems exist.<br /><br /><br />I thi= nk there are two distinct categories of weakness here:<br /><br />1/ the ab= ility of the coordinator to Sybil a targeted user by *not* including other = unknown-to-coordinator entities in the join. This can be done by blocking a= ccess of those other entities, and/or Sybilling by adding their own entitie= s.<br /><br />This first weakness is absolutely fundamental for all partici= pants *except* the coordinator; you can't code/algorithm/crypto your way ar= ound it. Justification of that: the essence of this coordination is that it= must be anonymous for the participants, that is the whole point. Therefore= the ability to distinguish between Sybils and non-Sybils cannot exist, in = pure form. However:<br /><br />The weakness is ameliorated, but not removed= , by using decentralization of having oneself be the coordinator for a join= . I say "not removed" because the Sybil risk still exists, but the bar is s= et much higher for the attacker, since they have to Sybil the whole ecosyst= em, i.e. they have no control over who else takes part. It is also ameliora= ted, but not removed, by cost imposition (see Joinmarket fidelity bonds e.g= .).<br /><br />What's clear is that this risk is far worse with a static ce= ntral coordinator for all joins rather than the "each new participant coord= inates" model. Also to correct a common imprecision (so not ofc addressed t= o you nothingmuch, but to the reader): the taker-maker model is *not* incom= patible with coordinator blinding.<br /><br />2/ the ability of the coordin= ator to tag a targeted user by shenanigans with the blinding key, roundID e= tc.<br /><br />The story you tell on this is interesting. In short, as per = the "fundamental weakness" paragraph above, it's the nature of these system= s that the user is anonymous and ephemeral and therefore the only "identity= " they have is the coin they bring to the join. Given that, attestations be= ing verifiable requires blockchain access as the ground truth. For similar = things in Joinmarket's protocol (and rest assured, we had the same requirem= ent, basically), we never had to bat an eye, because we could make calls on= the utxo set at any time, since we *force* users to use full nodes. But as= you say, it *should* still be fully possible with various kinds of light c= lient ... so I am wondering why the people working on the Wasabi project di= dn't consider this a sine-qua-non. Why even bother with blinding if you're = not going to give the client a surety that the blinding is actually doing a= nything?<br /><br />On reflection, I can see at least one counter-argument:= suppose user2 is looking at user1's signature on the context of the round,= and they are given key P for user1's signature and just told "trust me" by= the coordinator, and they go ahead, because user2 only has a light client = and no merkle proofs. Well, if the coordinator lies about P, the user2 can = find out later that day, using a full node or block explorer to check user1= 's utxo. Now, if the coordinator's message is *signed* so as to be non-repu= diable, then user2 can prove to the world that the coordinator lied. Condit= ional on that signing, I think this counter-argument is strong; in the abse= nce of signing, with repudiable messages instead, then I think it's weak.<b= r /><br />I guess all this comes into particularly sharp focus now that we = have various different Wasabi coordinators. They should all be assumed to b= e run by the Feds, so to speak, and analyzed from that perspective. (not th= at that wasn't true with only 1, just that it's more true, now).<br /><br /= >A few more specific Qs/comments:<br /><br />On the Samourai issue:<br /><b= r />> Because the key is not announced a priori, nor is it signed by the= participants' spending keys before output registration or signing[^5], the= server can provide each input with a unique RSA key. Since the unblinded s= ignatures are made by different keys, the server can learn the mapping from= inputs to outputs. <br /><br />My gut reaction is to do "permanent key twe= aked with context" here, so the client could easily verify, based on rememb= ering the permanent key, that the correct (hash of date plus round number p= lus whatever) had been applied. But that works in Schnorr family, I don't k= now if a key tweak can be applied to RSA? Perhaps this question is academic= , but I want to know how easily this could have been fixed in practice. (I = don't know why they were using RSA, but I could imagine various practical r= easons; there were after all known attacks on Schnorr blinded signing).<br = /><br />> 2. use of deterministic shuffling in the transaction, ensuring= that signatures can only be aggregated in the absence of equivocation (ass= uming the corresponding Lehmer code has enough bits of entropy) <br /><br /= >That's an elegant idea; I presume it depends on tx size being large enough= (yeah, bits of entropy), but that certainly isn't an issue for the Wa(bi)s= abi design. Couldn't a similar trick be played with the coordinator's recei= ving address (assuming that wasabi still works like that, with a coordinato= r fee address in the tx)?<br /><br />> it seems to me that if it was con= trolled by a rational attacker it would not use the overt key tagging attac= k when covert ways of deanonymizing are available and just as effective. <b= r /><br />It seems I missed something, here. What covert attacks are possib= le except for Sybilling, excluding other users from the round? - which is o= nly at best semi-covert. Maybe stuff like timing and tor?<br /><br />Cheers= ,<br />waxwing/AdamISZ<br /><br /><br /><br /><div class=3D"gmail_quote"><d= iv dir=3D"auto" class=3D"gmail_attr">On Monday, January 6, 2025 at 8:31:34= =E2=80=AFAM UTC-6 Yuval Kogman wrote:<br/></div><blockquote class=3D"gmail_= quote" style=3D"margin: 0 0 0 0.8ex; border-left: 1px solid rgb(204, 204, 2= 04); padding-left: 1ex;">On Mon, 6 Jan 2025 at 14:08, Sjors Provoost <<a= href data-email-masked rel=3D"nofollow">sj...@sprovoost.nl</a>> wrote: <br> <br>> Do we know based on observations or published server-side code whe= ther <br>> this key was: <br> <br>> 1) the same for all time; or <br>> 2) unique for each round; or <br>> 3) unique for each registration request <br>> <br>> In case of (1) and (2) it would have been possible to detect a tar= geted* attack, <br>> of course only if you were on the lookout. <br> <br>Only (2) would be correct behavior. If (3) was performed, then that is <br>just the tagging attack. If (1) was done, then that would have allowed <br>clients to stockpile blind signatures in earlier rounds, and register <br>excess outputs during the output registration phase of later ones to <br>disrupt them (wasabi 1 had this bug FWIW). <br> <br>if the archived code is considered reliable, then it seems (2) was the <br>implemented behavior: <br> <br><a href=3D"https://github.com/Archive-Samourai-Wallet/whirlpool-server/= blob/develop/src/main/java/com/samourai/whirlpool/server/beans/Mix.java#L67= " target=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.go= ogle.com/url?hl=3Den&q=3Dhttps://github.com/Archive-Samourai-Wallet/whi= rlpool-server/blob/develop/src/main/java/com/samourai/whirlpool/server/bean= s/Mix.java%23L67&source=3Dgmail&ust=3D1736348291610000&usg=3DAO= vVaw2pzsJ4HVDMAHKdcZK8feY1">https://github.com/Archive-Samourai-Wallet/whir= lpool-server/blob/develop/src/main/java/com/samourai/whirlpool/server/beans= /Mix.java#L67</a> <br> <br>> Perhaps if the app kept sufficient logs, it would still be possibl= e to retroactively <br>> check this. <br> <br>I'm not aware of any such observation efforts. They would require <br>modifying the client, at least with the archived version that I saw <br>the `blindingParams` member is not used that way (there are other <br>debug logs in the whirlpool client, but not with this data). <br> <br>However, since the public key is only given in response to input <br>registration, i.e. after the server has learned of the intended UTXO, <br>and because in many cases an xpub linking that coin may have also been <br>revealed to the server, and the server controls the grouping of coins <br>into sets of 5, it seems to me that if it was controlled by a rational <br>attacker it would not use the overt key tagging attack when covert <br>ways of deanonymizing are available and just as effective. <br> <br>> * =3D I=E2=80=99m thinking of an active attacker who wants to trac= k specific UTXOs. <br>> They could preemptively =E2=80=9Cpersuade=E2=80=9D the coordi= nator server to provide <br>> a different RSA key or round ID if they ever try to join a ro= und. <br> <br>While this is certainly possible, maintaining plausible deniability is <br>easier if the server merely maliciously control the placement of <br>UTXOs, ensuring that targeted UTXOs end up only with xpub-revealed <br>and/or adversary controlled peers. <br> <br>> Are these round IDs logged by clients? <br> <br>In the case of wasabi, both my recollection and a cursory search <br>indicates that yes: <br> <br><a href=3D"https://github.com/WalletWasabi/WalletWasabi/blob/42e7963d7f= ffc7f8f37fd9b6e8973235859ee7fb/WalletWasabi/WabiSabi/LoggerTools.cs#L36" ta= rget=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.google= .com/url?hl=3Den&q=3Dhttps://github.com/WalletWasabi/WalletWasabi/blob/= 42e7963d7fffc7f8f37fd9b6e8973235859ee7fb/WalletWasabi/WabiSabi/LoggerTools.= cs%23L36&source=3Dgmail&ust=3D1736348291610000&usg=3DAOvVaw1A5o= rHNufy6VbLhxVC_P4_">https://github.com/WalletWasabi/WalletWasabi/blob/42e79= 63d7fffc7f8f37fd9b6e8973235859ee7fb/WalletWasabi/WabiSabi/LoggerTools.cs#L3= 6</a> <br> <br>I did not check in detail where this information is logged, and I <br>don't think a list of all published round IDs is logged. <br> <br>I would not encourage users to share such logs, or their data, without <br>careful considerations. Even if logs were scrubbed, revealing a/the <br>set of rounds in which a user participated can significantly harm <br>privacy, especially since participation in rounds and coin selection <br>does not take into account history intersection attacks. See also <br>these issues re log scrubbing <br><a href=3D"https://github.com/WalletWasabi/WalletWasabi/issues/6770" ta= rget=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.google= .com/url?hl=3Den&q=3Dhttps://github.com/WalletWasabi/WalletWasabi/issue= s/6770&source=3Dgmail&ust=3D1736348291610000&usg=3DAOvVaw37Ajp3= mNpCYiUv7cFyzCYr">https://github.com/WalletWasabi/WalletWasabi/issues/6770<= /a> <br><a href=3D"https://github.com/WalletWasabi/WalletWasabi/issues/6670" ta= rget=3D"_blank" rel=3D"nofollow" data-saferedirecturl=3D"https://www.google= .com/url?hl=3Den&q=3Dhttps://github.com/WalletWasabi/WalletWasabi/issue= s/6670&source=3Dgmail&ust=3D1736348291610000&usg=3DAOvVaw3Mk47e= e2TlN1_bOd-C9ikW">https://github.com/WalletWasabi/WalletWasabi/issues/6670<= /a> (first was <br>closed without fixing, deemed duplicate of 2nd - i'd say it isn'= ;t - <br>which is still open...). <br> <br>One of the developers still working on wasabi indicated that there <br>will finally be some efforts to mitigate this class of attack: <br> <br>1. redundant queries from isolated tor circuits of the round status <br>information where round IDs are published, and consistency checks for <br>the data returned <br>2. use of deterministic shuffling in the transaction, ensuring that <br>signatures can only be aggregated in the absence of equivocation <br>(assuming the corresponding Lehmer code has enough bits of entropy) <br> <br>Since round IDs are published ahead of time in the status requests, <br>and clients explicitly choose which round to join before revealing any <br>of their intended inputs, the first mitigation is straightforward and <br>would present a significant barrier. <br></blockquote></div> <p></p> -- <br /> You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.<br /> To unsubscribe from this group and stop receiving emails from it, send an e= mail to <a href=3D"mailto:bitcoindev+unsubscribe@googlegroups.com">bitcoind= ev+unsubscribe@googlegroups.com</a>.<br /> To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/= bitcoindev/6a5ac106-6f8d-480d-91f6-0b9796977554n%40googlegroups.com?utm_med= ium=3Demail&utm_source=3Dfooter">https://groups.google.com/d/msgid/bitcoind= ev/6a5ac106-6f8d-480d-91f6-0b9796977554n%40googlegroups.com</a>.<br /> ------=_Part_51233_1321520125.1736265360588-- ------=_Part_51232_470179013.1736265360588--