Когда я отправляю транзакцию для Джо в биткойн-сеть, Джо почти мгновенно сможет ее увидеть (обычно через несколько секунд). В это время транзакция видна, но еще не включена в блок майнером. Если это транзакция с небольшой суммой, или транзакция между участниками, которые доверяют друг другу, видимость транзакции в сети будет обычно считаться приемлемой, однако, при определенных усилиях с моей стороны, все еще возможно дважды потратить средства, отправив в сеть другую транзакцию, которая использует те же самые средства – но для транзакций с небольшой суммой требуемые усилия, вероятно, не будут стоить затраченного времени (к тому же, разумеется, есть еще и риск быть пойманным). По прошествии приблизительно 10 минут мы можем ожидать, что моя транзакция будет теперь официально включена биткойн-майнером в последний блок блокчейна. В этом момент транзакция имеет «одно подтверждение». Теперь, если вы примете во внимание, что в мире тысячи специальных компьютеров, добывающих биткойн, вероятность, что я сумею обмануть Джо и дважды потратить свои средства, и успешно добыть блок, который отвергнет транзакцию для Джо, очень мала. Для транзакций со средними или большими суммами обычно считается благоразумным подождать 3–6 подтверждений, или, другими словами, подождать, когда будут добыты 3–6 последовательных блоков (от 30 до 60 минут), чтобы быть абсолютно уверенным в транзакции. Чтобы успешно осуществить двойную трату, в этом случае нужно будет успешно добыть подряд 6 блоков, отклоняющих транзакцию. И чтобы достичь этого, нужно контролировать примерно 50 % от общей вычислительной мощности биткойн-сети. Как вы можете видеть, это делает попытку двойной траты крайне сложной и дорогой, что прежде всего перевешивает, в общем случае, любые преимущества двойной траты. Вы также можете видеть, что по мере того, как растет биткойн-сеть, увеличивается количество майнеров и возрастает трудность хеш-задачи, двойная трата становится еще более сложной для нечестного майнера. Именно так биткойн-майнеры обеспечивают безопасность сети.
Резюмируя, добыча биткойна обеспечивает три вещи: обработку транзакций, безопасность сети и ввод биткойнов в экономику. Это изящная система.
Настало время указать на тот факт, что у майнера есть выбор, включать или не включать транзакцию в блок. Майнер может отклонять все транзакции, если хочет, и просто решать хеш-задачу. Это называется «добыча пустого блока» и время от времени случается. Тогда вопрос в том, зачем майнеру вообще беспокоиться о том, чтобы включать транзакции в блок? Есть несколько причин. Во-первых, по сравнению с работой, которую майнер делает, пытаясь решить хеш-задачу, включение транзакций в блок – это тривиальная операция, которая почти ничего не требует от его компьютера. Во-вторых, транзакции включаются в блокчейн в интересах биткойн-сообщества. Если майнеры не будут включать транзакции в блокчейн, биткойн не будет работать, а если он не будет работать, то биткойны ничего не будут стоить. Если же биткойн ничего не будет стоить, тогда майнеры будут тратить все свои усилия на добычу чего-то, что ничего не стоит. Вы можете возразить, что для сообщества хорошо, чтобы майнеры включали транзакции в блок, но для индивидуального майнера убыточно тратить ресурсы на обработку транзакций. Это отчасти верно, но, как я заметил в начале абзаца, необходимые усилия ничтожны. Существует также и третий момент. Майнеры не могут брать комиссию за включение транзакции в блок, но люди, осуществляющие транзакции, могут добровольно предложить комиссию. Майнеры тогда могут отклонять транзакции, которые вообще не включают комиссии, или отклонять транзакции с комиссией ниже определенной величины. Какова же обычная комиссия сегодня? В большинстве случаев она нулевая. В сегодняшней экономике стимулом майнера в первую очередь являются биткойны, которые он получает за успешно добытый блок. Транзакции включаются в блок по доброй воле майнеров в интересах роста биткойн-экономики и роста биткойна. В некоторых случаях биткойн-клиенты автоматически включают небольшую комиссию (не больше нескольких центов), чтобы удостовериться, что транзакции не будут отклонены майнерами и с большей вероятностью будут включены в следующий добытый блок.