Принципы работы Ethereum
____________________________________
[ 51 ]
___________________________________
Существует специальная формула, по которой вычисляется вознаграждение майне-
ру за прием устаревшего блока в переработку. Остаток вознаграждения переходит
к блоку-племяннику (nephew block), который вбирает в себя блок-дядюшку (uncle
block):
(uncle_block_number + 8 - block_number) * 5 / 8
Вы можете спросить: если отсутствие вознаграждения майнерам устаревших бло-
ков никак не влияет на безопасность, почему они получают вознаграждение? Су-
ществует еще одна проблема, связанная с частым появлением устаревших блоков.
Майнер должен получать вознаграждение пропорционально вычислительной мощ-
ности, которую он вносит в систему. Если два блока найдены приблизительно од-
новременно, то, вероятнее всего, в финальный блокчейн будет включен блок, до-
бытый более
мощным майнером, а слабый майнер останется без награды. Если до-
ля старых блоков невелика, то и проблемы нет — мощный майнер получит лишь
немного больше. Однако если доля устаревших блоков велика, то мощный майнер
будет забирать себе намного больше, чем заслуживает, исходя из вычислительной
мощности
5
. Протокол GHOST устраняет дисбаланс, выдавая вознаграждение май-
нерам старых блоков. Мощный майнер не получает вознаграждение целиком, но
все же заметно больше, чем вообще без протокола GHOST.
Поэтому мы можем
и майнерам старых блоков не выдавать полное вознаграждение, а лишь часть от
обычного вознаграждения
6
. Приведенная ранее формула прекрасно поддерживает
баланс.
Протокол GHOST ограничивает максимальное количество старых блоков, которые
может вобрать в себя блок-племянник, поэтому майнеры не могут просто вхоло-
стую генерировать старые блоки, тормозя блокчейн.
Таким образом, если в сети появляется старый блок, он так или иначе влияет на
сеть. Чем
чаще появляются старые блоки, тем сильнее они влияют на сеть.
Ветвление
Если случается конфликт между узлами, подтвердившими подлинность блокчейна,
и возникает больше одного подлинного блокчейна в сети, причем все они подтвер-
ждены несколькими майнерами, то говорят, что произошло
ветвление
(forking).
Принято различать три вида ветвления: простое (regular fork), мягкое (soft fork,
софтфорк) и жесткое (hard fork, хардфорк).
Простое ветвление
возникает, если два или более майнеров выработали блок почти
одновременно. Проблема решается за счет того, что сложность одного блока боль-
ше, чем у остальных.
5
При этом мелкие майнеры просто потеряют
всякий стимул к работе, а картель «жирных майнеров»
может захватить контроль над сетью.
6
На момент работы над переводом майнер старого блока получал 87,5% вознаграждения, а майнер
блока, поглотившего старый блок, получал оставшиеся 12,5% дополнительно к вознаграждению за
новый блок.