Как часто майнеры пересчитывают корень Меркла, над которым они работают?

Я думаю, что понял большую часть вещей о Биткойне, но загадка все еще остается.

Мы видим на https://blockchain.info/ , что каждую секунду появляется до 4/5 новых транзакций. У меня вопрос: пересчитывают ли майнеры корень Меркла от 4 до 5 раз в секунду? Что происходит с транзакциями, совершенными в момент выпуска блока?

Я видел, что майнеры могут выбирать транзакции, которые они хотят принять, но если бы это было так, я бы был майнером, а затем принял, может быть, 2 или 3 транзакции, нашел одноразовый номер и получил награду в 25 биткойнов. Почему это невозможно?

Я благодарю вас за ваши ответы, и я надеюсь, что вы сможете мне помочь. Спасибо.

Ответы (2)

Действительно, каждую секунду происходит много новых транзакций. Способы, которыми майнеры справляются с этим, двояки:

  1. Если в каком-либо корне merkle найдено соответствующее доказательство работы, просто опубликуйте этот блок, и любые транзакции, которые не попали в блок, перейдут в следующий блок (при условии достаточной комиссии).

  2. В противном случае время от времени вычисляйте новый корень Меркла (варьируется в зависимости от майнера, но скажем ради аргумента, что это 5 секунд) и попытайтесь рассчитать доказательство работы с включенными транзакциями.

Причина, по которой майнеры не принимают только 2 или 3 транзакции, заключается в том, что найти одноразовый номер для доказательства работы одинаково сложно, независимо от того, есть ли 1 транзакция или 1000 транзакций. Вероятности остаются прежними. Преимущество включения большего количества транзакций в качестве майнера заключается в том, что вы получаете больше комиссий за майнинг.

Большое спасибо за ваши ответы, и это очень помогает мне. Однако я знаю, не понимаю, почему нам нужно около 10 минут, чтобы решить блок. Например, одноразовый номер последнего блока равен ~ 2 909 195 137, а стандартная машина для майнинга может сделать более ~ 8 000 минут. 000 000 хэшей в секунду. Если мы сможем это сделать, я буду уверен, что буду первым, кто выпустит следующий блок, а затем получу вознаграждение в 25 биткойнов в течение нескольких секунд.
все, что вы меняете в блоке, меняет его значение, т. е. если вы используете новую метку времени, добавляете транзакцию, меняете порядок транзакций... нет никакой гарантии, что блок будет найден для любого одноразового номера.

Глядя на поля в заголовке блока , поле nonce представляет собой 32-битное целое число. Это означает, что одноразовый номер представляет собой целое число в диапазоне от 0 до 4 294 967 295. Как вы заметили, майнер с готовым графическим процессором может легко вычислить это количество хэшей менее чем за секунду.

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

Но в настоящее время, когда требования к сложности намного выше, у майнеров очень мало шансов найти одноразовый номер, который (в сочетании с остальной информацией в заголовках) создает хеш SHA256, который удовлетворяет требованию сложности после итерации диапазона одноразового номера. ценности. Следовательно, они должны повторить попытку, изменив что-то еще в заголовках (например, метку времени или транзакции в блоке), а затем снова перебрать диапазон значений nonce в надежде найти то, что удовлетворяет требованию сложности. Этот процесс повторяется много раз, пока, наконец, майнер не найдет выигрышную комбинацию информации заголовка и одноразового номера, которая создаст хэш, удовлетворяющий требованию сложности, что по замыслу должно происходить примерно каждые 10 минут.