Jeden zostatok, dva príkazy
Predstavte si, že Anna ovláda digitálnu hodnotu desať jednotiek. Takmer naraz podpíše desať jednotiek Bobovi aj Eve. Nemá pritom dvadsať jednotiek. Vytvorila dva návrhy, ktoré chcú použiť ten istý zdroj. Tieto platby sú navzájom konfliktné a obe nemôžu platiť súčasne.
Tá istá fyzická bankovka nemôže byť naraz v dvoch pokladniach. Digitálne správy sa však ľahko kopírujú a šíria rôznymi cestami. Jednotlivé počítače ich preto môžu prijať v inom poradí. Bez spoločného pravidla by Bob aj Eva mohli chvíľu veriť, že ich platba prišla prvá.
Prečo správny podpis nestačí
Anna môže oba príkazy podpísať platným súkromným kľúčom. Podpis potvrdí, že ich naozaj schválila. Neurčí však, ktorý príkaz má celá sieť prijať. Ani čas v zariadení odosielateľa nie je spoľahlivý. Dá sa zmeniť a správy putujú sieťou rôzne dlho.
Bežné digitálne platby nechajú rozhodnúť banku alebo vydavateľa peňazí. Správca vedie zostatky či zoznam použitých jednotiek. Prvú prijatú platbu zaúčtuje a druhú odmietne. Aj staršie návrhy digitálnej hotovosti často používali banku. Tá pri prijatí mince kontrolovala jej sériové číslo alebo opakované použitie.
Ako Bitcoin vyberá spoločnú históriu
Bitcoinové transakcie sa šíria medzi uzlami. Uzol odmietne transakciu, ktorá míňa už použitý výstup. Výstup je časť skoršej transakcie, ktorú možno minúť podľa stanovených podmienok. Ťažiari z platných transakcií zostavujú kandidátne bloky. Potom hľadajú dôkaz práce, teda výpočtovo náročné riešenie. Každý blok odkazuje na predchádzajúci.
Niekedy vzniknú na krátky čas dve platné vetvy. Uzly potom sledujú platný reťazec s najväčším nahromadeným dôkazom práce. Jedna konfliktná platba zostane v prijatej histórii. Druhá sa v tomto stave nemôže platne minúť. Každý ďalší blok zvyšuje množstvo práce nad transakciou. Preto sa pri vyššej sume často čaká na viac potvrdení.
- uzol kontroluje podpisy, pravidlá aj to, či výstup ešte nebol minutý
- dôkaz práce dáva navrhovanej histórii merateľnú váhu
- ďalšie potvrdenia postupne znižujú riziko zmeny prijatej vetvy
Riešenie nie je kúzlo ani absolútna istota
Transakcia mimo bloku ešte nemá potvrdenie. Príjemca preto musí počítať s možným konfliktom. Ani prvé potvrdenie nedáva absolútnu matematickú konečnosť. Čím viac práce pribudne nad blokom, tým drahšie je vytvoriť silnejšiu alternatívnu históriu. Potrebný počet potvrdení závisí od sumy, okolností a prijateľného rizika.
Bezpečnostný model predpokladá, že útočník dlhodobo neovláda rozhodujúci výpočtový výkon. Používateľ sa tiež spolieha na správne pravidlá vo svojom softvéri. Bitcoin preto nerobí každý podvod nemožným. Sťažuje najmä spätnú zmenu prijatej histórie. Náklady útoku sú merateľné a pravidlá môže verejne kontrolovať každý uzol.