Urgent:
Please be advised that qBTC is not trading on pump.fun , on any dex, Solana or as an ERC20 token.
If someone directs you to a token claiming to be qBTC please know that this is a SCAM.
Only rely on our official X for official qBTC news.
Thank you.
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
All of China's PQC algorithms have been broken in one day.
Readers added context they thought people might want to know
NGCC first-round PQC candidates (84 public-key submissions) were announced Sept 20; reports detail mostly implementation bugs in reference code for some, not all candidates or any finalized algorithms.
niccs.org.cn/niccs/Notice/p…
ngcc.dev/reports/index.…
github.com/ngcc-dev/ngcc-…
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
Yesterday:
Quantum physicists: publish paper about breakthrough resource reduction for Shor's algorithms.
Bitcoiners: It's total BS quantum is fake!
Today:
One random guy from Starkware: publishes paper about a possible way to do emergency PQ transactions that require a dedicated GPU and $200 (no formal security proof)
Bitcoiners: Quantum is solved we're saved!
It comes as no surprise that Google has announced a 2029 quantum migration deadline.
Some of us have been saying this for the past year++
Quantum safety cannot be layered on top of classical cryptography.
If the base layer isn’t secure in a post-quantum world, neither is the system built on it.
We won’t ship a compromise.
We’re now evaluating launching as a sovereign L1. Bitcoin, rebuilt for the post-quantum era
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
Quantum threat forces 63-year old investment bank to abandon Bitcoin
sg.finance.yahoo.com/news/qu…
We are grateful to @TokenizeCon and @michaelterpin for giving us the opportunity to talk about the quantum threat to Bitcoin
If quantum computers hack Bitcoin, Bitcoin dies."
And it won't be slow, it'll be fast.
The Federal Reserve just warned about "Harvest Now, Decrypt Later" attacks. $700B+ in $BTC is already at risk. @bitcoinqs broke it down at Tokenize Conference 👇
#Bitcoin #QuantumComputing #BTC
Thank you @saylor for your vote of confidence on the BIP that our chief scientist Christian Papathanasiou @0xfffffffa co authored with Jameson Lopp @lopp
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
Today, @IBM and @Cisco announce plans to collaborate on laying the groundwork for a distributed quantum computing network: ibm.co/6011B3DXS
Our first milestone: entangling a pair of cryogenically separated quantum processors within the next five years.
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
"Today, we announce our plans with Cisco to study how we can link quantum processors to lay the groundwork for distributed quantum computing."
IBM and Cisco are working on building the first fault-tolerant network of quantum computers by early 2030s
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
Behind building a quantum computer lies a world of subtle sounds. This ASMR journey invites you into the lab’s quiet rhythms, gentle hums, and intricate patterns of work, offering a glimpse into the focus and precision that drive scientific discovery.
A one-degree change at the start of a voyage determines whether you reach your destination safely or collide with disaster.
Bitcoin has the same opportunity today.
If we make that one-degree course correction now, we strengthen the system for the next century.
If we don’t, the math is unforgiving — and the outcome is inevitable.
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
$IBM just unveiled Quantum Nighthawk, its most powerful quantum processor yet.
IBM says verified quantum advantage will be proven by more people before 2026 ends.
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
Today, we launched Helios, a technological marvel redefining the possible. Helios is the most accurate quantum computer in the world, with 98 of the highest fidelity physical qubits ever released, and 48 error-corrected logical qubits.
Learn more: quantinuum.com/blog/introduc…
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
My IBM quantum 5-Bit ECC key break is now on arXiv. arxiv.org/abs/2507.10592
Breaking a 5-Bit Elliptic Curve Key with a 133-Qubit Quantum Computer ⚛️
This experiment breaks a 5-bit elliptic curve cryptographic key using Shor’s algorithm. Executed on @IBM's 133-qubit ibm_torino with @qiskit, a 15-qubit circuit, comprised of 10 logical qubits and 5 ancilla, interferes over ℤ₃₂ to extract the secret scalar k from the public key relation Q = kP, without ever encoding k directly into the oracle. From 16,384 shots, the quantum interference reveals a diagonal ridge in the 32x32 QFT outcome space. The quantum circuit, over 67,000 layers deep, produced valid interference patterns despite extreme circuit depth, and classical post-processing revealed k = 7 in the top 100 invertible (a, b) results.
Code Walkthrough
1. Group Encoding
Restrict attention to the order‑32 subgroup ⟨𝑃⟩ of an elliptic curve over 𝐹_p.
Map points to integers:
0𝑃 -> 0, 1𝑃 -> 1, …, 31𝑃 -> 31.
Group law becomes modular addition:
(𝑥𝑃) + (𝑦𝑃) = ((𝑥 + 𝑦) mod 32))𝑃.
This experiment uses an elliptic curve over F_p with a cyclic subgroup of order 32, mapping P -> 1 and Q = 7P -> 23 in ℤ₃₂. The code assumes precomputed scalar multiplication, abstracting away explicit coordinates.
2. Quantum Registers
Register a: five qubits for the exponent 𝑎 ∈ {0, …, 31}.
Register b: five qubits for 𝑏 ∈ {0, …, 31}.
Register p: five qubits initialized to ∣0⟩ to hold the point index.
Classical register c: an 10-bit register to record the measured values of a and b.
3. Superposition Preparation
Apply Hadamards to every qubit in a and b:
31
1/32 ∑ ∣a⟩_a ∣b⟩_b ∣0⟩_p
a, b=0
4. Oracle construction U_f
Goal is a reversible map:
∣a⟩ ∣b⟩ ∣0⟩ -> ∣a⟩ ∣b⟩ ∣aP + bQ⟩.
Add aP: for each bit a_i (weight 2^𝑖), add (2^𝑖 P) mod 32
Add bQ: compute (2^𝑖 𝑄) mod 32, then add controlled on 𝑏_𝑖.
These use 5-qubit controlled permutation gates. All constants are derived from the elliptic curve’s generator P and the public point Q.
No gate ever directly references the secret k.
5. Global State after Oracle
The state evolves into:
1/32 ∑ ∣a⟩∣b⟩∣f(a, b)⟩, where f(a, b) = a + kb (mod32).
a, b
6. Isolate Point Register
The algorithm needs only the phase relation in 𝑎, 𝑏. A barrier isolates p.
7. Quantum Fourier Transform (QFT)
QFT 31
∣a⟩ -> 1/√32 ∑ e^((2πi)/32 au) ∣u⟩,
u=0
QFT 31
∣b⟩ -> 1/√32 ∑ e^((2πi)/32 bv) ∣v⟩.
v=0
8. Interference Pattern
The joint amplitude for observing (u, v) is:
1/32 ∑_(a, b) e^((2πi/32)(au + bv)) δ_(a + kb ≡ 0) = 1/32 δ_(u + kv ≡ 0 (mod 32)), which forms a diagonal ridge in the 32x32 outcome grid.
9. Measurement
Measure all ten logical qubits. Outcomes concentrate on the 32 distinct pairs satisfying u + kv ≡ 0 (mod 32).
10. Classical Post-Processing
Bitstrings are endian-flipped and parsed into (a, b) pairs. Keep only rows where gcd(b, 32) = 1, ensuring b is invertible. The candidate key is computed as:
k = (-a) b^(-1) mod 32
The script then:
Extracts the top 100 highest-count invertible (a, b) results.
Computes k for each.
Prints each (a, b) pair, recovered k, and count.
Declares success if k = 7 appears in the top 100.
11. Verification and Storage
The correct scalar k = 7 is confirmed if it appears in the top 100 invertible results.
All raw bitstring counts, qubit layout, and metadata are saved to JSON for further visualization and analysis.
Results
2025-06-25 19:41:29,294 | INFO | Circuit depth 67428, gate counts OrderedDict({'sx': 56613, 'cz': 34319, 'rz': 15355, 'x': 157, 'measure': 10, 'barrier': 1})
base_primitive._run:INFO:2025-06-25 19:41:29,994: Submitting job using options {'options': {}, 'version': 2, 'support_qiskit': True}
SUCCESS — k = 7 found in top 100 results
Top 100 invertible (a, b) pairs and recovered k:
(a= 8, b=11) → k = 8 (count = 63)
(a=12, b= 9) → k = 20 (count = 58)
(a= 0, b= 3) → k = 0 (count = 54)
(a= 1, b= 9) → k = 7 (count = 54) <<<
(a=28, b= 1) → k = 4 (count = 53)
(a= 0, b=11) → k = 0 (count = 53)
(a= 8, b= 9) → k = 24 (count = 53)
(a= 8, b= 3) → k = 8 (count = 53)
...
(a=11, b= 3) → k = 7 (count = 41) <<<
...
(a=25, b= 1) → k = 7 (count = 32) <<<
This run successfully retrieved the secret scalar k = 7 using a 5-bit ECC key (order-32 subgroup), extending my previous 4-bit attack to a space with 1024 possible (a, b) combinations and φ(32) = 16 invertible b values.
k = 7 appears three times in the top 100:
(a = 1, b = 9) -> k = 7 with 54 counts
(a = 11, b = 3) -> k = 7 with 41 counts
(a =25, b = 1) -> k = 7 with 32 counts
These are high-frequency states, making them credible attack vectors under classical post-processing.
The counts exhibit concentration around structured modular relations: a + kb ≡ 0 mod 32. These appear as diagonal ridges in the 32x32 measurement space. Several k values recur often (k = 0, 24, 28), showing the probabilistic overlap intrinsic to quantum interference, some of these are false positives from noise or aliasing with other modular equivalences.
Circuit depth was 67,428, with a total of 106,455 gates, reflecting a large, complex quantum routine for controlled modular index arithmetic. This may be the largest amount gates I've used in a circuit.
Gate counts for the circuit:
sx: 56613
cz: 34319
rz: 15355
x: 157
measure: 10
barrier: 1
Total gates: 106455
Depth: 67428
Width: 133 qubits | 10 clbits
This experiment took 54 seconds to complete on 'ibm_torino'.
The noise profile is nonuniform but decaying, meaning the quantum system likely resolved dominant harmonics in the interference but blurred out finer structures. The distribution tail still contains valid k = 7 candidates, this supports dictionary-style quantum attacks where top-N result scans (N = 100) are sufficient to retrieve the key.
The Raw Count Heatmap (a vs b) above (full code on Qwork) shows a 32x32 grid represents the observed counts for each pair (a, b) after running Shor’s circuit. The heatmap shows a banded and uneven distribution, indicating interference ridges, not noise. Certain rows (a values) have visibly higher concentration, suggesting constructive interference along specific a + kb ≡ 0 mod 32 solutions.
The Histogram of Recovered k Values above (full code on Qwork) aggregates the total counts for each recovered scalar key k ∈ Z₃₂, derived via k = −ab^(−1) mod 32. A huge spike at k = 0 and another around k = 24 are dominant. The correct key k = 7 is not the highest, but is well represented (~54 + 41 + 32 = 127 counts across multiple (a, b) pairs). This shows that hackers can dictionary attack a larger amount of results.
The Bitstring Rank vs Count (Log-Scale) above (full code on Qwork) shows a Zipf-like rank plot of all bitstrings by descending count. The log-scale y-axis shows an exponential tail, most outcomes occur <10 times. The head (top ~50) bitstrings have steeply higher probability, indicating constructive interference peaks. You could build a quantum heuristic dictionary attack that harvests only the top N bitstrings with exponential return on signal. This validates the quantum signal-to-noise structure is still intact even with longer circuits (67428 depth).
The Locations of (a, b) Decoding to k = 7 above (full code on Qwork) shows each dot is an (a, b) pair that decoded to k = 7. Color intensity equals the number of times this pair occurred. The plot shows a relatively uniform distribution across (a, b), but with local peaks at (1, 9), (11, 3), (25, 1). Multiple (a, b) combinations converge to k = 7 with non-uniform multiplicity. From a cryptanalytic standpoint, this validates that Shor’s algorithm can reliably break ECC keys even when the correct k is not the top 1 result.
The Invertibility Mask for b Register above (full code on Qwork) shows a bar chart of counts for each b ∈ {0, …, 31} that are coprime with 32 (gcd(b, 32) = 1, only these are invertible modulo 32 and useful for recovering k via:
k = (−a)b^(−1) mod 32. Invertible b's are well-populated, showing the circuit did produce recoverable candidates. More uniformity here would increase post-processing power, ideally, these would be flat.
The Modular Inverse Frequency Map: b vs b^(−1) mod 32 above (full code on Qwork) shows a heatmap of how often each invertible b maps to each corresponding modular inverse b^(−1) mod 32, weighted by result counts. Most points fall on a clean bijective line, each b maps cleanly to a unique b^(−1), confirming correctness of modular inversion. Brighter regions (near bottom left or top right) show favored b's from the quantum sampling. No off-diagonal noise or clustering, good sign of clean modular structure preserved.
The a + 7b mod 32 Map above (full code on Qwork) assumes k = 7 and plots the value of (a + 7b) mod 32 across all results. The distribution is nearly uniform. This suggests no sharp interference ridge like in the 4-bit case. Why? The 5-bit circuit (with 10 logical qubits) spreads amplitude thinner across 1024 outcomes, reducing contrast. Yet the correct key was still recoverable, indicating many weakly constructive paths, rather than a few dominant ones.
The ECC Attack Efficiency: Valid vs Invalid b above (full code on Qwork) show total counts from samples with invertible b (useful for key recovery) vs. non-invertible b (useless). Over half the results are wasted on invalid b values (gcd(b, 32) != 1). Next design for a 6 bit break could use oracle masking or postselection filtering on valid b-domains.
The Heatmap: (a, b) with Invertible b (mod 32) above (full code on Qwork) focuses only on (a, b) pairs where b is invertible modulo 32, a necessary condition for recovering k. It shows where quantum interference is concentrating within the 1024-point space. The high-intensity regions reveal preferred interference paths, suggesting the quantum state evolved non-uniformly, possibly favoring certain orbits under modular multiplication. It confirms strong enough signal coherence in some regions to isolate valid candidates.
The Distribution of Phase Ridge Angles above (full code on Qwork) bins the angles formed by (-a, b) vectors in the plane, modulo π, which roughly correspond to phase ridges in QFT space. Peaks in the histogram indicate strong alignments, resonances, of the form u + kv ≡ 0, meaning the circuit successfully encoded k into the interference pattern even though the full state space is vast. The multiple dominant angles suggest harmonics of the hidden shift are present.
The Residue Map of a + 7b mod 32 above (full code on Qwork) visualizes the output residue for the specific target key k = 7, across the entire (a, b) space. Any consistent bands or symmetries here indicate how well the interference amplified valid solutions (where this value equals 0). You can observe which regions of the 1024 lattice correspond to a + 7b ≡ 0, validating that the oracle’s structure led to successful key imprinting.
The Noise: Variance of Count across b for fixed a above (full code on Qwork) shows how noisy or stable the output counts were for each fixed a as we vary b. High variance means some b values lead to strong amplification while others do not, implying circuit sensitivity or backend noise for that a-row. Smooth regions imply quantum coherence, while spikes may point to decoherence or error propagation during oracle evaluation.
In the end, this experiment successfully broke a 5-bit elliptic curve key using Shor’s algorithm executed on IBM’s 133-qubit quantum processor, extending the prior 4-bit result into a significantly larger interference space (32x32 = 1024 outcomes). This circuit encoded the oracle over ℤ₃₂ without ever referencing the secret scalar k, and leveraged modular group arithmetic to entangle the scalar into phase interference. The quantum circuit, over 67,000 layers deep, produced valid interference patterns despite extreme circuit depth, and classical post-processing revealed k = 7 in the top 100 invertible (a, b) results. Through visualizations this experiment confirmed diagonal ridge structures, invertibility masks, and harmonic alignment of interference ridges, validating that quantum coherence remained strong enough to amplify the correct modular relationship. This establishes that Shor’s algorithm continues to scale under deeper circuit regimes and that dictionary-based key recovery strategies (top 100 enumeration) remain viable as bit-length increases, showing clear quantum advantage even under noisy real-world conditions.
Code
# Main circuit
# Imports
import logging, json
from math import gcd
import numpy as np
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister, transpile
from qiskit.circuit.library import UnitaryGate, QFT
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2
import pandas as pd
# IBMQ
TOKEN = "YOUR_IBMQ_API_KEY"
INSTANCE = "YOUR_IBMQ_CRN"
BACKEND = "ibm_torino"
CAL_CSV = "/Users/steventippeconnic/Downloads/ibm_torino_calibrations_2025-06-26T02_21_07Z.csv"
SHOTS = 16384
# Toy‑curve parameters (order‑32 subgroup of E(F_p))
ORDER = 32 # |E(F_p)| = 32
P_IDX = 1 # Generator P -> index 1
Q_IDX = 23 # Public point Q = kP, here “23 mod 32” for k = 7
# Logging helper
logging.basicConfig(level=logging .INFO,
format="%(asctime)s | %(levelname)s | %(message)s")
log = logging.getLogger(__name__)
# Calibration‑based qubit pick
def best_qubits(csv_path: str, n: int) -> list[int]:
df = pd .read_csv(csv_path)
df.columns = df.columns.str.strip()
winners = (
df.sort_values(["√x (sx) error", "T1 (us)", "T2 (us)"],
ascending=[True, False, False])
["Qubit"].head(n).tolist()
)
log .info("Best physical qubits: %s", winners)
return winners
N_Q = 5
N_Q_TOTAL = N_Q * 3 # a, b, point
PHYSICAL = best_qubits(CAL_CSV, N_Q_TOTAL)
# Constant-adder modulo 32 as a reusable gate
def add_const_mod32_gate(c: int) -> UnitaryGate:
"""Return a 5‑qubit gate that maps |x⟩ ↦ |x+c (mod 32)⟩."""
mat = np.zeros((32, 32))
for x in range(32):
mat[(x + c) % 32, x] = 1
return UnitaryGate(mat, label=f"+{c}")
ADDERS = {c: add_const_mod32_gate(c) for c in range(1, 32)}
def controlled_add(qc: QuantumCircuit, ctrl_qubit, point_reg, constant):
"""Apply |x⟩ → |x+constant (mod 32)⟩ controlled by one qubit."""
qc.append(ADDERS[constant].control(), [ctrl_qubit, *point_reg])
# Oracle U_f : |a⟩|b⟩|0⟩ ⟶ |a⟩|b⟩|aP + bQ⟩ (index arithmetic mod 32)
def ecdlp_oracle(qc, a_reg, b_reg, point_reg):
for i in range(N_Q):
constant = (P_IDX * (1 << i)) % ORDER
if constant:
controlled_add(qc, a_reg[i], point_reg, constant)
for i in range(N_Q):
constant = (Q_IDX * (1 << i)) % ORDER
if constant:
controlled_add(qc, b_reg[i], point_reg, constant)
# Build the full Shor circuit
def shor_ecdlp_circuit() -> QuantumCircuit:
a = QuantumRegister(N_Q, "a")
b = QuantumRegister(N_Q, "b")
p = QuantumRegister(N_Q, "p")
c = ClassicalRegister(N_Q * 2, "c")
qc = QuantumCircuit(a, b, p, c, name="ECDLP_32pts")
qc.h(a)
qc.h(b)
ecdlp_oracle(qc, a, b, p)
qc.barrier()
qc.append(QFT(N_Q, do_swaps=False), a)
qc.append(QFT(N_Q, do_swaps=False), b)
qc.measure(a, c[:N_Q])
qc.measure(b, c[N_Q:])
return qc
# IBM Runtime execution
service = QiskitRuntimeService(channel="ibm_cloud",
token=TOKEN,
instance=INSTANCE)
backend = service.backend(BACKEND)
log .info("Backend → %s", backend .name)
qc_raw = shor_ecdlp_circuit()
trans = transpile(qc_raw,
backend=backend,
initial_layout=PHYSICAL,
optimization_level=3)
log .info("Circuit depth %d, gate counts %s", trans.depth(), trans.count_ops())
sampler = SamplerV2(mode=backend)
job = sampler .run([trans], shots=SHOTS)
result = job.result()
# Classical post‑processing
creg_name = trans.cregs[0].name
counts_raw = result[0].data.__getattribute__(creg_name).get_counts()
def bits_to_int(bs): return int(bs[::-1], 2)
counts = {(bits_to_int(k[N_Q:]), bits_to_int(k[:N_Q])): v
for k, v in counts_raw.items()}
top = sorted(counts.items(), key=lambda kv: kv[1], reverse=True)
# Success criteria. Check top 100 invertible rows for k = 7
top_invertibles = []
for (a_val, b_val), freq in top:
if gcd(b_val, ORDER) != 1:
continue
inv_b = pow(b_val, -1, ORDER)
k_candidate = (-a_val * inv_b) % ORDER
top_invertibles.append(((a_val, b_val), k_candidate, freq))
if len(top_invertibles) == 100:
break
# Check for success and print results
found_k7 = any(k == 7 for (_, k, _) in top_invertibles)
if found_k7:
print("\nSUCCESS — k = 7 found in top 100 results\n")
else:
print("\nWARNING — k = 7 NOT found in top 100 results\n")
print("Top 100 invertible (a, b) pairs and recovered k:")
for (a, b), k, count in top_invertibles:
tag = " <<<" if k == 7 else ""
print(f" (a={a:2}, b={b:2}) → k = {k:2} (count = {count}){tag}")
# Save raw data
out = {
"experiment": "ECDLP_32pts_Shors",
"backend": backend .name,
"physical_qubits": PHYSICAL,
"shots": SHOTS,
"counts": counts_raw
}
JSON_PATH = "/Users/steventippeconnic/Documents/QC/Shors_ECC_5_Bit_Key_0.json"
with open(JSON_PATH, "w") as fp:
json.dump(out, fp, indent=4)
log .info("Results saved → %s", JSON_PATH)
# End
Full code for all visualizations using run data on Qwork.
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
THE RACE IS ON
5 firms are forecasting multi-1000 logical Qubit capability within 5 years, enough to break Bitcoin. Hot on their heels are a dozen more firms tracking the same outcome a couple years later. The Quantum Race is a national security priority, and capital continues to flood the market at staggering pace. We must upgrade Bitcoin in 2026!
Quantum Safe Bitcoin qBTC | Co-authors of BIP361 retweeted
We just entangled 120 qubits — the largest entangled state ever achieved on a quantum computer.
Read the full letter here: arxiv.org/abs/2510.09520v1




























