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