Придя в свой офис, Андресен потратил некоторое время на чтение тревожных сообщений, пытаясь определить причину возникших проблем. Ему казалось, что утверждение биржи Mt. Gox об изменчивости транзакций несколько подозрительно. Эту проблему обнаружили еще в 2011 году, и она активно обсуждалась на программистских форумах. Она касалась одной особенности прикладного программного обеспечения электронного кошелька, которое разрабатывалось одновременно с базовым протоколом. В течение непродолжительного времени после совершения транзакции хакер мог изменить идентификационный код таким образом, чтобы провести под ним более одной транзакции блоком. Теоретически это означало, что мошенник мог заставить биржу, например ту же Mt. Gox, думать, что такая транзакция никогда не существовала – в частности, представив дело таким образом, что она никогда не проходила через электронный кошелек мошенника, – и потребовать ее отмены. Но этот «фокус», как его любил называть Андресен, а именно изменчивость транзакций, отнюдь не был случайным багом или глюком. Это преднамеренно внесенное в код свойство, хотя и несколько сомнительное. Тем не менее проблема не возникла бы, если бы биржа придерживалась базовых принципов бухгалтерского учета и сопоставляла данные блокчейна с внутренними бухгалтерскими записями об исходящих биткоиновых платежах. Андресен был весьма удивлен, услышав, что СЕО Mt. Gox Марк Карпелес, завсегдатай тех самых программистских форумов, где проблема изменчивости транзакций обсуждалась во всех подробностях, либо не знал о проблеме, либо не желал о ней говорить.
Андресен пришел к выводу, что Mt. Gox неправильно интерпретировала и (или) преднамеренно преувеличила свои внутренние проблемы, недобросовестно и безосновательно свалив вину за них на биткоин. В корпоративном блоге Bitcoin Foundation он опубликовал пост, в котором высказал свое мнение. Пост назывался «Вопреки утверждениям Mt. Gox, биткоин не виноват в ее проблемах» [275]. В нем утверждалось, что базовый протокол биткоина корректен, а фирмам – владельцам электронных кошельков следует просто придерживаться «добросовестного подхода» в управлении ими.
Этот случай побудил Андресена раз и навсегда покончить с вопросом об изменчивости транзакций, решение которого ранее просто отложили в долгий ящик под давлением более насущных проблем. Программисты достигли согласия в том, что это явление, скорее всего, досадная неприятность, но его устранение связано с определенными техническими сложностями. Однако, насколько он мог судить, ничто не угрожало дееспособности базового протокола. Андресен пригласил нескольких своих коллег в видеочат в режиме реального времени и обсудил с ними этот вопрос. В частности, в разговоре приняли участие двое программистов из Европы, двое – из США, а также кое-кто из ведущих программистов, но особого ощущения срочности в разрешении проблемы не было. Такая атмосфера сохранялась до тех пор, пока не пришло еще одно сообщение от Грегори Максвелла – программиста из Маунтин-Вью (штат Калифорния), на добровольных началах занимавшегося разработкой программ для биткоина.
Накануне вечером Максвелл поговорил с Карпелесом, затем провел некоторые изыскания и понял, что проблема со стандартным программным обеспечением электронного кошелька действительно есть, причем, похоже, большая. Он считал, что это дает ловкому хакеру возможность войти в книгу записей транзакций и внести мошеннические изменения. Интересно, что хакер может превратить фокус с изменчивостью транзакций в некий вид DDOS-атаки (распределенный отказ в обслуживании) и зафлудить сеть фальшивыми кодами транзакций. Как позднее заметил Андресен, это была одна из тех проблем, которая «находится на самом видном месте». Целостность блокчейна сама по себе не пострадала, поскольку причины изменчивости транзакций и багов крылись в дополнительном программном обеспечении электронного кошелька, но не в базовом протоколе, который определяет порядок майнинга и управление блокчейном. Тем не менее биржи и прочие бизнесы, часто проводившие биткоиновые транзакции, сталкивались с многочисленными случаями мошеннических требований о переводе средств. Биткоиновая сеть оставалась в безопасности, а вот биткоиновая экосистема, сложившаяся вокруг нее, находилась в плачевном состоянии из-за багов, внедрившихся в оригинальное программное обеспечение, разработанное Сатоши Накамото. Андресен говорил нам, что создатель биткоина был блестящим программистом-одиночкой, но при этом довольно небрежным оператором, никогда не подвергавшим свой код тщательному тестированию, которое составляет львиную долю работы в программировании.
Читать дальше
Конец ознакомительного отрывка
Купить книгу