Адам Теппер. Биткойн – деньги для всех (ЛП) - Теппер Адам
И, если вы до сих пор не догадались, это и есть задача, которую биткойн-сеть предлагает биткойн-майнерам. Разница, конечно, в том, что существует гораздо больше миллиона комбинаций, числа так велики, что их так просто и не назовешь. Все биткойн-майнеры мира в то время, пока я пишу этот текст, коллективно обрабатывают примерно 350 000 000 000 000 000 входных значений в секунду в попытке найти то самое значение, хеш которого попадет в определенный диапазон значений хеша.
Биткойн-сеть регулярно оценивает сложность задачи, и, если задача решается быстрее или медленнее, чем за установленный интервал 10 минут, тогда задача соответствующим образом подстраивается посредством расширения или сокращения диапазона приемлемых значений хеша. Из всех компьютеров мира, пытающихся решить задачу, только первый решивший получает биткойны «в награду», и процесс начинается заново. Следующий вопрос тогда: как остальная биткойн-сеть подтверждает, что задача была решена, и каким образом в этом процессе генерируются биткойны? Первый вопрос простой. Компьютер, который решил задачу, объявляет об этом решении биткойн-сети, и другие компьютеры проверяют решение. Хотя обратная разработка входного значения для данного диапазона значений хеша – это медленный процесс проб и ошибок, но как только решение найдено, его легко проверить, просто пропустив предложенное решение через алгоритм хеширования и убедившись, что результирующее значение хеша попадает в заданный диапазон. Затем добытые биткойны выдаются на определенный майнером адрес, вводя новые биткойны в экономику. Так же, как монархи в старину выпускали тэлли под налоги, которые никогда не будут собраны, и банки выпускали банкноты под средства, которых у них не было, биткойн-сеть медленно генерирует новые биткойны. Ключевая разница между биткойном и другими системами, однако, состоит в том, что во всех предыдущих системах частота генерации валюты устанавливалась по прихоти монарха, правительства, банка или, в последние времена, контролируемого правительством центрального банка. Частота генерации биткойна устанавливается алгоритмически и не может быть предметом манипуляций участников рынка – она предопределена. Частота генерации определяется протоколом Биткойн и со временем понижается, пока в конце концов биткойны не перестанут генерироваться вообще. Для любой даты в прошлом или будущем можно подсчитать примерное количество биткойнов в обращении.
Рис. 4: Распределение биткойнов по времени
Глава восьмая. Децентрализация
Давайте ненадолго возьмем паузу на предыдущем направлении мысли, и обратимся к децентрализации. Децентрализация – относительно недавняя концепция в компьютерном знании, которая находит все больше применений за последнее десятилетие. Одним из первых примеров децентрализации стал пиринговый (P2P) файлообмен. За прошедшие годы существовало много его реализаций, наиболее распространенной из которых сейчас является сеть торрентов. Если вы незнакомы с торрентами, позвольте дать краткое введение. Традиционный метод загрузки файлов из интернета довольно прост. Один компьютер (сервер) хранит файл, который вам нужен, а другой компьютер (клиент) запрашивает этот файл с сервера, и сервер передает файл клиенту. Эта модель до сих пор преобладает сегодня, и большую часть времени, которое вы проводите в интернете, работает так, как описано. Кстати, эта модель называется клиент-серверной. Однако, у нее есть некоторые ограничения. Одно из этих ограничений состоит в том, что файл нельзя загрузить быстрее, чем позволит сервер. Обычно это не проблема, но что если есть миллион человек, которые хотят загрузить с сервера один и тот же файл? Пропускная способность сервера ограничена, вследствие чего этот ограниченный канал должен быть поделен между всеми людьми, загружающими файл. Кстати, отдельный сервер не может поддерживать миллион соединений, так что понадобится ферма из серверов, содержащих файл, что приведет к большим затратам для владельца серверов, или маленькой скорости для клиентов, загружающих файл.
Здесь может помочь распределенная пиринговая сеть. Она работает следующим образом: скажем, у меня есть файл, который я хочу сделать доступным для других людей. Используя P2P-программу, этот файл делится на сотни частей (точный размер и количество частей зависит от многих факторов). Теперь люди могут загружать файл с моего компьютера по одной части за раз в любом порядке. Пропускная способность с моей стороны невелика, так что изначально это будет довольно медленно для тех нескольких человек, которые попытаются загрузить этот файл с моего компьютера. Если кто-либо другой получил от меня одну из частей файла, остальные люди могут теперь загрузить эту часть либо с меня, либо с другого участника сети. Со временем все больше и больше народу загружает одни части файла с моего компьютера, а другие – с компьютеров других людей, до тех пор, пока первоначальный файл не окажется распределен между компьютерами множества людей. Если приходит кто-то новый и хочет загрузить этот файл, программа будет одновременно загружать файл со множества разных компьютеров, возможно, никогда больше не соединяясь с моим компьютером, на котором файл находился изначально – в сущности, в этот момент я могу вообще выключить свой компьютер, и, при условии, что в интернете находится полная копия файла, люди будут продолжать его загрузку беспрепятственно. Эта система показала себя очень успешной для файлов, пользующихся большим спросом. В последнее время мы можем видеть, что децентрализованный подход применяется в программных продуктах, для которых он изначально не задумывался, и наиболее свежим примером является блокчейн.
Глава девятая. Блокчейн
Мы рассмотрели и обсудили три основные идеи из области компьютерных наук, лежащие в основе биткойна: асимметричную криптографию, криптографический хеш и пиринговые сети. Хоть эти идеи и интересны, они не революционны в контексте биткойна. Все эти вещи уже применялись в различных вариантах долгое время. Однако, то, что связывает их воедино – это фундаментально новая идея, являющаяся основой биткойна. Эта идея известна как блокчейн.
Блокчейн – это децентрализованный открытый гроссбух: давайте попробуем в этом разобраться. В случае обычного бизнеса, или, скажем лучше, банка, гроссбухом называют набор записей, который содержит подробности пользовательских транзакций и балансы счетов. В современных банках эти записи хранятся в больших программных системах. Как вы, вероятно, можете догадаться, это большие устойчивые системы, которые должны поддерживать миллионы пользователей, ежедневно осуществляющих миллионы транзакций. Возможно, вам уже знакомы некоторые из симптомов тех трудностей, которые испытывают банки с надежным управлением столь большими наборами данных. Например, вам не удавалось загрузить с интернет-портала вашего банка историю транзакций ранее некоторого периода в прошлом. Или, возможно, вы замечали, что некоторые транзакции не сразу появляются в истории, пока они не будут обработаны ночью. Все эти и другие похожие странности являются компромиссами, необходимыми для того, чтобы банки могли управлять этими (часто древними) системами, содержащими огромные объемы данных.
Мы сказали, что блокчейн – это децентрализованный открытый гроссбух. Мы знаем, что такое гроссбух: это набор записей, содержащих подробности пользовательских транзакций и балансы счетов. Теперь давайте объясним, что мы имеем в виду под «децентрализованным» и «открытым». В отличие от банка этот гроссбух не хранится на центральном сервере, контролируемом каким-либо человеком или организацией. Блокчейн-гроссбух доступен публично и хранится локально множеством клиентов, его можно свободно загрузить из интернета. В это может быть трудно поверить, но вы поняли правильно: вся история любых биткойн-транзакций, сделанных кем угодно по всему миру с самого появления биткойна 12 января 2009 года, публично доступна для просмотра любому человеку, к тому же на большинстве компьютеров или ноутбуков, где есть биткойн-программы, хранятся копии этого гроссбуха. Вероятно, у вас появилось много вопросов, например, как это возможно, или почему это вообще хорошая идея. Давайте начнем с того, как это возможно. Конечно, это большой объем данных, но не невозможно большой. Финансовые записи занимают очень немного места, и объективно глядя, все записи о биткойн-транзакциях с самого начала на момент написания этого текста занимают тот же объем места, что и дюжина, или около того, фильмов в HD-качестве. Если вы загрузите биткойн-клиент, который хранит локальную копию блокчейна, потребуется много времени, чтобы начать в первый раз, когда вы его запустите, поскольку он загружает полную копию блокчейна. Другое дело, что хранение полной копии блокчейна на всех компьютерах мира не является абсолютно необходимым. Это определенно невозможно на мобильных устройствах, и сейчас в тренде биткойн-клиенты, которые хранят локально только важные вещи, а не весь блокчейн. Тем не менее, это иллюстрирует мое утверждение о том, что блокчейн публично доступен всему миру, и фактически существует множество сайтов, которые упрощают навигацию по истории всех биткойн транзакций, сделанных кем угодно и когда угодно.