Every Bitcoin transaction contains one or more digital signatures. These signatures authorize the spending of funds, but they can also inadvertently reveal information about how or “who” have generated them.

Let’s start with a brief description 😉

Wallet fingerprinting is the practice of identifying which wallet, created a particular transaction. Software wallets are already relatively well studied in this area: they differ in how they select UTXOs, order inputs and outputs, estimate fees, etc. By the other hand, Hardware wallets however, have received almost no attention, largely because it’s assumed they’re all the same: isolated signing devices that just produce a deterministic signature and nothing more.

Well, that assumption turns out to be only partly true.


What’s actually in a signature?

To understand fingerprinting on those devices, you need to understand what a Bitcoin signature contains and how it’s encoded.

ECDSA (Legacy and SegWit)

ECDSA signatures produce a pair of values (r,s)(r, s). The rr value is derived from a randomly chosen nonce kk: specifically, r=(kG)xmodnr = (kG)_x \mod n.
The ss value encodes the actual authorization using the private key: s=k−1(z+dr)modns = k^{-1}(z+dr) \mod n.

These values are encoded in DER format, which has a quirk: if either rr or ss starts with a byte of 0x80 or higher, a 0x00 padding byte must be prepended to avoid the value being interpreted as negative (DER uses two’s complement). This means a signature can be anywhere from 70 to 73 bytes long.

Since BIP-62, the ss value is always normalized to the lower half of the curve, capping signatures at 72 bytes. But rr is still variable: roughly 50% of the time, rr starts with a high byte and needs that extra 0x00.

Schnorr (Taproot)

Schnorr signatures always encode to exactly 64 bytes, 32 for the x-coordinate of the nonce point RR, and 32 for ss. No DER encoding, no variable length, no malleability.


The fingerprinting vectors

Given the above, what can actually be used to fingerprint a hardware wallet?

1. Low-r grinding

Some wallets iterate over candidate nonces until rr falls in the low range of the curve (i.e., doesn’t need the leading 0x00). This “low-r grinding” produces signatures that are always 71 bytes instead of the usual 71–72.

{% include figure.liquid path=”/assets/img/posts/hww-fp/ecdsa_len.png” alt=”ECDSA signature length distribution over time” caption=”ECDSA signature length over time. The shift toward 71-byte signatures around October 2018 marks the adoption of low-r grinding in Bitcoin Core v0.17.0. Source: mainnet.observer” class=”img-fluid w-75 d-block mx-auto rounded z-depth-1″ zoomable=true loading=”lazy” %}

The fingerprinting logic here is asymmetric:

  • A 72-byte signature means the wallet does not implement low-r grinding.
  • A 71-byte signature doesn’t prove grinding, it could just be a lucky nonce.

So… it is a probabilistic fingerprint.

2. SIGHASH type

Every ECDSA signature ends with a one-byte SIGHASH flag that defines which parts of the transaction are covered by the signature.

If a transaction uses any SIGHASH type other than ALL, it immediately narrows down which wallets could have produced it, since most hardware wallets only support SIGHASH_ALL.

3. Nonce determinism (RFC 6979)

RFC 6979 defines a way to generate the nonce kk deterministically from the private key and the message, rather than randomly. This means signing the same PSBT twice with the same key should produce identical signatures.

In theory, this could be used for fingerprinting, you just have to sign the same transaction twice and compare. If the signatures are identical, the wallets uses RFC 6979. But in practice, this is only detectable in a lab setting, you can’t broadcast two conflicting transactions, so an external observer on the blockchain cannot use this trait.

During our experiments, we observed some of the wallets implementing RFC 6979 were differing on signature values. We concluded it was related to low R grinding and the number of RFC 6979 rounds they performed to obtain a low-R value.


Building a test environment

One of the practical problems in this research was that some of the wallets we wanted to test only work on Bitcoin mainnet. So we built our own main-net, a parallel Bitcoin mainnet that shares the same genesis block as the real network but runs in complete isolation. See how to replicate it here 🙂

Although this environment is not necessary for signature creation and observation, we needed it to verify whether signatures generated with different sighashes were valid on mainnet.

In any case, find the full setup available at BTC-Labnet.


Results

We tested ten devices, all initialized with the same BIP-39 seed phrase, all connected to Sparrow Wallet (or their official companion app where Sparrow wasn’t supported). For each wallet, we signed the same PSBT multiple times and observed the signatures.

The results clustered into three groups:

Group Behavior
RFC 6979, no low-r grinding Deterministic signatures, 71–72 byte range
RFC 6979 + low-r grinding Deterministic, always 71 bytes
Anti-exfil, no low-r grinding Non-deterministic by design, 71–72 byte range

In case you’ve haven’t heard of anti-exfil.

Wallets like BitBox02 and Jade deliberately introduce external randomness into nonce generation to prevent covert channel attacks (like Dark Skippy, which I’ve written about before). This makes their signatures non-deterministic, and therefore distinguishable from the rest.

On SIGHASH support, the picture was stark. Most wallets refused to sign with anything other than SIGHASH_ALL. Only Ledger Nano S+ and Keystone 3 Pro accepted the full range of SIGHASH types, making them immediately identifiable when those types appear in the wild.

Here’s the summary:

Wallet Low-r NONE SINGLE ANYONECANPAY variants Cluster
Ledger Nano S Plus (Bitcoin App 2.3.0) ✗ ✓ ✓ ✓ A
BitBox02 (Multi 9.21.0) ✗ ✗ ✗ ✗ B
Foundation Passport (2.3.5) ✗ ✗ ✗ ✗ B
Trezor Model T Safe 3 (2.8.7) ✗ ✗ ✗ ✗ B
Trezor Model T Safe 5 (2.8.7) ✗ ✗ ✗ ✗ B
Coldcard Mk4 (5.2.0) ✓ ✗ ✗ ✗ C
Blockstream Jade (1.0.35) ✓ ✗ ✗ ✗ C
KeepKey (7.9.1) ✗ ✗ ✗ ✗ B
Keystone 3 Pro (BTC 1.1.4) ✗ ✓ ✓ ✓ A
SeedSigner (0.7.0) ✓ ✗ ✗ ✗ C

So, are them fingerprintable or not?

Hardware wallets are, in general, much harder to fingerprint than software wallets.

The main difficulty in fingerprinting them is determining whether a signature was produced by a hardware wallet rather than a software one, which is practically impossible without additional information. Even if you know that a transaction was signed using a hardware wallet, you might be able to assign it to one of the three groups of devices. However, there is still no reliable way to distinguish between individual wallets within the same group.

Therefore, we can conclude that individually distinguishing a hardware wallet from a signature is essentially infeasible.

IWANTOGEL Platform Game Online x Is Hardware Wallet Fingerprinting Even Possible? – DISCRYPT

IWANTOGEL Platform Game Online x Is Hardware Wallet Fingerprinting Even Possible? – DISCRYPT membuka sudut pandang yang tidak biasa: apakah fingerprinting hardware wallet benar-benar mungkin, dan apa dampaknya pada akses platform. Bahasannya dibuat ringkas, tapi tetap fokus pada inti yang memancing rasa ingin tahu.

Di tengah topik ini, DISCRYPT menyorot jejak perangkat, pola koneksi, dan cara membaca indikasi teknis yang sering luput diperhatikan. IWANTOGEL hadir sebagai titik masuk pembahasan agar konteksnya tetap jelas dan tidak melebar ke luar tema judul.

Jika Anda ingin memahami arah pembahasan ini secara lebih terstruktur, ikuti alurnya sampai tuntas. IWANTOGEL dan DISCRYPT sama-sama memberi bingkai yang pas untuk menimbang kemungkinan, risiko, dan detail pentingnya.

sgptangkas shio77slot shio88slot shiokerbau siap46slot siap4dslot sibolga 4d sicbotogel sidangslot sigmabet77 sihokislot sihokitoto simpati138 sinar dewa sinarsky76 singamas88 singatogel siri2 raja situsnexus situsresmi situstogel sizi99slot sky388slot sky777slot skytrax666 slot4d 777 slot4d max slot4d vip slot4d win slot4d2com slot5000jp slot5000qq slot88 max slot88lion slot88slot slot88toto slot90slot slot99 bet slotbaru88 slotcash77 slotcity88 slotdepo4d slotdewa99 slotemas88 sloterindo slothoki33 slotjitu88 slotmyamar slotnarsis slotoppo88 slotplus62 slotpuls88 slotrtp138 slotsakura slotter138 slotter303 slottoto12 slottoto77 slottoto88 sniperjitu sobatbet88 sodaqqslot sodocasino soju88slot sokkerland solusitoto sosrotogel spiderslot spin38slot spinbet138 spinslot88 squ gaming srikandiqq ssd138slot star88slot starbet138 starbet303 starclub33 starslot88 starxoslot stationbet storebet88 subangtoto sukajudi88 suksesjitu sulinkemas sultan5000 sultancuan sultanjudi sumbartoto sumberduit sumbertoto sumutpoker superbig77 superjet88 superman77 surga 5000 surga dewa surgabet77 sydneycuan tabel shio taipan99id takasiplay taksibet88 taksipoker tambahkali tampanslot tamu99slot tanahair88 tanduktoto targetjitu tariantoto tarkamtoto taruhan777 tarungtoto tarzanslot tata4dslot tatacasino tatakasino taxislot4d tayo4dslot tebaknomor tebingtoto tegingtoto tekanslots tembaktoto tempur 777 tempurslot terimabola terminal4d terpercaya terpopuler thailand4d thr777slot tiara4d id tigerwin88 tikitaka99 timezone55 timnastoto tinderslot tingting4d titanzslot tkp jpslot togelangka togelbuaya togelcepek togeleibar togelgacor togelkilat togellotre togelmaria togelmimpi togelnesia togelninja togelno 87 togelpedia togelrokok togelrumah togelvespa togelwarna togelzoonk tokeqqslot toko56slot tokohoki78 tombaktoto tongkatbet top 77slot top dewa88 topengtoto topislot4d topslot888 toptrend88 topwin 138 torajatoto tos885slot totalbet88 totalpetir toto26slot toto77play totoberkah totobet123 totocrypto totogpslot totoklik4d totoluna88 totosehati totoslot77 totowayang toyotaplay trabasslot translot55 transtogel tresnototo tri777slot triadmacau trisulabet tuanmuda88 tuna55slot turbotogel turbowin77 tuwagaslot uban4dslot udangtogel ug300gacor ujanggacor unclebet4d unggultoto uno138slot unsur2slot untung 138 unyiljuara utopiaslot v77betslot valbetslot variasi777 vegasslots vegaswin77 velbetslot venetica88 vespatogel vgowinslot vibestogel victory8et victorybet villatogel vip138slot vipcrownqq vipgacor77 vipgacor88 vipoperaqq vipslot123 vipsuper88 viptoto 4d viral77bet viralgacor viraltogel virtueslot virtusslot visa4dslot visual 138 vittonplay viva99slot vivaslot99 vivo4dslot vivoslot4d vivoslot88 vodkapoker voxy88slot vsopgaming vvipbet188 vvipsultan w69 imslot wadahtogel wahanatoto wahidpoker wakanda123 wakanda303 waktugacor wallettoto wangigacor wanitaslot wargabet88 wargapoker warna 2021 warnetplay warung 138 warungdino wasiatslot wayaheslot wayang8899 wayangjitu wayangtoto wd 138slot weboslot88 wechatslot whiskyslot wibu69slot wifi4dslot wifislot88 wijayaslot wijayatoto win138slot win777slot win77gacor win805slot wingsbet88 wingslot77 winliga365 winmegabet winnerbola winning188 winning228 winning365 winning855 winpoker99 winrate777 winslot388 winstar138 wintoto889 wiro77slot wiseplay77 wismagacor wlatogel88 wowslot888 wslot888kk wtobetslot wulingplay xlslot88jp xman77slot xrtotoslot xtototogel xyz388slot yakuzaslot yallashoot yamahatoto yuhuslot88 yuk88yuk99 yukeposlot yukislot88 zamantogel zangertoto zeus69slot zeus77slot zeusslot88 ziatogel28 zigzagslot zilongslot zodiacslot zodiactoto zonaslot88 zoroslot88 zyngatogel 10001slot 1001slots 1001togel 1131sport 123 juara 138 alien 138 bonus 138 gajah 138 games 138 group 138 harta 138 honda 138 kuhap 138 laris 138 pasal 138 pasti 138 petir 138 radar 138 royal 138 sport 138 vegas 138 vodka 138casino 138garuda 138hadiah 138istana 138luxury 138rocket 138rupiah 138sultan 138zeus96 168168bet 177winbet 1xbetslot 25 25slot 2betsslot 2totoslot 2winpoker 337 sport 3dbetslot 3macanbet 3priztoto 4dbetslot 4totoslot 5656gacor 5rajaslot 62 hacker 62079toto 62hackers 66rollwin 6dtoto 4d 7 dewabet 7betpoker 7dewaslot 7evenluck 7shotslot 7totonaga 7totoslot 888gaming 88angkasa 88bigslot 88dewa us 8bantogel 988daftar 988mantap 9kudaslot 9nagahoki 9nagaplay abacasino abadica$h abaslot77 abcwin386 abditogel abg99slot abgqqindo abilawa99 aceking22 aceplay89 aceslot88 adminslot adugaming afb88 j73 agb99slot agen judi agen777ku agenangka agenarena agenbet38 agenbolax agenkilat agenlotre agenproqq agenresmi agens1288 agenvip77 agungtoto ahl omino airslot88 ajaibslot ak4d judi akasaslot akiratoto akongjitu aksara178 aksestoto aktifbola aku4dslot akun zeus akunbet89 akungacor akurat168 akuslot88 aladin666 aladincas alamatbet alexis303 alexis777 alexisbet alfabet89 alfabet99 alibaba99 alienslot aloybet77 alphaslot amazone77 aminototo amosbet77 anakbos88 anaktogel anantabet andatogel andretoto andro 111 anduktoto anekagame angkanalo angkasa78 angkor689 angkot777 angpaw899 angsaslot animeindo animetoto anjaytoto anjirtoto antamtoto antarbett antiktoto apache138 apektogel apollo 77 apollo777 apotekwin appletoto aptogel77 arahpoker areawin38 aremaslot arena5000 arenajaya arenanaga aresbet88 ariftogel arisan 4d arizona88 arjuna168 arjuna189 arjunawin armada365 armada777 aronbet88 artabos99 arthaplay arusbet88 arwahtoto arwana168 arwana188 arwana388 aryagames asalbet88 asalgacor asg55slot asia89bet asiawin66 asiawin77 IWANTOGEL Platform Game Online x Is Hardware Wallet Fingerprinting Even Possible? – DISCRYPT