Механизмы комиссии - важная особенность блокчейн. У тех, кто обслуживает сеть, как и у валидаторов, ресурсы ограничены, поэтому важно взимать плату за ограниченные ресурсы таким образом, чтобы она отражала затраты сети. Плата также создает стимулы для участников сети, таких как пользователи, разработчики приложений и валидаторы.
В этой серии статей мы рассмотрим текущий механизм оплаты Solana, формализуем пространство дизайна для механизма оплаты и проанализируем некоторые предложенные изменения в механизме оплаты Solana.
Эта работа - первая в серии. Здесь мы объясняем, как сегодня работают комиссии Solana, уделяя особое внимание комиссиям, основанным на транзакциях.
Это специфические для Соланы определения, необходимые для понимания механизма платы.
Подпись: как минимум одна, а обычно ровно одна на каждую транзакцию.
Лампорт: наименьшая атомная единица SOL. 1 СОЛ равен одному миллиарду (10^9) лампортов.
Вычислительная единица (CU): вычислительная единица на одну инструкцию Solana-BPF, предназначенная для приблизительной оценки стоимости выполнения инструкции. Аналогично газовым единицам в Ethereum.
Использованные CU: количество вычислительных единиц, использованных для выполнения транзакции. Известно только после выполнения.
Запрашиваемый CU: задается транзакцией; если транзакция превышает этот бюджет вычислений во время выполнения, выполнение останавливается, и транзакция терпит неудачу. Максимальное количество запрашиваемых (и используемых) CU на одну транзакцию составляет 1 400 000 CU.
Аккаунт:единое состояние на блокчейне Solana.
Планировщик: механизм непрерывного создания блоков, по умолчанию включенный в клиент Solana, созданный Solana Labs.
Сегодня транзакция Solana включает в себя две платы: базовую и приоритетную.
Базовая комиссия фиксирована и составляет 5000 ламопортов (0,000005 SOL, $0,0003 при цене $60/SOL) за подпись; подавляющее большинство транзакций Solana состоит из одной подписи.
Необязательная плата за приоритет указывается в транзакции и выражается в микролампортах за каждый запрашиваемый CU. Обратите внимание, что это не показатель за использованные CU, потому что количество использованных CU неизвестно до тех пор, пока не будет выполнена транзакция. Транзакции с более высокой платой за приоритет недетерминированно определяются планировщиком. Конкретный механизм описан в разделе " Жизненный цикл транзакции Solana".
Комиссионные списываются с плательщика в начале выполнения транзакции. Если плательщик не может внести требуемую плату, выполнение пропускается, транзакция считается недействительной и не включается в список.
Как для базовой, так и для приоритетной платы, 50% остается у лидера в качестве стимула для включения транзакций в блоки, а 50% сжигается.
В этом примере транзакция запрашивает 600 000 вычислительных единиц и устанавливает плату за приоритет в размере 2500 микролампортов за каждую запрашиваемую CU. Поскольку транзакция имеет одну подпись, общая плата за транзакцию составляет 5000 лампортов + 600 000 запрашиваемых CU * 2500 микролампортов / запрашиваемые CU = 6500 лампортов, или 0,0000065 SOL.
Solana дополнительно взимает плату за создание нового состояния, называемого освобождением от арендной платы (legacy term). Текущая стоимость освобождения от арендной платы составляет статические 6,96 SOL за MB. Когда создается новый счет, плата назначается ему; когда счет удаляется, плата за освобождение от арендной платы может быть взыскана.
Поскольку базовая плата не зависит от использованных или запрошенных CU, она не стимулирует оптимизировать использование вычислений и запрашивать CU, близкие к тому количеству, которое используется на самом деле. На практике многие транзакции на Solana запрашивают гораздо больше CU, чем в итоге используется. Это создает неэффективность в планировщике.
В приведенном выше примере транзакция запрашивает 600 000 CU, но использует менее 250 000.
Хотя плата за приоритет включает в себя стимул для уменьшения количества запрашиваемых и, соответственно, используемых CU, этот стимул слаб большую часть времени и вступает в силу только во время перегруженности. Одним из простых изменений может быть расширение базовой платы, чтобы также требовать плату за каждый запрашиваемый ТС. Это побудит разработчиков и отправителей транзакций сократить использование вычислений и запрашивать только необходимые ресурсы.
Механизм совместим со стимулами, если все участники механизма достигают наилучшего результата, действуя в соответствии со своими истинными предпочтениями. В контексте механизма платы это означает, что валидатор максимизирует плату, запуская алгоритм построения блоков по умолчанию, а отправители транзакций максимизируют благосостояние, отправляя транзакции с приоритетной платой в соответствии с их истинной готовностью платить.
Механизм вознаграждения Solana сегодня не совместим со стимулами для валидаторов и отправителей транзакций. Как описано выше, 50% комиссии за транзакцию остается у лидера, а 50% сжигается. Поскольку не вся плата идет лидеру, это создает стимул для отправителя транзакции вступать в сговор с лидером: вместо того, чтобы указывать плату за приоритет, чтобы получить приоритет, отправитель может заключить с лидером побочную сделку, чтобы заплатить плату за приоритет вне сети, отсекая "ожог", но при этом получая приоритет.
Валидаторы, управляющие таким механизмом, теоретически получают больше вознаграждений и, следовательно, могут предложить более высокое вознаграждение своим делегированным стейкерам, создавая централизующую силу.
Помимо прямой вертикальной интеграции, основной способ, которым мы видим эту побочную сделку на рынке сегодня, - это аукционы Jito. Валидаторы, работающие под управлением Jito-Solana (модификация клиента Solana Labs), нарушают механизм непрерывного создания блоков, проводя аукцион блочного пространства в первой половине своих слотов.
Сегодня на рынке мы не наблюдаем других подобных побочных сделок. Это потому, что:
В отличие от большинства других блокчейнов, Solana требует, чтобы отправители транзакций указывали, какие части состояния необходимы для выполнения транзакции. Это открывает возможности для параллельного выполнения транзакций и локализованных рынков комиссионных, где за разные части государства взимается разная плата в зависимости от того, насколько спорным является тот или иной участок государства. Локализованная государственная точка доступа не должна увеличивать количество споров или сборов во всем блокчейне.
Одно из распространенных заблуждений относительно Solana заключается в том, что сегодня в ней представлены местные платные рынки. Несмотря на то, что транзакция, заплатившая более высокий приоритет, с большей вероятностью будет включена выше в блок, и что спорное состояние, скорее всего, потребует более высокого приоритета, такое поведение не является детерминированным и является результатом реализации алгоритма планирования по умолчанию в Solana. Подробнее об этом мы рассказываем в разделе " Жизненный цикл транзакции Solana".
В частности, такое поведение не обеспечивается консенсусом, и детерминированное упорядочивание по приоритетам не гарантируется ни консенсусом, ни реализацией планировщика. Непрерывное построение блоков и распространение блоков в Solana не допускает детерминированного упорядочивания, если только не происходят большие изменения (например. детерминированное упорядочивание и асинхронное выполнение) реализованы.
Предсказуемая базовая плата за доступ к штату, установленная на основе консенсуса и основанная на исторических спорах, может повысить эффективность и улучшить пользовательский интерфейс при доступе к штату с высокими спорами. Это увеличит стоимость спама, дополнительно стимулируя отправителей транзакций блокировать минимальное количество состояния, которое им действительно требуется. Это не устранит основную причину спама, которая возникает из-за непрерывного создания блоков (поэтому задержка очень важна) и джиттера. Мы рассмотрим этот дизайн позже в этой серии.
Поскольку транзакции в первую очередь упорядочиваются по времени их поступления к лидеру (планировщику), и этот порядок подвержен как сетевому джиттеру, так и джиттеру из-за распараллеленной реализации планировщика, существует стимул спамить транзакциями, когда отправитель хочет, чтобы его транзакция была включена как можно быстрее. Такие транзакции оказывают негативное внешнее воздействие на сеть в виде спама, приземляющегося на цепь (по состоянию на январь 2023 года 58% вычислений на цепи Solana используется для возвратных транзакций), и спама, достигающего лидера.
От Jito Labs
В этом материале мы рассказали о том, как работает механизм гонораров Соланы сегодня, и о его последствиях для сети. Мы намекнули на некоторые свойства, которым должен удовлетворять идеальный механизм оплаты, такие как точные подсказки планировщику (по запросу CU), совместимость стимулов и настоящие локализованные рынки оплаты. В следующей части мы определим формализм для целей, для которых должен оптимизироваться механизм оплаты. Это будет использовано для анализа текущего механизма взимания платы, а также предлагаемых модификаций механизма, с большей строгостью, чем это было сделано здесь.
Механизмы комиссии - важная особенность блокчейн. У тех, кто обслуживает сеть, как и у валидаторов, ресурсы ограничены, поэтому важно взимать плату за ограниченные ресурсы таким образом, чтобы она отражала затраты сети. Плата также создает стимулы для участников сети, таких как пользователи, разработчики приложений и валидаторы.
В этой серии статей мы рассмотрим текущий механизм оплаты Solana, формализуем пространство дизайна для механизма оплаты и проанализируем некоторые предложенные изменения в механизме оплаты Solana.
Эта работа - первая в серии. Здесь мы объясняем, как сегодня работают комиссии Solana, уделяя особое внимание комиссиям, основанным на транзакциях.
Это специфические для Соланы определения, необходимые для понимания механизма платы.
Подпись: как минимум одна, а обычно ровно одна на каждую транзакцию.
Лампорт: наименьшая атомная единица SOL. 1 СОЛ равен одному миллиарду (10^9) лампортов.
Вычислительная единица (CU): вычислительная единица на одну инструкцию Solana-BPF, предназначенная для приблизительной оценки стоимости выполнения инструкции. Аналогично газовым единицам в Ethereum.
Использованные CU: количество вычислительных единиц, использованных для выполнения транзакции. Известно только после выполнения.
Запрашиваемый CU: задается транзакцией; если транзакция превышает этот бюджет вычислений во время выполнения, выполнение останавливается, и транзакция терпит неудачу. Максимальное количество запрашиваемых (и используемых) CU на одну транзакцию составляет 1 400 000 CU.
Аккаунт:единое состояние на блокчейне Solana.
Планировщик: механизм непрерывного создания блоков, по умолчанию включенный в клиент Solana, созданный Solana Labs.
Сегодня транзакция Solana включает в себя две платы: базовую и приоритетную.
Базовая комиссия фиксирована и составляет 5000 ламопортов (0,000005 SOL, $0,0003 при цене $60/SOL) за подпись; подавляющее большинство транзакций Solana состоит из одной подписи.
Необязательная плата за приоритет указывается в транзакции и выражается в микролампортах за каждый запрашиваемый CU. Обратите внимание, что это не показатель за использованные CU, потому что количество использованных CU неизвестно до тех пор, пока не будет выполнена транзакция. Транзакции с более высокой платой за приоритет недетерминированно определяются планировщиком. Конкретный механизм описан в разделе " Жизненный цикл транзакции Solana".
Комиссионные списываются с плательщика в начале выполнения транзакции. Если плательщик не может внести требуемую плату, выполнение пропускается, транзакция считается недействительной и не включается в список.
Как для базовой, так и для приоритетной платы, 50% остается у лидера в качестве стимула для включения транзакций в блоки, а 50% сжигается.
В этом примере транзакция запрашивает 600 000 вычислительных единиц и устанавливает плату за приоритет в размере 2500 микролампортов за каждую запрашиваемую CU. Поскольку транзакция имеет одну подпись, общая плата за транзакцию составляет 5000 лампортов + 600 000 запрашиваемых CU * 2500 микролампортов / запрашиваемые CU = 6500 лампортов, или 0,0000065 SOL.
Solana дополнительно взимает плату за создание нового состояния, называемого освобождением от арендной платы (legacy term). Текущая стоимость освобождения от арендной платы составляет статические 6,96 SOL за MB. Когда создается новый счет, плата назначается ему; когда счет удаляется, плата за освобождение от арендной платы может быть взыскана.
Поскольку базовая плата не зависит от использованных или запрошенных CU, она не стимулирует оптимизировать использование вычислений и запрашивать CU, близкие к тому количеству, которое используется на самом деле. На практике многие транзакции на Solana запрашивают гораздо больше CU, чем в итоге используется. Это создает неэффективность в планировщике.
В приведенном выше примере транзакция запрашивает 600 000 CU, но использует менее 250 000.
Хотя плата за приоритет включает в себя стимул для уменьшения количества запрашиваемых и, соответственно, используемых CU, этот стимул слаб большую часть времени и вступает в силу только во время перегруженности. Одним из простых изменений может быть расширение базовой платы, чтобы также требовать плату за каждый запрашиваемый ТС. Это побудит разработчиков и отправителей транзакций сократить использование вычислений и запрашивать только необходимые ресурсы.
Механизм совместим со стимулами, если все участники механизма достигают наилучшего результата, действуя в соответствии со своими истинными предпочтениями. В контексте механизма платы это означает, что валидатор максимизирует плату, запуская алгоритм построения блоков по умолчанию, а отправители транзакций максимизируют благосостояние, отправляя транзакции с приоритетной платой в соответствии с их истинной готовностью платить.
Механизм вознаграждения Solana сегодня не совместим со стимулами для валидаторов и отправителей транзакций. Как описано выше, 50% комиссии за транзакцию остается у лидера, а 50% сжигается. Поскольку не вся плата идет лидеру, это создает стимул для отправителя транзакции вступать в сговор с лидером: вместо того, чтобы указывать плату за приоритет, чтобы получить приоритет, отправитель может заключить с лидером побочную сделку, чтобы заплатить плату за приоритет вне сети, отсекая "ожог", но при этом получая приоритет.
Валидаторы, управляющие таким механизмом, теоретически получают больше вознаграждений и, следовательно, могут предложить более высокое вознаграждение своим делегированным стейкерам, создавая централизующую силу.
Помимо прямой вертикальной интеграции, основной способ, которым мы видим эту побочную сделку на рынке сегодня, - это аукционы Jito. Валидаторы, работающие под управлением Jito-Solana (модификация клиента Solana Labs), нарушают механизм непрерывного создания блоков, проводя аукцион блочного пространства в первой половине своих слотов.
Сегодня на рынке мы не наблюдаем других подобных побочных сделок. Это потому, что:
В отличие от большинства других блокчейнов, Solana требует, чтобы отправители транзакций указывали, какие части состояния необходимы для выполнения транзакции. Это открывает возможности для параллельного выполнения транзакций и локализованных рынков комиссионных, где за разные части государства взимается разная плата в зависимости от того, насколько спорным является тот или иной участок государства. Локализованная государственная точка доступа не должна увеличивать количество споров или сборов во всем блокчейне.
Одно из распространенных заблуждений относительно Solana заключается в том, что сегодня в ней представлены местные платные рынки. Несмотря на то, что транзакция, заплатившая более высокий приоритет, с большей вероятностью будет включена выше в блок, и что спорное состояние, скорее всего, потребует более высокого приоритета, такое поведение не является детерминированным и является результатом реализации алгоритма планирования по умолчанию в Solana. Подробнее об этом мы рассказываем в разделе " Жизненный цикл транзакции Solana".
В частности, такое поведение не обеспечивается консенсусом, и детерминированное упорядочивание по приоритетам не гарантируется ни консенсусом, ни реализацией планировщика. Непрерывное построение блоков и распространение блоков в Solana не допускает детерминированного упорядочивания, если только не происходят большие изменения (например. детерминированное упорядочивание и асинхронное выполнение) реализованы.
Предсказуемая базовая плата за доступ к штату, установленная на основе консенсуса и основанная на исторических спорах, может повысить эффективность и улучшить пользовательский интерфейс при доступе к штату с высокими спорами. Это увеличит стоимость спама, дополнительно стимулируя отправителей транзакций блокировать минимальное количество состояния, которое им действительно требуется. Это не устранит основную причину спама, которая возникает из-за непрерывного создания блоков (поэтому задержка очень важна) и джиттера. Мы рассмотрим этот дизайн позже в этой серии.
Поскольку транзакции в первую очередь упорядочиваются по времени их поступления к лидеру (планировщику), и этот порядок подвержен как сетевому джиттеру, так и джиттеру из-за распараллеленной реализации планировщика, существует стимул спамить транзакциями, когда отправитель хочет, чтобы его транзакция была включена как можно быстрее. Такие транзакции оказывают негативное внешнее воздействие на сеть в виде спама, приземляющегося на цепь (по состоянию на январь 2023 года 58% вычислений на цепи Solana используется для возвратных транзакций), и спама, достигающего лидера.
От Jito Labs
В этом материале мы рассказали о том, как работает механизм гонораров Соланы сегодня, и о его последствиях для сети. Мы намекнули на некоторые свойства, которым должен удовлетворять идеальный механизм оплаты, такие как точные подсказки планировщику (по запросу CU), совместимость стимулов и настоящие локализованные рынки оплаты. В следующей части мы определим формализм для целей, для которых должен оптимизироваться механизм оплаты. Это будет использовано для анализа текущего механизма взимания платы, а также предлагаемых модификаций механизма, с большей строгостью, чем это было сделано здесь.