Воскресенье , 24 Июнь 2018

В программном обеспечении Parity выявлена критическая ошибка

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

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

Таким образом, Parity теперь призывает всех пользователей обновлять свое программное обеспечение до новой исправленной версии.

Публично доступные данные показывают, что ошибка могла повлиять на примерно 30 процентов сети ethereum — тех, кто использует программное обеспечение, выпущенное Parity, чтобы оставаться в синхронизации с более широкой сетью. Но, по словам представителей Parity, проблема была исправлена до того, как она достигла узлов, управляющих блокчейном ethereum.

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

Поскольку компании, которые работают на ethereum, начинают обновлять свое программное обеспечение, чтобы избежать этой проблемы, было сказано, что ошибка все равно может повлиять на любые блокчейны, которые запускают программное обеспечение Parity, включая пользователей ethereum classic (ETC).

Новость об уязвимости возникает в то время, когда Parity находится под пристальным вниманием по поводу подобных проблем безопасности. В частности, в ноябре прошлого года ошибка в одном из предложений кошельков компании привела к тому, что сумма 513 774,16 ETH, или $311 млн. в соответствии с текущими показателями, была заморожена и, в свою очередь, недоступна для ее владельцев.

Три строки кода

Вэй Тан, разработчик Parity, который работал над вчерашним патчем кода, сказал, что ошибка связана с частью кода из EIP 86.

Планировавшийся для обновления ethereum в прошлом году, EIP 86 фокусировался на том, что называется «абстракция учетной записи», позволяя отправлять транзакции без подписи от отправителя. Полное обновление ethereum до EIP 86 было отложено из-за его сложности, однако Вэй пояснил, что Parity все же внедрил код, возможно, из-за его роли в предстоящем консенсусном переходе ethereum.

По словам Вэя, команда, отвечающая за внедрение его в программное обеспечение Parity, упустила из виду три строки кода, которые привели к вчерашней консенсусной проблеме.

«Мы пропустили условную проверку в нашем коде, которая заставила полный узел Parity принять блок, содержащий недействительные транзакции», — сказал Вэй.

Вчера в тестовой сети Ropsten было обнаружено несколько таких транзакций, и из-за несовместимости транзакций с более широким блокчейном ethereum, это привело к форку между клиентами Parity и Geth.

Выступая в пресс-релизе, глава безопасности Parity Кирилл Пименов сказал, что в «худшем случае» такие транзакции привели бы к поврежденным блокам сети ethereum, которые «по-прежнему считались бы действительными другими затронутыми узлами Parity.»

Учитывая серьезную хеш-мощность, такой эксплойт привел бы к расколу блокчейна, продолжал Пименов.

«Реакция на эту ситуацию была активной, то есть мы смогли подготовить исправление до того, как кто-то действительно смог использовать ошибку. В результате нам удалось предотвратить разделение сети, — заявил Пименов в пресс-релизе.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *