К многомерным комиссиям Solana

Продвинутый4/12/2024, 3:11:48 AM
Включение транзакций исключительно по принципу "первым поступившим - первым обслуженным" способствует спаму и может блокировать транзакции высокой стоимости от обычных пользователей. В данной статье рассматривается эту проблему путем предложения нового механизма комиссий на Solana.

Введение: почему мои транзакции не включены?

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

Приоритетные комиссии на выручку?​

Специальные комиссии решают эту проблему, верно? К сожалению, не для большинства пользователей.

Представьте себе такой сценарий. Вы хотите пойти в кинотеатр на 100 мест, но в кинотеатре ненормальная билетная система: они не публикуют цену билета. Вместо этого вы должны сказать им, сколько вы готовы заплатить. (Допустим, это 50 долларов.) Если спрос высок и по крайней мере 100 других людей предложили более высокую цену, не повезло. Если спрос низкий, вы в деле! Загвоздка: вы платите 50 долларов, даже если театр пуст. Но на этом работа с тикетами не заканчивается. У этой системы есть еще одна странность: вы должны сообщить театру о своей готовности заплатить до того, как выйдете из дома. Очевидно, что получение билета в театр в этой системе является потенциально чреватым опытом для среднестатистического человека. Богатые, искушенные люди, с другой стороны, могут точно оценить стоимость билета. Они могут установить камеры рядом с кинотеатром, чтобы следить за дорожным движением в режиме реального времени. Они могут использовать этот трафик и собранные исторические данные для оценки спроса в определенный день. И они даже могут купить вертолет, чтобы быстрее добраться до театра, предварительно сообщив театру о своей готовности заплатить. Несмотря на то, что эту систему продажи билетов можно эффективно использовать, для большинства людей, которые хотят пойти в театр, это ужасный опыт. Когда театр переполнен, многие из этих людей могут вообще не пытаться туда пойти.

Точно так же сложно оценить «истинную» приоритетную комиссию, необходимую для транзакции на Solana.Он колеблется очень сильно. В периоды высокой загруженности кошельки, использующие последние средние значения, скорее всего, переоценят необходимую комиссию, из-за чего пользователи переплатят за включение транзакции. (И даже с высокой приоритетной комиссией, транзакция все еще может не быть включеноИз-за характера многопоточного непрерывного производства блоков.) В теории приоритетные комиссии могут оптимально распределять блокчейн. На практике они абсолютно не справляются. К счастью, есть способы решить эти проблемы, что в конечном итоге приведет к более дешевым транзакциям с лучшим шансом включения для большинства пользователей. Прежде чем погружаться в решение, давайте рассмотрим некоторые свойства ресурса, который мы пытаемся выделить: блокчейн.

Blockspace: фиксированное предложение, сильно колеблющийся спрос​

Транзакции на Solana независимо верифицируются и выполняются децентрализованной сетью валидаторов. Поскольку у этих валидаторов ограниченные вычислительные ресурсы, Solana ограничивает общие вычислительные ресурсы, измеряемые в вычислительных единицах (CUs), которые могут быть использованы в блоке. Когда спрос на место в блоке взлетает выше ограниченного предложения, эти фиксированные ресурсы должны быть распределены среди конкурирующих транзакций.

В некотором смысле рынок может управлять выделением места в блоке через ценообразование; транзакции с более высокой полезностью для отправителя готовы заплатить более высокую цену. Однако этот механизм не работает, когда пользователи не знают, какова цена за место в блоке! Как уже обсуждалось выше, только приоритетная комиссия приводит к труднооцениваемым ценам на транзакции для большинства пользователей и обеспечивает плохие гарантии включения транзакции. Другие блокчейны решают эту проблему путем внедрения механизма комиссий за транзакции (например,EIP-1559 в Ethereum, и многомерные комиссии в ЛавинаиПенумбра). Эти механизмы комиссий внедряют легко оцениваемую базовую плату, которая обеспечивает предсказуемую «входную плату» за использование сети; эта базовая плата приблизительно соответствует истинной цене за включение транзакции.

Обзор: Сегодняшние комиссии Solana​

В настоящее время Solana реализует два механизма комиссий: базовую комиссию и приоритетную комиссию. Мы можем думать о базовой комиссии как о «вступительной плате» за использование сети, а о плате за приоритет — как о дополнительном совете, стимулирующем валидаторов включать одну транзакцию в другую. Базовая комиссия Solana составляет фиксированные 5000 лампортов за подпись (обычно один за транзакцию). В результате пользователи, отправляющие простые переводы, платят такую же базовую комиссию, как и пользователи, играющие в ончейн-игры с большим количеством вычислений и использующие сложные возможности MEV. Таким образом, текущая базовая плата не точно отражает использование ресурсов транзакцией (и «экстерналию», говоря языком экономики), что приводит к потенциальному плохо используется blockspace.

В нашем примере театра аналогичная фиксированная базовая плата будет взиматься с посетителя, покупающего 1 место, и того, кто купит все 100 мест, по одной и той же цене.

Зачем механизм базовой комиссии?​

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

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

Кроме того: Приоритетные комиссии и MEV​

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

Оптимальные блоки

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

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

К механизму

Как же нам устанавливать цены, чтобы стимулировать оптимальные блоки, как обсуждалось выше? Первым подходом может быть взимание фиксированной суммы за каждую единицу вычислительной мощности, использованной транзакцией. К сожалению, этот подход не сработает. Если спрос низок, то эта фиксированная цена за ЕМ не побудит пользователей подавать транзакции, и блоки могут быть практически пустыми. Если спрос высок, то эта фиксированная цена может быть слишком низкой и, как следствие, не сделает ничего для смягчения сетевой перегрузки или приближения к реальной стоимости включения транзакции (наша первоначальная цель!). Таким образом, нам нужно иметь способ увеличивать и уменьшать базовую плату в зависимости от спроса в сети, а также способ оценить этот спрос.

Динамическая базовая комиссия​

Следующим шагом будет добавление контроллера, который будет регулировать комиссию за вычислительную единицу на основе прошлого использования. Например, если есть целевое использование на блок (т. е. «стабильное» идеальное использование для цепочки), мы можем увеличить или уменьшить базовую комиссию в зависимости от использования или отклонения от этой цели. Множество механизмов, включая такие, как EIP-1559, реализуйте эту идею. Мы можем быть искушены динамически обновлять базовую комиссию в пределах одного блока с использованием спроса в реальном времени или стимулировать каждого лидера выбирать свои собственные правила обновления комиссии. Однако эти изменения снизили бы предсказуемость базовой комиссии, подрывая первоначальную цель этого механизма комиссии. Выбор механизма в конечном итоге определяет пользовательский опыт.

К счастью, быстрое время блокировки Solana позволяет использовать агрессивные алгоритмы для установки базовой комиссии. Например, мы можем быстро повышать цену в периоды высокого спроса (например, удваивать цену за каждый полный блок), а затем медленнее снижать цену по мере снижения спроса. Цена по-прежнему будет падать достаточно быстро из-за короткого времени блокировки Solana. Интуитивно, когда конкретный ресурс «исчерпывается», сеть значительно занижает цены и получает меньше информации о том, какой должна быть оптимальная цена. Подобные типы алгоритмов используются на практике в Контроль перегрузки TCP, уровень канала данных беспроводной связи, и оптимизация рынка.

Многомерные комиссии: рынки местных сборов​

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

В качестве конкретного примера давайте рассмотрим популярный выпуск NFT. Без рынков с комиссией за каждый аккаунт этот выпуск значительно увеличил бы базовую комиссию для всех других транзакций. С учетом комиссий за каждый аккаунт стоимость подачи транзакций для получения NFT (и доступа к этой части состояния) может увеличиться, в то время как комиссии за другие транзакции (например, пополнение залога по кредиту) остаются в основном неизменными. Такой тип дизайна рынка с комиссиями за каждый аккаунт рассматривается вЧерновой документ улучшения Solana.

Эти многомерные комиссии также могут учитывать корреляции между контрактами. Например, если две биржи cNFT торгуют многими одинаковыми коллекциями, их контракты требуют доступа к многим одинаковым счетам. Если торговый объем резко увеличивается для конкретной коллекции на одной из этих бирж, то базовая плата увеличится для этой коллекции на другой бирже, поскольку плата за базовый счет увеличилась как для одной, так и для другой. Таким образом, «локальные» плата за счет должны правильно коррелировать «глобально», и многомерные комиссии предотвращают игры в системе путем выпуска множества контрактов для одного и того же приложения.

С другой стороны, если само состояние приложения параллелизовано, комиссии будут ниже. Это свойство желательно; параллелизация увеличивает пропускную способность, поскольку она позволяет различным транзакциям, обращающимся к одному и тому же приложению, быть размещенными на разных потоках, когда базовые учетные записи не перекрываются (см.Жизненный цикл транзакции Solana).

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

Альтернативные механизмы​

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

  1. посмотрите на потребление ресурсов последних блоков (результат включенных транзакций);
  2. вычислить функцию этого потребления (например, отклонение от цели);
  3. и затем обновите цены ресурсов, используя результат шага 2 и простое правило.

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

Эта многомерная штука работает?

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

Установившееся поведение​

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

Сдвиги в распределении​

Мы также тестируем поведение механизма при сдвиге распределения: мы добавляем 150 транзакций в блок 10, требующих значительного количества ресурсов 2. Такой сценарий может возникнуть, например, при создании NFT. Многомерная ценообразование приводит к значительно более высокой пропускной способности, когда распределение сдвигается (влево), соответственно корректируются цены на ресурсы (вправо).

Рассматривая индивидуальное использование ресурсов, мы видим, что многомерная ценообразование (слева) облегчает кратковременную емкость, в то время как равномерное ценообразование (справа) этого не делает.

Заключение

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

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

Отказ от ответственности:

  1. Эта статья перепечатана из [umbraresearch], Пересылка оригинального заголовка «К многомерным комиссиям Solana», Все авторские права принадлежат оригинальному автору [@theo_diamandis@tarunchitra@0xShitTrader]. Если есть возражения к этому повторному изданию, пожалуйста, свяжитесь с Gate Learnкоманда, и они незамедлительно разберутся с этим.

  2. Отказ от ответственности: Взгляды и мнения, выраженные в этой статье, являются исключительно точкой зрения автора и не являются инвестиционными советами.

  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.-

К многомерным комиссиям Solana

Продвинутый4/12/2024, 3:11:48 AM
Включение транзакций исключительно по принципу "первым поступившим - первым обслуженным" способствует спаму и может блокировать транзакции высокой стоимости от обычных пользователей. В данной статье рассматривается эту проблему путем предложения нового механизма комиссий на Solana.

Введение: почему мои транзакции не включены?

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

Приоритетные комиссии на выручку?​

Специальные комиссии решают эту проблему, верно? К сожалению, не для большинства пользователей.

Представьте себе такой сценарий. Вы хотите пойти в кинотеатр на 100 мест, но в кинотеатре ненормальная билетная система: они не публикуют цену билета. Вместо этого вы должны сказать им, сколько вы готовы заплатить. (Допустим, это 50 долларов.) Если спрос высок и по крайней мере 100 других людей предложили более высокую цену, не повезло. Если спрос низкий, вы в деле! Загвоздка: вы платите 50 долларов, даже если театр пуст. Но на этом работа с тикетами не заканчивается. У этой системы есть еще одна странность: вы должны сообщить театру о своей готовности заплатить до того, как выйдете из дома. Очевидно, что получение билета в театр в этой системе является потенциально чреватым опытом для среднестатистического человека. Богатые, искушенные люди, с другой стороны, могут точно оценить стоимость билета. Они могут установить камеры рядом с кинотеатром, чтобы следить за дорожным движением в режиме реального времени. Они могут использовать этот трафик и собранные исторические данные для оценки спроса в определенный день. И они даже могут купить вертолет, чтобы быстрее добраться до театра, предварительно сообщив театру о своей готовности заплатить. Несмотря на то, что эту систему продажи билетов можно эффективно использовать, для большинства людей, которые хотят пойти в театр, это ужасный опыт. Когда театр переполнен, многие из этих людей могут вообще не пытаться туда пойти.

Точно так же сложно оценить «истинную» приоритетную комиссию, необходимую для транзакции на Solana.Он колеблется очень сильно. В периоды высокой загруженности кошельки, использующие последние средние значения, скорее всего, переоценят необходимую комиссию, из-за чего пользователи переплатят за включение транзакции. (И даже с высокой приоритетной комиссией, транзакция все еще может не быть включеноИз-за характера многопоточного непрерывного производства блоков.) В теории приоритетные комиссии могут оптимально распределять блокчейн. На практике они абсолютно не справляются. К счастью, есть способы решить эти проблемы, что в конечном итоге приведет к более дешевым транзакциям с лучшим шансом включения для большинства пользователей. Прежде чем погружаться в решение, давайте рассмотрим некоторые свойства ресурса, который мы пытаемся выделить: блокчейн.

Blockspace: фиксированное предложение, сильно колеблющийся спрос​

Транзакции на Solana независимо верифицируются и выполняются децентрализованной сетью валидаторов. Поскольку у этих валидаторов ограниченные вычислительные ресурсы, Solana ограничивает общие вычислительные ресурсы, измеряемые в вычислительных единицах (CUs), которые могут быть использованы в блоке. Когда спрос на место в блоке взлетает выше ограниченного предложения, эти фиксированные ресурсы должны быть распределены среди конкурирующих транзакций.

В некотором смысле рынок может управлять выделением места в блоке через ценообразование; транзакции с более высокой полезностью для отправителя готовы заплатить более высокую цену. Однако этот механизм не работает, когда пользователи не знают, какова цена за место в блоке! Как уже обсуждалось выше, только приоритетная комиссия приводит к труднооцениваемым ценам на транзакции для большинства пользователей и обеспечивает плохие гарантии включения транзакции. Другие блокчейны решают эту проблему путем внедрения механизма комиссий за транзакции (например,EIP-1559 в Ethereum, и многомерные комиссии в ЛавинаиПенумбра). Эти механизмы комиссий внедряют легко оцениваемую базовую плату, которая обеспечивает предсказуемую «входную плату» за использование сети; эта базовая плата приблизительно соответствует истинной цене за включение транзакции.

Обзор: Сегодняшние комиссии Solana​

В настоящее время Solana реализует два механизма комиссий: базовую комиссию и приоритетную комиссию. Мы можем думать о базовой комиссии как о «вступительной плате» за использование сети, а о плате за приоритет — как о дополнительном совете, стимулирующем валидаторов включать одну транзакцию в другую. Базовая комиссия Solana составляет фиксированные 5000 лампортов за подпись (обычно один за транзакцию). В результате пользователи, отправляющие простые переводы, платят такую же базовую комиссию, как и пользователи, играющие в ончейн-игры с большим количеством вычислений и использующие сложные возможности MEV. Таким образом, текущая базовая плата не точно отражает использование ресурсов транзакцией (и «экстерналию», говоря языком экономики), что приводит к потенциальному плохо используется blockspace.

В нашем примере театра аналогичная фиксированная базовая плата будет взиматься с посетителя, покупающего 1 место, и того, кто купит все 100 мест, по одной и той же цене.

Зачем механизм базовой комиссии?​

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

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

Кроме того: Приоритетные комиссии и MEV​

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

Оптимальные блоки

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

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

К механизму

Как же нам устанавливать цены, чтобы стимулировать оптимальные блоки, как обсуждалось выше? Первым подходом может быть взимание фиксированной суммы за каждую единицу вычислительной мощности, использованной транзакцией. К сожалению, этот подход не сработает. Если спрос низок, то эта фиксированная цена за ЕМ не побудит пользователей подавать транзакции, и блоки могут быть практически пустыми. Если спрос высок, то эта фиксированная цена может быть слишком низкой и, как следствие, не сделает ничего для смягчения сетевой перегрузки или приближения к реальной стоимости включения транзакции (наша первоначальная цель!). Таким образом, нам нужно иметь способ увеличивать и уменьшать базовую плату в зависимости от спроса в сети, а также способ оценить этот спрос.

Динамическая базовая комиссия​

Следующим шагом будет добавление контроллера, который будет регулировать комиссию за вычислительную единицу на основе прошлого использования. Например, если есть целевое использование на блок (т. е. «стабильное» идеальное использование для цепочки), мы можем увеличить или уменьшить базовую комиссию в зависимости от использования или отклонения от этой цели. Множество механизмов, включая такие, как EIP-1559, реализуйте эту идею. Мы можем быть искушены динамически обновлять базовую комиссию в пределах одного блока с использованием спроса в реальном времени или стимулировать каждого лидера выбирать свои собственные правила обновления комиссии. Однако эти изменения снизили бы предсказуемость базовой комиссии, подрывая первоначальную цель этого механизма комиссии. Выбор механизма в конечном итоге определяет пользовательский опыт.

К счастью, быстрое время блокировки Solana позволяет использовать агрессивные алгоритмы для установки базовой комиссии. Например, мы можем быстро повышать цену в периоды высокого спроса (например, удваивать цену за каждый полный блок), а затем медленнее снижать цену по мере снижения спроса. Цена по-прежнему будет падать достаточно быстро из-за короткого времени блокировки Solana. Интуитивно, когда конкретный ресурс «исчерпывается», сеть значительно занижает цены и получает меньше информации о том, какой должна быть оптимальная цена. Подобные типы алгоритмов используются на практике в Контроль перегрузки TCP, уровень канала данных беспроводной связи, и оптимизация рынка.

Многомерные комиссии: рынки местных сборов​

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

В качестве конкретного примера давайте рассмотрим популярный выпуск NFT. Без рынков с комиссией за каждый аккаунт этот выпуск значительно увеличил бы базовую комиссию для всех других транзакций. С учетом комиссий за каждый аккаунт стоимость подачи транзакций для получения NFT (и доступа к этой части состояния) может увеличиться, в то время как комиссии за другие транзакции (например, пополнение залога по кредиту) остаются в основном неизменными. Такой тип дизайна рынка с комиссиями за каждый аккаунт рассматривается вЧерновой документ улучшения Solana.

Эти многомерные комиссии также могут учитывать корреляции между контрактами. Например, если две биржи cNFT торгуют многими одинаковыми коллекциями, их контракты требуют доступа к многим одинаковым счетам. Если торговый объем резко увеличивается для конкретной коллекции на одной из этих бирж, то базовая плата увеличится для этой коллекции на другой бирже, поскольку плата за базовый счет увеличилась как для одной, так и для другой. Таким образом, «локальные» плата за счет должны правильно коррелировать «глобально», и многомерные комиссии предотвращают игры в системе путем выпуска множества контрактов для одного и того же приложения.

С другой стороны, если само состояние приложения параллелизовано, комиссии будут ниже. Это свойство желательно; параллелизация увеличивает пропускную способность, поскольку она позволяет различным транзакциям, обращающимся к одному и тому же приложению, быть размещенными на разных потоках, когда базовые учетные записи не перекрываются (см.Жизненный цикл транзакции Solana).

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

Альтернативные механизмы​

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

  1. посмотрите на потребление ресурсов последних блоков (результат включенных транзакций);
  2. вычислить функцию этого потребления (например, отклонение от цели);
  3. и затем обновите цены ресурсов, используя результат шага 2 и простое правило.

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

Эта многомерная штука работает?

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

Установившееся поведение​

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

Сдвиги в распределении​

Мы также тестируем поведение механизма при сдвиге распределения: мы добавляем 150 транзакций в блок 10, требующих значительного количества ресурсов 2. Такой сценарий может возникнуть, например, при создании NFT. Многомерная ценообразование приводит к значительно более высокой пропускной способности, когда распределение сдвигается (влево), соответственно корректируются цены на ресурсы (вправо).

Рассматривая индивидуальное использование ресурсов, мы видим, что многомерная ценообразование (слева) облегчает кратковременную емкость, в то время как равномерное ценообразование (справа) этого не делает.

Заключение

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

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

Отказ от ответственности:

  1. Эта статья перепечатана из [umbraresearch], Пересылка оригинального заголовка «К многомерным комиссиям Solana», Все авторские права принадлежат оригинальному автору [@theo_diamandis@tarunchitra@0xShitTrader]. Если есть возражения к этому повторному изданию, пожалуйста, свяжитесь с Gate Learnкоманда, и они незамедлительно разберутся с этим.

  2. Отказ от ответственности: Взгляды и мнения, выраженные в этой статье, являются исключительно точкой зрения автора и не являются инвестиционными советами.

  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.-

Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!