WIF

chaos entropie generátor | hash wif mmBIP32-84 | adresy transakce blockchain halving


WIF (Wallet Import Format) je specifický formát pro ukládání a přenos privátních klíčů v Bitcoinových peněženkách. Tento formát zajišťuje, že privátní klíče mohou být bezpečně a jednoduše importovány do různých peněženek. Ačkoli WIF není přímo popsán v žádném konkrétním BIP (Bitcoin Improvement Proposal), je dobře známý a používán v Bitcoinové komunitě.


1AGAMA8wpYMH6Q9EjThLuEAPW7C9J3gbK9
secret test:
467bd9d7a542e34532d4bccd383921a75c3f36b98a541ee9d3fc2a3ce07d451d6f41d6ca98408a5a74cebd8e293e5a9e6c4479c3be5746d791ae1621e65f6118785099ae8f0e9e5b7486b386262413a3741d73dfd6613fa8e9d07f49843a4d42


1AGAMA8…. je vanity („marnivá“) adresa. Což je speciální Bitcoinová adresa, která obsahuje požadovanou sekvenci znaků, což z ní činí nejen vizuálně atraktivní prvek, ale také potenciální marketingový nástroj. Vytvoření takové adresy vyžaduje určitou úroveň technických znalostí a může být potřebný i jistý výpočetní výkon a čas. Generování správné kombinace znaků může být i poměrně. Kromě vizuální přednosti mívá vanity adresa i bezpečnostní výhodu – eliminuje možnost chyby při rozpoznávání adresy, protože útočníci obvykle nevěnují čas ani zdroje k tomu, aby podvrhli adresu s identickým vzhledem v kompletním kontextu, což přispívá k ochraně před phishingovými útoky.

WIF (Wallet Import Format): Umožňuje přímý import privátního klíče v „tradičním“ formátu. (Electrum, Mycelium, Wasabi Wallet, Samourai Wallet…)
BIP39: Standard pro mnemotechnickou frázi (seed), která umožňuje generování hierarchických deterministických peněženek.
SLIP39: Standard pro sdílení seedu (Shamir’s Secret Sharing) používaný hlavně v hardwarových peněženkách, jako je Trezor.



1. WIF Formát v Kódu Bitcoin Core:

WIF formát je popsán v implementaci Bitcoin Core, konkrétně v části kódu, která se zabývá privátními klíči a jejich konverzí do formátu WIF.

V Bitcoin Core kódu najdete implementaci WIF v souboru:

Funkce v kódu Bitcoin Core, které souvisejí s WIF, jsou například:

2. Struktura WIF:

WIF formát je definován následujícími kroky:

  1. Prefix:
    • Přidá se prefix 0x80 pro Bitcoin Mainnet (pro Testnet je to 0xEF).
  2. Privátní klíč:
    • Privátní klíč je 32 bajtů dlouhé číslo (256 bitů).
  3. Kompresní příznak (volitelný):
    • Pokud je privátní klíč komprimovaný, přidá se bajt 0x01 na konec.
  4. Checksum:
    • Vypočítá se dvojitý SHA-256 hash na celém řetězci (prefix + privátní klíč + případný kompresní příznak) a z výsledku se vezmou první 4 bajty, což je kontrolní součet (checksum).
  5. Base58Check kódování:
    • Výsledný řetězec (prefix + privátní klíč + případný kompresní příznak + checksum) je zakódován pomocí Base58Check.

Function generate_bitcoin_address:

Parameters:
private_key_bytes: The 256-bit private key in bytes.
compressed: A boolean flag indicating whether to generate a compressed or uncompressed address.
Public Key Generation:
If compressed is True, the public key is compressed, meaning it will be 33 bytes long.
If compressed is False, the public key is uncompressed, meaning it will be 65 bytes long.
Hashing:
SHA-256 followed by RIPEMD-160 is applied to the public key bytes.
Version and Checksum:
A version byte (0x00 for Bitcoin Mainnet) is prepended.
The checksum is calculated using double SHA-256, and the first 4 bytes are appended.
Base58Check Encoding:
The final address is encoded in Base58Check format.

3. Příklad WIF specifikace:

4. BIP:

Ačkoli WIF není přímo součástí žádného BIP, WIF souvisí s těmito BIPy:

Shrnutí:


xx https://github.com/vbuterin/pybitcointools (2015)
-> https://github.com/primal100/pybitcointools (2021)

https://github.com/agama-point/agama_point_crypto/blob/main/lbc_guru_dio.py



Zde je rozšířená tabulka (chatGPT 2024/06) s více peněženkami a nahrazeným sloupcem SLIP39 za LN (Lightning Network):

AplikacePlatformaPodpora WIFPodpora BIP39Podpora LN (Lightning Network)
ElectrumDesktop (Windows, macOS, Linux), AndroidAnoAnoAno
MyceliumMobilní (Android, iOS)AnoAnoNe
CoinomiMobilní (Android, iOS), Desktop (Windows, macOS, Linux)NeAnoNe
ExodusDesktop (Windows, macOS, Linux), Mobilní (Android, iOS)NeAnoNe
Trust WalletMobilní (Android, iOS)NeAnoNe
Ledger LiveDesktop (Windows, macOS, Linux), Mobilní (Android, iOS)NeAnoNe
Trezor SuiteDesktop (Windows, macOS, Linux), WebNeAnoNe
ArmoryDesktop (Windows, macOS, Linux)AnoAnoNe
Wasabi WalletDesktop (Windows, macOS, Linux)AnoAnoNe
BlueWalletMobilní (Android, iOS)AnoAnoAno
Samourai WalletMobilní (Android)AnoAnoAno
Green (Blockstream)Desktop (Windows, macOS, Linux), Mobilní (Android, iOS)NeAnoAno
Muun WalletMobilní (Android, iOS)NeAnoAno
Zap WalletDesktop (Windows, macOS, Linux), Mobilní (Android, iOS)NeNeAno
Breez WalletMobilní (Android, iOS)NeNeAno
Phoenix WalletMobilní (Android, iOS)NeNeAno
Sparrow WalletDesktop (Windows, macOS, Linux)AnoAnoNe
Bitcoin CoreDesktop (Windows, macOS, Linux)AnoNeNe
Zeus WalletMobilní (Android, iOS)NeNeAno

Vysvětlení:

Klíčové body: