Satoshiho tajemství – Proč byla velikost bloku omezena na 1MB

Kdokoli, kdo zná Bitcoin, si je zajisté vědom problémů, které přináší 1MB limit velikosti bloku a jaká panuje kontroverze ohledně toho, jak škálovat bitcoinovou síť. Bude tedy stát za to se zpětně podívat, jak vlastně tento limit vznikl, a jak se podobným problémům vyhnout v budoucnu díky dobrému porozumění problému.

Před dávnými časy v předaleké zemi

V roce 2010, kdy byl limit zaveden, byl Bitcoin diametrálně jiný, než dnes. Theymos, administrátor fóra Bitcointalk a subredditu /r/bitcoin, řekl mimo jiné:

  • „Nikdo nepředpokládal vznik sdružených těžebních poolů, takže jsme si mysleli, že všichni těžaři budou představovat plnohodnotné uzly a že téměř všechny plnohodnotné uzly budou těžaři.
  • Nepředvídal jsem vznik ASIC strojů, které těžbu hodně zcentralizovaly.
  • Neplnohodnotné uzly jsou slabší, než se čekalo. Pokud nebude většina uzlů v síti plnohodnotných, pak budou mít těžaři velkou motivaci tajně spolupracovat a ohýbat tak pravidla ve svůj prospěch.
  • Transakční poplatky nefungují tak, jak si Satoshi původně představoval, ale vysvětlení by vydalo na několik odstavců.“

Zdá se, že jednoho krásného dne v roce 2010 si Satoshi uvědomil, že musí být velikost bloku omezena, jinak by někteří těžaři mohli produkovat větší bloky, než jsou ostatní ochotni akceptovat, a došlo by tak k rozdělení sítě. Proto Satoshi do zdrojového kódu vložil 1MB limit na velikost bloku – a udržoval ho v tajnosti.

Velké tajnosti

Ano, Satoshi držel tuto změnu v tajnosti až do vypuštění patche a zřejmě požádal ty, kdo tuto část kódu objevili, aby se o tom nešířili. Pravděpodobně chtěl držet tuto informaci pod pokličkou proto, aby případným útočníkům zabránil provést DOS útok na síť. Theymos říká:

„Satoshi nikdy nepoužíval komunikátor IRC a jen zřídka vysvětloval svou motivaci pro cokoli. V tomto případě o změně mlčel a řekl lidem, kteří ji objevili, aby se o ní taktéž nešířili, aby případní útočníci nevyužili této slabosti a neuvrhli při této změně pravidel síť do chaosu.“

Také je možné, že Satoshi nikdy nečekal, že by 1MB limit mohl kdy být problém. V té době dosahovala průměrná velikost bloku o celé řády menších čísel a vypadalo to, že bude dost času najít jiné řešení. Satoshi sám o velikosti bloku uvedl:

„Změnu pravidel můžeme zavést později, pokud tato potřeba vyvstane. Dá se zavést změna, jako například:

if (blocknumber > 115000)

maxblocksize = largerlimit

Může se to zaimplementovat v ranějších verzích software, takže až dosáhneme daného bloku a pravidlo se aktivuje, budou již verze toto pravidlo neobsahující zastaralé a nepoužívané. Až se budeme blížit k tomuto bloku, pak můžu do starších verzí zabudovat upozornění na nutnost upgrade.“

Je zřejmé, že Satoshi považoval odstranění limitu velikosti bloku za triviální záležitost a neměl ani tušení, jakou bouři tato změna zdrojového kódu může vyvolat.

Předvídatelné problémy

Uživatel „kiba“ na fóru Bitcointalk přidal prorocký komentář těsně po zavedení limitu:

„Pokud (software) upgradujeme již nyní, nebudeme později muset přesvědčovat tolik lidí, pokud bitcoinová ekonomika i nadále poroste.“

Jeff Garzik zase v reakci na Satoshiho komentář, že limit může být kdykoli zvýšen, pokud to bude situace vyžadovat, uvedl:

„Podle mě je to věc marketingu. Bude těžké lidi přesvědčit, aby začali síť používat, když nebude mít dostatečnou transakční kapacitu.“

Proč tak malý?

Mnoho lidí se Satoshiho na fórech ptalo, proč nezavedl větší limit, například 8MB. Ten ve své odpovědi uvádí tři důvody:

  • „Nebylo to nutné, protože i ty největší do té doby vytěžené bloky měly daleko méně, než 1MB.
  • Mělo být lehké tento parametr změnit – stačilo prostě vyměnit jedno číslo ve zdrojovém kódu.
  • Větší bloky přinášejí technické výzvy.“

V roce 2010 nebyly internetové technologie na takové výši, takže by větší bloky nemusely hladce procházet. V roce 2015 se Theymos zpětně zamýšlí:

„Jeden z těch jasných a srozumitelných problémů je to, že aby síť fungovala plynule, je nutné, aby jednotlivé uzly byly schopny posílat informace o nově vytěžených blocích minimálně osmi a více dalším uzlům. Tudíž při 8MB blocích by to vyžadovalo přibližně (8MB * 8 bitů * 7 uzlů) / 30 sekund = 15Mbit/s. To je slušná rychlost uploadu ještě dnes, po 7 letech. Jelikož to u většiny tehdejších uzlů bylo těžko představitelné, síť by se pravděpodobně rozpadla kvůli nedostatečnému připojení k internetu. Internet neměl dostatečnou kapacitu pro všechny, takže by se stávalo, že díky pomalejšímu připojení by se síť často desynchronizovala, což by způsobovalo velké množství slepých řetězců, které by vznikaly a zase rychle zanikaly.

Segregated Witness a Lightning Network

V dnešní době je součástí bitcoinového protokolu část kódu nazývaná Segregated Witness (o kterém jsme letos často psali), který odděluje podpisy od transakčních dat a ukládá je mimo blockchain, čímž síti v podstatě dovoluje „podvádět“ s velikostí bloku, zatímco zdrojový kód tyto bloky stále považuje za menší, než 1MB. SegWit také opravuje problém zvaný „transaction malleability“ a umožňuje vznik takzvané Lightning Network.

Ta představuje způsob, jak využít platební kanály mezi jednotlivými uživateli pro bezpečné a rychlé transakce bez nutnosti mít důvěryhodnou třetí stranu. Peníze mohou díky LN změnit majitele bez nutnosti zapisovat tuto skutečnost do blockchainu, čímž se ušetří místo – blockchain již dnes dosahuje velikosti přes 100GB. Když se z blockchainu odstraní staré podpisy a nebudou se do něj přidávat zbytečná data, pak bude snadné provozovat plnohodnotný uzel i na průměrných počítačích. Lightning Network by musela být periodicky synchronizována s BTC blockchainem, ale umožnila by dramatický nárůst transakční kapacity za velmi malých nárůstů velikosti blockchainu.

V současnosti neexistuje žádná funkční implementace LN na hlavní síti, ale pár verzí existuje v testovacích sítích. Lightning Network bude zcela dobrovolný a uživatelé si budou moci vybrat, jestli poslat transakci běžnou cestou z adresy na adresu, nebo přes LN.

Další článek

Bitcoin Gold

Související

A máme zde další z nekonečné řady článků o škálovacích řešeních v oblasti Bitcoinu....

PŘIDEJTE SE DO DISKUZE