Block Propagation je šíření nového bloku mezi počítači bitcoinové sítě. Doručení přináší data; teprve vlastní kontrola uzlu rozhodne, zda je blok platný a může se stát součástí jeho přijaté historie.
Představme si, že Anna provozuje těžbu a právě našla nový blok s transakcemi. Blok sdružuje transakce do dávky, která se připojuje ke společné historii. Bitcoin nemá ústřednu, která by ho najednou rozeslala všem. Annin uzel sdělí novinku sousedním uzlům, tedy počítačům, se kterými je spojený. Zpráva postupuje dál a k různým lidem dorazí v různou chvíli. Právě této cestě říkáme Block Propagation. Její rychlost ovlivňuje, jak dlouho ostatní ještě pracují se starou podobou historie. [1] [6]
Petr má doma Full Node: program, který si bitcoinové bloky a transakce ověřuje podle pravidel. Oznámení nového bloku mu samo nestačí. Potřebuje jeho úplný obsah, aby jej mohl zkontrolovat. Ten může stáhnout celý, nebo sestavit z přijaté zprávy a transakcí, které už má. Jako když dostane seznam stránek knihy a doplní je ze své knihovny: přenos je kratší, výsledná kniha však musí být stejná. [1] [7]
Blok má stručnou hlavičku, Block Header. Ta mimo jiné odkazuje na předchozí blok a umožňuje ověřit Proof of Work, důkaz výpočetní práce potřebný pro těžbu. Těžaři jej hledají opakovanými výpočty; ostatní mohou nalezený výsledek rychle zkontrolovat. Je to užitečná první kontrola, nikoli potvrzení správnosti každé platby. Z hlavičky samotné Petr nezjistí, zda mají transakce platné podpisy a zda opravdu utrácejí dostupné, dosud neutracené prostředky. Digitální podpis dokládá oprávnění k platbě pomocí soukromého klíče, tajného číselného údaje, aniž by jej odhalil. UTXO je záznam dosud neutraceného výstupu transakce: obsahuje částku i podmínky, za nichž ji lze utratit. [6] [8]
Mnohé transakce Petr obdržel ještě před vytěžením bloku. Uchovává je v Mempool, místní zásobě nepotvrzených transakcí. Compact Blocks podle BIP 152 toho využívají: místo opakovaného posílání každé transakce přenesou hlavně její krátký identifikátor a některé transakce rovnou celé. Petr pak známé kusy poskládá ve správném pořadí. Zmenší se síťová zpráva, nikoli blok, který se nakonec ověřuje; pravidla jeho platnosti se nemění. [2] [7]
Mempool není jedna společná čekárna pro celý svět. Každý uzel může znát trochu jiné transakce, takže Petrovi něco chybět může. Vyžádá si chybějící data, případně se přenos vrátí k úplnému bloku. To stojí další cestu zprávy tam a zpět. Nejde o důvod obsah odhadnout nebo přeskočit kontrolu. Proto závisí skutečná úspora i na tom, kolik transakcí příjemce už zná. [2] [7]
Rychlejší režim BIP 152 dovoluje blok poslat dál ještě před dokončením všech kontrol transakcí. Neznamená to posílat cokoli naslepo: odesílatel musí mimo jiné ověřit návaznost na ověřený řetězec, Proof of Work a to, že hlavička odpovídá přenášeným transakcím. Přenos a zbývající ověřování pak mohou probíhat souběžně. Full Node přesto přijme blok do své aktivní historie až po úplném ověření. [2] [4] [7]
Než se Annin blok dostane k ostatním, může jiný těžař najít vlastní blok navazující na stejného předchůdce. Část sítě tak chvíli vidí jednu platnou větev, část druhou. Rozhoduje následná nahromaděná práce mezi platnými větvemi, nikoli hlasování počítačů. Opuštěný platný blok označujeme Stale Block. Rychlejší šíření zkracuje prostor pro takový souběh, ale neodstraní ho úplně. [6] [8]
Když se Annin blok šíří pomalu, roste riziko, že ostatní mezitím navážou na konkurenta a její blok zůstane mimo přijatý řetězec. Pak z něj nezíská odměnu v této historii. Dobré spojení proto není jen otázka pohodlí. Jeho výhoda může podporovat soustřeďování těžby u lépe propojených provozovatelů. Samotná pomalá linka však není měřením centralizace ani důkazem útoku. [7] [8]
FIBRE je příklad specializovaného systému pro rychlý přenos bloků. Snaží se omezit zdržení na síti, včetně následků ztracených datových paketů, tedy malých částí přenášené zprávy. Taková cesta může pomoci doručit blok dřív, nedává však svému provozovateli právo určit jeho platnost za Petra. Jeho Full Node potřebuje ověřit stejná pravidla bez ohledu na to, kudy data přišla. [3] [9]
Provoz sítě musí vedle rychlosti hlídat objem dat, soukromí i odolnost spojení. Závislost na jediné cestě je slabina, i kdyby byla rychlá. Podobně je dobré rozlišovat jednotlivá vylepšení: BIP 330, stavební součást Erlay, pomáhá sousedním uzlům zjistit rozdíly mezi sadami oznamovaných transakcí. Nenahrazuje přenos bloků BIP 152. Společným cílem je účinnější komunikace, při níž si každý uzel zachová vlastní kontrolu. [1] [5]
Pro nejúplnější obraz čtěte toto heslo společně s Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. Opačným směrem na něj odkazují také Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.