Подтверждение транзакции

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

  1. Поддерживают ли майнеры набор UTXO, содержащий детали UTXO всех
    узлов в сети? Если это так, то вполне возможно, что наборы UTXO, поддерживаемые разными майнерами, различны в данный момент времени.
  2. Теперь, когда блок транслируется в сеть, мы знаем, что другие майнеры выражают свое согласие с блоком, добывая следующий блок поверх этого. Но перед этим они проверяют только что опубликованный блок. Как они проверяют этот блок? Кроме того, почему они должны заботиться об этом, если они могут сэкономить время, создав следующий блок? Мы предполагаем честность
    майнеров, которые действительно заинтересованы в зарабатывании денег?

Ответы (1)

Во-первых, каждый узел в сети поддерживает набор UTXO. Не только шахтеры.

до 1. Набор UTXO создается путем применения всех транзакций в каждом блоке цепочки с самого начала. Все транзакции, которые остаются неизрасходованными при достижении вершины цепочки, находятся в наборе UTXO. Чем старше блок, тем выше вероятность того, что вся сеть имеет такой же блок. Равные блоки приводят к равному набору UTXO.

до 2. Каждый узел проверяет блоки, а не только майнеры. Блок считается действительным, если он соответствует правилам консенсуса. Одно согласованное правило заключается в том, что каждая расходная транзакция (TXO) должна находиться в текущем (до принятия) наборе UTXO или в TXO, созданном ранее в том же блоке. Проверка блока не мешает фактическому майнингу (только на короткое время, когда блок принят и новый шаблон блока должен быть отправлен в ASIC). Проверка происходит на центральном процессоре, а фактическая часть майнинга происходит в ASIC. Если майнер не проверяет недействительный блок, он тратит свое время/электроэнергию/деньги на добычу недействительного блока поверх предыдущего недействительного блока.