Эпоха криптовалют. Как биткоин и блокчейн меняют мировой экономический порядок - Кейси Майкл
Шрифт:
Интервал:
Таким образом, вряд ли можно ожидать скорого наступления экологического Судного дня для биткоина. Но даже если так, было бы безответственно игнорировать проблему расхода электроэнергии. Как подчеркивает Лейн из BitCarbon, возросшая экономичность новых майнинговых узлов прямо влияет на рост прибыльности, что вкупе с растущим курсом биткоина вовлекает все новых майнеров в гонку, а это, в свою очередь, приводит к дальнейшему росту потребления электроэнергии. И это один из многих факторов, которые делают биткоин уязвимым перед будущими угрозами и заставляют изобретателей рассматривать два варианта: либо совершенствование биткоина, либо разработку нового проекта криптовалюты.
Об одной такой уязвимости общественность внезапно узнала 11 марта 2013 года в 22 часа 27 минут по гринвичскому времени[180]. Непосредственно перед этим моментом, когда глобальная сеть майнеров напряженно трудилась, подтверждая транзакции и охотясь на биткоины, какой-то бдительный майнер заметил нечто странное. Один из майнинговых узлов в сети обрабатывал блок с более высоким номером, чем тот, который только что был зарегистрирован на сайте blockexplorer.com – примитивной версии Blockchain.info, где в режиме реального времени размещается информация о последних занесенных в книгу учета транзакциях. Это заставило майнера задуматься о том, какой же блок присоединился последним. Правильно ли его компьютер определил, к какому блоку следует присоединять сформированный им блок?
Программное обеспечение биткоина периодически обновляется небольшой группой программистов, которые по всеобщему согласию и за небольшой гонорар от неприбыльной организации Bitcoin Foundation администрируют сервисную программу с открытым кодом. Вышеупомянутый майнер решил, что сбой случился из-за того, что он пытался заменить свою версию 0.7 биткоинового программного обеспечения более новой версией 0.8, совсем недавно выпущенной группой администраторов и уже установленной многими участниками сети. Поэтому он зашел на ветку разработчиков биткоина в сообществе пользователей системы групповых дискуссий в интернете на форуме Bitcoin. Появившись в чате под ником thermoman, позаимствованным у супергероя с планеты Ультрон из британского комедийного сериала, он отправил сообщение одному из пяти ведущих разработчиков, Питеру Вуилле (ник sipa), работающему под руководством ведущего специалиста Bitcoin Foundation Гэвина Андресена. Именно он отвечал за работоспособность базового программного обеспечения для биткоина. Thermoman сообщил sipa о несоответствии в номерах блоков в блокчейне. Завязалась дискуссия, в которую втянулись эксперты из группы разработчиков базовых программ с открытым кодом для биткоина.
Джоук Хофман (ник Jouke) из Нидерландов вклинился в разговор, заявив, что тоже сталкивался с расхождениями в номерах блоков. Тогда sipa предложил несколько вариантов разрешения проблемы, но ни один не сработал. В ходе беседы участники продолжали проверять номера блоков в блокчейне на разных сайтах. Расхождения продолжали появляться. В конце концов в 23:06 по гринвичскому времени разработчик программного обеспечения для майнинга Люк Дашжр (ник luke-jr) понял, что случилось.
23:06. Luke-jr: Итак??? Увы, случайное раздвоение блокчейна?:х
23:06. Jouke: Вот тебе и на!
Теоретически блокчейн должен быть только один. По идее, он последовательно формируется на основе хеш-связей, создающих неразрывную, монолитную запись всех подтвержденных транзакций. Время от времени в блокчейне появляются раздвоения: возникает брошенный блок – незавершенный или содержащий неподтвержденные транзакции. Другие майнеры стремятся верифицировать его, но иногда бывают не уверены в его легитимности и возможности присоединять к нему свои блоки. Но гениальность построенной на общем согласии биткоиновой системы состоит в том, что такие раздвоения не могут существовать долго. Ведь сообщество майнеров действует, исходя из предположения о том, что легитимной считается самая длинная ветвь блокчейна. Большинство майнеров, работая совместно над конкретной ветвью блокчейна, подтверждают ее легитимность, поскольку в совокупности обладают большим вычислительным ресурсом, чем меньшая часть их коллег, ошибочно (или даже из мошеннических соображений) продолжающая короткое ответвление цепи, не признаваемое большинством майнеров. Больший вычислительный ресурс означает, что обладающее им большинство майнеров будет выигрывать большее количество блоков монет и с течением времени построит более длинную цепь блокчейна (с более высокими номерами блоков). Этот факт сразу же заметят компьютеры, присоединяющие свои блоки к более короткой ветви цепи с более низкими номерами блоков. Эти «заблудившиеся» майнеры затем переключатся на более длинную ветвь цепи. Ведь блоки и транзакции считаются легитимными, только если их признает таковыми большинство майнеров. Но этот принцип может породить проблему, если один отдельно взятый майнер сосредоточит в своих руках более 50 % вычислительного ресурса сети.
В данном случае эта стандартная процедура устранения расхождений не сработала. Обе ветви блокчейна продолжали расти. Это означало, что единого списка подтвержденных транзакций больше не существует. Представьте себе, что половина обитателей нашего воображаемого села на острове Яп вдруг решила пересмотреть балансы камней фэй, принадлежащих односельчанам, и внедрить свой вариант списка. Такой ситуацией могут воспользоваться мошенники, чтобы платить одними и теми же биткоинами дважды – например, если администратор майнингового пула, который отвечал, скажем, за верификацию 30 % объединенного блокчейна, получал полный контроль над одной из двух ветвей и мог заставить электронные кошельки отправлять уже израсходованные биткоины друг другу.
Расчет делается на то, что другие майнеры признают эту транзакцию легитимной, равно как и баланс в кошельках, с которых эти биткоины уже давно списаны в результате предшествующих транзакций. Обычно большинство майнеров замечают эти манипуляции и переходят на более длинную легитимную ветвь блокчейна, но при неустраненном раздвоении блокчейна крупный пул майнеров, обладающий более чем 50 % вычислительного ресурса, использует его для поддержания ошибочной ветви блокчейна, верифицируя мошеннические транзакции. Если пустить ситуацию на самотек, можно разрушить целостность всей биткоиновой системы.
Вуилле быстро понял, что конкретно это раздвоение вызвано отнюдь не действиями алчного хакера, а программным глюком, случившимся в результате внедрения его коллегами из группы администрирования новой версии 0.8 биткоиновой программы. Предполагалось, что ее реорганизованная база данных объединится с базой данных 0.7, но этого не произошло. Вскоре в дело вмешался ведущий разработчик Андресен. Проконсультировавшись с Вуилле и еще двумя базовыми разработчиками, Джеффом Гарзиком и Грегори Максвеллом, а также переговорив с владельцем биткоиновой биржи Mt. Gox, которая на тот момент была наиболее крупным финансовым учреждением биткоиновой сети, Марком Карпелесом (ник MagicalTux), Андресен решил отказаться от новой версии программного обеспечения 0.8 и вернуться к старой версии 0.7.
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!