Предположим, я публикую закрытый ключ адреса, содержащего 1 биткойн. Если два человека попытаются перевести этот биткойн на другой адрес до того, как будет найден новый блок, кто его получит? Как принимается это решение?
Когда узел получает две конфликтующие транзакции, он ретранслирует только первую полученную транзакцию, отбрасывая другую. Если одна транзакция полностью распространяется по сети до того, как будет отправлена другая, первая не позволит второй достичь каких-либо узлов майнера.
Если обе транзакции отправляются примерно в одно и то же время, у сети будут разногласия по поводу того, какая из них действительна. Это будет решено, как только узел майнера найдет блок и включит любую транзакцию, о которой он впервые услышал.
Майнеры не обязаны включать какую-либо конкретную транзакцию в блок.
Если один человек получает преимущество, то любой узел, не занимающийся майнингом, не будет передавать дубликат, поэтому «первопроходец» быстро отрезает части сети от других претендентов. Однако, если обе транзакции создаются примерно в одно и то же время, возможно, что каждая повторяющаяся транзакция будет достигать узлов, поддерживающих пул(ы) майнинга, по разным маршрутам.
Пул майнинга может включать в себя любую транзакцию, которую он пожелает, и, как правило, запускает настраиваемые версии биткойнов для оптимизации генерации блоков. В интересах майнера совершить транзакцию с более высокой комиссией в ущерб другим транзакциям. Таким образом, использование комиссии за транзакцию может увеличить вероятность включения в следующий блок.
В конечном итоге транзакция, включенная в блок, разрешит «гонку».
Тило