Мы рассмотрели и обсудили три основные идеи из области компьютерных наук, лежащие в основе биткойна: асимметричную криптографию, криптографический хеш и пиринговые сети. Хоть эти идеи и интересны, они не революционны в контексте биткойна. Все эти вещи уже применялись в различных вариантах долгое время. Однако, то, что связывает их воедино – это фундаментально новая идея, являющаяся основой биткойна. Эта идея известна как блокчейн.
Блокчейн – это децентрализованный открытый гроссбух: давайте попробуем в этом разобраться. В случае обычного бизнеса, или скажем лучше, банка, гроссбухом называют набор записей, который содержит подробности пользовательских транзакций и балансы счетов. В современных банках эти записи хранятся в больших программных системах. Как вы, вероятно, можете догадаться, это большие устойчивые системы, которые должны поддерживать миллионы пользователей, ежедневно осуществляющих миллионы транзакций. Возможно, вам уже знакомы некоторые из симптомов тех трудностей, которые испытывают банки с надежным управлением столь большими наборами данных. Например, вам не удавалось загрузить с интернет-портала вашего банка историю транзакций ранее некоторого периода в прошлом. Или, возможно, вы замечали, что некоторые транзакции не сразу появляются в истории, пока они не будут обработаны ночью. Все эти и другие похожие странности являются компромиссами, необходимыми для того, чтобы банки могли управлять этими (часто древними) системами, содержащими огромные объемы данных.
Мы сказали, что блокчейн – это децентрализованный открытый гроссбух. Мы знаем, что такое гроссбух: это набор записей, содержащих подробности пользовательских транзакций и балансы счетов. Теперь давайте объясним, что мы имеем в виду под «децентрализованным» и «открытым». В отличие от банка этот гроссбух не хранится на центральном сервере, контролируемом каким-либо человеком или организацией. Блокчейн-гроссбух доступен публично и хранится локально множеством клиентов, его можно свободно загрузить из интернета. В это может быть трудно поверить, но вы поняли правильно: вся история любых биткойн-транзакций, сделанных кем угодно по всему миру с самого появления биткойна (12 января 2009 года) публично доступна для просмотра любому человеку, к тому же, на большинстве компьютеров или ноутбуков, где есть биткойн-программы, хранятся копии этого гроссбуха. Вероятно, у вас появилось много вопросов, например, как это возможно, или почему это вообще хорошая идея. Давайте начнем с того, как это возможно. Конечно, это большой объем данных, но не невозможно большой. Финансовые записи занимают очень немного места, и объективно глядя, все записи о биткойн-транзакциях с самого начала на момент написания этого текста занимают тот же объем места, что и дюжина, или около того, фильмов в HD-качестве. Если вы загрузите биткойн-клиент, который хранит локальную копию блокчейна, потребуется много времени, чтобы начать в первый раз, когда вы его запустите, поскольку он загружает полную копию блокчейна. Другое дело, что хранение полной копии блокчейна на всех компьютерах мира не является абсолютно необходимым. Это определенно невозможно на мобильных устройствах, и сейчас в тренде биткойн-клиенты, которые хранят локально только важные вещи, а не весь блокчейн. Тем не менее, это иллюстрирует мое утверждение о том, что блокчейн публично доступен всему миру, и фактически существует множество сайтов, которые упрощают навигацию по истории всех биткойн транзакций, сделанных кем угодно и когда угодно.
Вас, возможно, несколько обеспокоит тот момент, что, если вы будете использовать биткойн, вся история когда-либо сделанных вами транзакций будет публично доступна. Это только частично правда, и мы обсудим этот момент далее, в главе об анонимности. Публичный гроссбух содержит только биткойн-адреса и суммы. В нем нет какой-либо личной или опознаваемой информации. Другими словами, если я посылаю 50 биткойнов с адреса А моему другу Джо с адресом Б, весь мир видит, что 50 биткойнов отправлены с адреса А на адрес Б, но никто не может определить, что адрес А принадлежит мне и адрес Б принадлежит Джо. Так что, когда я гляжу на блокчейн, все, что я вижу – это балансы адресов и транзакции с одного адреса на другой – ничто из этой информации не ставит под удар конфиденциальность людей, осуществляющих эти транзакции.
Другой момент, который необходимо понять, и который мы еще не обсуждали, состоит в том, что в отличие от электронной почты, где вы можете иметь только один адрес, или, по крайней мере, небольшое количество адресов, количество биткойн-адресов, которые могут быть у человека, не ограничено. Фактически это поощряется, и большинство биткойн клиентов настроены по умолчанию таким образом, чтобы каждая транзакция использовала новый адрес. Давайте еще раз рассмотрим пример отправки 50 биткойнов моему другу Джо, сейчас мы уже знаем немного больше. Когда я прошу Джо сказать мне его биткойн-адрес, он, как правило, не называет мне адрес, содержащий всю сумму его богатства, а создаст абсолютно новый адрес, на котором вообще нет биткойнов, и я отправляю 50 биткойнов на этот новый адрес. Биткойн-программы не требуют от вас управления балансом каждого адреса индивидуально, они могут показать вам общий баланс всех адресов, которые вы когда-либо создавали. Если взглянуть на дело с моей стороны, вряд ли у меня есть адрес, содержащий точную сумму денег, которую я хочу отослать Джо. Например, у меня может быть биткойн-адрес А, на котором есть 30 биткойнов, и биткойн-адрес Б, с 35 биткойнами. В нашем примере программа автоматически сгенерирует транзакцию, которая возьмет 30 биткойнов с адреса А, потом 20 – с адреса Б, отправит эти 50 биткойнов на адрес Джо, а также отправит оставшиеся 15 биткойнов на новый адрес В, который она автоматически сгенерировала для меня. И у Джо, и у меня могут быть сотни или тысячи адресов, содержащих маленькие суммы денег, которые вместе составляют наше полное биткойн-состояние. Ни один из нас не может видеть адресов другого, кроме тех, которые используются в транзакции.
Исключением из этого правила будет случай, когда я получаю одну транзакцию на большую сумму денег, скажем, миллион долларов в биткойнах. Если после этого я захочу потратить 1 биткойн с этого адреса, получатель сможет увидеть, что я имею в своем распоряжении около миллиона долларов в биткойнах, что я не хотел бы раскрывать. Достаточно сказать, что для счастливчиков, оказавшихся в таком положении, существуют техники, позволяющие скрыть это богатство, разбрасывающие деньги по множеству адресов – современные программы делают этот процесс тривиальным.
Теперь, когда мы знаем, что такое блокчейн, как он на самом деле работает? Вопрос, возможно, стоит сформулировать так: как мы можем обеспечить непротиворечивую запись транзакций в децентрализованном окружении? Первое, что нужно понять о блокчейне, это то, что он называется блокчейном потому, что состоит из цепочки последовательных блоков. Блок – это группа транзакций. Угадайте, с какой частотой генерируются блоки? Примерно раз в 10 минут. Наверное, вы начали понимать, что существует связь между блокчейном и добычей биткойна, и если вы предположили это, вы правы.