Что такое Nonce? Простое объяснение

Nonce, или «число, используемое один раз», — Это криптографический термин, обозначающий случайное или псевдослучайное число, используемое в протоколах безопасности.

июнь 21, 2024 - 13:11
июль 19, 2024 - 11:16
Что такое Nonce? Простое объяснение
Nonce

Понимание Nonce

Nonce, полученный из «числа, используемого один раз», представляет собой случайную цифру, которую майнеры биткойнов ищут для добычи нового блока в цепочке блоков биткойнов и получения вознаграждения за блок. Этот компонент имеет решающее значение для эффективной работы сети Биткойн.

Майнинг помогает записывать и проверять транзакции биткойнов, а также создавать новые биткойны. Транзакции группируются и проверяются в блоках, что приводит к блочной структуре. Высота блока обозначает общее количество блоков до определенного блока.

Nonce гарантирует, что каждый блок обладает уникальным хешем, криптографической подписью, служащей идентификатором блока и способствующей росту блокчейна. Майнеры могут корректировать nonce для изменения значений хеш-функции, что потенциально решает математические задачи при добыче новых блоков.

Биткойн-нонс — это 32-битное (или 4-байтовое) случайное число, которое майнеры пытаются определить с помощью грубой вычислительной силы. Его цель — сгенерировать действительный и отличный хэш, облегчающий создание нового блока в блокчейне Биткойна. Являясь частью алгоритма Proof-of-Work (PoW) и механизма консенсуса, nonce способствует проверке и защите сети Биткойн.

При майнинге биткойнов майнеры участвуют в соревновании по решению сложной математической головоломки. Они неоднократно хэшируют заголовок блока — группу данных внутри каждого блока, включающую одноразовый номер и другие важные детали, такие как информация предыдущего блока, временная метка, транзакции, включенные в новый блок, и корень Меркла (хэш всех хэшей транзакций в пределах блока). блокировать).

Хеширование предполагает применение криптографической хэш-функции к заголовку блока, преобразуя данные заголовка в уникальное хеш-значение — зашифрованную строку фиксированной длины. Это хеш-значение действует как криптографический отпечаток пальца, обеспечивая целостность блока. Майнеры стремятся генерировать хеш-значения, соответствующие критериям сложности майнинга сети Биткойн, обеспечивая безопасность и надежность блокчейна.

Nonce, единственная регулируемая переменная в заголовке блока, позволяет майнерам изменять хэш блока и вычислять различные решения математической головоломки, необходимые для создания нового блока. Майнеры увеличивают значение nonce и пересчитывают хэш до тех пор, пока он не будет соответствовать целевой сложности сети. Этот метод дополнительных вычислений помогает аппроксимировать функции или решать уравнения с помощью небольших последовательных шагов.

Если полученное значение хеш-функции превышает целевой хэш сети, майнеры генерируют еще один одноразовый номер. Однако, если значение хеш-функции совпадает с целевым хешем или падает ниже него, майнер нашел решение и получает вознаграждение за блок, добавляя новый блок в блокчейн. Целевая сложность периодически корректируется, чтобы поддерживать постоянную скорость генерации блоков.

Понимание nonce и сложности майнинга

Единообразие сложности блоков в сети Биткойн обеспечивает всем майнерам равные возможности для обнаружения правильного хеша. Сеть предназначена для обработки определенного количества блоков в течение определенного периода времени, периодически регулируя сложность, чтобы облегчить проверку блоков майнерами.

Сложность идентификации действительного одноразового номера динамически адаптируется в зависимости от общей скорости хеширования сети. По мере увеличения скорости хеширования сети сложность возрастает, что усложняет поиск действительного одноразового номера. Этот механизм обеспечивает постоянную скорость генерации блоков независимо от количества участвующих майнеров. И наоборот, если количество обработанных блоков не достигает целевого значения сложности, сложность уменьшается, чтобы учесть превышенный лимит времени. И наоборот, если блоки обрабатываются слишком быстро, сложность увеличивается. Более высокие уровни сложности требуют генерации большего количества одноразовых номеров, поскольку для решения хеша необходимы дополнительные попытки.

Например, в блоке биткойнов 813 958, добытом 26 октября 2023 года майнинг-пулом AntPool, nonce составлял 105 983 939. В тот день скорость хеширования биткойнов AntPool составляла 123 экзахеша в секунду, в то время как вся сеть Биткойн хешировала со скоростью 428,22 экзахэшей в секунду. Это указывает на то, что пул майнинга AntPool сгенерировал квадриллионы чисел в поисках правильного одноразового номера и выигрышного хэша, на фоне экспоненциально большего количества испытаний, проведенных всеми пулами майнинга вместе взятыми.

Важность nonce

Nonce играет решающую роль в обеспечении целостности и безопасности блокчейна Биткойн. Это предотвращает подделку или изготовление блоков злоумышленниками, поскольку любое изменение данных блока, включая одноразовый номер, приведет к изменению хеш-значения, что сделает блок недействительным.

Достижение правильного значения nonce с первой попытки маловероятно. Майнерам обычно приходится тестировать множество вариантов nonce, прежде чем найти правильный, особенно в системе Proof-of-Work (PoW).

По мере увеличения сложности (что указывает на сложность создания хеша ниже целевого) процесс поиска действительного одноразового номера становится более трудоемким в вычислительном отношении. Это требует значительных затрат электроэнергии и вычислительной мощности с течением времени, что накладывает значительные ограничения.

Эта преднамеренная трудность помогает защитить сеть Биткойн, делая вычислительно невозможным манипулирование блокчейном с помощью скоординированных атак, таких как атаки 51% или двойные расходы.

Алгоритм PoW требует от майнеров обнаружить действительный одноразовый номер, гарантируя, что в блокчейн можно добавлять только блоки с законной историей. Это не позволяет злоумышленникам изменять или дублировать транзакции, обеспечивая неизменность блокчейна.

Майнеры, которые успешно идентифицируют действительный nonce для нового блока, получают вознаграждение за блок, которое включает в себя вновь выпущенные биткойны и комиссию за транзакцию. Это стимулирует майнеров участвовать в сетевой безопасности и проверке транзакций.

Понимание технологии блокчейн

Блокчейн — Это децентрализованная база данных, распределенная между узлами цифровой сети, включающей компьютеры, центры обработки данных и мобильные устройства. Он хранит информацию в электронном виде и безопасно записывает транзакции, как это видно в криптовалютных системах, таких как Биткойн. Его ключевая инновация заключается в обеспечении целостности данных без необходимости полагаться на доверенную третью сторону.

Заработок на вознаграждениях за блоки для майнеров

Награда за блок для майнеров, которые успешно проверят блок в Биткойне, включает в себя два элемента: вновь созданный биткойн и комиссию за транзакцию. С июня 2021 года количество свежеотчеканенных биткойнов в награде составляет примерно 6,3 BTC и уменьшается вдвое каждые 210 000 блоков, что происходит примерно каждые четыре года, а следующее ожидается в апреле 2024 года. Это периодическое сокращение, известное как «половинное сокращение биткойнов». «» направлен на постепенное уменьшение общего количества биткойнов, чтобы поддерживать их ценность. Доля комиссий за транзакции в вознаграждении за блок колеблется в зависимости от объемов транзакций и ставок комиссий. В последнее время комиссии за транзакции стали важным источником дохода майнеров, часто превосходя стоимость недавно отчеканенных биткойнов в вознаграждении за блок. Эта тенденция объясняется растущей популярностью и использованием Биткойна, что приводит к увеличению объемов транзакций и, как следствие, к более высоким комиссиям за транзакции.

Различие между nonce и хешем

Nonce служит временным значением при создании хеша, тогда как хэш действует как постоянный идентификатор блока. Длина одноразовых номеров обычно составляет 32 бита, тогда как длина хэшей составляет 256 бит. Одноразовые номера используются только один раз для конкретного блока, тогда как хеши уникальны для заголовка блока и не могут быть отменены для получения исходных данных. Одноразовые номера способствуют решению проблемы создания действительных хешей, повышая безопасность блокчейна Биткойн.