Transakcija je šla skozi. Raziskovalec blokov piše „1 potrditev“. Je zdaj konec?
Odvisno, koliko je na kocki. In to je pošten odgovor, ne izmikanje.
Kaj potrditev sploh je
Ko rudar tvojo transakcijo uvrsti v blok in ta blok postane del verige, ima transakcija eno potrditev.
Vsak naslednji blok, ki se zgradi nad njim, doda še eno. Po petih nadaljnjih blokih jih ima šest.
Zakaj to šteje? Ker vsak blok stoji na prejšnjem. Če bi hotel nekdo tvojo transakcijo izbrisati iz zgodovine, bi moral znova zgraditi njen blok in vse bloke nad njim — in to hitreje, kot preostalo omrežje gradi naprej. Vsaka potrditev to nalogo podraži.
Bitcoin ne pozna stikala med „ni potrjeno“ in „dokončno“. Pozna zvezno lestvico stroška: vsaka potrditev naredi razveljavitev dražjo. Dokončnost je ekonomska, ne pravna.
Ničla, ena, šest
0 potrditev. Transakcija je v mempoolu, vidna, a v nobenem bloku. Je obljuba, ne dejstvo. Pošiljatelj jo lahko poskusi nadomestiti z drugo — kako, pove naslednji modul. Za nekaj evrov je to sprejemljivo tveganje; za nekaj tisoč ni.
1 potrditev. Transakcija je v verigi. Za veliko večino vsakdanjih plačil je to povsem dovolj. Razveljavitev bi zahtevala, da nekdo v istem trenutku najde konkurenčni blok in prepriča omrežje, naj gradi na njem — možno, a redko in drago.
3 potrditve. Uveljavljen kompromis pri srednjih zneskih. Približno pol ure.
6 potrditev. Konvencija za velike zneske. Približno ena ura. Verjetnost razveljavitve je na tej točki tako majhna, da je v praksi zanemarljiva.
Od kod izvira šestica
Iz Satoshijevega izvirnega članka. V njem je izračunal, kako hitro pada verjetnost, da napadalec z manjšinsko močjo dohiti pošteno verigo.
Padec je eksponenten. Vsaka dodatna potrditev verjetnost zmanjša za večkratnik, ne za odstotek. Pri šestih blokih je številka tako majhna, da so jo v praksi vzeli za dovolj — in navada se je prijela.
Pomembno: v protokolu te meje ni. Bitcoin nikjer ne pravi, da transakcija po šestih blokih postane veljavna; veljavna je takoj, ko je v bloku. Šestica je ocena tveganja, ki jo je uveljavila praksa. Vsak prejemnik jo lahko postavi drugače in mnogi jo.
Reorganizacija verige
Občasno se zgodi, da dva rudarja skoraj hkrati najdeta blok. Za kratek čas obstajata dve različici verige.
Omrežje to razreši samo od sebe: naslednji blok se zgradi na eni od obeh in ta postane daljša. Vozlišča vedno sledijo verigi z največ vloženega dela, zato krajšo opustijo. Njene transakcije se vrnejo v mempool in so praviloma uvrščene v enega naslednjih blokov.
Temu pravimo reorganizacija. Globina ena je normalen pojav in se zgodi občasno. Globlje reorganizacije so izjemno redke.
Prav zato ima ena potrditev manjšo težo kot šest: če pride do reorganizacije globine ena, transakcija z eno potrditvijo se lahko za trenutek znajde nazaj v čakalnici. S šestimi to praktično ni mogoče.
Zakaj borza čaka dlje kot kavarna
Zdaj je razlika logična.
Kavarna prodaja kavo za tri evre. Napad, ki bi razveljavil tvoje plačilo, bi napadalca stal veliko več, kot je kava vredna. Kavarna zato lahko mirno sprejme plačilo z ničlo ali eno potrditvijo — ekonomika je na njeni strani.
Borza sprejema poljubno velike pologe. Pri dovolj velikem znesku napad ni več nesmiseln. Zato čaka dlje.
To ni nezaupanje do tebe. Je izračun.
Če sprejemaš plačila z ničlo potrditev, ne glej samo tega, da je transakcija vidna. Pri večjih zneskih počakaj vsaj eno potrditev — vidna transakcija je obljuba, ne dejstvo.
Zakaj ne more biti hitreje
Vprašanje, ki se ponuja: zakaj bloki ne bi prihajali vsako minuto?
Ker potrditev ni administrativni korak, ampak nabran strošek. Deset minut ni zamuda, ampak čas, v katerem se v verigo vloži delo, ki jo dela nespremenljivo. Krajši razmiki bi pomenili več sočasno najdenih blokov, več reorganizacij in manj gotovosti na potrditev.
Satoshi je sam že leta 2010 opozarjal, da za veliko primerov uporabe čakanje na blok sploh ni potrebno in da lahko ponudnik plačil oceni tveganje v desetih sekundah. Njegovi odgovori na to vprašanje so zbrani v članku Satoshi z lastnimi besedami v bazi znanja.
Za zapomniti
- Potrditev = blok, v katerem je transakcija, plus vsi bloki nad njim.
- Dokončnost je zvezna in ekonomska, ne stikalo.
- 0 potrditev je obljuba; 1 zadošča za vsakdanja plačila; 6 je konvencija za velike zneske.
- Šestica ni v protokolu — je navada iz Satoshijevega izračuna.
- Reorganizacije globine ena so normalne, globlje so izjemno redke.
Dejavnost
Poišči poljubno transakcijo v raziskovalcu blokov in si zapiši njeno število potrditev ter čas, ko si pogledal.
Vrni se čez eno uro in poglej znova.
Izračunaj, koliko potrditev je pridobila. Približno šest? To je tempo, s katerim bitcoin gradi gotovost — in edini urnik, ki ga ima.