126 / 736WU

Block Weight

Váha bloku

Proč se do bloku nevejdou všechny čekající platby a proč plný blok nemusí mít pokaždé stejný počet bajtů. Váha bloku omezuje množství dat, které síť přijímá jako jeden celek.

Block Weight je způsob, jak Bitcoin počítá využitou kapacitu bloku, tedy skupiny transakcí přidávané do společné historie. Různé části dat se započítávají rozdílně. Váha má pevný horní limit; neurčuje počet plateb ani hodnotu převáděných bitcoinů.

Transaction Fees: velikost a poplatek transakceOdhadněte virtuální velikost transakce, poplatek podle vlastní sazby a jeho orientační hodnotu ve zvolené měně.

Anna odešle Bitcoin, ale další blok její platbu neobsahuje. Neznamená to samo o sobě, že se peníze ztratily. Nezařazená transakce může čekat v Mempoolu, místní čekárně jednotlivého uzlu. Uzel je program, který ověřuje transakce a bloky a komunikuje s dalšími účastníky sítě. Těžař vybírá transakce do bloku s omezenou kapacitou a může si zvolit i menší blok. Poplatky jsou pro něj pobídkou, ne příkazem zařadit konkrétní platbu. Block Weight vysvětluje jednu z hranic tohoto výběru, nikoli všechny důvody čekání. [1] [7]

Horní hranice je 4 000 000 WU včetně této hodnoty. WU znamená jednotku váhy. Full Node, uzel samostatně ověřující pravidla Bitcoinu, blok nad touto hranicí odmítne. Nezachrání jej vysoké poplatky ani platný Proof of Work, výpočetní důkaz potřebný k vytěžení bloku. Najít takový důkaz a sestavit platný blok jsou dvě podmínky, které musí být splněny současně. Kapacitu tedy neurčuje jen přání těžaře. [1] [3] [4]

Bajt je běžná jednotka množství dat. Úprava SegWit oddělila část údajů dokazujících oprávnění utrácet, například podpisy. Říká se jim witness. Bajt základních dat přispívá vahou 4 WU, zatímco bajt navíc v úplném witness zápisu má 1 WU. Do druhé skupiny patří i pomocná pole marker a flag tohoto zápisu. Tak lze zachovat základní strukturu transakcí a přitom přidat prostor pro ověřovací údaje, aniž by se všechny bajty počítaly stejně. [1] [2]

Digitální podpis je prostředek, kterým odesílatel prokazuje právo použít konkrétní mince. Podmínky jejich utracení popisuje krátký program zvaný skript. Menší příspěvek witness k váze neznamená, že ověřující uzel může příslušné podpisy nebo podmínky skriptu ignorovat. Data se také neztrácejí z úplného zápisu. Jde o pravidlo účtování kapacity; neříká, že stejným poměrem klesne práce procesoru, přenos dat nebo potřeba úložiště. [1] [4]

Serializace je přesné zapsání bloku do posloupnosti bajtů, které si počítače předávají. Označme B velikost zápisu bez witness a T velikost úplného zápisu. BIP 141 používá vzorec W = 3 × B + T. Základní data už jsou obsažena i v T, takže se celkem započítají čtyřikrát. Údaje přidané witness zápisem se započítají jednou. Vzorec se vztahuje na celý blok, ne pouze na jeho běžné platby. [1] [8]

Představme si velikosti B = 500000 a T = 2500000 bajtů. Vyjde W = 4000000 WU. Jiná skladba dat může mít B = 750000 a T = 1750000 bajtů; znovu vyjde W = 4000000 WU. Jsou to ilustrační výpočty, nikoli naměřené bloky. Oba využijí stejnou váhu, ale druhý má méně přenášených bajtů. Proto tvrzení „plný blok má vždy 4 MB“ neplatí. Ani počet transakcí v plném bloku není pevný. [1]

Blok není pouhé slepení uživatelských plateb. Má hlavičku o velikosti 80 bajtů, která obsahuje mimo jiné odkaz na předchozí blok a souhrn transakcí. Následuje počet transakcí zapsaný pomocí CompactSize, kódování celého čísla s proměnlivou délkou. První transakcí je Coinbase Transaction, zvláštní transakce pro odměnu těžaři; název zde neoznačuje burzu. Všechny tyto části patří do výpočtu. Součet vah ostatních transakcí proto ještě není vahou celého bloku. [5] [7] [8]

Peněženka je aplikace nebo zařízení pro přijímání a odesílání bitcoinů. Obvykle pracuje s virtuální velikostí transakce, vyjádřenou v jednotkách vByte. Ta vznikne dělením váhy celé transakce číslem 4 a zaokrouhlením nahoru. Pomáhá porovnávat poplatky za zabranou kapacitu. Kdybyste ale sečetli takto zaokrouhlené velikosti transakcí, nedostali byste přesnou váhu bloku: používáte jinou jednotku, jednotlivá zaokrouhlení a navíc chybí obal bloku. Velká peněžní částka sama o sobě neznamená velkou datovou transakci. [1] [8]

Samotná váha nepopisuje všechnu práci uzlu. Existuje také limit 80 000 vážených jednotek nákladů operací ověřujících podpisy podle příslušných pravidel. Není to prostý počet všech podpisů v bloku. Tapscript, jazyk skriptů zavedený s Taprootem, používá samostatný rozpočet pro každý vstup, tedy část transakce utrácející dříve přijaté mince; jeho podpisové operace se do uvedeného staršího blokového limitu nezapočítávají. BIP 342 popisuje tento jiný způsob omezení. Z pravidla o váze tedy nelze odvodit, že libovolně složité ověřování musí projít. [1] [3] [9]

Průzkumník bloků je aplikace, ve které lze vyhledat transakce a bloky dané sítě. V Bitcoin Core v29.0 vrací příkaz getblock mimo jiné size, strippedsize a weight: úplnou velikost v bajtech, velikost bez witness a váhu. Vedle nich můžete potkat chainwork. To vyjadřuje nahromaděnou výpočetní práci řetězce, nikoli jeho datovou váhu. Pro běžného uživatele je podstatné rozlišit kapacitu a cenu: Block Weight omezuje prostor v bloku, zatímco skutečný poplatek platby závisí na její velikosti a zvolené sazbě. Žádná z těchto hodnot sama neslibuje čas potvrzení. [6]

Pro nejúplnější obraz čtěte toto heslo společně s vByte, Witness Data, SegWit, Válka o velikost bloků, Bitcoin, Full Node. Opačným směrem na něj odkazují také Signet, vByte, Witness Data, Ordinals Inscriptions.

DOC · 001BIP 141 — Segregated WitnessSpecifikace DOC · 002BIP 144 — SegWit peer servicesSpecifikace DOC · 003Bitcoin Core v29.0 — consensus limitsDokumentace DOC · 004Bitcoin Core v29.0 — validationDokumentace DOC · 005Bitcoin Developer Reference — Block chainDokumentace DOC · 006Bitcoin Core — getblock RPCDokumentace DOC · 007Bitcoin Core v29.0 — Block assemblyDokumentace DOC · 008Bitcoin Core v29.0 — Block and transaction weightDokumentace DOC · 009BIP 342 — Validation of Taproot ScriptsSpecifikace
Revidováno: Primární zdroje · Nejde o investiční doporučení