Соучредитель Ethereum Виталик Бутерин сделал смелое заявление о будущем смарт-контрактов, утверждая, что разработчики, которые придают первостепенное значение безопасности, могут ожидать, что в 2030-х годах код без ошибок станет реальностью. Это заявление прозвучало после неоднозначного хардфорка Gnosis Chain, который был нацелен на возврат $9,4 млн, похищенных в результате взлома платформы Balancer.
Ошибки в коде: неизбежность или реальность?
Бутерин подчеркнул, что в будущем нельзя будет утверждать, что «ошибки неизбежны» и что «невозможно написать код без ошибок». Он считает, что с развитием технологий и подходов к разработке программного обеспечения, ошибки в коде станут исключением, а не правилом.
Многоуровневая избыточность как решение
Одним из прорывных решений, которые могут помочь в достижении этой цели, Бутерин назвал многоуровневую избыточность. Этот подход позволит отфильтровывать пробелы между замыслом разработчика и фактической реализацией кода. В качестве примера он привел системы типов, которые могут помочь в выявлении ошибок на ранних стадиях разработки, а также формальную проверку конкретных утверждений о коде, которая служит дополнительным уровнем защиты.
Формальная верификация позволяет выявлять такие проблемы, как целочисленное усечение и переполнение, повторный вход и неэффективная оптимизация использования газа. Эти проблемы могут ускользнуть от внимания аудиторов и тестировщиков, что делает формальную верификацию важным инструментом для обеспечения безопасности смарт-контрактов.
Традиционное тестирование и его ограничения
Бутерин также отметил, что традиционное тестирование программного обеспечения позволяет лишь проверить наличие ошибок, но не гарантирует их отсутствие. Это подчеркивает необходимость внедрения более продвинутых методов проверки кода, которые могут обеспечить более высокий уровень надежности.
Функциональность против совершенства
Несмотря на оптимистичные прогнозы, Бутерин признал, что в некоторых программах ошибки будут продолжать появляться. В определенных случаях функциональность может быть важнее совершенства, и разработчики должны находить баланс между этими двумя аспектами. Тем не менее, у тех, кто уделяет приоритетное внимание безопасности, будут инструменты для создания действительно безошибочного кода.
В заключение
Виталик Бутерин уверенно смотрит в будущее смарт-контрактов, предсказывая, что с развитием технологий и подходов к разработке, ошибки в коде станут редкостью. Многоуровневая избыточность и формальная верификация могут стать ключевыми инструментами для достижения этой цели, обеспечивая безопасность и надежность в мире цифровых активов.