public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
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 --]

             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