За последнее десятилетие мы стали свидетелями подъема технологии блокчейн и ее эволюции до того, что сейчас называется Web3. Представляя новую парадигму децентрализованных приложений, работающих в глобальных одноранговых сетях, таких как Ethereum, Polygon и другие; Web3 обещает предоставить пользователям больший контроль, конфиденциальность и право собственности на свои данные и цифровые активы, а также предоставить новые формы социальной и экономической координации.

Однако у Web3 все еще были серьезные проблемы с точки зрения разработки программного обеспечения. В отличие от традиционных SaaS, корпоративных или веб-приложений, приложения Web3 предназначены для поддержки неизменяемых, необратимых и прозрачных транзакций, которые навсегда сохраняются в глобально общих реестрах независимо от того, разрешены они или нет. Это означает, что любая ошибка, уязвимость или дефект дизайна могут иметь серьезные и долговременные последствия для пользователей и сетей, в которых они развернуты. Часто при наличии сложных и динамичных многосетевых взаимодействий на уровне протокола, тщательной координации сторонних и внешних данных и использовании смарт-контрактов для запуска передач и управления управлением возможность столкнуться с неожиданным поведением и введением риска довольно высока. Эти проблемы создали возможности для новаторов и инвесторов для создания новой отрасли, ориентированной на повышение качества программного обеспечения с помощью аудиторских услуг, а в последнее время и активного мониторинга. Тем не менее, риски все еще остаются, и, как заявляют практически все инвесторы в области блокчейна в своих заявлениях о рисках, управление и поддержание высокого качества программного обеспечения в Dapps и смарт-контрактах по-прежнему неуловимы.

Поскольку таких рисков по-прежнему предостаточно, о чем свидетельствуют как взломы смарт-контрактов, так и перебои в работе некоторых любимых сетей сообщества, становится ясно, что разработчикам и специалистам по сопровождению требуется больше инструментов с возрастающей сложностью. Одной из потенциальных областей развития, которая может помочь в улучшении децентрализованной разработки программного обеспечения, является определение и принятие строгих стандартов и методов для обеспечения более высокого качества и безопасности. Отчеты, подобные опубликованным ConsenSys, показали, что 74% из 1000 лучших смарт-контрактов на Ethereum имели по крайней мере одну проблему с высокой степенью серьезности, а 97% имели по крайней мере одну проблему с низкой серьезностью. Наш собственный глубокий анализ безопасности смарт-контрактов в ряде сетей согласуется с этими выводами. Вскоре мы опубликуем отчет о наших находках, следите за обновлениями. Другое исследование, проведенное Chainalysis, показало, что только в 2018 году хакеры украли криптовалюту на сумму более 1 миллиарда долларов с платформ Web3 путем выявления и использования входных условий, которые приводят к непреднамеренному поведению контракта. Эти эксплойты и финансовые последствия значительно выросли после этого отчета и, по оценкам, превысили 3 миллиарда долларов в 2022 году.

Итак, что мы можем сделать как сообщество, чтобы помочь начинающим разработчикам программного обеспечения Web3 совершенствоваться? Вот несколько соображений:

  • Техническая осведомленность о Web3: разработка Web3 требует высокого уровня технических знаний и знаний в предметной области. В отличие от разработки программного обеспечения для централизованных приложений, децентрализованная разработка программного обеспечения требует четкого понимания сетевых принципов, когда и где применять правильный уровень криптографии, а также глубокого понимания того, как работает внутренняя база данных, включая такие темы, как управление конфликтами. Хотя многие разработчики могут иметь доступ к хорошо написанным учебным материалам, ориентированным на создание смарт-контрактов, все же есть возможность улучшить эти навыки с помощью прочной основы, как только что описано.
  • Осознание мотивации: разработка Web3 часто движима спекуляциями и шумихой, а не потребностями пользователей и отзывами. Многие разработчики мотивированы краткосрочными выгодами и вознаграждениями, а не долгосрочным качеством и устойчивостью. Также отсутствуют эффективные механизмы привлечения разработчиков к ответственности за их действия и возмещения пользователям потерь. Хотя некоторые могут сказать, что этого можно достичь с помощью хорошо написанных смарт-контрактов, кодифицирующих модель управления, которая будет содержать механизмы подотчетности, проблема первого пункта остается.
  • Формализация механизмов разработки: разработка Web3 в значительной степени нерегулируема и неуправляема, что отлично способствует инновациям и экспериментам, но также дает возможность злоумышленникам. Нет четкого консенсуса или авторитета в отношении того, что представляет собой хороший или плохой код, или как его измерить или обеспечить его соблюдение. Также не хватает общих фреймворков и протоколов для облегчения взаимодействия и совместимости между различными платформами Web3.

Эти причины не являются взаимоисключающими или исчерпывающими, но они иллюстрируют некоторые из основных факторов, способствующих низкому качеству программного обеспечения Web3. Если не принять во внимание эти факторы, они могут подорвать доверие и принятие технологий Web3, а также подвергнуть пользователей и сети серьезным угрозам и ущербу. Безопасная разработка программного обеспечения имеет первостепенное значение, поскольку ставки высоки как никогда, самые передовые участники киберугроз (национальное государство, крупные финансовые учреждения, мошенники и т. д.) постоянно охотятся за любой ошибкой, текущим событием или преимуществом, которое они могут использовать. для финансовой выгоды. Существует растущий технический долг, особенно в области автоматизации безопасности Web3, где разработчики программного обеспечения и традиционные специалисты по кибербезопасности должны ускориться, чтобы укрепить защиту в постоянно меняющемся ландшафте угроз Web3.

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

Чтобы решить эти проблемы и улучшить качество разработки программного обеспечения Web3, можно предпринять несколько шагов:

  • Образование и обучение: разработчикам необходим доступ к более полным и современным образовательным ресурсам и программам обучения, специально предназначенным для разработки Web3. Онлайн-курсы, семинары и учебные курсы по программированию могут помочь восполнить пробел в знаниях и вооружить разработчиков необходимыми навыками для создания безопасных и надежных приложений Web3. Мы очень рады видеть, что университеты преподают Web3 как часть своей учебной программы и создают центры передового опыта, ориентированные на обеспечение более широкого образования. Работа, проделанная в Университете Вайоминга и недавний найм UCLA в этой сфере, многообещающая.
  • Лучшие практики и рекомендации: Сообщество Web3 должно сотрудничать, чтобы устанавливать и продвигать лучшие практики и рекомендации по разработке программного обеспечения. Это включает в себя определение стандартов кодирования, проведение проверок кода и внедрение протоколов тестирования и безопасности. Следуя установленным стандартам, разработчики могут свести к минимуму риски, связанные с ошибками, уязвимостями и недостатками дизайна. Это не означает, что текущая и наиболее распространенная модель разработки программного обеспечения с открытым исходным кодом не дает достойных результатов, однако, по нашим наблюдениям, до сих пор существует определенная степень централизованного управления доставкой.
  • Независимая проверка и аудит. Независимая проверка и независимая проверка могут сыграть решающую роль в обеспечении качества и безопасности приложений Web3. Поощрение разработчиков отправлять свой код на проверку опытным коллегам или независимым аудиторам может помочь выявить потенциальные проблемы и уязвимости перед развертыванием. Однако действующая парадигма аудита, фиксирующая смарт-контракт на определенный момент времени, недостаточна для всех, кроме самых монолитных смарт-контрактов. Такие платформы, как Trugard, которые облегчают проверку кода в режиме реального времени и анализ безопасности, следует продвигать и использовать.
  • Согласование поощрения: важно согласовать стимулы разработчиков программного обеспечения Web3 с долгосрочной устойчивостью и ориентированными на пользователя результатами. Этого можно достичь, вознаграждая разработчиков, которые отдают предпочтение качеству, безопасности и отзывам пользователей, а не краткосрочным выгодам. Децентрализованные автономные организации (DAO) могут внедрять механизмы управления, которые вознаграждают разработчиков за поддержку и улучшение их кодовой базы, а также позволяют пользователям влиять на процесс принятия решений. Вознаграждение за безопасность и зрелость возможностей будет столь же важным, как и вознаграждение за новизну.
  • Нормативно-правовая база. В то время как развитие Web3 процветало благодаря децентрализации и свободе от традиционных правил, установление той или иной формы нормативно-правовой базы может помочь защитить пользователей и продвигать ответственные методы. Инициативы отрасли или сотрудничество с регулирующими органами могут установить стандарты безопасности, конфиденциальности и прозрачности, обеспечивая определенный уровень уверенности для пользователей и поощряя ответственное поведение разработчиков.
  • Сотрудничество и обмен знаниями: разработчики Web3 должны активно сотрудничать и делиться своими знаниями и опытом с более широким сообществом. Проекты с открытым исходным кодом, форумы и сообщества разработчиков играют решающую роль в содействии обмену знаниями и коллективному обучению. Поощряя культуру сотрудничества и открытости, разработчики могут учиться на успехах и неудачах друг друга, способствуя общему улучшению качества программного обеспечения Web3. Хотя мы видим много сотрудничества в создании уникальных проектов в этой области, сотрудничество с точки зрения безопасности все еще находится в зачаточном состоянии.
  • Обучение пользователей и осведомленность. Не менее важно информирование пользователей Web3 о потенциальных рисках и уязвимостях, связанных с использованием децентрализованных приложений. Пользователей следует поощрять к проявлению должной осмотрительности и осторожности при взаимодействии с платформами Web3. Платформы, такие как Trugard, которые выполняют оценку рисков базовых смарт-контрактов и других контрольных точек в режиме реального времени перед отправкой каждой транзакции, имеют решающее значение для защиты пользователей.

Что наиболее важно, путем проведения тщательного анализа рисков смарт-контрактов, сетей и сообществ можно выявить потенциальные недостатки и уязвимости, что позволит разработчикам снизить риски, усилить меры безопасности и защитить средства пользователей. Более того, анализ рисков способствует прозрачности, подотчетности и доверию к экосистеме блокчейна, привлекая более широкое распространение и способствуя росту децентрализованных финансов (DeFi) и других приложений на основе блокчейна. Это, в свою очередь, проложит путь к более широкому внедрению технологий Web3 в качестве критически важной инфраструктуры.