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