Від концепції до впровадження: Загальний посібник з остаточності блокчейну

РозширенийOct 15, 2024
У цій статті обговорюється концепція остаточності в блокчейні, аналізуючи, як різні системи блокчейн досягають остаточності, разом з базовими принципами та викликами, пов'язаними з цим.
Від концепції до впровадження: Загальний посібник з остаточності блокчейну

АНАЛОГІЯ В РЕАЛЬНОМУ ЖИТТІ

Як завжди з моїми статтями "WTF is...", я люблю почати з реального аналогу, щоб люди могли отримати суть і відразу ж забити, якщо їм байдуже до деталей.

Для цієї теми ми будемо використовувати затвердіння бетону з часом:

Це загальний рівень того, що означає «остаточність» в контексті блокчейнів. Так само, як бетон, з часом, починаючи з моменту заливання (початкове підтвердження) і закінчуючи встановленням (кілька підтверджень), легкість, з якою початковий блок більше не може вважатися „правильним“, стає все складніше, поки він повністю не затвердіється (остаточний). Як тільки це станеться, це практично неможливо.

У короткому вигляді просто запам'ятайте послідовність кроків:

Подано -> Підтверджено -> Завершено

Якщо цього достатньо для вас, щоб вважати цей випадок закритим, я запрошую вас поставити лайк статті і продовжити свій день. Якщо ви хочете поглибитися в питанні як, що і чому закінчення (у контексті Ethereum), продовжуйте, мій друг.

FINALITY NERD-OUT

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

Спочатку, давайте завершимо нашу базу знань визначеннями.

ГЛОСАРІЙ

Слот (час блоку): Ймовірно, ви розумієте альтернативну назву цього: час блоку. Слот, або час блоку, - це час, який надається системі для створення нового блоку транзакцій, який буде додано до поточного канонічного ланцюжка.

Приклад слотів / часу блоку:

Ethereum - 12 секунд

База - 2 секунди

  • Солана - 0,4 секунди
  • Підтвердження: Це стається, коли ваша транзакція офіційно додається до блоку, що був доданий до поточного ланцюжка. Тепер вона «підтверджена» як частина реєстру та при додаванні блоків до вашої транзакції вона збільшує кількість підтверджень.
  • Епоха: Рядок з 32 слотів. Це створено як вторинну структуру всередині блокчейну, що використовується для делегування ролей та обов'язків. Слоти використовуються для конструювання блоків, тоді як Епохи використовуються для поширення даних, розподілу винагород, вибору валідатора та інше, інше.
  • Блок-перевірка: Це перший блок, створений протягом певної Епохи, і використовується як точка посилання для зміцнення історії ланцюга.

Фінальність: Точка, коли операцію вважають незворотно доданою до рахунку певного ланцюжка. Однак цей термін не однозначно використовується в усіх ланцюжках з технічної точки зору, тому не варто припускати, що він застосовується повсюдно в усіх контекстах. У екосистемі Ethereum це використовується, коли виконуються нижченаведені умови:

Ethereum - Коли минуло 2 епохи (~13 хв)

Оптимістичний L2 - Коли вікно фрода минуло (~7д)

  • ZK L2 - За рахунок гарантій, що забезпечуються доказами правильності, існують 2 обговорювані моменти остаточності: локальна (коли доказ генерується на L2 [~ кілька хвилин]) та глобальна остаточність (коли доказ публікується на Ethereum та фіналізується там [~13 хвилин])
  • Реорганізація блоку ("Reorg"): це коли блок(и), які колись були підтверджені як частина реєстру, з тих чи інших причин більше не вважаються дійсними і сформувався новий ланцюжок. Це, як правило, супроводжується штрафними санкціями

і ось спроба візуалізувати всі ці терміни на єдиному зображенні, щоб вони трохи краще засвоїлися:

ЯКА КІНЦЕВІСТЬ?

Так, тепер, коли у нас є частини, використані для визначення остаточності, як вони складаються разом? Які є правила?

Для Ethereum

  1. Голосування валідаторів - Кожен епоха (вікно 32 блоків) валідатори будуть голосувати за контрольний блок поточної та попередньої епохи, поки певні контрольні блоки не досягнуть 2/3 загальної кількості стейкінгу $ETH
  2. Обґрунтовані контрольні точки - Як тільки блок контрольної точки досягає цього порогу 2/3, його вважають "обґрунтованим"
  3. Посилання на супербільшість - Якщо два наступних блоки контрольної точки a) обґрунтовані та b) пов'язані один з одним, блоки, включені в епоху перед теперішніми, обґрунтованими епохами, стають остаточними. Їх більше не можна вплинути за допомогою простого перегляду.

Візуалізовано

Для L2s

Ну, L2s будуються на Ethereum, тому вони в основному однакові, чи не так?

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

Ці шари розпадаються на два типи остаточності:

  1. Локальна остаточність - це остаточність в межах самої L2 і можлива лише для L2, які використовують докази правильності (так звані ZK Rollups). Це тому, що докази правильності підтримуються математикою, а виробництво самого доказу означає його правильність. Через це, як тільки ZK L2 виробляє свій доказ, стан L2 можна вважати остаточним, не чекаючи, поки доказ буде опубліковано та врегульовано в Ethereum. Необхідно зауважити, що це все ще пов'язано з ризиками та довір'ям до припущень, але це можна зробити з певною впевненістю в залежності від вашої ризикозної толерантності.
  2. Глобальна остаточність - стан, який досягається після того, як L2 підтвердив свій локальний стан, виробив доказ (шахрайство або валідність), опублікував цей доказ на Ethereum і Ethereum також завершила блок, де був опублікований доказ. Навіть за таких умов для оптимістичного підмножини L2s існує можливість повернення, поки не мине період виклику. Це компроміс, зроблений для зменшення обчислень, необхідних для створення доказу.

Таким чином, L2 можуть мати рівень локалізованої завершеності, якщо вони належать до певного типу, або доведеться зачекати, поки Ethereum завершить опубліковане доведення про дійсність (ZK), або пройде вікно викликів для доведення обману (Оптимістичні ролапси).

Для Bitcoin / Proof of Work

Це насправді досить просто - в специфічній реалізації PoW у Bitcoin немає остаточності. Для цього той, хто виробляє найважчий ланцюжок (читай: виробляє достатньо блоків, щоб стати «найдовшим» ланцюжком), стає канонічним рахунковим. Це означає, що, хоча з практичних міркувань це малоймовірно з багатьох причин, хтось може виробити достатньо хешу, щоб переписати останній день, тиждень, рік історії Bitcoin.

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

Візуалізовано:

ЧОМУ ОСТАННІСТЬ?

Таким чином, ми знаємо, як ми приходимо до остаточності в найбільшому ланцюжку Proof of Stake в криптосистемі, але це, здається, вимагає багато роботи - чому ми це взагалі робимо?

Ну, це супроводжується деякими перевагами:

  1. Економічна безпека - мати точку, на яку система (і ми) може звернутися і з високою впевненістю сказати, що вона не зміниться, надає учасникам екосистеми впевненість діяти на основі «що є правдою». Думайте про великі перекази та позики. Якщо ви впевнені, що систему не можна змінити без надзвичайного, поза протоколом втручання, це дає вам впевненість діяти на основі цієї правди. Тому мости зазвичай чекають X кількості підтверджень або повної остаточності перед випуском коштів на вторинних ланцюгах. Що мене приводить до...
  2. Швидке заселення - Оскільки існує точка, коли речі стають офіційними і постійними, це означає, що сторони, що працюють в екосистемі, мають максимальний час розрахунків, на який вони в кінцевому рахунку повинні чекати, тоді як в системі PoW ця точка ніколи не настає і є чисто особистим рішенням.
  3. Зменшені вектори атак - Ми згадували кілька можливостей MEV, які активуються в ланцюгах PoW, але в кінцевому рахунку це лише вирішує проблему «Нічого на ставці», коли будь-хто, хто діє зловмисно проти системи, також має на що втратити. Якщо ви є валідатором і намагаєтеся змінити речі, які були узгоджені, вам доведеться порушити правила протоколу, і ви будете піддані зменшенню вашої ставки.

ВИСНОВОК

Чому я взагалі порушив остаточність? Не зовсім зрозумів - просто чув, як це кидали останнім часом, і зрозумів, що це часто використовується, але не глибоко розуміється механізм блокчейнів.

Сподіваюся, вам сподобалося це, і пам'ятайте, це просто ваші блоки затвердішують, як бетон в системі, і в певний момент вони стають надійними.

Disclaimer:

  1. Цю статтю надруковано з [ХЛІБ], Оригінальна назва - [WTF is Finality?], Усі авторські права належать оригінальному автору [@0xBreadguy]. Якщо є зауваження до цього перевидання, будь ласка, зв'яжіться з Gate Learnкоманда, і вони швидко займуться цим.
  2. Відмова відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є жодною інвестиційною порадою.
  3. Переклади статей на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, копіювання, поширення або плагіат перекладених статей заборонено.

Від концепції до впровадження: Загальний посібник з остаточності блокчейну

РозширенийOct 15, 2024
У цій статті обговорюється концепція остаточності в блокчейні, аналізуючи, як різні системи блокчейн досягають остаточності, разом з базовими принципами та викликами, пов'язаними з цим.
Від концепції до впровадження: Загальний посібник з остаточності блокчейну

АНАЛОГІЯ В РЕАЛЬНОМУ ЖИТТІ

Як завжди з моїми статтями "WTF is...", я люблю почати з реального аналогу, щоб люди могли отримати суть і відразу ж забити, якщо їм байдуже до деталей.

Для цієї теми ми будемо використовувати затвердіння бетону з часом:

Це загальний рівень того, що означає «остаточність» в контексті блокчейнів. Так само, як бетон, з часом, починаючи з моменту заливання (початкове підтвердження) і закінчуючи встановленням (кілька підтверджень), легкість, з якою початковий блок більше не може вважатися „правильним“, стає все складніше, поки він повністю не затвердіється (остаточний). Як тільки це станеться, це практично неможливо.

У короткому вигляді просто запам'ятайте послідовність кроків:

Подано -> Підтверджено -> Завершено

Якщо цього достатньо для вас, щоб вважати цей випадок закритим, я запрошую вас поставити лайк статті і продовжити свій день. Якщо ви хочете поглибитися в питанні як, що і чому закінчення (у контексті Ethereum), продовжуйте, мій друг.

FINALITY NERD-OUT

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

Спочатку, давайте завершимо нашу базу знань визначеннями.

ГЛОСАРІЙ

Слот (час блоку): Ймовірно, ви розумієте альтернативну назву цього: час блоку. Слот, або час блоку, - це час, який надається системі для створення нового блоку транзакцій, який буде додано до поточного канонічного ланцюжка.

Приклад слотів / часу блоку:

Ethereum - 12 секунд

База - 2 секунди

  • Солана - 0,4 секунди
  • Підтвердження: Це стається, коли ваша транзакція офіційно додається до блоку, що був доданий до поточного ланцюжка. Тепер вона «підтверджена» як частина реєстру та при додаванні блоків до вашої транзакції вона збільшує кількість підтверджень.
  • Епоха: Рядок з 32 слотів. Це створено як вторинну структуру всередині блокчейну, що використовується для делегування ролей та обов'язків. Слоти використовуються для конструювання блоків, тоді як Епохи використовуються для поширення даних, розподілу винагород, вибору валідатора та інше, інше.
  • Блок-перевірка: Це перший блок, створений протягом певної Епохи, і використовується як точка посилання для зміцнення історії ланцюга.

Фінальність: Точка, коли операцію вважають незворотно доданою до рахунку певного ланцюжка. Однак цей термін не однозначно використовується в усіх ланцюжках з технічної точки зору, тому не варто припускати, що він застосовується повсюдно в усіх контекстах. У екосистемі Ethereum це використовується, коли виконуються нижченаведені умови:

Ethereum - Коли минуло 2 епохи (~13 хв)

Оптимістичний L2 - Коли вікно фрода минуло (~7д)

  • ZK L2 - За рахунок гарантій, що забезпечуються доказами правильності, існують 2 обговорювані моменти остаточності: локальна (коли доказ генерується на L2 [~ кілька хвилин]) та глобальна остаточність (коли доказ публікується на Ethereum та фіналізується там [~13 хвилин])
  • Реорганізація блоку ("Reorg"): це коли блок(и), які колись були підтверджені як частина реєстру, з тих чи інших причин більше не вважаються дійсними і сформувався новий ланцюжок. Це, як правило, супроводжується штрафними санкціями

і ось спроба візуалізувати всі ці терміни на єдиному зображенні, щоб вони трохи краще засвоїлися:

ЯКА КІНЦЕВІСТЬ?

Так, тепер, коли у нас є частини, використані для визначення остаточності, як вони складаються разом? Які є правила?

Для Ethereum

  1. Голосування валідаторів - Кожен епоха (вікно 32 блоків) валідатори будуть голосувати за контрольний блок поточної та попередньої епохи, поки певні контрольні блоки не досягнуть 2/3 загальної кількості стейкінгу $ETH
  2. Обґрунтовані контрольні точки - Як тільки блок контрольної точки досягає цього порогу 2/3, його вважають "обґрунтованим"
  3. Посилання на супербільшість - Якщо два наступних блоки контрольної точки a) обґрунтовані та b) пов'язані один з одним, блоки, включені в епоху перед теперішніми, обґрунтованими епохами, стають остаточними. Їх більше не можна вплинути за допомогою простого перегляду.

Візуалізовано

Для L2s

Ну, L2s будуються на Ethereum, тому вони в основному однакові, чи не так?

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

Ці шари розпадаються на два типи остаточності:

  1. Локальна остаточність - це остаточність в межах самої L2 і можлива лише для L2, які використовують докази правильності (так звані ZK Rollups). Це тому, що докази правильності підтримуються математикою, а виробництво самого доказу означає його правильність. Через це, як тільки ZK L2 виробляє свій доказ, стан L2 можна вважати остаточним, не чекаючи, поки доказ буде опубліковано та врегульовано в Ethereum. Необхідно зауважити, що це все ще пов'язано з ризиками та довір'ям до припущень, але це можна зробити з певною впевненістю в залежності від вашої ризикозної толерантності.
  2. Глобальна остаточність - стан, який досягається після того, як L2 підтвердив свій локальний стан, виробив доказ (шахрайство або валідність), опублікував цей доказ на Ethereum і Ethereum також завершила блок, де був опублікований доказ. Навіть за таких умов для оптимістичного підмножини L2s існує можливість повернення, поки не мине період виклику. Це компроміс, зроблений для зменшення обчислень, необхідних для створення доказу.

Таким чином, L2 можуть мати рівень локалізованої завершеності, якщо вони належать до певного типу, або доведеться зачекати, поки Ethereum завершить опубліковане доведення про дійсність (ZK), або пройде вікно викликів для доведення обману (Оптимістичні ролапси).

Для Bitcoin / Proof of Work

Це насправді досить просто - в специфічній реалізації PoW у Bitcoin немає остаточності. Для цього той, хто виробляє найважчий ланцюжок (читай: виробляє достатньо блоків, щоб стати «найдовшим» ланцюжком), стає канонічним рахунковим. Це означає, що, хоча з практичних міркувань це малоймовірно з багатьох причин, хтось може виробити достатньо хешу, щоб переписати останній день, тиждень, рік історії Bitcoin.

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

Візуалізовано:

ЧОМУ ОСТАННІСТЬ?

Таким чином, ми знаємо, як ми приходимо до остаточності в найбільшому ланцюжку Proof of Stake в криптосистемі, але це, здається, вимагає багато роботи - чому ми це взагалі робимо?

Ну, це супроводжується деякими перевагами:

  1. Економічна безпека - мати точку, на яку система (і ми) може звернутися і з високою впевненістю сказати, що вона не зміниться, надає учасникам екосистеми впевненість діяти на основі «що є правдою». Думайте про великі перекази та позики. Якщо ви впевнені, що систему не можна змінити без надзвичайного, поза протоколом втручання, це дає вам впевненість діяти на основі цієї правди. Тому мости зазвичай чекають X кількості підтверджень або повної остаточності перед випуском коштів на вторинних ланцюгах. Що мене приводить до...
  2. Швидке заселення - Оскільки існує точка, коли речі стають офіційними і постійними, це означає, що сторони, що працюють в екосистемі, мають максимальний час розрахунків, на який вони в кінцевому рахунку повинні чекати, тоді як в системі PoW ця точка ніколи не настає і є чисто особистим рішенням.
  3. Зменшені вектори атак - Ми згадували кілька можливостей MEV, які активуються в ланцюгах PoW, але в кінцевому рахунку це лише вирішує проблему «Нічого на ставці», коли будь-хто, хто діє зловмисно проти системи, також має на що втратити. Якщо ви є валідатором і намагаєтеся змінити речі, які були узгоджені, вам доведеться порушити правила протоколу, і ви будете піддані зменшенню вашої ставки.

ВИСНОВОК

Чому я взагалі порушив остаточність? Не зовсім зрозумів - просто чув, як це кидали останнім часом, і зрозумів, що це часто використовується, але не глибоко розуміється механізм блокчейнів.

Сподіваюся, вам сподобалося це, і пам'ятайте, це просто ваші блоки затвердішують, як бетон в системі, і в певний момент вони стають надійними.

Disclaimer:

  1. Цю статтю надруковано з [ХЛІБ], Оригінальна назва - [WTF is Finality?], Усі авторські права належать оригінальному автору [@0xBreadguy]. Якщо є зауваження до цього перевидання, будь ласка, зв'яжіться з Gate Learnкоманда, і вони швидко займуться цим.
  2. Відмова відповідальності: Погляди та думки, висловлені в цій статті, належать виключно автору і не є жодною інвестиційною порадою.
  3. Переклади статей на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, копіювання, поширення або плагіат перекладених статей заборонено.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!