Основы блокчейна - блоки-орфаны
В этой статье мы поговорим о блоках-орфанах, также известных как устаревшие блоки. Блоки-орфаны время от времени появляются на большинстве блокчейнов с доказательством выполнения работы (Proof of Work). Но почему они возникают и что собой представляют?
Перед тем, как продолжить, я настоятельно рекомендую прочитать эту статью о доказательстве выполнения работы и как оно работает. Это даст вам лучшее базовое понимание майнинга и особенно односторонних хэш-функций (хэширования).
Резюме доказательства выполнения работы
Доказательство выполнения работы основано на односторонних хэш-функциях. Односторонние хэш-функции позволяют нам "хэшировать" или "архивировать" бесконечный объем данных и получать на выходе данные фиксированного размера, называемые хэшем. В случае с блокчейном, входные данные — это транзакции, а выходные — хэш.
Когда майнер находит правильные выходные данные (хэш), блок транзакций подтверждается и блок отправляется в сеть. Если вы хотели бы прочитать немного более техническую статью о доказательстве выполнения работы, приглашаем вас ко чтению сюда.
Проще говоря, майнеры решают математическую функцию, первый, кто правильно решит проблему, передает решение узлам во всему миру и получает вознаграждение за решение проблемы. Важно отметить, что передача решения по всей сети может занять некоторое время.
Итак, что происходит, если два майнера находят верное решение одновременно или почти одновременно? Цепочка делится на две цепочки. Когда найдена более длинная цепочка, остальные блоки становятся блоками-орфанами.
Что собой представляет блок-орфан?
Блок-орфан — это термин, используемый широкой публикой, но в технических документах он описан, как устаревший блок. Блок-орфан создается, когда два майнера (или больше) находят решение одновременно.
Поскольку каждый майнер будет передавать решение в сеть, а сети для синхронизации требуется несколько мгновений, в течение короткого периода времени будет два блокчейна. Каждая часть блокчейна будет думать, что ее решение было найдено первым и это решение, которое должно использоваться в первую очередь. В действительности, оба решения верны.
Как только новый блокчейн становится активным, начинается "гонка" между обеими цепочками. Основной цепочкой будет та, которая длиннее.
Подробное объяснение
Вы можете представить это, как если бы один майнер в США подтвердил блок в то же время, что и майнер в Европе. Узлы в США, скорее всего, сперва синхронизировались бы с майнером из США, а узлы в Европе — с майнером из Европы. В этот момент времени работали бы два параллельных блокчейна. Это представлено на изображении ниже. Узлы США используют блоки, подтвержденные майнером из США, в то время как узлы Европы используют блоки, подтвержденные узлами Европы. Цепочки не обмениваются между собой данными.
Если мы посмотрим на пример выше, на узлах работают два параллельных блокчейна, но правилом блокчейна является то, что действительная/главная цепочка — это та, которая более длинная. Это означает, что следующие блоки, найденные каждой "стороной" или цепочкой будут решающими. Если следующие блоки будут подтверждены со стороны Европы, а со стороны США подтверждений будет меньше, цепочка Европы будет считаться более длинной, поэтому блок на блокчейне США будет считаться блоком-орфаном.
Обычно главной будет та цепочка, у которой выше хэшрейт, поскольку там будут быстрее найдены блоки.
Никто не может знать, является ли блок орфаном, пока не решено, какая цепочка длиннее.
Получают ли майнеры оплату на блоки-орфаны?
Это зависит от блокчейна. Некоторые блокчейны оплачивают блоки-орфаны. Прежде чем Ethereum перешел на Proof of Stake он вознаграждал майнеров за блоки-орфаны, но вознаграждение было ниже, чем вознаграждение за обычные блоки.
Существует слишком много блокчейнов, чтобы перечислять здесь их все, но в основном блокчейны с очень быстрым временем блока, как правило, так или иначе вознаграждают блоки-орфаны. Хотя не обязательно.
Наиболее распространенные блокчейны, которые не вознаграждают блоки-орфаны и также используются в EasyMining от NiceHash:
- Биткоин (BTC)
- Bitcoin Cash (BCH)
- Dogecoin (DOGE)
- Litecoin (LTC)
- Zcash (ZEC)
Что происходит с транзакциями в блоках-орфанах?
Транзакции в блоках-орфанах не обрабатываются в главной цепочке. Это означает, что если блок, содержащий транзакцию, становится орфаном, транзакция будет отброшена. Баланс кошелька отправителя будет таким же, как и до перевода средств, а кошелек назначения не увидит никаких входящих средств. Однако транзакция может быть фактически включена в обе конкурирующие цепочки (оба блока). В этом случае транзакция все равно будет обработана.
Как всегда, без стеснений присоединяйтесь к нашей странице Reddit и серверу Discord!