Какво има в блока: заглавие, височина, размер и субсидия
Блокът е малко фиксирано заглавие плюс тяло с транзакции. Шестте полета на заглавието, какво хешира копаенето и какво означават височина и размер.
От какво се състои блокът?
Блокът има две части: заглавна част и тяло. Копаенето хешира само заглавната част.
- Тялото съдържа транзакциите. То може да е няколкостотин байта или няколко мегабайта, според това колко натоварена е веригата.
- Заглавната част е фиксирано резюме на блока. В повечето вериги тя е точно 80 байта.
- Копаенето хешира заглавната част и нищо друго.
Последната точка е най-полезният факт в тази статия. Миньорът опитва милиарди варианти в секунда. Това би било невъзможно, ако всеки опит означаваше да хешира наново блок, пълен с транзакции. Той хешира наново само 80 байта.
Кои са шестте полета в заглавната част?
Заглавната част съдържа шест полета. Всяко е там с причина, а две от тях вършат основната работа.
- Версията.
- Хешът на предишния блок.
- Коренът на Merkle, един хеш, който обобщава всички транзакции.
- Времеви печат.
- Битовете на трудността.
- Nonce, брояч, който миньорът може да променя.
Хешът на предишния блок прави веригата верига. Всяка заглавна част посочва блока преди нея. Ако някой пренапише стар блок, хешът му ще се промени. Това ще счупи следващата заглавна част, и следващата, чак до върха. Това едно поле е целият аргумент за сигурността на доказателството за работа.
Коренът на Merkle обобщава всички транзакции в тялото. Променете една транзакция само с един байт и коренът на Merkle се променя. Тогава се променя и заглавната част, и всеки опитан досега хеш губи стойност. Така 80 байта могат честно да заместят блок с всякакъв размер.
Битовете на трудността са целта, под която трябва да падне хешът, записана в сбит вид. Времевият печат е приблизително кога е създаден блокът и може да е неточен. Nonce е полето, което миньорът може свободно да променя. Именно тази свобода прави търсенето възможно.
Какво става, когато nonce се изчерпи?
Nonce е малък брояч. Съвременният миньор изчерпва всичките му стойности почти мигновено. Това не е задънена улица. Nonce е само най-лесното нещо за промяна, но никога единственото.
Когато се изчерпи, миньорът променя нещо друго, което влиза в заглавната част.
- Времевият печат може да се премести.
- Транзакцията coinbase (първата транзакция в блока, обяснена по-долу) може леко да се промени. Това променя корена на Merkle и дава съвсем нова заглавна част за търсене.
В пула за това служи extra nonce. Пулът дава на всеки миньор различна начална точка. Така няма двама миньори, които да въртят едни и същи числа.
Какво е височина на блока?
Височината на блока е броят блокове преди даден блок. Генезис блокът, най-първият, е на височина нула. Следващият е на едно и така нататък. Това е числото до всеки ред на страницата с блокове на пула и във всеки експлорър.
Височината всъщност не се съхранява в заглавната част. Тя идва от мястото на блока във веригата.
В повечето съвременни вериги височината се записва и в транзакцията coinbase. Това правило е добавено по-късно, за да не могат два блока на различни височини да са еднакви байт по байт. Все пак меродавният отговор за височината на блока е неговата позиция.
Височината е и естественият начин да се броят потвърждения. Транзакция, заровена шест блока надолу, е в блок шест под върха. Всеки следващ блок прави пренаписването ѝ по-скъпо.
Какво измерва размерът на блока?
Размерът на блока по същество е размерът на тялото. Заглавната част е незначителна до него. Ограничението на размера засяга колко транзакции се побират, а не заглавната част.
Пълният и празният блок изискват точно една и съща работа за копаене. Трудността решава колко труден за намиране е блокът. Размерът решава колко носи блокът. Двете нямат връзка, а объркването им води до много грешни представи за таксите.
Размерът все пак влияе на пазара на такси. Когато повече транзакции искат да влязат, отколкото има място, първи влизат тези с по-високи такси. Общите такси в блока растат и това влиза директно в това, което блокът плаща.
Какво е транзакцията coinbase?
Първата транзакция във всеки блок е специална. Тя няма подател. Тя създава монети от нищото и ги плаща на този, който е направил блока.
Нарича се транзакция coinbase. Няма нищо общо с борсата със същото име.
Тя плаща наградата за блок, която има две части.
- Субсидията, новоиздадените монети. Графикът на емисията на веригата я определя и при повечето монети тя намалява с времето.
- Таксите на всички останали транзакции в блока. Потребителите ги добавят, за да бъдат включени транзакциите им.
В пула coinbase плаща на пула. След това пулът разделя наградата между всички, които са изпратили дялове в този рунд. Това не е заобиколен път. Така пулът плаща на много хора от награда, която пристига като едно неделимо плащане.
Защо това има значение, докато копаете?
Щом формата на блока е ясна, три неща стават очевидни. И трите се появяват постоянно.
- Новият блок веднага обезсмисля работата Ви. Хешът на предишния блок се е променил, така че заглавната част, която търсехте, вече не съществува. Всичко, което изпратите за нея след това, е остарял дял, и никаква скорост не може да го поправи.
- Пулът често Ви праща нова работа. Всяка нова транзакция, която пулът иска да включи, променя корена на Merkle. По-свежата работа носи повече такси, тоест повече награда за същото усилие.
- Размерът на блока никога не влиза в оценката на печалбата. Това, което печелите, зависи от трудността, субсидията и таксите. Не зависи от байтовете в тялото.
Страницата с блокове на пула показва височината на всеки блок, наградата му и кога е намерен. Този ред е полезната част от всичко по-горе. Експлорърът показва останалото, включително транзакцията coinbase, която го е платила.