Return-Path: Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 755B6C077D for ; Sun, 8 Dec 2019 01:16:03 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 6AC20862A9 for ; Sun, 8 Dec 2019 01:16:03 +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 rTBKSnSvz0Jg for ; Sun, 8 Dec 2019 01:16:01 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail2.protonmail.ch (mail2.protonmail.ch [185.70.40.22]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 8131086283 for ; Sun, 8 Dec 2019 01:16:01 +0000 (UTC) Date: Sun, 08 Dec 2019 01:15:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1575767752; bh=pbgJCB50F2gY1vzpQ5oDjYh9zBRUiqqsmiCRr5oadPw=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References: Feedback-ID:From; b=lcRtlFSR1hLIFc3K4rushkZB6AbHpG7Jwv1QHq/7RH9chOYBEEw9pgOKBzEU9qqQD uprQNqR5spS/5bMjmiog6aLzxucLbYuNc1wqdZdJj/NRlhM+lO9LIxGpseT3nx/3Dv HUStsYozBN5TBxSyJj8/xnvfCebEhIWUt20b2YNQ= To: Lloyd Fournier From: ZmnSCPxj Reply-To: ZmnSCPxj Message-ID: <5JbfLKwbVsIev2M33s366qbyuAGqz-ydB4gZ2KTFR_nCWbgZ0vWMm5UOU19jNVeMfYD3A0GPTpbuuYINwOv_F6fJS3NdxuPgMm8hGUnjbB0=@protonmail.com> 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 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] Composable MuSig 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, 08 Dec 2019 01:16:03 -0000 Good morning Lloyd, > The real > question is what properties does the commitment scheme need to be > appropriate for MuSig R coin tossing? It seems to me that what is needed for a composable MuSig is to have a comm= itment scheme which is composable. Let me define a composable commitment scheme: Given: * `A` and `B`, two points to be committed to. * `c[A]` and `c[B]`, commitments to the above points respectively. * `r[A]` and `r[B]`, openings of the above commitments respectively. Then a composable commitment scheme must have these operations: * `ComposeCommitments(c[A], c[B])`, which returns a commitment to the point= `A + B`. * `ComposeOpenings(r[A], r[B])`, which returns an opening of the above comm= itment to the point `A + B`. My multi-`R` proposal is a composable commitment scheme: * A commitment `c[A]` is the list `{h(A)}` where `h()` is some hash functio= n. * `ComposeCommitments(c[A], c[B])` is the concatenation on lists of hashes = of points. * An opening `r[A]` is the list `{A}`. * `ComposeOpenings(r[A], r[B])` is the concatenation on lists of points. The property we want to have, is that: * There must not exist some operation `NegateCommitment(c[A])`, such that: * `ComposeCommitments(ComposeCommitments(c[B], NegateCommitment(c[A])), c= [A]) =3D=3D c[B]`. My multi-`R` proposal works as a composable commitment scheme appropriate f= or composable MuSig because there is no way to create an input to a concate= nation operation such that the concatenation operation becomes a "search an= d delete" operation. Pedersen and ElGamal commitments, I think, cannot work here, because commit= ments in those schemes are negatable in such a way that composing the commi= tments allows a commitment to be cancelled. ----- Let us now turn to signature schemes. I conjecture that the Schnorr and ECDSA signature schemes are also commitme= nt schemes on points. To create a commitment `c[A]` on the point A, such that `A =3D a * G`, the = committer: * Generates random scalars `r` and `m`. * Computes `R` as `r * G`. * Computes `s` as `r + h(R | m) * a`. * Gives `c[A]` as the tuple `(R, s)`. The opening `r[A]` of the above is then the tuple `(m, A)`. The verifier then validates that the commitment was indeed to the point `A`= by doing the below: * Computes `S[validator]` as `R + h(R | m) * A`. * Validates that `S[validator] =3D=3D s * G`. Now, we know that signatures can be composed in such a way that points (pub= lic keys) cannot be cancelled, i.e. preventing the creation of a `NegateCom= mitment()` operation. Thus, a signature can be used as a composable commitment in composable MuSi= g scheme. In summary, I conjecture that: * We need a composable commitment scheme that does not allow cancellation, = and any such commitment scheme can be "slotted" into the 3-phase MuSig fram= ework. Regards, ZmnSCPxj