Lección 3

Технічна архітектура Monad

Цей модуль надає глибокий технічний розбір архітектури Monad, описуючи, як протокол досягає високої пропускної здатності та низької затримки. Теми включають двигун паралельного виконання, асинхронну модель виконання, згоду MonadBFT та спеціальний рівень зберігання MonadDB, які всі призначені для підтримки складних та масштабованих додатків на ланцюжку.

Оптимістичне паралельне виконання

Однією з найбільш визначальних інновацій блокчейну Monad є його оптимістична паралельна модель виконання. Цей підхід переосмислює спосіб обробки транзакцій на рівні протоколу, вирішуючи ключове обмеження традиційних блокчейнів: послідовне виконання. На платформах, таких як Ethereum, транзакції виконуються одна за одною, що забезпечує послідовність стану, але суттєво обмежує пропускну здатність та загальну продуктивність.

Віртуальна машина Monad вводить паралелизм, вважаючи, що більшість транзакцій у блоку є незалежними і не взаємодіють з тими самими частинами стану блокчейну. На основі цієї припущення транзакції групуються і плануються для одночасного виконання на кількох обробних потоках. Це значно збільшує продуктивність виконання, особливо при високому мережевому навантаженні, ефективно використовуючи сучасні багатоядерні процесори ефективніше, ніж послідовні моделі.

Однак, паралельність вводить потенційні ризики конфлікту даних, наприклад, дві угоди намагаються змінити один і той же рахунок або контракт. Monad вирішує це, включаючи систему виявлення конфліктів та їх вирішення. Після того, як транзакції виконуються паралельно, система перевіряє на невідповідності. Якщо виявлено конфлікти, тільки змінені транзакції повторно виконуються або безпечно перевпорядковуються. Це забезпечує збереження коректності та детермінованих станів блокчейну, при цьому використовуючи переваги ефективності паралельної обробки.

Ця модель нагадує оптимістичний контроль конкурентності в сучасних базах даних, де припускається, що більшість операцій не конфліктують і обробляються одночасно. Тільки в крайніх випадках система втручається. Результатом є масштабований та адаптивний рівень виконання, який підходить для додатків з високим обсягом транзакцій та різноманітними завданнями.

Оптимістичне паралельне виконання особливо вигідне для використання в таких випадках, як DeFi, геймінг та ринки NFT, де багато користувачів взаємодіють одночасно, але рідко з тими самими даними. Monad може обробляти ці операції паралельно, зменшуючи затори та підвищуючи реагування децентралізованих додатків без потреби в підтримці шарів поза ланцюжком.

Ще однією ключовою перевагою є простота розробника. Екосистема Monad, сумісна з EVM, дозволяє виконувати розумні контракти, написані на Solidity, без необхідності ручного керування паралелізмом. Протокол обробляє логіку виконання за кулісами, зберігаючи досвід розробника, покращуючи при цьому мережеву продуктивність.

Асинхронне виконання

Доповнюючи свою паралельну модель виконання, Monad реалізує асинхронне виконання, архітектурну особливість, що відокремлює виконання транзакцій від процесу консенсусу. У традиційних блокчейнах консенсус і виконання тісно пов'язані - валідатори повинні виконати всі транзакції перед тим, як погодитися і закінчити блок. Це зв'язування вводить затримку та обмежує швидкість виробництва нових блоків.

Monad роз'єднує ці функції, фіналізуючи спочатку порядок транзакцій через консенсус, а потім виконуючи їх пізніше. Ця концепція дозволяє шару консенсусу працювати незалежно і безперервно, тоді як виконання відбувається паралельно на задньому плані. Це підвищує ефективність валідаторів та скорочує час блоку, оскільки валідатори вже не обмежені часом, необхідним для обчислення результатів кожної транзакції.

Система забезпечує детермінізм та безпеку, гарантуючи, що всі вузли виконують точно ті ж самі транзакції у тому ж узгодженому порядку, навіть якщо саме виконання відбувається у різні моменти. Це гарантує однорідність у мережі та запобігає розходженню в стані блокчейну.

Асинхронне виконання також доповнює оптимістичний паралелізм монади. Поки консенсус розвивається і нові блоки швидко завершуються, виконання відбувається одночасно по всіх потоках, вирішуючи конфлікти лише тоді, коли це необхідно. Ця комбінація паралелізму та асинхронності максимізує загальну конкурентність системи та використання ресурсів без порушення правильності.

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

Механізм консенсусу MonadBFT

У Monad досягається консенсус через MonadBFT, змінена адаптація протоколу HotStuff Byzantine Fault Tolerant (BFT). Цей механізм консенсусу оптимізований як для продуктивності, так і для безпеки, підтримуючи цілі Monad низької завершальності та високої пропускної здатності, залишаючись доступним для децентралізованих валідаторів.

HotStuff спочатку розроблявся для зменшення кількості комунікаційних раундів, необхідних для завершення блоку. MonadBFT побудований на цьому, дозволяючи однослотову остаточність, де блоки завершуються в один раунд узгодження без очікування декількох підтверджень. Це забезпечує миттєву остаточність транзакцій, покращуючи передбачуваність для додатків та зменшуючи ризик реорганізації ланцюжка.

MonadBFT використовує модель на основі лідера. На кожному раунді один валідатор пропонує блок, під час коли інші його підтверджують та голосують за нього. Якщо дві третини загального стейку валідатора підтверджують блок, він фіксується. Цей оптимізований процес мінімізує накладні витрати та прискорює виробництво блоків, особливо в умовах нормальної роботи.

Для забезпечення живості MonadBFT включає стратегії зміни лідера та тайм-аут. Якщо лідер не вдається запропонувати блок, наступний перевіряючий в лінії автоматично бере керівництво. Ця стійкість забезпечує продовження розвитку ланцюга навіть якщо деякі перевіряючі відключені або не реагують.

З точки зору безпеки MonadBFT дотримується типового порогу BFT, терплячи до однієї третини валідаторів, які ведуть себе зловмисно, не піддаваючи небезпеці. Як тільки блок фіналізований, його криптографічно запечатаний і не може бути розгорнутий без колюзії недобросовісних учасників, що контролюють більшість потужності валідатора.

Протокол тісно інтегрований з асинхронною моделлю виконання Monad. Оскільки блоки фіналізуються перед виконанням, система може продовжувати прогресувати без затримок, тоді як рівень виконання обробляє транзакції незалежно. Ця архітектура зменшує робоче навантаження валідатора і дозволяє системі підтримувати високу продуктивність без покладанняся на централізовані послуги послідовності або довірених посередників.

MonadDB

Ефективне виконання та згода ґрунтуються на високопродуктивній системі управління станом. У Monad цю роль виконує MonadDB, спеціалізований блокчейн для зберігання стану. MonadDB відповідає за зберігання всіх даних на ланцюжку, включаючи баланси рахунків, збереження контрактів та інші постійні змінні стану. Він розроблений для швидкої, одночасної роботи та повної сумісності з паралельним двигуном виконання Monad.

MonadDB використовує версійний, постійний ключ-значення для збереження декількох снапшотів стану одночасно. Це важливо для підтримки спекулятивного виконання, де кілька транзакцій обробляються паралельно і можуть бути відкриті або кориговані в залежності від конфліктів. Зберігаючи різні версії стану, MonadDB дозволяє двигуну виконання ізолювати та ефективно вирішувати конфлікти даних.

У своїй основі MonadDB використовує структуру даних Merkle Patricia Trie - криптографічно безпечне дерево, яке дозволяє швидку перевірку стану блокчейну. Ця структура trie забезпечує те, що будь-яка зміна у стані призводить до нового кореневого хешу, який може бути підтверджений всіма вузлами. Вона підтримує безпечну синхронізацію, легкі клієнти та підтвердження стану на основі доказів, які є фундаментальними для безпечного та масштабованого дизайну блокчейну.

Для обробки очікуваного обсягу транзакцій MonadDB спроектована для записів та читань з низькою затримкою. Вона включає кешування, захист від одночасного доступу та високошвидкісне дискове сховище для забезпечення швидкого отримання та модифікації записів стану. Ці оптимізації дозволяють рівню виконання працювати з високою пропускною здатністю без уповільнення через затримки доступу до даних.

З точки зору розробника MonadDB повністю абстрагований. Розробники смарт-контрактів взаємодіють з блокчейном через знайомі конструкції Solidity, не потрібно керувати механікою базового стану. MonadDB забезпечує, що стан оновлюється і зберігається точно, навіть під великим навантаженням або під час складного виконання контракту.

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.
Catálogo
Lección 3

Технічна архітектура Monad

Цей модуль надає глибокий технічний розбір архітектури Monad, описуючи, як протокол досягає високої пропускної здатності та низької затримки. Теми включають двигун паралельного виконання, асинхронну модель виконання, згоду MonadBFT та спеціальний рівень зберігання MonadDB, які всі призначені для підтримки складних та масштабованих додатків на ланцюжку.

Оптимістичне паралельне виконання

Однією з найбільш визначальних інновацій блокчейну Monad є його оптимістична паралельна модель виконання. Цей підхід переосмислює спосіб обробки транзакцій на рівні протоколу, вирішуючи ключове обмеження традиційних блокчейнів: послідовне виконання. На платформах, таких як Ethereum, транзакції виконуються одна за одною, що забезпечує послідовність стану, але суттєво обмежує пропускну здатність та загальну продуктивність.

Віртуальна машина Monad вводить паралелизм, вважаючи, що більшість транзакцій у блоку є незалежними і не взаємодіють з тими самими частинами стану блокчейну. На основі цієї припущення транзакції групуються і плануються для одночасного виконання на кількох обробних потоках. Це значно збільшує продуктивність виконання, особливо при високому мережевому навантаженні, ефективно використовуючи сучасні багатоядерні процесори ефективніше, ніж послідовні моделі.

Однак, паралельність вводить потенційні ризики конфлікту даних, наприклад, дві угоди намагаються змінити один і той же рахунок або контракт. Monad вирішує це, включаючи систему виявлення конфліктів та їх вирішення. Після того, як транзакції виконуються паралельно, система перевіряє на невідповідності. Якщо виявлено конфлікти, тільки змінені транзакції повторно виконуються або безпечно перевпорядковуються. Це забезпечує збереження коректності та детермінованих станів блокчейну, при цьому використовуючи переваги ефективності паралельної обробки.

Ця модель нагадує оптимістичний контроль конкурентності в сучасних базах даних, де припускається, що більшість операцій не конфліктують і обробляються одночасно. Тільки в крайніх випадках система втручається. Результатом є масштабований та адаптивний рівень виконання, який підходить для додатків з високим обсягом транзакцій та різноманітними завданнями.

Оптимістичне паралельне виконання особливо вигідне для використання в таких випадках, як DeFi, геймінг та ринки NFT, де багато користувачів взаємодіють одночасно, але рідко з тими самими даними. Monad може обробляти ці операції паралельно, зменшуючи затори та підвищуючи реагування децентралізованих додатків без потреби в підтримці шарів поза ланцюжком.

Ще однією ключовою перевагою є простота розробника. Екосистема Monad, сумісна з EVM, дозволяє виконувати розумні контракти, написані на Solidity, без необхідності ручного керування паралелізмом. Протокол обробляє логіку виконання за кулісами, зберігаючи досвід розробника, покращуючи при цьому мережеву продуктивність.

Асинхронне виконання

Доповнюючи свою паралельну модель виконання, Monad реалізує асинхронне виконання, архітектурну особливість, що відокремлює виконання транзакцій від процесу консенсусу. У традиційних блокчейнах консенсус і виконання тісно пов'язані - валідатори повинні виконати всі транзакції перед тим, як погодитися і закінчити блок. Це зв'язування вводить затримку та обмежує швидкість виробництва нових блоків.

Monad роз'єднує ці функції, фіналізуючи спочатку порядок транзакцій через консенсус, а потім виконуючи їх пізніше. Ця концепція дозволяє шару консенсусу працювати незалежно і безперервно, тоді як виконання відбувається паралельно на задньому плані. Це підвищує ефективність валідаторів та скорочує час блоку, оскільки валідатори вже не обмежені часом, необхідним для обчислення результатів кожної транзакції.

Система забезпечує детермінізм та безпеку, гарантуючи, що всі вузли виконують точно ті ж самі транзакції у тому ж узгодженому порядку, навіть якщо саме виконання відбувається у різні моменти. Це гарантує однорідність у мережі та запобігає розходженню в стані блокчейну.

Асинхронне виконання також доповнює оптимістичний паралелізм монади. Поки консенсус розвивається і нові блоки швидко завершуються, виконання відбувається одночасно по всіх потоках, вирішуючи конфлікти лише тоді, коли це необхідно. Ця комбінація паралелізму та асинхронності максимізує загальну конкурентність системи та використання ресурсів без порушення правильності.

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

Механізм консенсусу MonadBFT

У Monad досягається консенсус через MonadBFT, змінена адаптація протоколу HotStuff Byzantine Fault Tolerant (BFT). Цей механізм консенсусу оптимізований як для продуктивності, так і для безпеки, підтримуючи цілі Monad низької завершальності та високої пропускної здатності, залишаючись доступним для децентралізованих валідаторів.

HotStuff спочатку розроблявся для зменшення кількості комунікаційних раундів, необхідних для завершення блоку. MonadBFT побудований на цьому, дозволяючи однослотову остаточність, де блоки завершуються в один раунд узгодження без очікування декількох підтверджень. Це забезпечує миттєву остаточність транзакцій, покращуючи передбачуваність для додатків та зменшуючи ризик реорганізації ланцюжка.

MonadBFT використовує модель на основі лідера. На кожному раунді один валідатор пропонує блок, під час коли інші його підтверджують та голосують за нього. Якщо дві третини загального стейку валідатора підтверджують блок, він фіксується. Цей оптимізований процес мінімізує накладні витрати та прискорює виробництво блоків, особливо в умовах нормальної роботи.

Для забезпечення живості MonadBFT включає стратегії зміни лідера та тайм-аут. Якщо лідер не вдається запропонувати блок, наступний перевіряючий в лінії автоматично бере керівництво. Ця стійкість забезпечує продовження розвитку ланцюга навіть якщо деякі перевіряючі відключені або не реагують.

З точки зору безпеки MonadBFT дотримується типового порогу BFT, терплячи до однієї третини валідаторів, які ведуть себе зловмисно, не піддаваючи небезпеці. Як тільки блок фіналізований, його криптографічно запечатаний і не може бути розгорнутий без колюзії недобросовісних учасників, що контролюють більшість потужності валідатора.

Протокол тісно інтегрований з асинхронною моделлю виконання Monad. Оскільки блоки фіналізуються перед виконанням, система може продовжувати прогресувати без затримок, тоді як рівень виконання обробляє транзакції незалежно. Ця архітектура зменшує робоче навантаження валідатора і дозволяє системі підтримувати високу продуктивність без покладанняся на централізовані послуги послідовності або довірених посередників.

MonadDB

Ефективне виконання та згода ґрунтуються на високопродуктивній системі управління станом. У Monad цю роль виконує MonadDB, спеціалізований блокчейн для зберігання стану. MonadDB відповідає за зберігання всіх даних на ланцюжку, включаючи баланси рахунків, збереження контрактів та інші постійні змінні стану. Він розроблений для швидкої, одночасної роботи та повної сумісності з паралельним двигуном виконання Monad.

MonadDB використовує версійний, постійний ключ-значення для збереження декількох снапшотів стану одночасно. Це важливо для підтримки спекулятивного виконання, де кілька транзакцій обробляються паралельно і можуть бути відкриті або кориговані в залежності від конфліктів. Зберігаючи різні версії стану, MonadDB дозволяє двигуну виконання ізолювати та ефективно вирішувати конфлікти даних.

У своїй основі MonadDB використовує структуру даних Merkle Patricia Trie - криптографічно безпечне дерево, яке дозволяє швидку перевірку стану блокчейну. Ця структура trie забезпечує те, що будь-яка зміна у стані призводить до нового кореневого хешу, який може бути підтверджений всіма вузлами. Вона підтримує безпечну синхронізацію, легкі клієнти та підтвердження стану на основі доказів, які є фундаментальними для безпечного та масштабованого дизайну блокчейну.

Для обробки очікуваного обсягу транзакцій MonadDB спроектована для записів та читань з низькою затримкою. Вона включає кешування, захист від одночасного доступу та високошвидкісне дискове сховище для забезпечення швидкого отримання та модифікації записів стану. Ці оптимізації дозволяють рівню виконання працювати з високою пропускною здатністю без уповільнення через затримки доступу до даних.

З точки зору розробника MonadDB повністю абстрагований. Розробники смарт-контрактів взаємодіють з блокчейном через знайомі конструкції Solidity, не потрібно керувати механікою базового стану. MonadDB забезпечує, що стан оновлюється і зберігається точно, навіть під великим навантаженням або під час складного виконання контракту.

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.