O čem to je?


K uchování privátního klíče pomůže „seed“ (semínko)

 Aby byl privátní klíč dostatečně bezpečný musí být poněkud delší:

a865acb485c2b8782a2f63a888ceb6d3226dd28b2c10ea314b71d455680f5609fe04afc833681078054126a03c77ac99f1396e1426fd438034be9b8dababde3f 

Privátní klíč má délku 256 bitů, takže se generuje z množiny 2256 čísel. To znamená, že v binárním tvaru jde o řetězec z nul a jedniček dlouhý 256 znaků (0/1).
Ono to je o něco méně, pár znaků se vyhradilo na další hierarchické členění (protože to úplně postačí) takže nepatrně zkrácený privátní klíč je například toto:

11000111010010100110111100110100011110001110010111110011000111101001111011111101001101001100111110001111000111000010101101010010111101111100110011101011101001001010111011110010001011000111001011010110001011001011110011100000111010001110010101100011110011101111010001101000110001101100101101001011011011110010111001110000110001111010000110001110010111101000

wallet_privkey (bin-> base58):  cRM9QqeyGSo44gccBZKoLu4JwHXr5EK3AhrXy7QQFeRmr9aGPcK
(h) 

Jak to bezchybně opsat pro potřebu zálohy? První uživatelé Bitcoinu se s tím trápili a hledali nějaké zjednodušení. A proto vznikl mnemonic seed (dle BIP39):
Privátní klíč (delší řetězec znaků a čísel) se pohodlněji a spolehlivěji uchovává pomocí seedu – což je nejčastěji 12 anglických slov. Varianta je i 24 či jiný počet a existuje i v dalších jazycích) ze kterých aplikace (mobilní nebo počítačové peněženky) umí privátní klíč sestavit (generovat a následně i derivuje všechny potřebné adresy – peněženky).

Což může vypadat takto:

treat captain choice horn school car 
scheme fancy wrong velvet token small 

Nahradili jsme předchozí jedničky a nuly do lépe člověkem čitelné a "přepsatelné" varianty.

Uchování privátního klíče však na dva základní protichůdné požadavky:
1. Musíme ho mít uložen bezpečně tak, aby nás o něj někdo nemohl připravit.
2. Musíme ho ale mít možnost „obnovit“ – a tedy mít i pláb B, abychom ho definitivně neztratili.

Některé nástroje [python] pro práci s PK a podobně:
https://github.com/octopusengine/crypto_agama


Je privátní klíč opravdu tak bezpečný?

Privátní klíč má délku 256 bitů, takže se generuje z množiny  2256  čísel.
 2256 =    115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936
=  1077  (deset a sedmdesát sedm nul - zaokrouhleno)
Tolik privátních klíčů se dá náhodně podle daného popisu vygenerovat. 
Kolik to asi je? Můžeme si to nějak "představit"?

Na Internetu je to všechno dostupné: https://lbc.cryptoguru.org/dio/
(pointou je, že to je generovaná hříčka – a ne databáze, která by vám vyhledala zpětně PK 😀 ale dost lidí kvůli tomu Bitcoinu trochu nedůvěřuje).

Mám takovou analogii: představte si malé zrníčko písku, kterých je v krychlovém milimetru zhruba sto (aby se to dobře počítalo).
V kouli o průměru 1m to je už zhruba 108 zrníček. Což je zatím vyslovitelných sto miliónů. To je přibližně jedno stavební kolečko plné písku. Představte si, že vám je přiděleno jediné zrnko – jako váš privátní klíč. Kdyby mělo odlišnou barvu, asi ho po nějaké době v tom kolečku najdete. Dá to asi práci, ale najdete. Ale jdeme dál, ono jich je víc. Víc než v nějakém lomu? Nebo na nějaké mořské pláži? Víc než na všech plážích světa?

Těch zrníček je 1077 – což zabírá objem 1069 m3.
No a to je koule o průměru …. třetí odmocnina z 2.28 * 1068 je…. něco * 1022 m,
což je koule o průměru 1019 km, plná písku. Uf.
Planeta Neptun je od Slunce vzdálená 4 * 109 km. Musíme vzít v úvahu kouli zahrnující Oortův oblak Sluneční soustavy – plnou písku.

Objem Země je cca 1012 km³ což je
(…12 [km] +3*3 [m] +8 [gs] = 29) 1029 zrnek písku.
Pro 1077 by bylo potřeba (77-29) 1048 planet velikosti Země!

Představte si tedy všechny planety viditelného vesmíru s pískem na povrchu. Tak toho písku je zhruba tak (respektive pořád o něco víc, ta planety by všechny mohly být celé z písku! I jejich Slunce. Všechno z písku!)

A tam hledejte své jedno zrnko!

 All Bitcoin private keys is simply an integer between number 1 and 115792089237316195423570985008687907852837564279074904382605163141518161494337 or HEX: from 1 to 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141.  



Cesty k pokladům

Je samostatný projekt, který se snaží co nejvíce přístupnou formou přiblížit celou škálu možností i úskalí moderních technologií.

Beta ukázka: agamapoint.com/cesty/kpokladum/prestart.php