Proof of work

Proč se pálí elektřina a co přesně tím vzniká.

Co se naučíš: Pochopíš, co přesně se za spálenou energii kupuje a proč nejde vymyslet úspornou variantu.

6 min čtení + cvičeníNavazuje na:👥 Dvojí utracení

Nejčastější věta o Bitcoinu je, že „řeší složité matematické úlohy". Není to pravda a v kapitole o hashi sis to změřil: neřeší se nic složitého, jen se hází kostkou, dokud nepadne dost nul.

Otázka, která stojí za odpověď, je jiná. Proč se ta elektřina pálí a co přesně tím vzniká?


K čemu je práce dobrá

Vrať se k problému pořadí. Potřebuješ, aby se tisíce cizích lidí shodly, který blok je další, a nemůžeš hlasovat podle hlav, protože identity jsou zdarma.

Proof of work řeší tohle: udělá z hlasování něco, co stojí peníze. Kdo chce navrhnout blok, musí prokázat, že spálil energii. Nedá se to předstírat, nedá se to zkopírovat a hlavně se to dá ověřit okamžitě, i když hledání trvalo dlouho.

Ta asymetrie je celý vtip:

Náklad
Najít platný blokmiliony až biliony pokusů
Ověřit, že blok je platnýjeden hash

Proto může slabý telefon zkontrolovat práci, na které se dřelo celé datové centrum.


Co ta práce doopravdy kupuje

Nekupuje bezpečnost v obecném smyslu. Kupuje jednu konkrétní věc: cenu přepisu historie.

Když chce útočník změnit starý blok, musí znovu udělat všechnu práci od té změny dál a ještě dohnat síť, která pokračuje. Čím víc bloků nad transakcí je, tím dražší to je. Bezpečnost transakce se tedy dá vyjádřit v korunách, což je vlastnost, kterou databáze nemá.

Odtud plyne i nepříjemný důsledek: bezpečnost je úměrná ceně vynaložené energie. Kdyby mineři odešli, síť by nebyla „stejně bezpečná, jen pomalejší". Byla by levnější na přepsání.


Kdo dostane odměnu a proč

Miner, který blok najde, si do něj napíše transakci, která posílá odměnu jemu. Odměna se skládá ze dvou částí:

  • Emise, tedy nově vzniklé mince. U Bitcoinu se každé čtyři roky půlí a někdy kolem roku 2140 skončí.
  • Poplatky z transakcí v bloku.

Nikdo tu odměnu neschvaluje. Prostě si ji napíše, a ostatní uzly zkontrolují, že nepřekročila pravidla. Kdyby si napsal víc, blok se nerozšíří.

To je hezká ukázka toho, jak celý systém funguje: nikdo nemá pravomoc, každý má právo veta.


Proč to dělají mineři poctivě

Nedělají to z dobroty. Dělají to proto, že se jim to vyplatí víc než podvádět:

  • Útok vyžaduje ohromný výkon, který stojí peníze každou hodinu.
  • Kdyby byl útok viditelný, hodnota měny by spadla, takže by útočník znehodnotil vlastní vybavení i odměny.
  • Poctivé minování má jistý výnos, útok má nejistý.

Jinými slovy: bezpečnost neplyne z toho, že by se účastníci chovali hezky, ale z toho, že se jim nevyplácí chovat se jinak. To je ekonomický, ne kryptografický argument, a je dobré to vědět, protože ekonomika se může změnit.


Známé námitky, poctivě

„Je to plýtvání." Z hlediska fyziky se energie mění na teplo a jediný produkt je pořadí transakcí. Jestli to za to stojí, je hodnotový soud, ne technická otázka. Technicky platí, že kdyby se práce zlevnila, zlevnil by i útok, takže „efektivnější proof of work" je protimluv.

„Stačilo by méně." Množství práce si neurčuje protokol, ale mineři svým výkonem. Protokol jen upravuje obtížnost tak, aby bloky chodily po deseti minutách. Kolik se spálí, závisí na ceně měny, ne na návrhu.

„Je to centralizované." U velkých sítí je mining koncentrovaný do pár těžebních skupin, což je reálný problém. Zároveň platí, že skupina neurčuje pravidla, jen pořadí, protože platnost bloků ověřují uzly.


Cvičení

  1. Proč nejde proof of work udělat energeticky úsporný, aniž by se snížila bezpečnost?
  2. Miner si do bloku napíše odměnu dvojnásobnou. Co se stane a kdo ho zastaví?
  3. Odměna za blok se každé čtyři roky půlí. Co to znamená pro bezpečnost sítě v dlouhém období?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Protože bezpečnost je definovaná jako cena přepisu, a ta se rovná ceně vykonané práce. Kdyby se stejná práce dala udělat za desetinu energie, stála by desetinu i pro útočníka. Úspora tedy nemůže zvýšit poměr mezi cenou útoku a cenou obrany; jediné, co se změní, je absolutní číslo na faktuře za elektřinu. Snížit spotřebu při zachování bezpečnosti jde jedině změnou principu, tedy třeba přechodem na proof of stake, kde je vsazený kapitál místo energie.
  2. Blok bude neplatný a první soused, kterému ho pošle, ho zahodí. Pravidla emise ověřuje každý uzel nezávisle, takže se takový blok vůbec nerozšíří a miner přijde o vykonanou práci. Nezastaví ho žádná autorita; zastaví ho to, že nikdo jeho blok nepřijme. Je to právo veta rozdané všem místo pravomoci svěřené jednomu.
  3. Bezpečnost bude čím dál víc záviset na poplatcích místo na emisi. Pokud poplatky nedorostou dost na to, aby nahradily klesající emisi, klesne výnos z minování, část výkonu odejde a přepis historie zlevní. Je to otevřená otázka, protože poplatky závisí na poptávce po místě v blocích, a ta se nedá naplánovat. Bývá to označováno jako bezpečnostní rozpočet sítě.

Shrnutí

  • Proof of work je hádání, dokud hash nesplní podmínku. Nic složitého se neřeší.
  • Jeho účelem je nahradit hlasování podle hlav něčím, co nejde vyrobit zdarma.
  • Nalezení je drahé, ověření je jeden hash. Ta asymetrie je celý mechanismus.
  • Práce kupuje cenu přepisu historie, takže bezpečnost je vyjádřitelná v penězích.
  • Nikdo nemá pravomoc, každý uzel má právo veta nad neplatným blokem.
Co přesně proof of work kupuje?

Cenu přepsání historie. Kdo chce změnit starý blok, musí znovu udělat veškerou práci od té změny dál a ještě dohnat síť, která pokračuje. Bezpečnost transakce se proto dá vyjádřit penězi, a roste s počtem bloků nad ní.

Proč nejde vymyslet energeticky úsporný proof of work se stejnou bezpečností?

Protože bezpečnost je definovaná cenou práce, kterou by musel zaplatit útočník. Kdyby stejná práce stála desetinu energie, stála by desetinu i jemu, takže poměr mezi cenou útoku a obrany zůstane stejný. Snížit spotřebu se stejnou zárukou jde jen změnou principu, například přechodem na vsazený kapitál místo energie.

Kdo zastaví minera, který si napíše vyšší odměnu, než pravidla dovolují?

Nikdo konkrétní. Jeho blok je neplatný a každý uzel to ověří sám, takže ho první soused zahodí a blok se vůbec nerozšíří. Miner tím přijde o vykonanou práci. Systém nedává nikomu pravomoc rozhodovat, dává všem právo odmítnout.