Механізми комісії є важливою особливістю блокчейнів. Обслуговувачі мережі, такі як валідатори, мають обмежені ресурси, тому важливо стягувати плату за дефіцитні ресурси таким чином, щоб відображати вартість мережі. Плата також створює стимули для учасників мережі, таких як користувачі, розробники додатків і валідатори.
У цій серії ми розглянемо поточний механізм винагороди Solana, формалізуємо простір для розробки механізму винагороди та проаналізуємо деякі запропоновані зміни до механізму винагороди Solana.
Цей твір є першим у серії. Тут ми пояснюємо, як сьогодні працюють комісії Solana, зосереджуючись на комісіях на основі транзакцій.
Це специфічні для Solana визначення, необхідні для розуміння механізму винагороди.
Підпис: принаймні один, і зазвичай рівно один, включений до транзакції.
Лампорт: найменша атомна одиниця SOL. 1 SOL дорівнює одному мільярду (10^9) ламппортів.
Обчислювальна одиниця (CU): одиниця обчислення на інструкцію Solana-BPF, призначена для приблизної оцінки вартості виконання інструкції. Подібно до газових одиниць на Ethereum.
CU used: кількість обчислювальних одиниць, які використовуються для виконання транзакції. Відомо лише після страти.
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 додатково стягує комісію за створення нового стану, що називається звільненням від орендної плати (застарілий термін). Поточна вартість звільнення від орендної плати становить 6,96 SOL за МБ. Коли створюється новий обліковий запис, комісія призначається на рахунок; після видалення облікового запису можна відновити плату за звільнення від орендної плати.
Оскільки базова комісія не залежить від використовуваного або запитуваного CU, базова комісія не має жодного стимулу для оптимізації використання обчислювальної техніки або для запиту CU, близької до кількості, яка фактично використовується. На практиці багато транзакцій у Solana вимагають набагато більше CU, ніж використовуються. Це створює неефективність планувальника.
У наведеному вище прикладі транзакції транзакція вимагає 600 000 CU, але використовує менше 250 000.
У той час як плата за пріоритет включає стимул для зменшення запитуваних CU і, отже, використовуваних CU, цей стимул є слабким у більшості випадків і набуває чинності лише під час перевантажень. Однією простою модифікацією було б розширення базової комісії, щоб також вимагати комісії за запитувану CU. Це стимулюватиме розробників і відправників транзакцій зменшити використання обчислювальної техніки та запитувати лише необхідні ресурси.
Механізм є сумісним із стимулами, якщо всі учасники механізму досягають найкращого результату, діючи відповідно до своїх справжніх уподобань. У контексті механізму комісії це приблизно означає, що валідатор максимізує комісії, запускаючи алгоритм побудови блоків за замовчуванням, і що відправники транзакцій максимізують добробут, надсилаючи транзакції з пріоритетними комісіями відповідно до їхньої справжньої готовності платити.
Механізм комісії Solana сьогодні не є сумісним із стимулами для валідаторів і відправників транзакцій. Як описано вище, 50% комісії за транзакцію залишається у лідера, а 50% спалюється. Оскільки не вся комісія надходить до лідера, це створює стимул для відправника транзакцій до змови з лідером: замість визначення пріоритетної комісії, щоб отримати пріоритетне включення, відправник може натомість укласти додаткову угоду з лідером, щоб сплатити плата за пріоритет поза мережею, припинення запису, зберігаючи пріоритет.
Теоретично валідатори, які використовують такий механізм, отримують більше гонорарів і, отже, можуть пропонувати вищі винагороди своїм делегованим стейкерам, створюючи централізовану силу.
Крім прямої вертикальної інтеграції, основний спосіб, яким ми бачимо цю побічну угоду на сьогоднішньому ринку, — це через аукціони Jito. Валідатори, які запускають Jito-Solana (модифікація клієнта Solana Labs), порушують механізм безперервного створення блоків, запускаючи аукціон блокового простору в першій половині своїх слотів.
Інших подібних побічних угод на ринку сьогодні ми не спостерігали. Це відбувається тому:
На відміну від більшості інших блокчейнів, Solana вимагає від відправників транзакцій вказувати, які частини стану необхідні для виконання транзакції. Це розблокує паралельне виконання транзакцій і локалізовані ринки комісій, де різні частини штату мають різні комісії залежно від того, наскільки спірною є конкретна частина штату. Локалізована державна точка доступу не потребує збільшення конкуренції чи зборів у всьому блокчейні.
Однією з поширених помилкових уявлень про Solana є те, що сьогодні тут представлені місцеві ринки комісій. Хоча існує така ситуація, що транзакція, яка сплачує комісію з вищим пріоритетом, з більшою ймовірністю буде включена в блокування, і такий стан, який оскаржується, ймовірно, вимагатиме вищого пріоритету, така поведінка не є детермінованою та є результатом реалізації стандарту Solana за замовчуванням. алгоритм планування. Ми досліджуємо це докладніше в життєвому циклі транзакції Solana.
Зокрема, ця поведінка не забезпечується консенсусом, а детерміноване впорядкування за пріоритетною оплатою не гарантується ні консенсусом, ні реалізацією планувальника. Безперервна побудова блоків і розповсюдження блоків Solana запобігає детермінованому впорядкуванню, за винятком великих змін (наприклад, реалізовано детерміноване впорядкування та асинхронне виконання).
Передбачувана базова плата за доступ до станів, що забезпечується консенсусом, заснована на історичних суперечках, могла б підвищити ефективність і UX для доступу до стану, що викликає серйозні суперечки. Це збільшить вартість спаму, а також додатково стимулюватиме відправників транзакцій блокувати мінімальний обсяг стану, який їм фактично потрібен. Це не усуне першопричину спаму, яка виникає через безперервне формування блоків (тому затримка важлива) і тремтіння. Ми розглянемо цей дизайн пізніше в цій серії.
Оскільки транзакції в основному впорядковуються за моментом досягнення лідера (планувальника), і цей порядок піддається як коливанню мережі, так і тремтінню через реалізацію розпаралеленого планувальника, існує стимул для спаму транзакцій, коли відправник хоче, щоб одна була включена так швидко, як можливо. Такі транзакції призводять до негативних зовнішніх ефектів у мережі у формі потрапляння спаму в ланцюжок (станом на січень 2023 року 58% обчислень у ланцюзі Solana використовується для повернення транзакцій) і спаму, що досягає лідера.
Від Jito Labs
У цьому матеріалі ми описали, як сьогодні працює механізм гонорарів Solana та його наслідки для мережі. Ми натякнули на деякі властивості, яким задовольнив би ідеальний механізм комісії, як-от точні підказки для планувальника (за запитом CU), сумісність стимулів і справді локалізовані ринки комісії. У наступному розділі ми визначимо формалізм для цілей, для досягнення яких має оптимізуватись механізм зборів. Це буде використано для аналізу поточного механізму зборів, а також запропонованих модифікацій механізму з більшою суворістю, ніж було висловлено тут.
Механізми комісії є важливою особливістю блокчейнів. Обслуговувачі мережі, такі як валідатори, мають обмежені ресурси, тому важливо стягувати плату за дефіцитні ресурси таким чином, щоб відображати вартість мережі. Плата також створює стимули для учасників мережі, таких як користувачі, розробники додатків і валідатори.
У цій серії ми розглянемо поточний механізм винагороди Solana, формалізуємо простір для розробки механізму винагороди та проаналізуємо деякі запропоновані зміни до механізму винагороди Solana.
Цей твір є першим у серії. Тут ми пояснюємо, як сьогодні працюють комісії Solana, зосереджуючись на комісіях на основі транзакцій.
Це специфічні для Solana визначення, необхідні для розуміння механізму винагороди.
Підпис: принаймні один, і зазвичай рівно один, включений до транзакції.
Лампорт: найменша атомна одиниця SOL. 1 SOL дорівнює одному мільярду (10^9) ламппортів.
Обчислювальна одиниця (CU): одиниця обчислення на інструкцію Solana-BPF, призначена для приблизної оцінки вартості виконання інструкції. Подібно до газових одиниць на Ethereum.
CU used: кількість обчислювальних одиниць, які використовуються для виконання транзакції. Відомо лише після страти.
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 додатково стягує комісію за створення нового стану, що називається звільненням від орендної плати (застарілий термін). Поточна вартість звільнення від орендної плати становить 6,96 SOL за МБ. Коли створюється новий обліковий запис, комісія призначається на рахунок; після видалення облікового запису можна відновити плату за звільнення від орендної плати.
Оскільки базова комісія не залежить від використовуваного або запитуваного CU, базова комісія не має жодного стимулу для оптимізації використання обчислювальної техніки або для запиту CU, близької до кількості, яка фактично використовується. На практиці багато транзакцій у Solana вимагають набагато більше CU, ніж використовуються. Це створює неефективність планувальника.
У наведеному вище прикладі транзакції транзакція вимагає 600 000 CU, але використовує менше 250 000.
У той час як плата за пріоритет включає стимул для зменшення запитуваних CU і, отже, використовуваних CU, цей стимул є слабким у більшості випадків і набуває чинності лише під час перевантажень. Однією простою модифікацією було б розширення базової комісії, щоб також вимагати комісії за запитувану CU. Це стимулюватиме розробників і відправників транзакцій зменшити використання обчислювальної техніки та запитувати лише необхідні ресурси.
Механізм є сумісним із стимулами, якщо всі учасники механізму досягають найкращого результату, діючи відповідно до своїх справжніх уподобань. У контексті механізму комісії це приблизно означає, що валідатор максимізує комісії, запускаючи алгоритм побудови блоків за замовчуванням, і що відправники транзакцій максимізують добробут, надсилаючи транзакції з пріоритетними комісіями відповідно до їхньої справжньої готовності платити.
Механізм комісії Solana сьогодні не є сумісним із стимулами для валідаторів і відправників транзакцій. Як описано вище, 50% комісії за транзакцію залишається у лідера, а 50% спалюється. Оскільки не вся комісія надходить до лідера, це створює стимул для відправника транзакцій до змови з лідером: замість визначення пріоритетної комісії, щоб отримати пріоритетне включення, відправник може натомість укласти додаткову угоду з лідером, щоб сплатити плата за пріоритет поза мережею, припинення запису, зберігаючи пріоритет.
Теоретично валідатори, які використовують такий механізм, отримують більше гонорарів і, отже, можуть пропонувати вищі винагороди своїм делегованим стейкерам, створюючи централізовану силу.
Крім прямої вертикальної інтеграції, основний спосіб, яким ми бачимо цю побічну угоду на сьогоднішньому ринку, — це через аукціони Jito. Валідатори, які запускають Jito-Solana (модифікація клієнта Solana Labs), порушують механізм безперервного створення блоків, запускаючи аукціон блокового простору в першій половині своїх слотів.
Інших подібних побічних угод на ринку сьогодні ми не спостерігали. Це відбувається тому:
На відміну від більшості інших блокчейнів, Solana вимагає від відправників транзакцій вказувати, які частини стану необхідні для виконання транзакції. Це розблокує паралельне виконання транзакцій і локалізовані ринки комісій, де різні частини штату мають різні комісії залежно від того, наскільки спірною є конкретна частина штату. Локалізована державна точка доступу не потребує збільшення конкуренції чи зборів у всьому блокчейні.
Однією з поширених помилкових уявлень про Solana є те, що сьогодні тут представлені місцеві ринки комісій. Хоча існує така ситуація, що транзакція, яка сплачує комісію з вищим пріоритетом, з більшою ймовірністю буде включена в блокування, і такий стан, який оскаржується, ймовірно, вимагатиме вищого пріоритету, така поведінка не є детермінованою та є результатом реалізації стандарту Solana за замовчуванням. алгоритм планування. Ми досліджуємо це докладніше в життєвому циклі транзакції Solana.
Зокрема, ця поведінка не забезпечується консенсусом, а детерміноване впорядкування за пріоритетною оплатою не гарантується ні консенсусом, ні реалізацією планувальника. Безперервна побудова блоків і розповсюдження блоків Solana запобігає детермінованому впорядкуванню, за винятком великих змін (наприклад, реалізовано детерміноване впорядкування та асинхронне виконання).
Передбачувана базова плата за доступ до станів, що забезпечується консенсусом, заснована на історичних суперечках, могла б підвищити ефективність і UX для доступу до стану, що викликає серйозні суперечки. Це збільшить вартість спаму, а також додатково стимулюватиме відправників транзакцій блокувати мінімальний обсяг стану, який їм фактично потрібен. Це не усуне першопричину спаму, яка виникає через безперервне формування блоків (тому затримка важлива) і тремтіння. Ми розглянемо цей дизайн пізніше в цій серії.
Оскільки транзакції в основному впорядковуються за моментом досягнення лідера (планувальника), і цей порядок піддається як коливанню мережі, так і тремтінню через реалізацію розпаралеленого планувальника, існує стимул для спаму транзакцій, коли відправник хоче, щоб одна була включена так швидко, як можливо. Такі транзакції призводять до негативних зовнішніх ефектів у мережі у формі потрапляння спаму в ланцюжок (станом на січень 2023 року 58% обчислень у ланцюзі Solana використовується для повернення транзакцій) і спаму, що досягає лідера.
Від Jito Labs
У цьому матеріалі ми описали, як сьогодні працює механізм гонорарів Solana та його наслідки для мережі. Ми натякнули на деякі властивості, яким задовольнив би ідеальний механізм комісії, як-от точні підказки для планувальника (за запитом CU), сумісність стимулів і справді локалізовані ринки комісії. У наступному розділі ми визначимо формалізм для цілей, для досягнення яких має оптимізуватись механізм зборів. Це буде використано для аналізу поточного механізму зборів, а також запропонованих модифікацій механізму з більшою суворістю, ніж було висловлено тут.