Рост модульных блокчейнов: новый взгляд на споры о функциональном уровне и экономику DA

! [Рост модульного блокчейна: новый взгляд на споры о функциональном уровне и экономику DA] (https://img.foresightnews.pro/202310/13530-1697178521328.jpg)

Автор: Zeke, YBB Capital

Предисловие

Треугольная дилемма блокчейна всегда была непреодолимым пробелом в индустрии в прошлом, и последовательные проекты публичной цепи всегда хотят попытаться преодолеть этот разрыв через дизайн различных архитектур и стать так называемым «убийцей Ethereum». Однако правда жестока, статус Ethereum под одним человеком никогда не был превзойден за столько лет, а невозможный треугольник блокчейна до сих пор нерушим. Итак, есть ли способ для публичной сети заполнить свой пробел, чтобы заполнить невозможный треугольник? Идея Мустафы Албасана о модульном блокчейне родилась именно здесь.

Происхождение модульности

Модульные блокчейны родились из двух технических документов, а в 2018 году Мустафа Албасан и Виталик в соавторстве написали статью под названием «Выборка доступности данных и доказательства мошенничества». В документе описывается решение проблемы масштабируемости блокчейнов без ущерба для безопасности и децентрализации, позволяющее легким клиентам получать и проверять мошеннические доказательства с полных узлов, а также разрабатывая систему proof-of-the-box для доступности данных, которая снижает компромисс между емкостью сети и безопасностью.

Затем, в 2019 году, когда Мустафа Альбасан написал white paper для Lazy Ledger, он подробно описал новую архитектуру, в которой блокчейн используется только для сортировки и гарантии доступности данных о транзакциях и не несет ответственности за выполнение и проверку транзакций. Целью архитектуры является решение проблемы масштабируемости существующих блокчейн-систем. В то время он называл это «клиентом смарт-контрактов».

Исполнение смарт-контрактов выполняется на этом клиенте через другой уровень исполнения, который является прототипом Celestia. Появление Rollup позже сделало эту идею более определенной. Потому что логика Rollup заключается в том, чтобы выполнить смарт-контракт вне блокчейна, а затем агрегировать результаты в качестве доказательства для загрузки на уровень исполнения «клиента».

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

Что такое модульный блокчейн

Архитектура традиционного монолитного блокчейна обычно состоит из четырех функциональных слоев:

Ution layer - Уровень исполнения в основном отвечает за обработку транзакций и выполнение смарт-контрактов. Он включает в себя проверку, исполнение и обновление статуса транзакций; Уровень доступности данных — уровень доступности данных отвечает за то, чтобы данные в сети были доступны и проверялись в модульном блокчейне. Обычно он включает в себя такие функции, как хранение, передача и проверка данных для обеспечения прозрачности и доверия в сети блокчейн; Уровень консенсуса – отвечает за согласование между узлами для достижения согласованности данных и транзакций в сети. Он проверяет транзакции и создает новые блоки с помощью специальных алгоритмов консенсуса, таких как Proof of Work (PoW) или Proof of Stake (PoS); Расчетный уровень - отвечает за завершение окончательного расчета транзакций, обеспечение постоянного хранения и записи активов в блокчейне, а также определение конечного состояния блокчейна.

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

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

Принципы модульного проектирования

Конструкция является модульной, если она разбивает систему на более мелкие части, которые можно заменить или заменить. Основная идея заключается в том, чтобы сосредоточиться на том, чтобы делать что-то хорошо (работа некоторых или отдельных функциональных слоев), а не пытаться делать все. Если взять в качестве примера проекты, с которыми мы знакомы в прошлом, то Cosmos Zones и Polkadot Parachains на самом деле можно рассматривать как своего рода модульность.

Новые перспективы

Основываясь на новом взгляде на модульность, пространство для редизайна монолитного блокчейна и модульного стека, к которому он принадлежит, будет значительно улучшено. Модульные блокчейны с различными вариантами использования и архитектуры могут работать вместе. Благодаря возможности разнообразного дизайна, эта трасса также породила множество интересных и инновационных проектов. Далее мы обсудим текущие споры по поводу различных функциональных уровней и то, как Celestia интерпретирует «модульность» с модульной точки зрения.

Уровень исполнения, сосредоточенный вокруг Ethereum

Если мы подумаем о Rollup как о модульном уровне исполнения, мы обнаружим, что почти все проекты с модульным уровнем исполнения построены поверх Ethereum. Причина этого, естественно, очевидна, Ethereum имеет много ресурсов в качестве рва и степень децентрализации самая сильная в вариантах, но его масштабируемость очень плохая, поэтому у него большой потенциал в редизайне функционального слоя. От мрачного сравнения недавно запущенной публичной цепочки на языке Move (Aptos, Sui) до беспрецедентного величия уровня 2 на Ethereum, нетрудно увидеть, что инфраструктурный нарратив блокчейна также сместился от публичной цепочки к уровню 2 для Ethereum. Так хорошо или плохо существование модульности? Подавляет ли уровень исполнения, ориентированный на Ethereum, инновации в публичных блокчейнах?

Картина масштабирования блокчейна

Во-первых, с точки зрения уровня исполнения, существующая цепочка переклассифицируется. Вот цитата из статьи Nosleepjon «Двойное солнце Татуина», чтобы проиллюстрировать текущую классификацию блокчейнов на уровне исполнения.

! Рост модульных блокчейнов: Новый взгляд на споры о функциональном уровне и экономику DA

Современные блокчейны можно разделить на четыре категории:

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

Представительские проекты: Ethereum, Polygon, BNB Chain, Avalanche

  1. Параллельная обработка монолитных блокчейнов**: Монолитный блокчейн, который обрабатывает несколько транзакций одновременно.

Представительские проекты: Solana, Monad, Aptos, Sui

  1. Однопоточный модульный блокчейн: модульный блокчейн, который обрабатывает одну транзакцию за раз.

Представительские проекты: Arbitrum, Optimism, zkSync, Starknet

  1. Модульный блокчейн с параллельной обработкой: модульный блокчейн, который обрабатывает несколько транзакций одновременно.

Представительские проекты: Eclipse, Fuel

Монолитная архитектура параллельной обработки VS модульная архитектура

Существует множество аргументов в пользу того, какой подход следует принять, особенно между концепциями модульности и общей параллельной обработки. Фракции также делятся на три типа:

Модульный лагерь: Сторонники модульных систем (в основном также сторонники Ethereum) считают, что монолитные блокчейны не могут решить невозможный треугольник блокчейна. Стекирование Lego на Ethereum масштабируемо под предлогом безопасности и децентрализации. А модульность обеспечивает больший контроль и настраиваемость.

Лагерь монолитной параллельной обработки: Этот лагерь (цитата из статьи Kodi и эспрессо «Монолитный против модульного: Кто будущее блокчейна?») Новая публичная архитектура цепи (система Move, Solona и т.д.) с монолитной параллельной обработкой имеет высокую степень интеграции, и общая производительность будет лучше, чем модульная фрагментированная конструкция, и модульная архитектура не безопасна, особенно если требуется большое количество межсетевых коммуникаций, а поверхность атаки хакеров шире.

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

Эндшпиль

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

С другой стороны, хотя новая публичная цепочка имеет преимущества производительности и интеграции с точки зрения архитектуры, она представляет собой простой форк экологии Ethereum с точки зрения экологии, который слишком однороден и ему не хватает ликвидности. Не существует эксклюзивного приложения, которое могло бы отражать собственные архитектурные преимущества, и, естественно, у людей нет причин отказываться от экосистемы Ethereum. Пластичность Rollup достаточно высока, и есть еще много возможностей для улучшения в будущем Rollup новой архитектуры. Когда Rollup также обладает большинством преимуществ блокчейна без EVM, ситуация «Solana Summer» будет трудно повториться позже. Так что в этом вопросе, я думаю, что недостаток модульности меньше, чем проблема централизации публичной сети. Нейтральной ситуации, похоже, не существует, эффект сифона Ethereum будет подобен «айфону», привлекая большое количество разработчиков, которые делают упор на масштабируемость на второй уровень, а новая публичная цепочка станет городом-призраком.

Что касается будущего инфраструктуры, то я, несомненно, больше склоняюсь к модульности, и расстающееся расширение Ethereum также станет началом публичной чейн-игры EndGame, где Layer2 конкурирует за универсальную цепочку, а Layer3 — за цепочку суперприложений.

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

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

Арена схем DA

После споров об уровне выполнения, давайте посмотрим на споры об уровне доступности данных (уровне DA), и дебаты о том, какую схему доступности данных должен принять Rollup, в последнее время стали горячей темой в отрасли, вызванной твитом исследователя Ethereum Fund Данкрада Фейста, обсуждающего связанные темы. И дайте понять, что Rollup, который не использует Ethereum DA, не является Layer 2, так не перерастут ли прошлые войны Layer 1 в войну между ортодоксальным (использующим Ethereum DA) Layer 2 и неортодоксальным Layer2? В настоящее время в отрасли существует три основных решения для DA:

Один. Публичная цепочка как расчетный слой

Если взять Ethereum в качестве примера, то комиссии, отправляемые в Ethereum, когда Rollup совершает транзакцию, в основном включают следующие категории:

Плата за исполнение (UTI Fee): Компенсация за вычислительные ресурсы, необходимые для выполнения транзакции. Он включает в себя комиссию за газ, необходимую для выполнения транзакции, которая обычно пропорциональна сложности транзакции и времени выполнения. В Rollup плата за исполнение может включать плату за выполнение транзакций вне сети, а также комиссию за создание и проверку подтверждения транзакций;

Государственная пошлина: Плата за статус связана с обновлением состояния в основной цепочке Ethereum. В Rollup это включает в себя стоимость фиксации нового корня состояния в основной цепочке. Всякий раз, когда агрегатор Rollup генерирует новый корень состояния и отправляет его в основную цепочку, взимается государственная плата. Эта плата может быть пропорциональна частоте и сложности обновления статуса;

Плата за доступность данных: стоимость публикации данных на уровне 1.

Среди этих сборов наибольшую долю составляют сборы за доступность данных, которые являются дорогостоящими, например, заоблачная плата за газ Arbitrum в размере 376,8 ETH за один день из-за резкого роста платы за газ Ethereum 6 мая этого года.

! Рост модульных блокчейнов: Новый взгляд на споры о функциональном уровне и экономику DA

Это связано с тем, что Rollup загружает данные в Ethereum в виде Calldata и хранит их постоянно, поэтому он очень дорогой. Но преимущество заключается в том, что из трех вариантов обеспечена наилучшая безопасность и легитимность, а текущее снижение стоимости в этом сценарии должно подождать обновления EIP-4844 для обновления Cancun. Введя формат транзакций переноса BLOB-объектов. По сравнению с обычным форматом транзакции существует дополнительное расположение большого двоичного объекта, которое можно использовать для хранения данных уровня 2. Кроме того, данные BLOB-объектов удаляются узлом через один месяц, что значительно экономит место в хранилище.

Blob — это формат транзакций, который обеспечивает более низкую доступность данных, чем Calldata. Есть две основные причины: с одной стороны, Calda существует в пользовательских нагрузках, в то время как данные blob хранятся в узлах Prysm или узлах Lighthouse (не в Geth), что потребляет гораздо больше ресурсов, чем Calldata нужно для чтения контрактом; Данные BLOB-объектов, с другой стороны, хранятся в течение короткого времени, и узел удаляет данные BLOB-объектов через один месяц. Однако его стоимость газа все равно будет выше, чем у двух последних вариантов.

Режим Validiums DA**

Для типа Rollup цепочки приложений (например, прежнего dYdX, Immutable и т.д.) обычно используют двухслойный движок расширяемости, запускаемый головным проектом Rollup (самый большой — StarkEx, но головные проекты серии ZK имеют аналогичное решение). В режиме DA из-за большего объема вычислений цепочки приложений они более склонны использовать Validiums, недорогое решение с высокой пропускной способностью. Validiums предназначен для использования доступности данных и вычислений вне сети, аналогично ZK-Rollup, путем выдачи доказательств с нулевым разглашением для проверки транзакций вне сети в Ethereum. Однако, в отличие от ZK-Rollup, который хранит данные в блокчейне, Validiums хранит данные вне сети, снижая комиссию на 90% по сравнению с использованием Ethereum, что делает его наиболее экономичным решением в случае опционов.

Но поскольку данные остаются вне сети, физические операторы Validium могут заморозить средства пользователей. Чтобы предотвратить крайние случаи, необходимо ввести схему Комитета по доступности данных (DAC), и DAC должен подтвердить, что он получил данные, подписывая каждое обновление состояния своим кворумом. Это спорная практика, потому что в первую очередь вы должны доверять безопасности организации, а не цепочки. Данкрад Файст (Dankrad Feist) (создатель EIP-4844 выше) прямо назвал это решение.

Три. Модульный DA

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

Селестия

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

Как это работает и архитектура

Разделение выполнения: логика Celestia заключается в том, чтобы разделить протокол на различные уровни, каждый из которых фокусируется на определенной функции, а затем эти уровни могут быть объединены для создания блокчейнов и приложений. Celestia фокусируется на уровнях консенсуса и доступности данных в иерархии. Подобно некоторым Layer 1, Celestia использует алгоритм консенсуса Byzantine Fault Tolerant (BFT) Tendermint для сортировки транзакций, но в отличие от других Layer 1. Celestia не рассуждает о действительности транзакций и не выполняет транзакции, а только порядок пакетов и трансляцию транзакций, а все правила действительности транзакций применяются узлом Rollup на стороне клиента (то есть разделяя уровень консенсуса и уровень выполнения). Тогда обратите внимание на ключевой момент, «не рассуждайте о действительности сделки». То есть вредоносные блоки, скрывающие данные о транзакциях, также могут быть опубликованы на Celestia. Так как же должен быть реализован процесс верификации? Celestia представляет здесь два ядра: двумерное кодирование Рида-Соломона и выборку доступности данных (DAS).

! Рост модульных блокчейнов: Новый взгляд на споры о функциональном уровне и экономику DA

Общая архитектура монолитного блокчейна в сравнении с модульной архитектурой Celestia

DAS: Этот сценарий используется легкими узлами для проверки доступности данных блока, что не требует от узлов загрузки всего блока. Требуется только часть данных блока примера (конкретная реализация должна быть закодирована двумерным уравнением Рида-Соломона, которое будет более подробно объяснено ниже). В отличие от DAC, упомянутого выше, DAS не нужно доверять безопасности объекта, если цепочка достаточно децентрализована, чтобы можно было доверять данным.

2D-кодирование Рида-Соломона (стирающее кодирование) :* * Основная идея 2D-кодировки Рида-Соломона заключается в применении кодировки Рида-Соломона как к строкам, так и к столбцам. Таким образом, даже ошибки в некоторых строках и столбцах двумерных данных могут быть исправлены. Затем, путем кодирования блочных данных, блочные данные разбиваются на блоки kk, организуются в матрицы kk и расширяются до матриц расширения 2k2k с помощью нескольких кодировок Рида-Соломона. 4k независимых корней Меркеля для строк и столбцов расширенной матрицы; Корни Меркла этих корней используются в качестве промисов данных блока в заголовке блока. Светлые узлы Celestia используют образцы блоков размером 2 тыс. блоков. Каждый световой узел случайным образом выбирает уникальный набор координат в расширенной матрице и запрашивает у полного узла блоки данных об этих координатах и соответствующее доказательство Меркла. Каждый полученный блок данных с правильным доказательством Меркель транслируется в сеть.

Если абстрагироваться от некоторого понимания, то можно также сказать, что фрагментированные данные разбиваются на квадратную матрицу (например, 8x8), и путем кодирования к исходным данным добавляются дополнительные строки и столбцы «контрольной суммы», чтобы сформировать большую квадратную матрицу (16x16). Случайная выборка некоторых данных в этой большой квадратной матрице и проверка их точности позволяет обеспечить целостность и доступность общих данных. Даже если часть данных потеряна или повреждена, весь блок данных все равно можно восстановить с помощью контрольных данных.

! Рост модульных блокчейнов: Новый взгляд на споры о функциональном уровне и экономику DA

Масштабирование блоков: Celestia масштабируется по мере увеличения количества светлых узлов. До тех пор, пока в сети достаточно узлов для выборки всего блока, Celestia будет оставаться в безопасности. Это означает, что по мере того, как все больше узлов присоединяются к сети для выборки, размер блока может соответственно увеличиваться без ущерба для безопасности или децентрализации. Делая это на традиционных блокчейнах, мы жертвуем децентрализацией, поскольку большие размеры блоков добавляют более высокие требования к оборудованию для узлов для загрузки и проверки данных.

Sovereign Rollup: Это также концепция, впервые разработанная Celestia, которая сочетает в себе элементы различных дизайнов блокчейна, включая блокчейн уровня 1, Rollup и ранние сети Bitcoin, такие как Mastercoin. Ключевое различие между суверенными роллапами и роллапами смарт-контрактов (OP, ARB, ZKS и т. д.) заключается в том, как проверяются транзакции. В роллапе смарт-контракта транзакции проверяются смарт-контрактами на Ethereum. Вместо этого в суверенном роллапе узлы самого свертки проверяют транзакции.

Sovereign Rollup публикует свои транзакции в другом блокчейне, таком как Celestia, для сортировки и доступности данных. Затем суверенный узел Rollup определяет правильную цепочку. Такая структура позволяет суверенным накопителям наследовать несколько аспектов безопасности от уровня доступности данных (DA), включая активность, безопасность, устойчивость к реорганизации и устойчивость к цензуре.

! Рост модульных блокчейнов: Новый взгляд на споры о функциональном уровне и экономику DA

Для свертки смарт-контракта обновление зависит от смарт-контракта на уровне расчетов. Обновление Rollup требует внесения изменений в смарт-контракт. Мультиподпись может потребоваться для контроля того, кто может инициировать обновления смарт-контракта. Несмотря на то, что команды обычно управляют несколькими подписями эскалации, несколькими подписями можно управлять с помощью системы управления. Поскольку смарт-контракты существуют на расчетном уровне, они также подчиняются социальному консенсусу расчетного уровня.

Суверенные роллапы обновляются с помощью форков, таких как блокчейны уровня 1. При выпуске новой версии программного обеспечения узлы могут обновить свое программное обеспечение до последней версии. Если узлы не согласны с обновлением, они могут продолжать использовать старое программное обеспечение. Предоставьте возможность сообществу, людям, управляющим узлами, решать, согласны ли они с новыми изменениями. Даже если большинство узлов будут обновлены, их нельзя заставить принять обновление. По сравнению с роллапами смарт-контрактов, эта функция делает суверенные роллапы «суверенными» роллапами.

Мост квантовой гравитации (QGB) :* ключевым компонентом экосистемы Celestia, который выступает в качестве моста между Celestia и Ethereum (или другими цепочками EVM L1) для передачи данных и активов между двумя сетями. Введя концепцию Celestium (EVM L2 Rollup), доступность данных используется с Celestia, но останавливается на Ethereum. Это позволяет воспользоваться преимуществами обеих сетей: масштабируемостью и доступностью данных Celestia, а также безопасностью и децентрализацией Ethereum.

Валидаторы на Celestia могут запускать QGB, что позволяет Celestium предоставлять надежные гарантии доступности данных для блочных данных за небольшую часть стоимости Ethereum Calldata.

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

DA Economics

Давайте поговорим о том, какую экономическую ценность имеет DA.

! Рост модульных блокчейнов: Новый взгляд на споры о функциональном уровне и экономику DA

Это предположение основано на оценке Polygon Hermez о том, что в конечном итоге им потребуется всего 14 байт на транзакцию, а при текущей спецификации Danksharding в 1,3 МБ/с TPS Laeyr2 может достичь около 100 000, так что ожидаемый доход достигнет ошеломляющей цифры в 30 миллиардов долларов.

Под таким огромным пирогом будущие споры на рынке DA будут очень ожесточенными. В настоящее время, в дополнение к трем основным решениям, к войне присоединятся Layer 3 от Stark, zkPorter и несколько модульных проектов DA. Тогда из существующего проекта Layer 2 универсальная цепочка полностью склоняется к использованию Ethereum DA. Цепочка приложений и цепочка с длинным хвостом будут основными клиентами «неортодоксального DA». Мое личное мнение заключается в том, что модульные DA и Layer 3 скоро станут основным выбором в будущем.

Заключение

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить