V dnešnom svete internetu a elektronického nákupu sa stále spoliehame na platbu v klasických reálnych menách s núteným obehom (tzv. fiat mena). Budúcnosť bude možno patriť kryptografickým virtuálným menám - ako napr. Bitcoin. A práve na ňu si v tomto článku posvietime.
Elektronická mena
Chcem si kúpiť napr. kompletnú ságu Hviezdnych vojen na Blu-Ray. Nie som náročný, nepotrebujem nutne nové médiá, chcem ušetriť. Nová kolekcia by v našich končinách vyšla na asi 75€, čo rozhodne nie je málo. Prichádza teda rad na nejaký zahraničný portál, kde by som mohol túto kolekciu kúpiť hoci aj po niekom, ale za lepší peniaz. Otváram eBay a po pár kliknutiach sa dostávam k tomu, čo hľadám - najlacnejšia ponuka je za 44€ aj s poštovným z Kanady, a to dokonca za úplne nové balenie. Nie je o čom. Klikám Buy Now, nasleduje presmerovanie na platbu cez PayPal, kde zaplatím v dolároch, ktoré sa mi automaticky zamenia a strhnú z môjho účtu, kde si ukladám "reálne" peniaze.
Podobných scenárov je denne nespočet, pričom majú vždy spoločného menovateľa - človek platí v elektronickom svete reálnymi peniazmi, či už prostredníctvom nejakej peňažnej služby ako PayPal alebo napr. zadaním údajov kreditnej karty (tu obzvlášť pozor!).
Vždy však platíme jednou zo svetových "papierových" mien - tzv. fiat menou, ktorá je centrálne spravovaná príslušnou národnou bankou, ktorá ju vydáva. Jej hodnota je okrem iného určená výmenným kurzom, dlhopismi, zahraničnými rezervami a dopytom. Centrálna banka reguluje kurz meny, čím sa snaží udržať hodnotu meny stabilnú, nenavyšuje zbytočne jej hodnotu aby ochránila exportérov pred stratami, taktiež aby sa jej kurz neprepadal, aby sa ľuďom neprepadla napr. hodnota mzdy. Svoje taktiež zohráva dôvera - pokiaľ by určitá centrálna banka stratila dôveryhodnosť, hodnota meny by zletela dole - napr. kvôli nekontrolovanej emisii peňazí.
V peňažnom systéme je dôvera veľmi kľúčový pojem - nezaložíte si účet v banke, pokiaľ by ste nemali istotu, že neskrachuje do pár rokov, takisto nezveríte životné úspory nebankovej inštitúcii, kde Vám sľubujú 30% výnos (aj keď také tu bohužiaľ bolo).
Ide to aj iným spôsobom
V posledných približne 4 rokoch sa však rozmáhajú systémy, ktoré s vyššie uvedeným zaužívaným monetárnym systémom fiat peňazí majú pramálo spoločného. Sú to elektronické systémy, teda meny čisto virtuálne. Na rozdiel od vyššie spomenutého fiat systému, kde obeživo vydáva centrálna banka slúžiaca aj ako dôveryhodná autorita, takéto systémy sú obvykle decentralizované. A keďže existujú také, ktoré sa uchytili, znamená, že si stihli vytvoriť medzi investormi/ľuďmi dôveru natoľko, aby ich začali používať. Na druhej strane, vzhľadom na neexistujúcu legislatívu môžu predstavovať určité rizitko.
Virtuálne menové systémy ako fenomén začínajú vzbudzovať záujem aj u tradičných finančných inštitúcií - napr. ECB (Európska Centrálna Banka) vypracovala analýzu virtuálnych menových systémov s cieľom odhaliť riziká a bezpečnosť týchto systémov a to z dôvodu, že ju odborníci, novinári ale aj bežní ľudia zasypávali množstvom otázok ohľadne týchto menových systémov. Text správy má asi 50 strán a je možné si ju stiahnuť TU.
V tejto správe sú systémy virtuálnych mien rozdelené do 3 kategórií:
- Typ 1: uzavreté systémy, používané najmä v hrách
- Typ 2: jednosmerné systémy (len nákup virtuálnej meny) s obvykle pevne daným kurzom, za ktoré si môžeme okrem virtuálnych služieb zakúpiť aj reálny tovar.
- Typ 3: obojsmerné systémy (nákup a predaj virtuálnej meny), správajúce sa ako plnohodnotné zameniteľné meny, za ktoré je možné si kúpiť nielen elektronické služby a tovar, ale aj reálne služby a tovar.
Typ 1 poznajú všetcia hráči počítačových hier - zabijete príšeru vo World of Warcraft, z ktorej Vám môže vypadnúť určitý obnos zlatých mincí, ktoré sú však čisto v hre. Nemôžete s nimi von, čomu bráni aj EULA, s ktorou hráč musí súhlasiť. Existuje samozrejme aj čierny trh so zlatom. Je však zaujímavé, že sa ECB zaoberala aj menou v online hrách :)
Typ 2 by sa dal napasovať na internetový obchod, ktorý funguje na báze určitého kreditu - za reálne peniaze si kúpite body, za ktoré nakupujete. Po ich zakúpení ich obvykle nemôžte zameniť naspäť za peniaze - jedine za tovar alebo služby. Príkladom bol svojho času napr. aj Facebook, ktorý síce nie je internetový obchod, ale za Facebook Credits ste si mohli v aplikáciach kúpiť rôzne "extras". FC sa kupovali za reálne peniaze, pričom naspäť ich prevod nebol možný. Systém mal pevný kurz, avšak bol zrušený v júni 2012, kedy boli držiteľom kreditu vyplatené späť peniaze.
Typ 3 je presne to, čo nás zaujíma. Takýto systém práve predstavuje alternatívu k súčasným menovým systémom. Boli vytvorené s cieľom zefektívniť platbu v digitálnom svete, avšak nielen v rámci malej komunity, ale v globálnom meradle. Je celosvetový, neexistuje v ňom centrálna autorita, nevzťahujú sa naň regulačné zákony, kurz voči reálnej mene je často nestabilný. Pre fungovanie využiva asymetrickú kryptografiu, alokácia peňazí je kontrolovaná
tvorcom systému/komunitou ale takým spôsobom, aby bola dôveryhodná - v opačnom prípade by sa systém nepresadil, na druhej strane, pokiaľ si tvorca nechal v systéme nejaké zadné vrátka, sa jedná o rafinovaný podvod. Lákadlom je tiež vysoký stupeň anonymity, pri zakladaní virtuálneho účtu po Vás nikto nebude chcieť občianku či trvalé bydlisko. A ako je z posledných rokov známe, takýto stupeň anonymity v spojení s peniazmi sa nemusí zákonodarcom páčiť. Práve do tejto kategórie patrí Bitcoin, internetová mena fungujúca približne štvrtým rokom, na detaily ktorej sa bližšie pozrieme v nasledujúcich kapitolách.
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ý:
- máme 256-bitový privátny kľúč vygenerovaný algoritmom ECDSA z eliptickej krivky Secp256k1 podľa štandardu SEC2 (viac TU).
- vygenerujeme 520-bitový nekomprimovaný verejný kľúč PubK
- nad verejným kľúčom spočítame SHA256 hash, výstup - 256-bit číslo S = SHA256(PubK)
- S prebehneme hashovacou funkcoiu RIPEMD-160, výstupom je 160-bitové číslo R = RIPEMD(S)
- pred R pridaj číslo verzie, v súčasnosti 0x00, výstup má 168 bitov E = "0x00"+R, kde "+" značí bitovú konkatenáciu
- spočítaj SHA256 nad E, nad výsledkom znova SHA256, výstup 256-bit D = SHA256(SHA256(E))
- Z čísla D zober prvých 32 bitov, ktoré predstavujú kontrolný súčet adresy, označ ako C
- Adresa vznikne spojením E+C (+ je opäť konkatenácia), čím dostávame 200-bitovú Bitcoin adresu.
- 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...
Transakcie
Teraz sa bližšie pozrieme na to, ako je celý systém Bitcoin postavený. Máme nejakú svoju adresu, resp. máme privátny kľúč a k nemu prislúchajúci verejný kľúč, alias Bitcoin adriesu. A tú by sme radi použili pri platení, resp. pri získavaní platieb.
Transakcia medzi dvoma adresami je, z technického hľadiska, správa pre Bitcoin sieť obsahujúca vstupy a výstupy - okrem adries, obnosov peňazí taktiež digitálne podpisy, a to nielen podpis od odosielajúcej strany, ale aj z predchádzajúcej transakcie, z ktorej Bitcoiny pochádzajú.
(jednoduchý sled transakcií, resp. presun meny)
Pokiaľ by som od Majiteľa1 obdržal 1BTC nejakou potvrdenou transakciou a chcel by som túto 1BTC poslať Majiteľovi3 (t.j. vytvárame tretiu transakciu ako na obrázku hore), musím do novej transakcie uviesť ako vstup hash z druhej transakcie, podpísať túto novú transakciu svojím privátnym kľúčom (my = Majiteľ2) a priložiť svoj verejný kľúč pre overenie. Na výstupe sa objaví hodnota 1BTC ako počet Satoshi - najmenšia jednotka BTC, ktorá predstavuje 1/108 BTC (jednu stomilióntinu BTC) - teda uvediem číslo 100000000, časové razítko a samozrejme adresa (= hash verejného kľúča) prijímateľa Majiteľ3.
(skladanie viacerých transakcií)
Vznikal by tu ale problém - ak mám 1BTC a chcem poslať napr. len 0.5BTC? Práve preto môže mať transakcia nielen viacero vstupov (skombinovanie prijatých peňazí z niekoľkých iných transakcií), ale aj viacero výstupov. A práve cez výstupy sa rieši napr. to, ako poslať niekomu 0.5BTC pokiaľ mám evidovaú napr. len jedinú transakciu s prijmom 1BTC. Taká transakcia bude mať 2 výstupy - 0.5BTC nasmerujem recipentovi, a zvyšok pošlem sám sebe. To taktiež zamädzuje odoslať z účtu viac, ako sám vlastním - nemôžem odoslať peniaze, ktoré som nikdy neprijal. Pokiaľ by hodnota peňazí na vstupe bola väčšia ako na výstupe, je tento rozdiel považovaný za transakčný poplatok. O tom však v kapitolách venovaných blokom a dolovaniu.
(transakcia v detaile)
Transakcia tiež obsahuje špeciálny skript (rozdelený na 2 časti - pre vstupy a výstupy) napísaný v zásobníkovom skriptovacom jazyku vytvoreného špeciálne pre Bitcoin. Ako implicitný vstup do prvej časti tohto skriptu je verejný kľúč (nie adresa, adresa je hash verejného kľúča) odosielateľa a digitálne podpísaný hash transakcie od odosielateľa (tiež slúži k zisteniu, či nebolo s transakciou manipulované). V prvej vstupnej časti sa digitálny podpis odosielateľa overí jeho verejným kľúčom. Vo výstupnej časti sa pomocou preddefinovanej sady príkazov udáva postup, ako overiť transakciu, teda v podstate "postup" pre získanie peňazí príjemcom, resp. jeho overenie. Obvykle je prijímateľ overený tak, že na vstup skriptu ide jeho podpis transakcie (teda privátnym kľúčom prijímateľa) a verejný kľúč. V skripte sa najprv overí adresa, ktorá vznikne hashom verejného kľúča. Potom sa verejným kľúčom overí digitálny podpis transakcie prijímateľa, čím potvrdí, že je určená jemu.
Teoreticky je možné uviesť taký skript, ktorý povedie k úmyselne neplatnej transakcii, alebo že transkakcia vôbec nevyžaduje overenie. Na druhej strane, je možné vytvoriť transakciu tak, že bude platná len ak bude pospísaná viacerými kľúčami. Existuje dokonca možnosť požadovať heslo pri prijatí transakcie. Množstvo príkazov v jazyku je pomerne veľké, pre detailnejšie informácie viď TU.
Vďaka tomu, že do transakcie môžu vstupovať len také vstupy, ktoré už sami boli výstupom nejakej inej transakcie, nie je možné v systéme náhodne generovať peniaze, nakoľko pôvod všetkých peňazí je vystopovateľný (viac pri blokoch). Transkakcia je odoslaná nezašifrovane (žiadna správa v rámci Bitcoin protokolu nie je šifrovaná, ale len podpísaná) a to do celej Bitcoin siete, takže síce adresy sú anonymné, pohyb peňazí anonymný nie je - všetci vedia všetko. Pokiaľ by človek používal len jednu jedinú adresu a niekomu by sa podarilo zistiť, že je to práve vaša adresa, je možné sa celkom ľahko dohľadať k Vášmu zostatku. Preto sa obvykle používa viac adries v rámci jednej peňaženky, čím sa tento problém dá eliminovať.
Bloky, verifikácia transakcií
Už v úvode odznelo, že systém Bitcoin je decentralizovaný a teda nemá žiadnu centrálnu autoritu, ktorá by transakcie spravovala. Namiesto toho, systém je distribuovaný medzi množstvo uzlov a tie dokážu spravovať transakcie bez nejakého centrálneho bodu.
V rámci rekapitulácie - transakcia v skratke obsahuje hash predošlej transakcie, digitálny podpis od odosielateľa a jeho verejný kľúč, finančný obnos, adresu prijímateľa a overovací skript.
Bitcoin sieť tvoria okrem účastníkov transakcií taktiež uzly (nodes). Tie sa obvykle na vytváraní transakcií nepodieľajú, ale ich úlohou je práve udržovať konzistenciu transakcií - vytvárajú tzv bloky, ktoré sú zoskupované do veľkej reťaze blokov (block chain). Táto reťaz tvorí históriu všetkých transakcií, ktoré v systéme nastali. Každý jeden uzol musí mať kópiu block chain, aby na základe histórie vedel, či nová transakcia, ktorú odchytil, je platná alebo nie (či sedia podpisy, alebo napr. či sa nejedná o tzv. double spending (dvojité utrácanie - keď sa potenciálny defraudant snaží použiť prostriedky 2x). Veľkosť tejto reťaze pochopiteľne stále rastie, v súčasnej dobe má, k 1.5.2013, 6864MB, teda rastie o necelé 2GB každým rokom (cca 2-3MB za deň). Pokiaľ uzol pozbiera určité množstvo transakcií, ktoré ešte pred ním nikto nepridal do bloku, môže sa pokúsiť z nich takýto blok zostaviť. Formát bloku je nasledujúci:
- identifikátor začiatku bloku, vždy 0xD9B4BEF9
- veľkosť bloku v bajtoch
- hlavička:
- verzia bloku
- hash predchádzajúceho bloku
- hash všetkých transakcií v bloku (koreň hashovacieho stromu, tzv. Merkle tree)
- časové razítko (štandardné, teda počet sekúnd od 1.1.1970)
- tzv. target, cieľ zložitosti
- nonce (32-bitové číslo), tzv. kryptografická soľ
- počet transakcií v bloku
- samotný zoznam transakcií (formát popísaný v predchádzajúcej kapitole)
Vytvoriť obyčajný hash zo všetkých transakcií by bola normálne primitívna a rýchla operácia, čo by však potenciálne predstavovalo bezpečnostnú hrozbu - pokiaľ by bolo jednoduché blok vygenerovať, bolo by možné veľmi jednoduché spamovať po sieti bloky, čím by vznikal chaos. Potenciálne by to mohlo viesť k útokom na sieť s cieľom pripojiť neplatné transakcie do systému. Preto je implementovaný tzv. systém proof-of-work (voľne preložení ako "dôkaz o vykonanej práci"), inšpirovaný systémom HashCash, ktorý napr. zabraňuje spamovaniu. V princípe sa jedná o to poslať správu tak, aby obsahovala nejakú extra informáciu, ktorej pravdivosť je veľmi jednoduché overiť, ale výpočetne náročné spočítať - obvykle to nie je možné dosiahnuť algoritmicky, ale práve hrubou výpočetou silou. Práve spočítanie tejto informácie je dôkaz, že spáva je vierohodná a nebude zahodená.
V systéme Bitcoin ide, v rámci pricípu proof-of-work, o to nájsť taký 256-bitový SHA256 hash bloku transakcií (konkrétne dvojitý hash), ktorý bude čo do hodnoty menší ako tzv. súčasný target daný zložitosťou. Presne definované - nájdi také náhodné 32-bitové číslo nonce, ktoré po pridaní do transakcie spolu s aktuálnym časovým razítkom spôsobí, že po dvojitom zhashovaní dostaneme číslo (hash), ktoré bude menšie, ako aktuálny cieľ zložitosti - teda obsahuje, pokiaľ uvažujeme little-endian zobrazenie, viac núl zľava, ako je cieľ zložitosti (target). Cieľ sa postupne znižuje, čím zložitosť rastie (zložitosť rastie logaritmicky). Táto úloha nie je algoritmicky riešiteľná a k výsledku je možné sa dopátrať jedine hrubou silou náhodným skúšaním (resp. na algoritmický spôsob sa doteraz neprišlo, nie je teda možné predikovať výsledok hashu resp. výsledok dvojitého hashu transakcie), na druhej strane, overiť riešenie je veľmi jednoduché - spočíta sa dvojitý SHA256 hash bloku a overí sa tým, ktorý je uvedený.
Práve vďaka tomu mechanizmu je v celej sieti uzlov vygenerovaný jeden blok raz za približne 5-10 minút a nedochádza tak k spamovaniu blokov po sieti, nakoľko každý uzol vie veľmi rýchlo spočítať, či nový blok v sieti je platný alebo nie. Aby bola táto doba udržovaná, je zložitosť korigovaná a sa mení v priemere každých 2016 blokov (približne každé 2 týždne). Pokiaľ je však zložitosť nastavená príliš vysoko, môže byť pre ďalší blok zložitosť zlížená (teda target nebude znížený o predpokladanú hodnotu, ale o menšiu) a naopak. V dobe písania článku je aktuálny odhadovaný výkon celej siete približne 70TH/s (Tera hashov za sekundu, teda 7*1013 hashov za sekundu), hľadanie bloku je naozaj lotéria.
Transakcia je označená za platnú až vtedy, keď je do block chain pridaných ešte niekoľko ďalších blokov, obvykle 6. Teda trvá približne hodinu, kým je transakcia označená ako potvrdená. Niektoré inštitúcie však môžu vyžadovať viacero potvrdení o transakcii, čo je možné veľmi jednoducho odsledovať.
Aby však uzlom stálo za to hľadať takto špecifikovaný hash, je za vytvorenie bloku odmena, ktorú si pripíše majiteľ uzlu na svoj účet. Vtedy do bloku pridá špeciálnu transakciu s adresou, na ktorú sa mu odmena pripíše. Je to zároveň jediný spôsob, ako sa v celom systéme vytvárajú peniaze. Celé sa to podobá ťažbe zlata - človek musí vykonať nejakú prácu na to, aby ho našiel. A keďže to, čo nájde, má nejakú hodnotu (= je po tom dopyt a ľudia to chcú), môže to so ziskom predať. Preto sa procesu hľadania bloku príznačne hovorí dolovanie, resp. mining, ktorému bude venovený druhý diel článku.
Ďalší spôsob, ako sa uzol (miner) môže dostať k odmene, je transakčný poplatok. Pokiaľ v rámci jednej alebo viacerých transakcií existuje stav, kedy je množstvo BTC na vstupe väčšie ako na výstupe, tento rozdiel pripadá práve majiteľovi uzlu, ktorý spočítal blok s danou transakciou.
Bitcoin klienti
Existuje množstvo programov a webových služieb, pomocou ktorých si môžete založiť Bitcoin adresu/adresy, letmo sa pozrieme na niektoré z nich.
Bitcoin-qt
Referenčný program, v počiatku napísaný samotným autorom Bitcoinu, v súčasnej dobe je na jeho čele Wladimir J. van der Laan. Je napísaný v multiplatformnom rozhraní QT a funguje pod Windowsom, Linuxom aj MacOS. Dostupný je TU, dokonca v slovenčine.
(synchronizovaný Bitcoin-qt klient)
Po prvom spustení Vám automaticky vegeneruje jednu Bitcoin adresu pre príjem platieb.Program však musí stiahnuť celú block chain, ktorú pod Windows ukladá do priečinka %APPDATA%\Bitcoin\, pričom v závislosti na rýchlosti pripojenia a výkonu PC trvá stiahnutie a spracovanie reťaze blkov niekoľko hodín (z vlastného pozorovania okolo 6-12 hodín podľa výkonu počítača). Taktiež štart programu je pomerne dlhý, najmä pokiaľ ste ho nepúšťali hoci aj pár dní, musí sa totiž aktualizovať.
Poskytuje základnú prácu s Bitcoin - disponujete jednou peňaženkou, v rámci ktorej si môžte evidovať viacero adries. Peňaženku tvorí fyzicky súbor wallet.dat (umiestnený taktiež v %APPDATA%\Bitcoin\), kde sú uložené všetky údaje, a to vrátane privátnych kľúčov k adresám, preto sa odporúča tento
súbor zašifrovať (dokáže samotný program). V prípade, že chcete používať jednu peňaženku na viacerých PC, skopírujete súbor wallet.dat a nakopírujete do druhého počítača, napr. v práci. Tento súbor Vám umožnuje dostať sa k svojím peniazom, v prípade straty alebo náhodného zmazania (ak nemáte zálohu) prídete o všetky BTC!
Transakciu vytvoríte veľmi rýchlo - vložíte adresu, sumu a prípadný popis, peniaze sa hneď odošlú. Do hodiny by mala byť transakcia potvrdená.
MultiBit
Práve ťažkopádnosť Bitcoin-qt dala implulz pre vznik alternatívnych klientov. Jedným z nich je napr. MultiBit, napísaný v Jave. Jedná sa o flexibilnejší program než Bitcoin-qt, nakoľko nesťahuje block chain. Má taktiež podporu pre viacero peňaženiek, mal by poskytovať aktuálny výmený kurz BTC na burzách MTtGox a VirtEx, avšak táto funkcia pri testovaní nefungovala. Príjemným prekvapením bola aj podpora slovenčiny.
Ďalšou vychytávkou je podpora QR-kódov - platiť môžete napr. tak, že na stránke chytíte obrázok s QR kódom a pretiahnete ho do okna programu, kde sa z neho automaticky prečíta adresa a požadovaná suma k zaplateniu.
Migrovať medzi klientami sa dá. V podstate potrebujete exportovať Váš privátny kľúč a ten potom naimportovať do nového programu, spolu s približným dátumom, kedy bol vytvorený. Nakoľko každému privátnemu kľúču odpovedá vždy jeden verejný kľúč, vygeneruje sa Vám potom vaša pôvodná adresa. A z blockchain sa zase získa Váš aktuálny zostatok, pričom pre zjednodušenie prehľadávania sa bude reťaz prechádzať len približne od dátumu, ktorý ste uviedli ako vznik kľúča, a nie celá. Presný postup pre MultiBit nájdete napr. TU.
Electrum
Ďalší lightweight klient je napr. Electrum, ktorý si tiež nesťahuje celú blockchain, tú držia spriaznené servery, od ktorých získava potrebné informácie. Sami sa môžte stať jedným zo serverov Electrum a poskytovať blockchain ostatným. Program beží na Windowse, Linuxe aj MacOS.
Po stiahnutí sa Vám vygeneruje peňaženka prostredníctvom generujúceho reťazca, ktorý si môžete uližiť pre prípad zálohy. Zároveň Vám program vygeneruje QR kód pre jednoduchší import privátneho kľúča. Následne si vyberiete Electrum server, z ktorých chcete získavať informácie z block chain, a program je pripravený k použitiu.
Weboví klienti
Ďalším druhom sú weboví klienti. Obvykle nemusíte nič sťahovať do počítača, o správu vášho konta sa stará zvolená webová služba a tak máte svoje konto k dispozícii kdekoľvek. Na druhej strane, stránka musí poskytovať dostatočne kvalitné zabezpečenie proti zneužitiu v prípade, že by boli servery tejto služby napadnuté.
Delia sa na 2 skupiny - u jednej sú všetky vaše údaje, vrátane privátneho kľúča, uložené na strane služby. Druhou skupinou sú tzv hybridné služby - privátny kľúč máte vy, stránke má len jeho hash a na získanie privátneho kľúča potrebuje Vaše heslo. Hybridné vznikli práve po tom, čo bolo niekoľko internetových stránok so správou Bitcoin účtov hacknutých.
(peňaženka vytvorená na webe Strongcoin)
Niektoré stránky poskytujúce Bitcoin online peňaženku
- https://www.strongcoin.com/
- https://blockchain.info/wallet/
- https://coinbase.com/
- https://bips.me/
Nejaké BTC zadarmo
Pokiaľ si založíte účet a chcete vyskúšať, či Bitcoin naozaj funguje, existuje niekoľko stránok, ktoré Vám zadarmo pošlú veľmi malý finančný obnos. Ako môžete vidieť na screenshote z MultiBitu, je tam evidovaná jedna transakcia v hodnote 0.00001BTC (menej ako 1 cent). Tú som obdržal práve od tzv. Bitcoin faucet (faucet = kohútik).
- http://bitcoinfaucet.org/
- http://dailybitcoins.org/
- https://coinad.com/
- http://bitcoiner.net/
- http://cointicket.org/
Ďalej existujú stránky, kde dostávate malý obnos BTC za návštevu reklamných webov. Zarobiť na nich asi nezarobíte, no pre vyskúšanie systému Bitcoin to celkom určite stačí.
- http://www.bitvisitor.com/
- http://earnfreebitcoins.com/
Pokračovanie nabudúce
V prvej časti článku sme si predstavili Bitcoin systém z pohľadu bežného užívateľa. V druhej časti si priblížime dolovanie Bitcoinov, t.j. prácu uzlov siete, a ako si môžte nejaké Bitcoiny zarobiť. Stay tuned :)
Petr