From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Mon, 16 Mar 2026 09:12:40 -0700 Received: from mail-oo1-f56.google.com ([209.85.161.56]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1w2AYZ-0001u2-8L for bitcoindev@gnusha.org; Mon, 16 Mar 2026 09:12:40 -0700 Received: by mail-oo1-f56.google.com with SMTP id 006d021491bc7-67ba8eabf6dsf57956229eaf.1 for ; Mon, 16 Mar 2026 09:12:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1773677553; x=1774282353; 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=2tkOesa2/mYdFmAwhmJLbs3Xb4XKSrhgrhVge0n1H58=; b=kNtQ1fKW69oBL5n9DbWtmSnPka6qd+Siq/6CZh1pvkCR6nh+3qki+R66pT7YygCCjM O/+2otSTspC3cBZ5unTp7mcpIDLsfGQQcyrkImD0nMICZJ0ROAFyP5IdY8QumFiOvVLk aTXCpPB9L5ccSZDL5pFCYFVoVwai2nCdWyCT4wkbY8gI8NL8ncty4SkLgl9MBdqerAMg kqGbPwMK3y4OFkroVoRdDhEigqlF66543Q2yAx1EcEnrxjO6XDlY1WRpP5WLqM0MZRCW VSjsVUMo46N1jrOdz1CCK7hsIyML5fBGtLVppAefDPW6MtCixZryYq7etrF3Acw5A293 P/hQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773677553; x=1774282353; 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=2tkOesa2/mYdFmAwhmJLbs3Xb4XKSrhgrhVge0n1H58=; b=YidWra1W/73XmKrmCZpP6RtgvemN83mWCFUrKgJ3XtBmW5L1FH4C3neB/fJEJlV14o 8qz/ZWcYH2RzTAUCYwGoW/i2GvI/FhLThQfbIpEIY2rIE1zAjCOpiZzXGEH+Wp3E9bvB viEU5RQ2fKgJ/pwU5qLOCUEhX+Um2tr3RLgTJ3i7Q6pjxZ63b48P0V0Nr8dmCpRfEbg1 Ow83y2RQep6rqiJlboSoyGe9HzjglJbNCD98N6tYMIT+hRZbg/ZiwYaSmr/KrNbESOM1 N6YyJttSl8c29rL47gArgY7XKa+2jhtr4wpkav501OCOCp5aseoXv9sy0HcgNyTZNA1m tP6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773677553; x=1774282353; 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=2tkOesa2/mYdFmAwhmJLbs3Xb4XKSrhgrhVge0n1H58=; b=l9Du2/fJmkvlWtYkAmW94I5ALA1CvaPDrFKlaR11XeUDoep1rHdj7ybAtePLTFwQDd T0ioSFUltf9fNmjQjNvRrWtPXC7QYH1hjc6kKwvfdI4euz1fZ4PtwAEVMN/B90SWzZVR ipvAUieRvZsEk0XmcUOcx349s/nm5xqdsTHbw5cEO3bM+qf+CxxRlj048oulrC3NYFFC dFwLe2ZWzqSZK9Ir1ViU59I82PFWfmO8ijEXIBWQvqjEWybEbz3+S18kLfM/c3Cu+VhJ mpcBSUgWsbtvZ1n2vKhGuJXpTeKT+EmoxXD+KtbBy/XaAjIKaoeN6M6LabsAVpsQJz5P nfPg== Sender: bitcoindev@googlegroups.com X-Forwarded-Encrypted: i=1; AJvYcCXp+OIMVvd3ofBEmo3+rKfcDlMRwmlFlzNDO3GG+sztJrRqBRlZ072DRh5vS+n/VchsGINnLg0Wyl07@gnusha.org X-Gm-Message-State: AOJu0YyAJm1V8ZSZAP0PcfpT5W+nUZ8FA3cHl0+8NdPTHOwGOaGA5ZXZ k8kH8Sh0UQL1gJiIcw2Erb+2yrwmMTIQQQEhka16m5Ik5xbNcbmzb8mp X-Received: by 2002:a05:6820:460e:b0:67b:f329:7281 with SMTP id 006d021491bc7-67bf329746emr3703014eaf.11.1773677552876; Mon, 16 Mar 2026 09:12:32 -0700 (PDT) X-BeenThere: bitcoindev@googlegroups.com; h="AV1CL+HOGn+nCY53JmFWIBbdVMWjNOV6ku8O0YIw9kEx3e7ulg==" Received: by 2002:a05:6820:2207:b0:67b:adf7:d2fc with SMTP id 006d021491bc7-67bd990ac73ls1752753eaf.2.-pod-prod-05-us; Mon, 16 Mar 2026 09:12:28 -0700 (PDT) X-Received: by 2002:a05:6808:c1d8:b0:463:8fba:5df5 with SMTP id 5614622812f47-46757196fdbmr7596065b6e.24.1773677548303; Mon, 16 Mar 2026 09:12:28 -0700 (PDT) Received: by 2002:a05:690c:a193:b0:794:2788:2ae4 with SMTP id 00721157ae682-79a1c07b7c5ms7b3; Mon, 16 Mar 2026 09:00:14 -0700 (PDT) X-Received: by 2002:a05:690c:4481:b0:79a:55f5:a3f0 with SMTP id 00721157ae682-79a55f5eea0mr23719437b3.14.1773676813193; Mon, 16 Mar 2026 09:00:13 -0700 (PDT) Date: Mon, 16 Mar 2026 09:00:12 -0700 (PDT) From: sashabeton To: Bitcoin Development Mailing List Message-Id: In-Reply-To: <4df4b49e-f8f8-4d6f-b98f-7a4a27902800n@googlegroups.com> References: <3dcadd5d-702a-4e6c-ad6c-2ddfe68ec73en@googlegroups.com> <4df4b49e-f8f8-4d6f-b98f-7a4a27902800n@googlegroups.com> Subject: Re: [bitcoindev] [BIP proposal] Pay to Schnorr Key Hash (P2SKH) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_522192_1845189045.1773676812547" X-Original-Sender: sashabeton2007@gmail.com Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -0.5 (/) ------=_Part_522192_1845189045.1773676812547 Content-Type: multipart/alternative; boundary="----=_Part_522193_46490041.1773676812547" ------=_Part_522193_46490041.1773676812547 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable To clarify the design intent: P2SKH is not a stripped-down Taproot =E2=80= =94 it is=20 P2WPKH upgraded to Schnorr. The starting point is P2WPKH (compact 20-byte= =20 hash commitment, no script path, single-key payments), and the only change= =20 is replacing ECDSA with the same Schnorr signature scheme Taproot's=20 key-path uses. That's it. The goal is giving users who are already happy with the P2WPKH model (no=20 script spending, simple single-key payments) the witness efficiency of=20 Schnorr without forcing them onto a 34-byte output type designed for a=20 richer feature set they don't need. P2SKH is not quantum-resistant =E2=80=94 I fully acknowledge this. Like P2W= PKH, it=20 relies on secp256k1 and will need to be migrated once post-quantum schemes= =20 are deployed in Bitcoin. But until that happens, it serves the same users= =20 as P2WPKH today, just more efficiently. When the time comes, users migrate= =20 =E2=80=94 the same way P2PKH and P2WPKH users will have to. On Monday, 16 March 2026 at 16:45:32 UTC+1 Alex wrote: > > In that use case P2TR key-path spending offers no scriptability either= =20 > =E2=80=94 this is not a new trade-off, it is the same one Taproot already= made. > > This is not true. Taproot has 2 modes; its key-spend path is 12 bytes mor= e=20 > bloated than your solution, yes. but Taproot can "dynamically" chose=20 > whether to use the key-spend path or the script-spend path. Your solution= =20 > fully removes the script spend path, so you're not really optimizing an= =20 > equally capable solution, you're optimizing for only 1 part of it. > > Removing scriptability for 12 bytes could possibly be warranted in some= =20 > specific cases (I'm sure there are cases), but it's not a fair comparison= =20 > against Taproot or BIP360. And since we will need quantum upgrade at some= =20 > point, this upgrade is kind of (in my personal interpretation) doubling= =20 > down to the part that will eventually break. > > Do you have any plan on how one could quantum secure the funds in P2SKH? > m=C3=A5ndag 16 mars 2026 kl. 12:57:52 UTC+1 skrev Alex: > >> You are saving 12 bytes by removing all the scriptability, OP-code=20 >> upgradeability and basically locking yourself to a non-quantum-secure ke= y=20 >> spend path that is only quantum secure if never spent? Or did I=20 >> missunderstand? >> >> m=C3=A5ndag 16 mars 2026 kl. 12:25:57 UTC+1 skrev Martin Habov=C5=A1tiak= : >> >>> Taproot specifically did not do this for good reasons that are well=20 >>> documented. I recommend you to read documentation first before attempti= ng=20 >>> to make changes. >>> >>> D=C5=88a po 16. 3. 2026, 11:48 sashabeton nap=C3= =ADsal(a): >>> >>>> Hi everyone, >>>> >>>> I'd like to propose a new native SegWit output type: Pay to Schnorr Ke= y=20 >>>> Hash (P2SKH). >>>> >>>> =3D=3D The problem =3D=3D >>>> >>>> The two most relevant output types today each solve half the problem: >>>> - P2WPKH has a compact 22-byte scriptPubKey, but uses ECDSA and puts= =20 >>>> the full 33-byte compressed public key in the witness (~108 witness by= tes=20 >>>> per input). >>>> - P2TR uses Schnorr signatures (64-byte witness), but embeds the full= =20 >>>> 32-byte x-only public key directly in the scriptPubKey, making outputs= 12=20 >>>> bytes larger than P2WPKH and exposing the key in every unspent output. >>>> >>>> Neither type achieves both a compact output and a compact witness=20 >>>> simultaneously. >>>> >>>> =3D=3D The proposal =3D=3D >>>> >>>> P2SKH uses OP_2 as the scriptPubKey (22 bytes, same as= =20 >>>> P2WPKH). Spending requires a single 64-byte Schnorr signature. Verific= ation=20 >>>> works by key recovery: given the signature (R, s) and the challenge e = =3D=20 >>>> TaggedHash("P2SKH/challenge", R.x || hash160(P.x) || msg), the verifie= r=20 >>>> recovers P =3D e^-1 * (s*G - R) and checks that hash160(P.x) matches t= he=20 >>>> program. The sighash reuses the BIP341 transaction digest, so cross-ve= rsion=20 >>>> replay is prevented by the scriptPubKey commitment. >>>> >>>> The result is the smallest combined footprint of any current single-ke= y=20 >>>> output type =E2=80=94 a 22-byte output with a 64-byte witness =E2=80= =94 while keeping the=20 >>>> public key off-chain until spending. >>>> >>>> =3D=3D Tradeoffs =3D=3D >>>> >>>> The key-recovery step costs roughly one extra field inversion and=20 >>>> scalar multiplication compared to direct Schnorr verification. This is= the=20 >>>> price of the 12-byte output size reduction. >>>> >>>> =3D=3D Open questions =3D=3D >>>> >>>> 1. BIP360 also claims witness version 2. If both proposals advance, on= e=20 >>>> needs to move. Version 3 seems like a natural alternative for P2SKH. >>>> 2. Naming =E2=80=94 "P2SKH" follows the established pattern but "P2TRK= H" has=20 >>>> been suggested to emphasise Schnorr/taproot lineage. Opinions welcome. >>>> >>>> Full draft:=20 >>>> https://github.com/sashabeton/bips/blob/3cb9e07984b571e9510370ab7e7218= 620be580dc/p2skh.md >>>> PoC implementation: https://github.com/bitcoin/bitcoin/pull/34826 >>>> >>>> Thanks in advance for any feedback. >>>> >>>> --=20 >>>> You received this message because you are subscribed to the Google=20 >>>> Groups "Bitcoin Development Mailing List" group. >>>> To unsubscribe from this group and stop receiving emails from it, send= =20 >>>> an email to bitcoindev+...@googlegroups.com. >>>> To view this discussion visit=20 >>>> https://groups.google.com/d/msgid/bitcoindev/3dcadd5d-702a-4e6c-ad6c-2= ddfe68ec73en%40googlegroups.com=20 >>>> >>>> . >>>> >>> --=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/= ee240078-88c6-4961-8412-489a77012038n%40googlegroups.com. ------=_Part_522193_46490041.1773676812547 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable To clarify the design intent: P2SKH is not a stripped-down Taproot =E2=80= =94 it is P2WPKH upgraded to Schnorr. The starting point is P2WPKH (compact= 20-byte hash commitment, no script path, single-key payments), and the onl= y change is replacing ECDSA with the same Schnorr signature scheme Taproot'= s key-path uses. That's it.

The goal is giving users who are alr= eady happy with the P2WPKH model (no script spending, simple single-key pay= ments) the witness efficiency of Schnorr without forcing them onto a 34-byt= e output type designed for a richer feature set they don't need.

P2SKH is not quantum-resistant =E2=80=94 I fully acknowledge this. Like P2= WPKH, it relies on secp256k1 and will need to be migrated once post-quantum= schemes are deployed in Bitcoin. But until that happens, it serves the sam= e users as P2WPKH today, just more efficiently. When the time comes, users = migrate =E2=80=94 the same way P2PKH and P2WPKH users will have to.
On Mo= nday, 16 March 2026 at 16:45:32 UTC+1 Alex wrote:
>=C2=A0 In that use case P2TR key-path spending offers no scriptabi= lity either =E2=80=94 this is not a new trade-off, it is the same one Tapro= ot already made.

This is not true. Taproot has 2 modes; its k= ey-spend path is 12 bytes more bloated than your solution, yes. but Taproot= can "dynamically" chose whether to use the key-spend path or the= script-spend path. Your solution fully removes the script spend path, so y= ou're not really optimizing an equally capable solution, you're opt= imizing for only 1 part of it.

Removing scriptability fo= r 12 bytes could possibly be warranted in some specific cases (I'm sure= there are cases), but it's not a fair comparison against Taproot or BI= P360. And since we will need quantum upgrade at some point, this upgrade is= kind of (in my personal interpretation) doubling down to the part that wil= l eventually break.

Do you have any plan on how one could quantum se= cure the funds in P2SKH?
m=C3=A5ndag 16 mars 2026 kl. 12:57:52 UTC+1 skrev Alex= :
You are saving 12 by= tes by removing all the scriptability, OP-code upgradeability and basically= locking yourself to a non-quantum-secure key spend path that is only quant= um secure if never spent? Or did I missunderstand?

m=C3=A5ndag 16 mars 2026 k= l. 12:25:57 UTC+1 skrev Martin Habov=C5=A1tiak:
Taproot specifically did not d= o this for good reasons that are well documented. I recommend you to read d= ocumentation first before attempting to make changes.

D=C5=88a po 16. 3. 2= 026, 11:48 sashabeton <sashabe...@gmail.com> = nap=C3=ADsal(a):
Hi everyone,
=
I'd like to propose a new native SegWit output type: Pay to Schnorr= Key Hash (P2SKH).

=3D=3D The problem =3D=3D

The two most rel= evant output types today each solve half the problem:
- P2WPKH has a com= pact 22-byte scriptPubKey, but uses ECDSA and puts the full 33-byte compres= sed public key in the witness (~108 witness bytes per input).
- P2TR use= s Schnorr signatures (64-byte witness), but embeds the full 32-byte x-only = public key directly in the scriptPubKey, making outputs 12 bytes larger tha= n P2WPKH and exposing the key in every unspent output.

Neither type = achieves both a compact output and a compact witness simultaneously.
=3D=3D The proposal =3D=3D

P2SKH uses OP_2 <hash160(P.x)> as = the scriptPubKey (22 bytes, same as P2WPKH). Spending requires a single 64-= byte Schnorr signature. Verification works by key recovery: given the signa= ture (R, s) and the challenge e =3D TaggedHash("P2SKH/challenge",= R.x || hash160(P.x) || msg), the verifier recovers P =3D e^-1 * (s*G - R) = and checks that hash160(P.x) matches the program. The sighash reuses the BI= P341 transaction digest, so cross-version replay is prevented by the script= PubKey commitment.

The result is the smallest combined footprint of = any current single-key output type =E2=80=94 a 22-byte output with a 64-byt= e witness =E2=80=94 while keeping the public key off-chain until spending.<= br>
=3D=3D Tradeoffs =3D=3D

The key-recovery step costs roughly o= ne extra field inversion and scalar multiplication compared to direct Schno= rr verification. This is the price of the 12-byte output size reduction.
=3D=3D Open questions =3D=3D

1. BIP360 also claims witness vers= ion 2. If both proposals advance, one needs to move. Version 3 seems like a= natural alternative for P2SKH.
2. Naming =E2=80=94 "P2SKH" fo= llows the established pattern but "P2TRKH" has been suggested to = emphasise Schnorr/taproot lineage. Opinions welcome.

Full draft: https://github.com/sashabeton/bips/blob/3cb9e07984b571e9510= 370ab7e7218620be580dc/p2skh.md
PoC implementation: https://git= hub.com/bitcoin/bitcoin/pull/34826

Thanks in advance for any fee= dback.

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+...@googlegroups.com.=
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/3dcadd5d-702a-4e6c-ad= 6c-2ddfe68ec73en%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoind= ev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoind= ev/ee240078-88c6-4961-8412-489a77012038n%40googlegroups.com.
------=_Part_522193_46490041.1773676812547-- ------=_Part_522192_1845189045.1773676812547--