Купить крипту
Рынки
Спот
Фьючерсы
Earn
Акции
Больше
reward-centerДля новичков
Анализ отчетаДетали
Исследования индустрии

Исследование CoinEx: Проблема безопасности блокчейн-активов: Причины необходимости реального времени как дополнительного уровня защиты

  • ETH0%
  • DOT0%
  • ATOM0%
  • LUNA0%
  • BTC0%
CoinEx logo
Опубликовано 2022-04-07

С момента расцвета DeFi летом 2020 года, благодаря постоянному развитию блокчейн-инфраструктуры, DeFi-протоколы эволюционировали от Swap к Lend, затем к Yield Farming и к все более сложным протоколам, охватывающим стратегии AMM (автоматического маркет-мейкинга) Yield Farming на основе блокчейн-деривативов, структурированные кредитные платформы, построенные на кредитной инфраструктуре, и онлайн-кредитные протоколы, связывающие обеспечение из реального мира.

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

Удивительно, но несмотря на такие масштабные инновации, количество пользователей DeFi не показало значительного роста с 2020 года. Между тем, традиционные институты не вложили ликвидность в блокчейн-пространство. Одной из основных причин этого является проблема безопасности DeFi.

Традиционные финансы обеспечены надежной системой безопасности. Например, при перемещении средств из Банка А в Банк Б, инкассаторские машины и вооруженная полиция обеспечивают безопасность средств, что вызывает доверие. Более того, банки также несут ответственность за имущество клиента и предоставляют компенсацию за любые потери в процессе. DeFi, однако, отличается от традиционной финансовой системы. Смарт-контракты неизменяемы по своей природе. По сути, это черные ящики, которые не отправляют читаемые логи, поэтому люди не могут получить четкое представление о внутренних процессах. Большинство аудитов смарт-контрактов не помогают, так как они фокусируются только на известных формах атак, а не на новых типах уязвимостей, которые могут возникнуть. Между тем, многие DeFi-протоколы позиционируют себя как продукт, используемый "на свой страх и риск". Это может пугать обычных пользователей и лишать их уверенности в размещении большей части своих банковских депозитов в экосистеме DeFi. DeFi не разочаровал тех, кто ему не доверял. На данный момент в DeFi произошло 82 случая нарушения безопасности, с первоначальной суммой взлома более 1,8 миллиарда долларов. В частности, флэш-кредиты являются наиболее распространенным видом атак, насчитывая 33 случая. Одной из причин безопасности, стоящих за атакой флэш-кредита, является отсутствие концепции точного времени и механизма подтверждения в блокчейнах . Мы рассмотрим конкретные причины в следующих главах.

Исследование CoinEx: Проблема безопасности блокчейн-активов: Причины необходимости реального времени как дополнительного уровня защиты

I. Время и временная сеть компьютеров

Давайте сначала рассмотрим, как работает время в обычных компьютерных программах.

Время является важнейшей концепцией для компьютерных программ. Без концепции времени невозможно получить доступ к любому сайту с поддержкой TLS, создать энтропию для определенных алгоритмов, обмениваться секретами или аутентифицировать лицензии Windows. Мы воспринимаем учет времени на компьютерах как должное, но обмен и отслеживание времени является невероятно сложной проблемой, когда дело доходит до реальных операций.

Время по сути является представлением текущего глобального состояния вселенной. Это означает, что в любой момент времени каждая сущность должна иметь точно такое же значение. Это, очевидно, огромная проблема для компьютеров: Предположим, что в центре вселенной есть огромные, высокоточные атомные часы, передающие данные о времени через Интернет. Проблема в этом процессе заключается в том, что сама передача данных занимает время. Когда устройство получает данные о времени через Интернет и применяет их к своим системам, глобальное состояние вселенной (время) уже изменилось. Другими словами, сетевое устройство не может быть идеально синхронизировано с актуальным глобальным значением времени.

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

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

Исследование CoinEx: Проблема безопасности блокчейн-активов: Причины необходимости реального времени как дополнительного уровня защиты - image 2

Источник: https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0

II. Механизм времени в блокчейн-сетях

Концепция времени также существует в блокчейнах. Хотя некоторые говорят, что сам блокчейн является производным от концепции времени, обработка времени в блокчейн-сети крайне неточна по сравнению с 64-битной точностью системы NTP. В конце концов, это также связано с тем, что целевыми сервисами блокчейн-времени не являются чувствительные ко времени смарт-контракты, такие как DeFi-приложения. Более того, оно направлено на обеспечение безопасного и эффективного выполнения механизма консенсуса. Такая различная цель также делает блокчейн-сети более толерантными к неточностям времени. В следующих параграфах мы обсудим некоторые популярные механизмы консенсуса и то, как они определяют время. Тем не менее, следует отметить, что подтверждение времени в блокчейнах настолько неточно, что они не могут обеспечивать финансовые операции и проверки безопасности для онлайн-активов, стоимость которых составляет десятки миллиардов долларов.

1. Bitcoin

Bitcoin включает концепцию времени, поскольку она необходима для его механизма консенсуса Proof-of-Work. Без действительной метки времени сеть не может проверить, пытается ли конкретная майнящаяся транзакция изменить предыдущую. Хотя каждый блок Bitcoin содержит метку времени UNIX, время блока не является точным представлением метки времени UNIX. Это потому, что консенсус Bitcoin рассматривает метки времени только как часть системы безопасности PoW, а не как реальный инструмент для измерения времени в блокчейне.

Согласно Bitcoin Wiki, каждый блок содержит метку времени Unix, предоставляемую майнерами, и будет принят как действительный, если она 1) больше медианного времени предыдущих 11 блоков и 2) меньше скорректированного сетевого времени плюс 2 часа. Таким образом, разница между временем блоков и реальным временем составляет от одного до двух часов.

Исследование CoinEx: Проблема безопасности блокчейн-активов: Причины необходимости реального времени как дополнительного уровня защиты - image 3

Источник: https://en.bitcoin.it/wiki/Block_timestamp

2. Ethereum

В сети Ethereum метки времени также напрямую предоставляются майнерами с большой гибкостью. Проще говоря, метка времени Ethereum может быть либо истинной, либо ложной, и механизм консенсуса не имеет способа подтвердить ее точность. Согласно сообщению на форуме Ethereum (источник: https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#428), несколько механизмов могут быть использованы для предотвращения чрезмерного отклонения меток времени Ethereum: 1) Если метка времени блока значительно отклоняется от реального времени, никто не захочет генерировать больше блоков с этим блоком в качестве родительского; 2) Метка времени последнего блока не может быть раньше родительского блока; 3) Сложность блока будет наименьшей, когда блок не помечен раньше, чем требуется. Эти механизмы могли бы позволить майнерам добровольно предоставлять метки времени, которые они считают правильными. Однако при наличии других внешних стимулов сеть Ethereum не имеет строгого механизма для обеспечения того, чтобы майнеры все еще предоставляли правильную метку времени. Поэтому сеть не может обеспечить правильную работу протоколов, чувствительных ко времени (например, yield farming, кредитование). Таким образом, крупные институты не будут доверять свои деньги Ethereum.

3. Polkadot

Согласно документации Substrate, Polkadot также отмечает блоки метками времени, которые напрямую предоставляются майнерами. При этом нет строгих механизмов, которые подтверждают или синхронизируют такие метки времени. В документе также указывается, что хотя время блока не может быть доказано, валидаторы могут согласиться, что оно находится в пределах некоторой дельты от их системных часов.

Исследование CoinEx: Проблема безопасности блокчейн-активов: Причины необходимости реального времени как дополнительного уровня защиты - image 4

Источник: https://wiki.polkadot.network/docs/build-protocol-info

4. Cosmos

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

Исследование CoinEx: Проблема безопасности блокчейн-активов: Причины необходимости реального времени как дополнительного уровня защиты - image 5

Источник: https://docs.tendermint.com/master/spec/consensus/bft-time.html

III. Отсутствие системы временных меток в блоках

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

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

IV. Потенциальные решения

Проблема отсутствия времени в блокчейнах может быть решена внутренне или внешне.

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

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

В свете межсетевого взаимодействия внешнее решение может быть более подходящим. Предположим, например, что Ethereum и Terra имеют свои собственные часы, если временные метки, предоставляемые этими часами, различаются, нам будет сложно определить, какие из них верны во время взаимодействия между ними. Например, в обычной компьютерной сети в конечном итоге только одни главные часы сообщают всем, какое сейчас время. Блокчейнам также нужны главные часы.

В будущей мультивселенной, обеспеченной множеством цепей, мы столкнемся с еще одной проблемой — количество часов на всех разных компьютерах намного превышает ожидаемое. Например, существуют игровые часы, часы начисления процентов DeFi, часы блокчейна и т.д. Поскольку эти часы будут нарушать время в мета-узлах, потребуется единый надежный источник времени для унификации и синхронизации всех транзакций. Когда такая сеть оракулов времени в конечном итоге получит широкое распространение, она обеспечит дополнительный уровень безопасности, предоставляя дополнительные подтверждения времени для каждой транзакции, как это происходит в реальном мире. Время также станет дополнительным уровнем безопасности для блокчейн-сетей.

Источники:

  1. https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0
  2. https://en.bitcoin.it/wiki/Block_timestamp
  3. https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#42
  4. https://wiki.polkadot.network/docs/build-protocol-info