44 / 736RULES

Правила консенсуса

Правила, по которым каждый Full Node самостоятельно проверяет транзакции и блоки, не полагаясь на майнера или поставщика кошелька.

Правила консенсуса определяют, какие транзакции и блоки может принять Bitcoin. Каждый Full Node — программа, которая самостоятельно проверяет сеть, — применяет их независимо. В частности, он проверяет, не тратятся ли те же средства повторно, выполнены ли условия расходования, записанные на языке Bitcoin Script, и есть ли у блока корректный Proof of Work — доказательство найденного решения задачи майнинга. Он также проверяет количество вновь созданных биткоинов. Большая вычислительная мощность не даёт майнеру права обходить эти правила.

Представьте, что кто-то тратит одни и те же средства из предыдущего платежа сначала на оплату вам, а затем — магазину. Обе траты не могут входить в корректную историю. Чтобы это проверить, узел отслеживает выходы транзакций: записи сумм и условий, при которых их можно потратить. Получив блок, узел проверяет его соответствие своим правилам, а не то, кто его рекомендовал. В частности, проверяются доступность расходуемых выходов, условия Bitcoin Script вместе с необходимыми подписями, Proof of Work и допустимое вознаграждение майнера. Нарушение правила означает отклонение блока. Поддержка компании или большинство голосов в интернете не меняют результата. [1]

Майнер выбирает транзакции и ищет блок, а Full Node независимо проверяет результат. Разработчики могут предложить изменение и выпустить программу, но само по себе это не меняет правила других узлов. Оператор выбирает, какое программное обеспечение запускать. Его выбор определяет, что принимает собственный узел, а не что обязаны принять все остальные. [2] [1]

У узла есть и правила для неподтверждённых транзакций: какие хранить в Mempool, локальном наборе транзакций, ожидающих подтверждения, и какие передавать другим узлам. Эти локальные правила называют policy; они могут быть строже консенсуса. Поэтому отказ принять транзакцию в мемпул сам по себе не означает, что она была бы недопустима в блоке. При проверке блоков политика ретрансляции не применяется. [3]

Soft Fork ужесточает правила: блоки, допустимые по новым правилам, соответствуют и старым. Однако старые узлы не проверяют новые условия. Hard Fork, напротив, может разрешить блок, который старые узлы отклонят. Механизм активации помогает координировать изменение, но не гарантирует всеобщего согласия и не заменяет решения операторов о выборе программы. [4]

Собственный Full Node позволяет проверять полученные блоки, а не полагаться на сайт обозревателя блоков. Узел может знать несколько ветвей — разных продолжений общей истории. Среди допустимых ветвей он выбирает по chainwork: сумме работы, засчитанной каждому блоку с учётом сложности его добычи. Это не измерение фактически потреблённого электричества и не простой подсчёт блоков. Большая работа не оправдывает нарушение правил. Чтобы узлы приходили к одному результату, они должны одинаково применять правила даже в необычных случаях. Ошибка программы может привести к тому, что они будут принимать разные блоки. [4] [5]

Узел может отказаться передавать транзакцию со слишком низкой комиссией. Но если майнер включит её в блок и и транзакция, и блок соответствуют правилам консенсуса, узел примет блок. Если же майнер начислит себе больше разрешённого количества новых биткоинов, называемого Block Subsidy, вместе с комиссиями транзакций в блоке, узел отклонит блок даже с правильным Proof of Work. Различие в причине отклонения, а не в репутации майнера. [3] [1]

Для полной картины прочитайте эту статью вместе с Full Node, Soft Fork, Proof of Work, Bitcoin Core, Bitcoin Script, Mempool. На эту статью также ссылаются 21 Million, Soft Fork, Hard Fork, BIP (Bitcoin Improvement Proposal).

DOC · 001Bitcoin Core — Block validationПервичный источник DOC · 002Bitcoin whitepaperПервичный источник DOC · 003Bitcoin Core — Transaction Relay PolicyДокументация DOC · 004Bitcoin Developer Guide — Consensus Rule ChangesДокументация DOC · 005Bitcoin Core — Chainwork calculationПервичный источник
Обновлено: Сначала источники · Не является инвестиционной рекомендацией