Война за P2SH: как завершилась первая большая битва разработчиков биткоинаВ мире криптовалют

Война за P2SH: как завершилась первая большая битва разработчиков биткоина

Война за P2SH: как завершилась первая большая битва разработчиков биткоина

За свою историю биткоин пережил немало драматичных моментов, и не всегда это были только взлеты и падения цены монеты. Достаточно вспомнить события, сопровождавшие активацию протокола Segregated Witness, хардфорк Bitcoin Cash и предшествовавшие им войны вокруг размера блока.

Но первым по-настоящему крупным противостоянием в сообществе разработчиков оказался вопрос активации P2SH – первого апгрейда, который состоялся после ухода Сатоши Накамото.

О тех событиях рассказали в статье для Bitcoin Magazine Питер Риццо и Аарон ван Вирдум. Ее адаптированный перевод представлен ниже.

****

«Сдвинь дату на два месяца назад. OP_EVAL пока еще просто не готов».

Гэвин Андресен очень долго работал над тем, чтобы избежать такого вердикта. Всего одна фраза, отправленная с компьютера Рассела О’Коннора, остановила длившуюся несколько месяцев работу над имплементацией первого после ухода Сатоши Накамото обновления кодовой базы биткоина.

Предложенную команду Андресен называл наиболее быстрым путем к более безопасным биткоин-кошелькам. Однако она, как выяснил О’Коннор, содержала уязвимость, позволявшую создавать бесконечный цикл при попытке валидировать транзакции.

Иными словами, через OP_EVAL можно было нарушить работу нод и, следовательно, всей сети биткоина.

«Мне потребовалось целых 70 минут, чтобы найти этот баг. Парни, вам следует остановиться и по-настоящему понять биткоин», — написал тогда О’Коннор.

Это была первая крупная неудача для Андресена, нового руководителя проекта, и он пытался оспорить выводы О’Коннора. По его мнению, отказ от OP_EVAL означал бы впустую потраченные месяцы написания и проверки кода, а также оставил бы пользователей без инструментов защиты от троянов и других вирусов, которые в то время угрожали кошелькам.

Целью OP_EVAL было создание простых мультиподписных кошельков, которые позволяли бы восстановить биткоины даже при потерянных бэкапах. Также команда давала возможность создавать схожие с банковскими сервисы оповещения, направленные на предотвращение краж и мошенничества. И все это в рамках уже известных и понятных пользователям транзакций.

Однако для тех, кто видел опасность в слишком быстрой разработке, предупреждение О’Коннора оказалось достаточным.

«Я хотел бы напомнить всем, что мы ставим под угрозу систему стоимостью более чем $20 млн. На кону не просто программное обеспечение – все должно быть исключительно надежным», — писал разработчик Алан Райнер.

Неудача с активацией OP_EVAL имела и другое важное значение. Немногие в 2011 году хорошо понимали код биткоина, и еще меньше людей обладало достаточными знаниями и навыками для его защиты.

Как организовать работу разработчиков? Какую ответственность они несут перед пользователями? Как активировать обновления, если неизвестно, кому принадлежит последнее слово? Все эти вопросы в скором времени стали ключевыми в ходе первой большой войны между разработчиками биткоина.

Передача полномочий

Как правило, проекты с открытым исходным кодом возглавляют их основатели, координирующие работу с присоединившимися разработчиками. И именно основатели принимают решения в случае разногласий.

Биткоин на раннем этапе своего существования не был исключением. В течение первых двух лет роль ведущего разработчика и диктатора играл Сатоши Накамото. Без каких-либо широких дискуссий в сообществе он внедрил восемь обновлений, после чего постепенно отошел от дел.

К концу 2010 имя Накамото было удалено с сайта Bitcoin.org, а лидером проекта де-факто стал Гэвин Андресен, до этого получивший известность в качестве разработчика ПО для 3D-графики. Процесс передачи полномочий оказался не совсем обычным: все ограничилось коротким публичным сообщением и конфиденциальной передачей ключа системного оповещения.

Война за P2SH: как завершилась первая большая битва разработчиков биткоина

Одни видели в этом угрозу всей сети, другие называли подобную централизацию майнинга лишь временным неудобством, которое тем не менее помогало сделать процесс активации софтфорков более управляемым и, следовательно, менее рискованным.

Голосовать или не голосовать

Ситуацию усложняло то, что предложения Андресена и Дэша-младшего отображали различные подходы к управлению биткоином. До этого времени разработчики всегда говорили о предстоящих обновлениях как о своего рода голосовании за то или иное предложение. Однако, хотя со временем эта терминология и стала частью лексикона, на техническом уровне разработчики уже не спрашивали мнение майнеров о новых правилах. Скорее, для них это было просто способом понять, готовы ли те к внедрению обновлений.

По теме...  Ошибка X: развязка рук фишерам и первый приговор за взлом DeFi в списке событий кибербезопасности

Некоторые разработчики, среди которых можно назвать Грегори Максвелла, выступали за то, чтобы ограничить «голосование» майнеров исключительно вопросами, касающимися транзакций, и не давать им возможности определять правила функционирования всей сети.

«Что произойдет, если подавляющее большинство майнеров, это может быть даже 100%, решит сохранить награду в 50 BTC навсегда? Ничего. Майнеры, которые изменят это правило в своем ПО, попросту перестанут существовать с точки зрения сети», — писал он.

Дэш-младший в этом вопросе Максвеллу не возражал, но не видел практической возможности обеспечения безопасности сети в случае, если разработчики решат внедрить изменения без поддержки майнеров.

«Майнеры могут попросту отказаться подтверждать P2SH-транзакции, защищая тем самым себя от изменений со стороны разработчиков. А если у разработчиков не будет поддержки майнеров, то угадай, произойдет? Легкая атака 51%, сеть не будет более безопасной!»

С этой точки зрения легче понять, почему Дэш-младший считал, что Андресен, пытаясь протолкнуть P2SH, злоупотребляет своей ролью ведущего разработчика: если для создания блока майнер использовал бы стандартное ПО, он автоматически бы отдавал голос за P2SH.

В ответ на это он создал патчи, которые давали бы майнерам право голосовать как против, так и в пользу P2SH и CHV. И хотя на практике этот код использовали немногие, свой эффект он все же оказал. Так, Tycho, оператор крупнейшего на тот момент пула DeepBit, не скрывал, что не чувствует себя комфортно, оказавшись перед перспективой оценки двух конкурирующих предложений, особенно когда консенсуса нет среди самих разработчиков.

«Я не хочу быть тем одним человеком, который примет такое решение», — писал он.

В тупике

Позиция Tycho делала ситуацию еще более сложной – без его поддержки, а речь шла о более чем 30% хешрейта сети, активация P2SH становилась проблематичной. В конце января 2012 года, когда первый раунд голосования приближался к своему завершению, казалось, что необходимой поддержки предложение не наберет.

Вероятная задержка приводила в отчаяние и самого Андресена, и других разработчиков.

«Полагаю, что пока кто-то не установит для этого процесса дедлайн, он никогда не закончится, потому что всегда найдется еще один парень с новой великой идеей», — написал Грегори Максвелл в IRC-канале для разработчиков.

Андресен обвинил в сложившейся тупиковой ситуации именно Tycho. Заявив, что один человек обладает достаточным хешрейтом, чтобы заблокировать любые изменения, он назвал «неправильным» использовать положение оператора крупнейшего майнингового пула и выступать против общего консенсуса.

Тем не менее, хотя Андресен призывал к публичному давлению на DeepBit и даже предлагал возместить средства в случае, если активация P2SH приведет к финансовым потерям, Tycho отказывался голосовать за предложение.

Аргументы Андресена нашли отклик и среди пользователей, обвинявших Tycho в задержке обновления. Однако оператор DeepBit твердо стоял на своем: он не хотел быть одним человеком, который бы решил судьбу вопроса, отмечая, что совокупных мощностей других пулов было бы достаточно для поддержки решения.

Второй раунд голосования

Не сумев заручиться достаточной поддержкой майнеров, Андресен был вынужден более активно обсуждать свое предложение в публичном пространстве, и в определенный момент даже допустил, что CHV может стать альтернативным решением для выхода из тупика.

Тем не менее были очевидны и разногласия между теми, кто считал, что выбор между P2SH и CHV должны сделать майнеры, и теми, кто выступал за принятие решение на основе меритократии.

По теме...  Pike Finance потерял почти $2 млн в результате двух атак

К числу последних принадлежал и модератор BitcoinTalk Theymos.

«Блоки могут отвергать и не майнеры. Если это будет делать достаточное число клиентов, майнеры будут не нужны», — написал он.

Theymos также выступил с предложением по организации встреч определенного узкого круга экспертов, которые бы собирались каждые две недели и отдавали бы голос за то или иное предложение. Возможно, это было совпадением, но вскоре после этого Дэш-младший создал Wiki-страницу, на которой наиболее известные разработчики могли голосовать за предложения.

Спустя небольшое время Максвелл, Велле и другие дали понять, что, хотя и отдают предпочтение P2SH (BIP-16), они также готовы поддержать CHV (BIP-17). О’Коннор и Дэш-младший согласились с тем, что P2SH может быть принят, но предпочтение отдали CHV.

Единственным, кто категорично отказался поддержать CHV, оказался Андресен.

Война за P2SH: как завершилась первая большая битва разработчиков биткоина

Но более важным, вероятно, было то, что CHV имел слишком малую поддержку среди майнеров. В середине февраля 2012 года P2SH поддерживало около 30% хешрейта, CHV – всего 2%. Это вынудило Дэша-младшего неохотно принять доминирование P2SH и даже задуматься над тем, чтобы полностью отозвать свое предложение.

Второй раунд голосования назначили на 1 марта, и по мере приближения этой даты P2SH набирал все больше поддержки, вплотную приблизившись к необходимому порогу в 55%. У Tycho и Дэша-младшего не оставалось иного, кроме как принять выбор большинства.

Вскоре Андресен анонсировал активацию софтфорка, и 1 апреля она была успешно завершена. Первый протокол, созданный после ухода Сатоши, был имплементирован в основной сети биткоина.

Сложный процесс активации P2SH оказал значительное влияние на будущую структуру разработчиков биткоина. Андресен добился внедрения решения, которое он сам же и создал, и если во время этого «политического кризиса» кто-то и ставил под сомнение его роль лидера, в конце он свой статус закрепил.

Тем временем отношение сообщества к Дэшу-младшему и Тааки было уже не самым лучшим. На определенном этапе Андресен даже попросил Дэша-младшему полностью отойти от работы над кодом биткоина, хотя позже он либо сам отказался от этой идеи, либо автор CHV его совет просто проигнорировал.

Грегори Максвелл вошел в число ключевых разработчиков, получив вместе с Андресеном, Владимиром ван дер Лааном и Джеффом Гарзиком коммит-доступ к проекту.

Также был задан и общий тон процессу разработки: приветствовался более прагматичный и технически обоснованный подход, а эксцентричные контрибьюторы постепенно утратили свое влияние. Идеологические разногласия тем не менее сохранились и продолжали проявляться в последующие годы.

Год спустя, отвечая на видео, в котором разработчик Питер Тодд приводил аргументы против увеличения размера блока, Андресен сказал:

«Размер блока будет увеличен. Твое видео просто заставит многих людей беспокоиться о том, о чем беспокоиться не стоит. Все будет точно так же, как с предложением Люка-младшего в прошлом году – просто буря в стакане».

Каким же должен быть процесс принятия решений в сети децентрализованной цифровой валюты? Ответа на этот вопрос по-прежнему нет, и прежде чем он будет найден, пройдет еще немало лет.

*****

В 2016 году Андресен поддержал версию, согласно которой создателем биткоина является австралиец Крейг Райт, после чего ему закрыли доступ к обновлению репозитория Bitcoin Core на GitHub и он покинул проект. В 2017 году разработчик поддержал форк Bitcoin Cash.

Летом 2020 года он отказался от предыдущих заявлений о Райте, заявив, что его могли ввести в заблуждение касательно личности создателя биткоина.


Источник
0 0 голоса
Рейтинг статьи

Тематики: ,

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Whatsapp
Ok
Telegram
Vk
Copy link
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x