Инженер Ava Labs кратко рассказал об ошибке в коде, которая на прошлой неделе серьезно повредила блокчейн Avalanche.
О'Грэйди отмечает, что фонды никогда не подвергались риску, хотя эта громкая ошибка стала ценным уроком для индустрии блокчейнов.
Avalanche был запущен в сентябре 2020 года с заявлением, что он может обрабатывать 4500 транзакций в секунду. Его поддерживают известные криптовалютные фирмы, включая Galaxy Digital Майка Новограца, Bitmain и Initialized Capital. Он также имеет академический штамп одобрения, разработанный Эмином Гюн Сирером, профессором информатики Корнельского университета.
Блокчейн обычно группируется с другими так называемыми «убийцами Ethereum» или блокчейнами, предназначенными для решения проблем масштабируемости, которые с самого начала преследовали второй по величине блокчейн. Несмотря на то, что Avalanche позиционируется, чтобы украсть долю рынка у Ethereum, она также была заявлена как способ дополнить и соединить - а не строго конкурировать - со своим предшественником.
У Avalanche есть три «цепочки по умолчанию», включая так называемую «цепочку контрактов», которая поддерживает виртуальную машину Ethereum и ее язык кодирования Solidity. Именно эта цепочка была частью выпуска этой недели.
Чтобы увеличить пропускную способность транзакций, три цепочки Avalanche остаются отдельными и отличными друг от друга, каждая из которых работает в пределах установленного диапазона типов транзакций, до момента, когда актив должен перейти в другую цепочку. Этот процесс оказался чрезвычайно напряженным после запуска нового децентрализованного денежного рынка под названием Pangolin.
Большое количество пользователей и объем создают нетипичное количество блоков для обработки. Это, как отмечает О'Грейди, вызвало ошибку, которая создавала ложные кросс-чейн процессы. По словам О'Грейди:
«Это заставило некоторых валидаторов принять некоторые недопустимые транзакции, в то время как остальная часть сети отказалась выполнять эти транзакции и остановила цепочку контрактов».
Важно отметить, что никаких двойных расходов не произошло.
«Ошибка не повлияла на обычные транзакции, переводы монет, перевод активов, уничтожение монет или вызовы смарт-контрактов. Avalanche никогда не позволяла никому из пользователей успешно отправлять одни и те же средства двум получателям», - написал О'Грейди.
Понимание проблемы пришло через несколько часов после первоначальной ошибки, хотя на исправление понадобилось больше времени. Учитывая децентрализованный характер Avalanche, было бы невозможно заставить все узлы работать вместе и исправить проблемные транзакции.
Вместо этого, как пишет О'Грэйди, решение было найдено путем постепенного развертывания патча - в основном так, как обновляется любое программное обеспечение.
Блокчейны - это сложные вещи, созданные людьми, но управляемые машинами. Проблема, которая была достаточно маленькой, чтобы ее можно было обойти во время первоначальной проверки, может стать снежным комом по мере роста сети. В случае с Avalanche ошибка не привела к отключению сети, но зато внесла сомнения в утверждения, сделанные по поводу способности сети справляться с высокой пропускной способностью перед запуском.