Система шифрования с открытым ключом широко используется в интернете и финансовых приложениях, включая онлайн-банкинг и электронную почту. Она позволяет людям обмениваться определенными сведениями, не предоставляя посторонним доступа ко всей приватной информации, и напоминает систему интернет-доступа к вашему банковскому счету, когда строго секретный пароль комбинируется с несекретным именем пользователя. Важная особенность этой системы заключается в том, что при нынешнем уровне компьютерных технологий практически невозможно подобрать личный ключ путем обратных математических вычислений на основе открытого ключа{18}. Но это не означает, что посторонние не могут похитить личный ключ, если получат доступ к вашему компьютеру или смартфону, на котором установлен электронный кошелек. Поэтому проблема обеспечения безопасности электронных кошельков и биткоиновых накоплений стоит очень остро и для физических лиц, и для компаний. Примером того, что может произойти, если не уделять достаточно внимания вопросам безопасности, служит судьба биткоиновой биржи Mt. Gox, по крайней мере, если верить версии ее топ-менеджеров о том, как они потеряли 650 тысяч биткоинов.
Возможность отследить всю цепочку транзакций помогает формировать доверие к денежной системе в обществе. Но эту особенность биткоиновой денежной системы уже ухитрились использовать правоохранительные органы, причем наиболее ярким примером таких действий стал арест биткоинов во время разгрома силами ФБР онлайновой биржи торговли наркотиками на сайте Silk Road{19}.
В отличие от транзакций по кредитным картам, которые привязаны к имени конкретного человека и известны обслуживающему банку и всем, кто имеет доступ к операциям на его счете, биткоин-адрес никак не связан с конкретным человеком. По этой причине биткоин привлек внимание людей, которые проводят деликатные операции и стремятся предотвратить утечку информации. Ведь если они обнародуют информацию о том, какие именно счета принадлежат им, то любой желающий сможет проследить совершаемые по ним транзакции. Поскольку в качестве ключей используются буквенно-цифровые идентификаторы, а не имена, органам правопорядка не так-то просто разобраться в этой системе. Однако возможность отслеживать транзакции позволяет выявлять связи, которые никогда не удалось бы обнаружить при расчете наличными деньгами.
Имея полномочия вызывать кого угодно в суд для допроса, следователи теоретически могут заставить любую организацию раскрыть информацию о владельце любого электронного кошелька. Поэтому некоторые считают, что биткоин – гораздо более полезная вещь для следователей, чем балаклава для преступников.
Это обстоятельство ставит перед нами важные вопросы. Между такими задачами, как защита персональных данных и открытие правительству доступа к информации, необходимой для защиты общества, всегда существует определенное противоречие. Главная проблема биткоина, как и интернета в целом, будет состоять в достижении баланса в реализации этих задач – конечно, если ему удастся стать мейнстримом. Очень важно, чтобы биткоин поддерживал и укреплял позитивные аспекты своей анонимности – будь то возможность для женщины-блогера в Афганистане получать оплату за свои публикации без помех со стороны родственников или в более широком смысле – право индивидуума стремиться к личному счастью, в чем бы он его ни усматривал, не подвергаясь опасности со стороны нечистоплотных людей.
Теперь вернемся к вопросу о том, как функционирует блокчейн. Кошелек Джеймса подписал его личный ключ и передал в сеть распоряжение о перечислении 0,008 биткоина на биткоин-адрес кафе Coupa, но пока эта транзакция числится в приостановленных. Впоследствии, если все пойдет по плану и Джеймса не заподозрят в совершении «двойных трат», эта транзакция будет подтверждена и включена в блокчейн. После этого отменить или пересмотреть ее станет невозможно. Здесь не существует процедуры оспаривания сделки, которую обеспечивают некоторые банки, если владелец кредитной карты отказывается от оплаты. Ни одна из сторон сделки не может принудительно ее расторгнуть, а единственная возможность сделать это по взаимному согласию – провести вторую операцию, обратную первой. Именно поэтому система недопущения «двойных трат» так важна в денежной системе биткоина, и это приводит нас к группе трудолюбивых людей, называющих себя майнерами.
С нашей точки зрения, термин «майнинг» выбран неудачно. По большей части эта работа напоминает ведение бухгалтерских книг.
Работа – еще один ключевой термин, присущий сленгу биткоиновых майнеров. В данном случае он означает, что внутренняя стоимость биткоина зависит только от работы, и при этом весьма тяжелой. По сути, основное отличие этой работы заключается в высокой сложности вычислений. Чем сложнее вычисления, тем больше ресурсов требуется для их выполнения, и в первую очередь электроэнергии. Некоторые специалисты по криптоэкономике доказывают, что именно эта работа придает биткоину реальную внутреннюю стоимость. Не менее важно и то, что объем выполненной работы – вычислительный эквивалент человеко-часов – легитимизирует главный журнал, поскольку представляет собой значимую коллективную инвестицию в поддержание его целостности.
Именно так «работают» майнеры.
Когда Джеймс поручил своему электронному кошельку переслать биткоины на биткоин-адрес кафе Coupa, тот передал информацию об отложенной операции в сеть вместе с ценными сведениями: обе стороны сделки сопоставили свои биткоин-адреса, дату и время транзакции и другие детали, например уникальный ключ транзакции и что угодно еще – хоть привет, – что может прикрепить отправитель.
Теперь поговорим о майнерах. Каждый занятый в майнинге сетевой узел, или компьютер, собирает эту информацию и включает ее в зашифрованную буквенно-цифровую последовательность знаков, называемую хешем. Подобно тому, как архивируются файлы документов, процесс хеширования позволяет «свернуть» относительно большие массивы информации, преобразовав их в гораздо меньший объем данных. Хеш – неотъемлемая часть процедуры шифрования и хранения массива данных в компьютерном мире. Возможно, вы уже сталкивались с ним, не зная, с чем имеете дело. В зависимости от того, какой алгоритм хеширования задействован, его результатом будет хеш фиксированной длины. В случае с биткоином используется алгоритм под названием SHA-256, обеспечивающий получение хеша длиной в 64 знака, состоящий из последовательности букв (от a до z) и цифр (от 0 до 9). Чтобы посмотреть, как выглядят такие хеши, зайдите на один из множества сайтов, содержащих хеш-генераторы, и напишите что-нибудь в текстовом поле. Мы ввели в такое поле текст: The only thing we have to fear is fear itself («Единственное, чего мы должны бояться, – так это самого страха») – и получили следующий хеш:
f72680b97551fc5eda1b3a33dda55796ba9619b371fdd03f66409f2c4958c2cb
Процедура подтверждения достоверности транзакций для включения в блокчейн Публикуется с разрешения Майкла Кейси и Пола Виньи
А вот так выглядит хеш, полученный в результате введения в то же текстовое поле всех 168 слов предыдущего абзаца этой главы:
e52a16c11d5c45b768b1bc87f0c1494799e92c019101562bfb435950b36de17b
Независимо от того, будет ли это одна отдельно взятая буква или полный текст романа «Война и мира», хеш все равно состоит из 64 знаков. Но при малейшем изменении в исходной информации – одной десятичной точке в числе или, например, пробеле – весь хеш полностью изменится. Эта способность упаковывать большой объем информации в массивы данных одинаковой структуры, но каждый раз совершенно разного вида делает хеширование очень мощным инструментом шифрования. Большой объем информации можно представить в сжатом виде и зашифровать. Такой хеш практически невозможно расшифровать и узнать, какую именно информацию он содержит; однако если ваш компьютер имеет доступ к источнику данных, из которых был сформирован этот хеш, то не так уж сложно проверить правильность заключенной в нем информации.
Алгоритм хеширования позволяет построить своего рода иерархию хешей, что весьма полезно, поскольку создается структура, в которой майнеры могут группировать одновременно выполняемые транзакции. Это происходит следующим образом. Программное обеспечение на компьютере майнера объединяет хеш первой транзакции – вместе со всей содержащейся в нем информацией – с необработанной информацией следующей не хешированной транзакции, чтобы создать новый хеш. Теперь информация об обеих транзакциях полностью хеширована. Эта процедура повторяется со следующей по очереди транзакцией, которую принимает в обработку компьютер майнера. Хеш, созданный на основе информации о двух транзакциях, объединяется с информацией о третьей
