Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 4B343D0E for ; Mon, 9 Jul 2018 15:02:34 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 3B85F67E for ; Mon, 9 Jul 2018 15:02:33 +0000 (UTC) Received: by mail-wr1-f42.google.com with SMTP id j5-v6so4826393wrr.8 for ; Mon, 09 Jul 2018 08:02:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=V5MWyMoiNlhWZIyNOxA5lTfhmqhYl6GjrShketfNI98=; b=HOAklU+QatJLa9bHrBMKDBW5xaBbodFs68lfVqvI6yCgNLDGI7DkHW5+ZNlKhkcGHt RJ3uXGs6RLUEoBabVkiTwsqz8yiyJ142HXmfqwtduNm0g7ztwMSZeQKwnSuRN9GzeczT MPJUdKQU5IZPfSnubfaiSdRET5SAQeYQuUDCyS6XA12inw8p+spF9ianMYNrIFFrxVuB qd4ecnG9uqMh0OKqd1iZ+5bsPQt3MTVpTSeXA4l0OvG+Wv8Ef2AebMRUY37j2jZt2X2M 7IY+YBogHxuUvmzOpEpBI+4bjvqp8vIZf2PiYUv48GtTlKhFoYbCMXgzaHY1n0oz8Nsh nkjg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=q32-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=V5MWyMoiNlhWZIyNOxA5lTfhmqhYl6GjrShketfNI98=; b=1NbBgd94VTqfAVoxHOYR+PSc8h9/jFkgup/8sJcdW8Yvl1zxZJGWoaMxAd4CiSZkpB jaDCZY94ZBcL90XXFCTzuqW2yz1qxCUFaHUlxRhFYq9I+h32ogefu4p6s36JBmGzbW3b fiXHT3u3sn+csXRPXGEYUbVxHlnd1uz2KnoZoC00gKKQA1EMITpW/RIXrKhEi47eEKZ3 sShV/BzImhxdSv80phIBAfTMW6GSuYJWXt9EoBKIUfpEkKlYK9PoDtdsz74DHm+Cfpn8 JNC+UyTqZDO+kT4exbaHB3UMms6G7+DDas8MHAb5RzgDXN4Q7IOiNoLWxQXuUN+YtYii QDcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=V5MWyMoiNlhWZIyNOxA5lTfhmqhYl6GjrShketfNI98=; b=GFJ9AvzbDFzXLsZ7+JRpLIziW+6q7iZu108BnbI0OrjIoZMMdTdIF65++5/1uIET2a m7jc+KNpqQ7esdT06QF7i1t6/wNYdUSOZB5b8V8KJqGZuc7Ff0AQiryYGhQYn5P/pf03 +mFqiv8mtPp0kwoACa5LlYPQ26EtF/JndDZuz6KkEFNHAkntADKem/IDUGyk6dark7Q8 SH6td8G4SYwu9wAPwHn2lSrs0XqkQBXaCqTYZqpsb4vaDwqRlYpte99Nd7p9r9Rt71ie rToVUTfOdPzCTlDJJUKB58JT0AvBk38vAf0ZwsF7GB310UcUX+d4l4ajUufN2wep9qOc Zumg== X-Gm-Message-State: APt69E2MKXkQ0XIVTDVh1q4A2tK8IsO6qJPSCIiyhIcsma+pIvMnmNZw Wi33eDk3gixV/6ymX63hb6yUP//Jy6dhJ8oOymzJrb2Deq/1 X-Google-Smtp-Source: AAOMgpe5N5vZ1qrmZOzWBcJfF1zTB3GGQBx/YV7RS4Khs4lr+1FeZ9iP+RWJE4oCa3Aa9u+XuyX+BnXAMiqVcj+XmWo= X-Received: by 2002:a5d:46c6:: with SMTP id g6-v6mr14001065wrs.76.1531148551567; Mon, 09 Jul 2018 08:02:31 -0700 (PDT) MIME-Version: 1.0 Sender: earonesty@gmail.com Received: by 2002:a1c:b786:0:0:0:0:0 with HTTP; Mon, 9 Jul 2018 08:02:30 -0700 (PDT) In-Reply-To: References: <08201f2292587821e6d23f6cc201d95e6e5ad2cd.camel@timruffing.de> From: Erik Aronesty Date: Mon, 9 Jul 2018 11:02:30 -0400 X-Google-Sender-Auth: qNjxRk3Or_f0jpKgibJYp5idQfE Message-ID: To: Bitcoin Protocol Discussion Content-Type: multipart/alternative; boundary="00000000000083bef80570924dd6" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE 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, 09 Jul 2018 15:04:57 +0000 Subject: Re: [bitcoin-dev] Multiparty signatures 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, 09 Jul 2018 15:02:34 -0000 --00000000000083bef80570924dd6 Content-Type: text/plain; charset="UTF-8" Actually, it looks like in order to compute a multiparty signature you will need to broadcast shares of r first, so it's not offline :( It is still seems, to me, to be a simpler mechanism than musig - with security assumptions that match the original Schnorr construction more closely, and should therefore be easier to prove secure in a multiparty context. Shamir/Schnorr threshold multi-signature scheme: Each party: - Has a public key g*x', where x' is their private key, and where H(g*x) can be considered their public index for the purposes of Shamir polynomial interpolation - Rolls a random k' and compute r' = g*k' - Broadcast r' as a share - Computes g*k, via lagrange interpolation across shares. At this point k is not known to any party unless Shamir is vulnerable or DL is not hard - Computes e' = H(M) * r' - Computes s' = k'-x*e' - Share of signature is (s', e') Verification is the same as Scnhorr, but only after using interpolation to get the needed (s, e, g*x) from shares of s', e' and g*x': - Using lagrange interpolation, compute the public key g*x - Again, using lagrange interpolation, compute (s, e) - Verify the signature as per standard Schnorr Security assumptions: - Because this is not additive, and instead we are using Shamir combination, the additional blinding and masking steps of musig are not needed to create a secure scheme. - The scheme is the same as Schnorr otherwise - The only thing to prove is that H(M) * r does not reveal any information about k ... which relies on the same DL assumptions as Bitcoin itself - Overall, this seems, to me at least, to have a smaller attack surface because there's fewer moving parts On Mon, Jul 9, 2018 at 8:24 AM, Erik Aronesty wrote: > I was hoping that nobody in this group saw an obvious problem with it then > I'd sit down and try to write up a paper. > > Not that hard to just reuse the work done on schnorr. And demonstrate > that there are no additional assumptions. > > On Mon, Jul 9, 2018, 12:40 AM Pieter Wuille > wrote: > >> On Sun, Jul 8, 2018, 21:29 Erik Aronesty wrote: >> >>> Because it's non-interactive, this construction can produce multisig >>> signatures offline. Each device produces a signature using it's own >>> k-share and x-share. It's only necessary to interpolate M of n shares. >>> >>> There are no round trips. >>> >>> The security is Shamir + discrete log. >>> >>> it's just something I've been tinkering with and I can't see an obvious >>> problem. >>> >>> It's basically the same as schnorr, but you use a threshold hash to fix >>> the need to be online. >>> >>> Just seems more useful to me. >>> >> >> That sounds very useful if true, but I don't think we should include >> novel cryptography in Bitcoin based on your not seeing an obvious problem >> with it. >> >> I'm looking forward to seeing a more complete writeup though. >> >> Cheers, >> >> -- >> Pieter >> >> >> --00000000000083bef80570924dd6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Actually, it looks like in order to compute a multipa= rty signature you will need to broadcast shares of r first, so it's not= offline :(

It is still seems, to me, to be a simp= ler mechanism than musig - with security assumptions that match the origina= l Schnorr construction more closely, and should therefore be easier to prov= e secure in a multiparty context.

Shamir/Schnorr t= hreshold multi-signature scheme:

Each party:

- Has a public key g*x', where x' is their = private key, and where H(g*x) can be considered their public index for the = purposes of Shamir polynomial interpolation
- Rolls a random k= 9; and compute r' =3D g*k'
- Broadcast r' as a sh= are
- Computes g*k, via lagrange interpolation across shares.=C2= =A0 =C2=A0At this point k is not known to any party unless Shamir is vulner= able or DL is not hard
- Computes e' =3D H(M) * r'
<= div>- Computes s' =3D k'-x*e'
- Share of signature is= (s', e')

Verification is the same as Scnh= orr, but only after using interpolation to get the needed (s, e, g*x) from = shares of s', e' and g*x':

- Using lagrange interpolation, compute the public key g*x<= /div>- Again, using lagrange interpolation, compute (s, e)=C2=A0
= - Verify the signature as per standard Schnorr

Sec= urity assumptions:

=C2=A0- Because this is not= additive, and instead we are using Shamir combination, the additional blin= ding and masking steps of musig are not needed to create a secure scheme.= =C2=A0=C2=A0
=C2=A0- The scheme is the same as Schnorr otherw= ise
=C2=A0- The only thing to prove is that H(M) * r does not rev= eal any information about k ... which relies on the same DL assumptions as = Bitcoin itself
=C2=A0- Overall, this seems, to me at least, to ha= ve a smaller attack surface because there's fewer moving parts
=C2=A0

On Mon, Jul 9, 2018 at 8:24 AM, Erik Aronesty <erik@q32.com> w= rote:
I was hoping that= nobody in this group saw an obvious problem with it then I'd sit down = and try to write up a paper.=C2=A0=C2=A0

Not that hard to just reuse the work done on schnorr.=C2=A0 =C2= =A0And demonstrate that there are no additional assumptions.

On Mon, Jul 9, 2018, 12:40 AM Pieter Wuille <pieter.wuille@gmail.com>= wrote:
On Sun, Jul 8, 2018, 21:29 = Erik Aronesty <erik@q32.com> wrote:
Because it's non-interactive, this construction = can produce multisig signatures offline.=C2=A0 =C2=A0Each device produces a= signature using it's own k-share and x-share.=C2=A0 =C2=A0It's onl= y necessary to interpolate M of n shares.

There are no round trips.

The security is Shamir + discrete log.=C2=A0=C2=A0

it's just some= thing I've been tinkering with and I can't see an obvious problem.= =C2=A0=C2=A0

It's ba= sically the same as schnorr, but you use a threshold hash to fix the need t= o be online.

Just seems = more useful to me.

That sounds very useful if true, but I don&= #39;t think we should include novel cryptography in Bitcoin based on your n= ot seeing an obvious problem with it.

I'm looking forward to seeing a more complete writeup tho= ugh.

Cheers,

--=C2=A0
Pie= ter



--00000000000083bef80570924dd6--