From: "'3D' via Bitcoin Development Mailing List" <bitcoindev@googlegroups.com>
To: bitcoindev@googlegroups.com
Subject: [bitcoindev] Simple Setup for SPHINCS+ Bitcoin-style Address (proof-of-concept)
Date: Sun, 31 May 2026 14:13:03 +0000 [thread overview]
Message-ID: <Z-5YrpxXl7xqYc-R3WBlTHkr5kVE5sIC4rU3W5H1AzGvrHfOcegWUj11nJZBaLJJV8En14lPAB2x7S9eQmocJDYNHAKdr6hRC-qgqyeTMwo=@protonmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2216 bytes --]
Hi bitcoindev,
I’ve been exploring simple ways to derive Bitcoin-style addresses using post-quantum signature schemes. I put together a small, two-program proof-of-concept to show how double-shake256 with SPHINCS+ using small paramaters can produce bitcoin sytled addresses. It would take more to get these as fully working addresses but this uses no elliptic curve maths & has a test mode to produce a multidue of keys to show quickly the outputs possible.
What happens:
- **prog1** takes a 32-byte seed and produces a fixed 105-byte slice from a SPHINCS+ signature.
- **prog2** reduces that slice to a 20-byte payload using SHAKE256-based methods, then creates two kinds of addresses:
- Standard “real BTC” (double-SHA256 + Base58Check)
- “shake + pq-checksum” (double-SHAKE256 + same Base58 format)
It also includes a simple role-based derivation system (Role 0 = master, higher roles = derived children), but that is mostly to show a simple way to get derived children from a master role.
The repo is here:
https://github.com/DigiMancer3D/sphincs-btc-pipeline
It is deliberately minimal, uses official SPHINCS+ reference code with very small SPHINCS+ parameters to make this happen. The idea is if this mehtod was used the paramaters could just be raised back to normal after a major PQC fork while offering a potential hybrid use-case for pre-QC. The parameters can be returned to normal with almost no changes to the pipeline after a PQC fork.
This is different since the payload is derived directly from the SPHINCS+ signature slice without relying on elliptic curves at any point.
I’m sharing this as a discussion piece / proof-of-concept. I’d be very interested in any feedback and questions.
-- DigiMancer3D
--
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 email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/Z-5YrpxXl7xqYc-R3WBlTHkr5kVE5sIC4rU3W5H1AzGvrHfOcegWUj11nJZBaLJJV8En14lPAB2x7S9eQmocJDYNHAKdr6hRC-qgqyeTMwo%3D%40protonmail.com.
[-- Attachment #2: Type: text/html, Size: 2852 bytes --]
next reply other threads:[~2026-06-13 16:04 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 14:13 '3D' via Bitcoin Development Mailing List [this message]
2026-06-13 16:18 ` [bitcoindev] Simple Setup for SPHINCS+ Bitcoin-style Address (proof-of-concept) 'conduition' via Bitcoin Development Mailing List
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='Z-5YrpxXl7xqYc-R3WBlTHkr5kVE5sIC4rU3W5H1AzGvrHfOcegWUj11nJZBaLJJV8En14lPAB2x7S9eQmocJDYNHAKdr6hRC-qgqyeTMwo=@protonmail.com' \
--to=bitcoindev@googlegroups.com \
--cc=digi3d@protonmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox