Aptos labs вирішили дві важливі відкриті проблеми в DAG BFT, значно зменшивши затримку, вперше усунувши потребу в паузах у детермінаційних реальних протоколах. В цілому, в умовах безвідмовної роботи затримка Bullshark покращилась на 40%, а в умовах з відмовами - на 80%.
Shoal є фреймворком, що покращує затримку на основі протоколу консенсусу Narwhal шляхом використання конвеєра та репутації лідера. Конвеєр зменшує затримку сортування DAG, вводячи опорні точки в кожному раунді, а репутація лідера додатково покращує затримку, забезпечуючи зв'язок опорних точок з найшвидшими вузлами верифікації. Крім того, репутація лідера дозволяє Shoal використовувати асинхронну конструкцію DAG для усунення тайм-аутів у всіх сценаріях. Це дозволяє Shoal забезпечувати універсальні властивості відповіді, включаючи зазвичай необхідну оптимістичну відповідь.
Ця технологія дуже проста, вона передбачає послідовний запуск кількох екземплярів базового протоколу. Коли використовується Bullshark, це схоже на групу "акул", які беруть участь у естафеті.
Мотивація
У процесі досягнення високої продуктивності блокчейн-мережі люди постійно зосереджувалися на зниженні складності зв'язку. Однак цей підхід не призвів до значного збільшення пропускної здатності. Наприклад, Hotstuff, реалізований у ранніх версіях Diem, забезпечував лише 3500 TPS, що значно нижче цільового показника 100k+ TPS.
Нещодавній прорив виник із усвідомлення того, що розповсюдження даних є основною перешкодою для протоколу лідерів, і може отримати вигоду від паралелізації. Система Narwhal відокремлює розповсюдження даних від основної логіки консенсусу, пропонуючи архітектуру, в якій усі валідатори одночасно розповсюджують дані, а компоненти консенсусу лише замовляють невелику кількість метаданих. У роботі Narwhal повідомляється про пропускну здатність 160 000 TPS.
Раніше представлене Quorum Store відокремлює розповсюдження даних від консенсусу, щоб розширити поточний консенсусний протокол Jolteon. Jolteon — це протокол на основі лідера, який поєднує в собі лінійний швидкий шлях Tendermint і зміни виду в стилі PBFT, що дозволяє знизити затримку Hotstuff на 33%. Однак консенсусний протокол на основі лідера не може в повній мірі використовувати потенціал пропускної здатності Narwhal.
Тому вирішили розгорнути Bullshark на Narwhal DAG, консенсусний протокол з нульовими витратами на зв'язок. Але структура DAG Bullshark призводить до 50% затримки.
У цій статті описується, як Shoal значно зменшує затримку Bullshark.
Фон DAG-BFT
У Narwhal DAG кожна вершина пов'язана з певним раундом. Входячи в раунд r, валідатор повинен отримати n-f вершин з раунду r-1. Кожен валідатор може транслювати одну вершину за раунд, при цьому кожна вершина повинна посилатися принаймні на n-f вершин з попереднього раунду. Через асинхронність мережі різні валідатори можуть в будь-який момент спостерігати різні локальні вигляди DAG.
Ключовою властивістю DAG є однозначність: якщо два вузли-підтверджувачі мають однакову вершину v у локальному вигляді DAG, то вони мають абсолютно однакову причинно-наслідкову історію v.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-f6b6281c928e3fa7a2412a480c9c1806.webp)
Загальний порядок
Можна досягти згоди щодо загального порядку всіх вершин у DAG без додаткових витрат на зв'язок. Валідатори в DAG-Rider, Tusk та Bullshark інтерпретують структуру DAG як протокол консенсусу, де вершини представляють пропозиції, а ребра представляють голоси.
Усі існуючі протоколи консенсусу на базі Narwhal мають таку структуру:
Запланована опора: кожні кілька раундів є заздалегідь визначений лідер, вершина якого називається опорою.
Точки прив'язки: валідатори незалежно, але детерміністично вирішують, які точки прив'язки замовити, а які пропустити.
Сортування причинно-наслідкової історії: валідатори обробляють список упорядкованих якорів по одному, сортують усі попередні неупорядковані вершини в причинно-наслідковій історії кожного якоря.
Ключем досягнення безпеки є забезпечення того, щоб на етапі 2 всі чесні вузли верифікації створили впорядкований список якорів, і всі списки мали однаковий префікс. У Shoal ми спостерігали, що всі валідатори погоджуються з першим впорядкованим якорем.
Bullshark затримка
Затримка Bullshark залежить від кількості раундів між впорядкованими якорями в DAG. Хоча деякі версії синхронізації мають кращу затримку, ніж асинхронні, це далеко не оптимально.
Основних два питання:
Середня затримка блоку: в звичайних випадках, вершини непарних раундів потребують трьох раундів, тоді як вершини парних раундів, які не є анкерними, потребують чотирьох раундів для сортування.
Ситуація з несправностями затримка: якщо один раунд лідера не зміг своєчасно транслювати анкери, тоді попередні кілька раундів не відсортованих вершин повинні чекати на наступне сортування анкера, що значно знижує продуктивність географічної мережі реплікації.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-b7ed8888da112bae8d34c0fdb338b138.webp)
Shoal фрейм
Shoal через конвеєр покращує Bullshark, дозволяючи на кожному раунді мати одну опору, зменшуючи затримку всіх неякірних вершин до трьох раундів. Shoal також запроваджує механізм репутації лідера з нульовими витратами, який віддає перевагу вибору швидких лідерів.
Виклик
У протоколі DAG, конвеєри та репутація лідерів вважаються складними проблемами:
Попередні спроби змінити основну логіку Bullshark виявилися фактично неможливими.
Репутація лідерів може призвести до зовсім іншого ранжування, і валідатори повинні досягти згоди щодо впорядкованої історії для вибору майбутнього якоря.
Як доказ складності питання, нинішні реалізації Bullshark у виробничому середовищі не підтримують ці функції.
Протокол
Shoal покладається на виконання локальних обчислень на DAG, що дозволяє зберігати та повторно інтерпретувати інформацію з попередніх раундів. Використовуючи інсайти, що всі валідатори погоджуються з першим упорядкованим анкером, Shoal поетапно комбінує кілька екземплярів Bullshark для конвеєрної обробки, що дозволяє:
Першою впорядкованою опорною точкою є точка перемикання екземпляра
Історія причинно-наслідкових зв'язків якоря використовується для розрахунку репутації лідера
конвеєр
Shoal один за одним запускає екземпляри Bullshark, кожен екземпляр замовляє якорь, що викликає перемикання на наступний екземпляр.
Спочатку Shoal запустив перший екземпляр Bullshark на першому раунді DAG, працюючи до визначення першої впорядкованої прив'язки (, наприклад, в раунді r ). Усі валідатори погодилися з цією прив'язкою, тому можна з упевненістю погодитися на повторне тлумачення DAG з раунду r+1. Shoal запускає новий екземпляр Bullshark на раунді r+1.
В ідеальних умовах це дозволяє Shoal замовляти одну анкеру в кожному раунді.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-46d37add0d9e81b2f295edf8eddd907f.webp)
Репутація лідера
Коли Bullshark перескакує через анкерну точку, затримка збільшується. Shoal за допомогою механізму репутації розподіляє бали для кожного вузла перевірки, що забезпечує меншу ймовірність вибору повільних лідерів у майбутньому.
При кожному оновленні балів, детерміновано перепризначити відображення F з раунду на лідера, надаючи перевагу лідерам з високими балами. Щоб валідатори змогли досягти консенсусу щодо нового відображення, вони повинні досягти консенсусу щодо балів.
Лінійні та лідерські репутації можуть природно поєднуватися, оскільки вони обидві використовують одну й ту ж основну технологію, а саме, повторне тлумачення DAG після досягнення згоди щодо першої впорядкованої прив'язки.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-0b0928cb6240e994c1514c75e080a4b2.webp)
Не потрібно затримки
Тайм-аут відіграє ключову роль у реалізації детермінованого часткового синхронного BFT на основі лідера, але вводить складність і суттєво збільшує затримку.
Shoal спостерігає, що конструкція DAG забезпечує "годинник" для оцінки швидкості мережі. Доки n-f чесних валідаторів продовжують додавати вершини до DAG, раунд буде продовжуватися. Зрештою, коли безвідмовний лідер достатньо швидко транслює анкор, вся причинно-наслідкова історія анкора буде впорядкована.
Уникнення затримки тісно пов'язане з репутацією лідера. Повторне очікування повільних лідерів збільшує затримку, а механізм репутації виключає повільних валідаторів з вибору лідерами.
Загальна відповідь
Shoal надає універсальну властивість реагування, яка дозволяє працювати з швидкістю мережі навіть у випадку збою лідера або асинхронності мережі. Це переважає концепцію оптимістичного реагування Hotstuff.
Оцінка
Реалізовано Bullshark і Shoal, а також проведено порівняння з Jolteon. Основні висновки:
Безперервний Baseline Bullshark показує найкращі результати під час збоїв.
Лінія виробництва Shoal та механізм репутації лідера суттєво покращили затримку Bullshark.
У 50 невдачах 16 невдач відбулися, затримка Shoal була на 65% нижчою, ніж Baseline Bullshark.
Jolteon не може бути розширений до більше ніж 20 верифікаційних вузлів, пропускна спроможність складає приблизно половину від Bullshark/Shoal.
В цілому, Shoal значно покращив затримку Bullshark, і при високих навантаженнях має змогу відповідати затримці Jolteon по всьому шляху.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-859e732e16c3eee0e2c93422474debc2.webp)
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/social/moments-9f789cb669fcc244ea7ff7648e48b4)
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-cc09a26f7c3d94ee785de75e47bf42fb.webp)
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/social/moments-6461c85fe1553879062f7628f5553)
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
14 лайків
Нагородити
14
6
Репост
Поділіться
Прокоментувати
0/400
CompoundPersonality
· 3год тому
Знову швидше, рано чи пізно перевершить sol, може не вийти
Переглянути оригіналвідповісти на0
governance_ghost
· 08-10 03:14
80% затримка зменшилася, гм-гм, ця хвиля нас, гравців apttas, виграла на повну!
Переглянути оригіналвідповісти на0
ForkItAll
· 08-10 03:09
aptos зробив чудову роботу, tps піднявся так сильно
Переглянути оригіналвідповісти на0
DaisyUnicorn
· 08-10 03:08
Маленька акула нарешті плаває безперешкодно~ технологічне оновлення стало надійним джерелом
Shoal фреймворк суттєво підвищує продуктивність Aptos Блокчейн, затримка знижується на 40%-80%
Shoal框架: як зменшити затримку Bullshark на Aptos?
Огляд
Aptos labs вирішили дві важливі відкриті проблеми в DAG BFT, значно зменшивши затримку, вперше усунувши потребу в паузах у детермінаційних реальних протоколах. В цілому, в умовах безвідмовної роботи затримка Bullshark покращилась на 40%, а в умовах з відмовами - на 80%.
Shoal є фреймворком, що покращує затримку на основі протоколу консенсусу Narwhal шляхом використання конвеєра та репутації лідера. Конвеєр зменшує затримку сортування DAG, вводячи опорні точки в кожному раунді, а репутація лідера додатково покращує затримку, забезпечуючи зв'язок опорних точок з найшвидшими вузлами верифікації. Крім того, репутація лідера дозволяє Shoal використовувати асинхронну конструкцію DAG для усунення тайм-аутів у всіх сценаріях. Це дозволяє Shoal забезпечувати універсальні властивості відповіді, включаючи зазвичай необхідну оптимістичну відповідь.
Ця технологія дуже проста, вона передбачає послідовний запуск кількох екземплярів базового протоколу. Коли використовується Bullshark, це схоже на групу "акул", які беруть участь у естафеті.
Мотивація
У процесі досягнення високої продуктивності блокчейн-мережі люди постійно зосереджувалися на зниженні складності зв'язку. Однак цей підхід не призвів до значного збільшення пропускної здатності. Наприклад, Hotstuff, реалізований у ранніх версіях Diem, забезпечував лише 3500 TPS, що значно нижче цільового показника 100k+ TPS.
Нещодавній прорив виник із усвідомлення того, що розповсюдження даних є основною перешкодою для протоколу лідерів, і може отримати вигоду від паралелізації. Система Narwhal відокремлює розповсюдження даних від основної логіки консенсусу, пропонуючи архітектуру, в якій усі валідатори одночасно розповсюджують дані, а компоненти консенсусу лише замовляють невелику кількість метаданих. У роботі Narwhal повідомляється про пропускну здатність 160 000 TPS.
Раніше представлене Quorum Store відокремлює розповсюдження даних від консенсусу, щоб розширити поточний консенсусний протокол Jolteon. Jolteon — це протокол на основі лідера, який поєднує в собі лінійний швидкий шлях Tendermint і зміни виду в стилі PBFT, що дозволяє знизити затримку Hotstuff на 33%. Однак консенсусний протокол на основі лідера не може в повній мірі використовувати потенціал пропускної здатності Narwhal.
Тому вирішили розгорнути Bullshark на Narwhal DAG, консенсусний протокол з нульовими витратами на зв'язок. Але структура DAG Bullshark призводить до 50% затримки.
У цій статті описується, як Shoal значно зменшує затримку Bullshark.
Фон DAG-BFT
У Narwhal DAG кожна вершина пов'язана з певним раундом. Входячи в раунд r, валідатор повинен отримати n-f вершин з раунду r-1. Кожен валідатор може транслювати одну вершину за раунд, при цьому кожна вершина повинна посилатися принаймні на n-f вершин з попереднього раунду. Через асинхронність мережі різні валідатори можуть в будь-який момент спостерігати різні локальні вигляди DAG.
Ключовою властивістю DAG є однозначність: якщо два вузли-підтверджувачі мають однакову вершину v у локальному вигляді DAG, то вони мають абсолютно однакову причинно-наслідкову історію v.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-f6b6281c928e3fa7a2412a480c9c1806.webp)
Загальний порядок
Можна досягти згоди щодо загального порядку всіх вершин у DAG без додаткових витрат на зв'язок. Валідатори в DAG-Rider, Tusk та Bullshark інтерпретують структуру DAG як протокол консенсусу, де вершини представляють пропозиції, а ребра представляють голоси.
Усі існуючі протоколи консенсусу на базі Narwhal мають таку структуру:
Запланована опора: кожні кілька раундів є заздалегідь визначений лідер, вершина якого називається опорою.
Точки прив'язки: валідатори незалежно, але детерміністично вирішують, які точки прив'язки замовити, а які пропустити.
Сортування причинно-наслідкової історії: валідатори обробляють список упорядкованих якорів по одному, сортують усі попередні неупорядковані вершини в причинно-наслідковій історії кожного якоря.
Ключем досягнення безпеки є забезпечення того, щоб на етапі 2 всі чесні вузли верифікації створили впорядкований список якорів, і всі списки мали однаковий префікс. У Shoal ми спостерігали, що всі валідатори погоджуються з першим впорядкованим якорем.
Bullshark затримка
Затримка Bullshark залежить від кількості раундів між впорядкованими якорями в DAG. Хоча деякі версії синхронізації мають кращу затримку, ніж асинхронні, це далеко не оптимально.
Основних два питання:
Середня затримка блоку: в звичайних випадках, вершини непарних раундів потребують трьох раундів, тоді як вершини парних раундів, які не є анкерними, потребують чотирьох раундів для сортування.
Ситуація з несправностями затримка: якщо один раунд лідера не зміг своєчасно транслювати анкери, тоді попередні кілька раундів не відсортованих вершин повинні чекати на наступне сортування анкера, що значно знижує продуктивність географічної мережі реплікації.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-b7ed8888da112bae8d34c0fdb338b138.webp)
Shoal фрейм
Shoal через конвеєр покращує Bullshark, дозволяючи на кожному раунді мати одну опору, зменшуючи затримку всіх неякірних вершин до трьох раундів. Shoal також запроваджує механізм репутації лідера з нульовими витратами, який віддає перевагу вибору швидких лідерів.
Виклик
У протоколі DAG, конвеєри та репутація лідерів вважаються складними проблемами:
Попередні спроби змінити основну логіку Bullshark виявилися фактично неможливими.
Репутація лідерів може призвести до зовсім іншого ранжування, і валідатори повинні досягти згоди щодо впорядкованої історії для вибору майбутнього якоря.
Як доказ складності питання, нинішні реалізації Bullshark у виробничому середовищі не підтримують ці функції.
Протокол
Shoal покладається на виконання локальних обчислень на DAG, що дозволяє зберігати та повторно інтерпретувати інформацію з попередніх раундів. Використовуючи інсайти, що всі валідатори погоджуються з першим упорядкованим анкером, Shoal поетапно комбінує кілька екземплярів Bullshark для конвеєрної обробки, що дозволяє:
конвеєр
Shoal один за одним запускає екземпляри Bullshark, кожен екземпляр замовляє якорь, що викликає перемикання на наступний екземпляр.
Спочатку Shoal запустив перший екземпляр Bullshark на першому раунді DAG, працюючи до визначення першої впорядкованої прив'язки (, наприклад, в раунді r ). Усі валідатори погодилися з цією прив'язкою, тому можна з упевненістю погодитися на повторне тлумачення DAG з раунду r+1. Shoal запускає новий екземпляр Bullshark на раунді r+1.
В ідеальних умовах це дозволяє Shoal замовляти одну анкеру в кожному раунді.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-46d37add0d9e81b2f295edf8eddd907f.webp)
Репутація лідера
Коли Bullshark перескакує через анкерну точку, затримка збільшується. Shoal за допомогою механізму репутації розподіляє бали для кожного вузла перевірки, що забезпечує меншу ймовірність вибору повільних лідерів у майбутньому.
При кожному оновленні балів, детерміновано перепризначити відображення F з раунду на лідера, надаючи перевагу лідерам з високими балами. Щоб валідатори змогли досягти консенсусу щодо нового відображення, вони повинні досягти консенсусу щодо балів.
Лінійні та лідерські репутації можуть природно поєднуватися, оскільки вони обидві використовують одну й ту ж основну технологію, а саме, повторне тлумачення DAG після досягнення згоди щодо першої впорядкованої прив'язки.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-0b0928cb6240e994c1514c75e080a4b2.webp)
Не потрібно затримки
Тайм-аут відіграє ключову роль у реалізації детермінованого часткового синхронного BFT на основі лідера, але вводить складність і суттєво збільшує затримку.
Shoal спостерігає, що конструкція DAG забезпечує "годинник" для оцінки швидкості мережі. Доки n-f чесних валідаторів продовжують додавати вершини до DAG, раунд буде продовжуватися. Зрештою, коли безвідмовний лідер достатньо швидко транслює анкор, вся причинно-наслідкова історія анкора буде впорядкована.
Уникнення затримки тісно пов'язане з репутацією лідера. Повторне очікування повільних лідерів збільшує затримку, а механізм репутації виключає повільних валідаторів з вибору лідерами.
Загальна відповідь
Shoal надає універсальну властивість реагування, яка дозволяє працювати з швидкістю мережі навіть у випадку збою лідера або асинхронності мережі. Це переважає концепцію оптимістичного реагування Hotstuff.
Оцінка
Реалізовано Bullshark і Shoal, а також проведено порівняння з Jolteon. Основні висновки:
Безперервний Baseline Bullshark показує найкращі результати під час збоїв.
Лінія виробництва Shoal та механізм репутації лідера суттєво покращили затримку Bullshark.
У 50 невдачах 16 невдач відбулися, затримка Shoal була на 65% нижчою, ніж Baseline Bullshark.
Jolteon не може бути розширений до більше ніж 20 верифікаційних вузлів, пропускна спроможність складає приблизно половину від Bullshark/Shoal.
В цілому, Shoal значно покращив затримку Bullshark, і при високих навантаженнях має змогу відповідати затримці Jolteon по всьому шляху.
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-859e732e16c3eee0e2c93422474debc2.webp)
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/social/moments-9f789cb669fcc244ea7ff7648e48b4)
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/webp-social/moments-cc09a26f7c3d94ee785de75e47bf42fb.webp)
! [10 000 слів, що пояснюють рамки Shoal: як зменшити затримку Bullshark на Aptos?] ](https://img-cdn.gateio.im/social/moments-6461c85fe1553879062f7628f5553)