Bitcoin pod lupou, časť 1/2

Bitcoin v detaile, adresa

Bitcoin je decentralizovaná anonymná kryptografická peer-to-peer virtuálna mena, poprvýkrát popísaná v článku z roku 2008, ktorého autor/autori vystupujú pod pesudonymom Satoshi Nakamoto. V tomto článku sú popísané základné, skôr technické vlastnosti systému, nič sa v ňom nehovorí o napr. množstve obeživa. Článok je k dispozícii TU.

Systém začal fungovať v januári 2009, kedy bola tiež uverejnená prvá verzia klientského programu Bitcoin-qt. Neexistuje tu centrálna autorita, čo jej dodáva stabilitu; nezasahuje do nej žiadna vláda, nie je možné ju falšovať, devalvovať či zabavovať účty. Nie je možné revertovať transakcie. Neexistuje tu inflácia, nakoľko Bitcoin je mena deflačná (objem peňazí v systéme je konečný). Poplatky za prevod sú nulové, pokiaľ chcete transakciu urýchliť, tak si môžte "priplatiť". A navyše rastie počet inštitúcií, ktoré túto menu akceptujú.

Systém Bitcoinu pozostáva z účastníkov, ktorí majú každý svoju adresu, prípadne niekoľko adries. Účastník môže vytvoriť transakciu, ktorú rozošle uzlom siete. Úlohou uzlov je skladať transakcie do blokov, ktoré sa zostavujú do jednej veľkej reťaze blokov, predstavujúcej kompletnú históriu transakcií, ktorá je distribuovaná. O každej časti systému si bližšie povieme v nasledujúcich kapitolách.

(vývoj kurzu BTC voči USD na burze MtGox od januára 2011 po začiatok mája 2013)

Celkovo bude v systéme vytvorených 21 milónov Bitcoins. Vedľajšou jednotkou Bitcoin je Satoshi, pomenovanej podľa pseudonymu autora systému. Pri vzniku Bitcoin bola hodnota 1BTC okolo 1 centu, dnes je to okolo 108USD. Na grafe môžte vidieť, ako sa vyvíjal kurz BTC voči doláru za posledné 2 roky. Za povšimnutie stojí vystrelenie hodnoty Bitcoin v apríli tohto roka na vyše 220USD, odvtedy sa však drží okolo hranice 110USD za 1BTC.

Adresa

Aby bolo možné prijímať a odosielať platby, musí mať každý účasník nejaký identifikátor svojho konta. Nakoľko sa jedná o kryptografický systém postavený na asymetrickej kryptografii, každý účasník disponuje privátnym kľúčom a z neho spočítaným verejným kľúčom, z ktorého sa vypočíta adresa. V rámci Bitcoin klienta máte tzv. peňaženku, v ktorej si môžte viesť viacero adries.
 
Pre tých, ktorí nevedia ako funguje asymetrická kryptorafia, odporúčam aspoň článok na wikipédii. V skratke - algoritmicky je vygenerovaný privátny a verejný kľúč. Správa podpísaná privátnym kľúčom sa dá overiť iba verejným kľúčom. Verejný kľúč je známy, aby mohol byť overený autor správy, privátny kľúč musí ostať utajený, v opačnom prípade dôjde k strate identity. Je výpočetne veľmi náročné (faktorizácia na prvočísla, eliptické krivky,...) získať z verejného kľúča kľúč privátny.

Základom je algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm, mimochodom nesprávne implementovaný v PlayStation 3), pomocou ktorého je vygenerovaný privátny kľúč o dĺžke 256 bitov. Privátny kľúč je veľmi dôležitý - práve naň sú totiž naviazané všetky platby a voči nemu je držaný zostatok!

Samotná Bitcoin adresa, na ktorú je možné prijímať platby alebo z nej platby odosielať, je generovaná práve z verejného kľúča (a ten je generovaný z privátneho kľúča). Postup je nasledovný:

  1. máme 256-bitový privátny kľúč vygenerovaný algoritmom ECDSA z eliptickej krivky Secp256k1 podľa štandardu SEC2 (viac TU).
  2. vygenerujeme 520-bitový nekomprimovaný verejný kľúč PubK
  3. nad verejným kľúčom spočítame SHA256 hash, výstup - 256-bit číslo S = SHA256(PubK)
  4. S prebehneme hashovacou funkcoiu RIPEMD-160, výstupom je 160-bitové číslo R = RIPEMD(S)
  5. pred R pridaj číslo verzie, v súčasnosti 0x00, výstup má 168 bitov E = "0x00"+R, kde "+" značí bitovú konkatenáciu
  6. spočítaj SHA256 nad E, nad výsledkom znova SHA256, výstup 256-bit D = SHA256(SHA256(E))
  7. Z čísla D zober prvých 32 bitov, ktoré predstavujú kontrolný súčet adresy, označ ako C
  8. Adresa vznikne spojením E+C (+ je opäť konkatenácia), čím dostávame 200-bitovú Bitcoin adresu.
  9. Aby bola lepšie čitateľná, používa sa prevod čísla do formátu base58 (obdoba base64, ale bez znakov l,I,O,0 - malé L a veľké I, nula a veľké O; nakoľko sa podobajú)               

Prefix 0x00, ktorý sme pridali v kroku 5, má v kódovaní base58 špeciálny index 1, preto každá Bitcoin adresa začína týmto číslom. Sieť môže mať najviac 2160 adries, teda približne 1048 účastníkov (limitom je 160-bit RIPEMD hash). Typický príklad adresy je napr.

1eSahYh6smKHziWcT7JZYoARVvyDM39d5

Adresu si môže vygenerovať kto chce, nepotrebujete dokonca ani pripojenie k internetu alebo niekam zadávať osobné údaje, obvykle to za Vás obstará klientský program alebo webová služba. Z tohto pohľadu poskytuje Bitcoin anonymitu pri platení (internet treba až pri použití adresy). Navyše môžte používať toľko adries, koľko sa Vám zapáči. Rozsah adries je tak veľký, že je teoreticky nepravdepodobné (ehm, nikdy nehovor nikdy), aby v systéme existovala kolízia, resp. aby dvaja ľudia vygenerovali či už rovnaký privátny kľúč a rovnakú adresu, alebo rovnakú adresu z rôzneho privátneho kľúča. Až do doby, kým niekto nezlomí SHA256 alebo RIPEMD-160...

Komentáre (1)
Petr
Obchodujete někdo i pomocí BTC binární opce? Já jsem nedávno našel stránku http://bitplutos.com , kde se dají obchodovat zcela anonymně, tak se chci zeptat, jestli tu má někdo s touto stránkou zkušenosti. Moc se mi líbí jejich platforma, tak asi vyzkouším pár obchodu :). Kdyby je někdo měl, tak mi napište prosím na petr88@email.cz
Pridať nový komentár
TOPlist