Посібник біткойнера з аналізу даних PlatoBlockchain Proof-Of-Stake. Вертикальний пошук. Ai.

Посібник біткойнера щодо доказу ставки

Це думка редакції Скотт Салліван.

Зазвичай біткойнери не надто дбають про те, що відбувається в Shitcoin-land, але тепер, коли Ethereum об’єднався з доказ (PoS), у Твіттері біткойн піднявся неабиякий галас. Звичайно, сама мережа Bitcoin залишиться незмінною, але я вважаю, що це «оновлення» все ж варто звернути на нього певну увагу. Тепер, коли Ethereum очистився від «брудних» і «марнотратних» зовнішніх ефектів, пов’язаних з підтвердженням роботи (PoW), ми можемо очікувати, що рукавички знімуться у наративній війні, і я думаю, що біткойнери повинні бути готові дати відповідь. .

Дізнатися, як працює PoS, — це дійсно хороший спосіб засвоїти відмінності та компроміси між PoW і PoS. Незважаючи на те, що раніше я бачив усі аргументи на високому рівні проти PoS — що PoS є більш дозволеним, централізованим і олігархічним — я визнаю, що, не вдаючись у деталі, усе це здавалося наче м’яким. Фактично занурюючись у алгоритм PoS, ми починаємо бачити, як усі ці властивості природним чином випливають із початкових принципів. Отже, якщо вам цікаво, як працює алгоритм PoS і чому він призводить до таких властивостей, тоді читайте далі!

Вирішення проблеми подвійних витрат

Почнемо з короткого підсумку проблеми, яку ми намагаємося вирішити. Припустімо, що у мережі криптовалют є велика група учасників, які намагаються вести децентралізовану книгу. Ось проблема: як можна додавати нові транзакції в облікову книгу кожного, щоб усі погодилися з тим, які нові транзакції є «правильними»? PoW вирішує цю проблему досить елегантно: транзакції згруповані разом у блоки, у результаті чого кожен блок вимагає великої кількості обчислювальної роботи. Обсяг необхідної роботи може змінюватися вгору або вниз, щоб блоки створювалися в середньому кожні десять хвилин, даючи кожному новому блоку достатньо часу для поширення в мережі до створення наступного. Будь-яка неоднозначність вирішується шляхом вибору ланцюжка, який потребує найбільшої роботи, а подвійне витрачання запобігає завдяки тому, що потрібно принаймні 51% глобальної хеш-потужності для блоку подвійного витрачання, щоб наздогнати.

Але припустімо, що тепер ми хочемо відкинути ключову ідею Сатоші Накамото, яка зробила все це можливим. Зрештою, ці надокучливі ASIC гучні та дратують, і вони споживають більше енергії, ніж усі приватні літаки Джорджа Сороса, Білла Гейтса та Гілларі Клінтон разом узяті. Чи є спосіб, яким ми можемо однозначно домовитися про те, які транзакції є правдивими, просто обговоривши це?

Доказ частки Ethereum пропонує вирішити цю проблему за допомогою двох ключових інгредієнтів. Перший полягає в створенні спеціальних «блоків контрольних точок» час від часу, мета яких полягає в тому, щоб гарантувати кожному в мережі «істинність» системи в різні моменти часу. Для створення контрольно-пропускного пункту потрібна більшість у дві третини голосів, тому є певна впевненість, що більшість валідаторів погодилися з тим, якою насправді була правда на той момент. Друга складова полягає в покаранні користувачів за додавання неоднозначності в мережу, процес, відомий як «різання». Наприклад, якби валідатор створив форк або проголосував за старіший бічний ланцюг (подібно до атаки 51%), його ставку було б скорочено. Валідатори також можуть бути скорочені за бездіяльність, але не так сильно.

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

Це сильно контрастує з біткойнами та proof-of-work, які є позитивною (на основі винагороди) системою стимулювання. У біткойнах майнери можуть спробувати порушити правила — неправильно відформатовані блоки, недійсні транзакції тощо — але ці блоки просто ігноруватимуться повними вузлами. Найгірший сценарій – це трохи витраченої енергії. Майнери також можуть вільно будувати на старих блоках, але без 51% хеш-потужності ці ланцюжки ніколи не наздоженуть, знову ж таки просто витрачаючи енергію. Будь-який майнер, який бере участь у цих діях, навмисно чи ні, не повинен хвилюватися про втрату своїх накопичених біткойнів або майнінгових машин, але вони не отримають нових винагород. Замість того, щоб жити в страху, біткойн-майнери можуть помилитися, вдаючись до дій і ризику.

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

(Source)

До речі, за словами співзасновника мережі Ethereum Віталіка Бутеріна, життя в умовах негативної системи стимулів є однією з, кхм, «переваг» proof-of-stake. FAQ:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Отже, як слішінг насправді працює на технічному рівні? Чи не потрібно було б спочатку створити список усіх валідаторів, щоб спочатку було щось скоротити? Відповідь - так. Щоб стати валідатором в Ethereum, потрібно спочатку перемістити ETH на спеціальну адресу «стійки». Цей список потрібен не тільки для розрізання, а й для голосування, оскільки для блокування блокпостів потрібна більшість у дві третини голосів.

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

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

Перший крок до того, як стати валідатором, — це внести трохи ETH на спеціальну адресу для розміщення ставок. Скільки ETH? Мінімальна необхідна сума становить 32 ETH, або близько 50,000 9 доларів на момент написання цієї статті. Для контексту, пристойна установка для майнінгу біткойнів зазвичай коштує тисячі доларів, а домашній майнер може почати з одного SXNUMX за кілька сотень доларів. Чесно кажучи, висока плата за вступ ETH має технічне обґрунтування, оскільки вища ставка означає менше валідаторів, що зменшує пропускну здатність.

Отже, комісія за депозит висока, але принаймні будь-хто, хто володіє 32 ETH, може приєднатися або вийти в будь-який час, чи не так? Не зовсім. Є ризики для безпеки якби великі коаліції валідаторів входили або виходили одночасно. Наприклад, якщо більшість учасників мережі покинула мережу одразу, тоді вони могли б подвоїти витратити завершений блок, відтворивши форк, у якому вони ніколи не залишали, без скорочення в жодному з ланцюжків. Щоб зменшити цей ризик, рампи ввімкнення та виходу мають вбудоване обмеження пропускної здатності. Наразі це обмежувати встановлюється максимальне значення (4,|V|/65536) валідаторів на епоху (кожні 6.4 хвилини) і однакове як для входу, так і для виходу. Це приблизно означає один повний набір валідаторів кожні десять місяців.

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

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

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

Теоретично валідатори можуть просто цензурувати кожну транзакцію, яка додає новий валідатор; однак на практиці я вважаю, що такий різкий підхід був би малоймовірним. Це було б дуже помітно та миттєво знищило б імідж «децентралізації» Ethereum, потенційно обрушивши ціну. Я думаю, що замість цього буде використано більш тонкий підхід. Наприклад, правила можуть повільно змінюватися з часом, ускладнюючи стати валідатором, пропонуючи виправдання, такі як «безпека» або «ефективність». Будь-яка політика, яка збагачує існуючі валідатори за рахунок нових валідаторів, призведе до фінансових попутних вітерів, незалежно від того, висловлюються вони вголос чи ні. Ми починаємо розуміти, чому PoS має тенденцію до олігархії.

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Огляд алгоритму Каспера

Тепер, коли ми знаємо стратегію високого рівня, що лежить в основі PoS, як насправді працює алгоритм? Основні ідеї контрольних точок і слешингу були викладені в алгоритмі під назвою Каспер, тому ми почнемо з цього. Сам Casper насправді нічого не вказує про те, як створювати блоки, а скоріше надає структуру для того, як накласти контрольну точку/стратегію розрізання на якесь уже існуюче дерево блокчейну.

По-перше, деяка довільна константа (C) вибирається як число «відстань між контрольними точками», яке визначає, скільки блоків відбувається між контрольними точками; наприклад, якщо C=100, то контрольні точки будуть у блоках 0, 100, 200 і так далі. Потім усі вузли голосують за те, який блок контрольної точки має бути наступною «вирівняною» контрольною точкою. Замість того, щоб голосувати за окремі блоки окремо, валідатори фактично голосують за (s,t) пари контрольних точок, які зв’язують деякі попередньо обґрунтовані джерела контрольних точок «s» з деякими новими цільовими контрольними точками «t». Після того, як посилання контрольної точки (s,t) отримує більшість у дві третини голосів, тоді «t» стає новою обґрунтованою контрольною точкою. На діаграмі нижче показано приклад дерева контрольних точок:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

На цій діаграмі функція h(b) стосується «висоти контрольної точки», наприклад, блоку, кратного 100. Можливо, ви помітили, що не кожен сотий блок обов’язково виправданий, що може статися, якщо голосування не вдалось у певний момент. висота. Наприклад, припустимо, що на висоті 200 дві окремі контрольно-пропускні точки отримали по 50% голосів. Оскільки подвійне голосування є порушенням, яке можна скоротити, система «застрягне», якщо деякі валідатори добровільно не скоротять свою частку, щоб отримати дві третини голосів. Рішення було б для всіх «пропустити» контрольну точку 200 і «спробувати ще раз» у блоці 300.

Те, що контрольна точка виправдана, не означає, що вона завершена. Для того, щоб контрольна точка вважалася завершеною, за нею має бути відразу інша вирівняна контрольна точка на наступній можливій висоті. Наприклад, якщо всі контрольні точки 0, 200, 400, 500 і 700 були вирівняні та пов’язані між собою, лише контрольна точка 400 вважатиметься «завершеною», оскільки це єдина, за якою безпосередньо слідує інша вирівняна контрольна точка.

Оскільки термінологія дуже точна, давайте підсумуємо наші три категорії. «Контрольною точкою» є будь-який блок, який знаходиться на висоті C*n, отже, якщо C=100, кожен блок висотою 0, 100, 200, 300 і так далі буде контрольною точкою. Навіть якщо на висоті 200 було створено декілька блоків, обидва вони були б «контрольними точками». Тоді контрольна точка вважається «виправданою», якщо це або кореневий блок на висоті 0, або якщо дві третини валідаторів проголосували за створення зв’язку між деякою попередньо обґрунтованою контрольною точкою та поточною контрольною точкою. Вирівняна контрольна точка тоді «фіналізується», якщо вона з’єднується з іншою вирівняною контрольною точкою на наступній можливій висоті. Не кожна контрольна точка обов’язково стає виправданою, і не кожна обґрунтована контрольна точка обов’язково стає завершеною, навіть у фінальному ланцюжку.

Правила розрізання Каспера

Правила розрізання в Casper розроблені таким чином, що неможливо, щоб дві завершені контрольні точки існували в двох окремих розгалуженнях, якщо принаймні одна третина валідаторів не порушила правила розрізання.

Іншими словами, лише завершені контрольні точки слід зараховувати як однозначні блоки «істинності». Можливо навіть, що дві виправдані контрольні точки з’являться по обидва боки розгалуження, але не дві завершені контрольні точки. Також немає жодних гарантій щодо того, коли або де відбудеться наступна завершена контрольна точка, просто якщо трапиться розрив ланцюга, то вам слід сидіти склавши руки та чекати, доки десь з’явиться завершений блок, і коли це станеться, ви знаєте, що це “ правильний» ланцюжок.

У Casper є два правила розрізання, які забезпечують виконання цієї властивості:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Перше правило забороняє будь-кому подвійне голосування за контрольні точки з однаковою цільовою висотою, отже, якщо валідатор проголосував за два різні блоки контрольних точок із цільовою висотою 200, це буде порушенням, яке можна скоротити. Мета цього правила полягає в тому, щоб запобігти розщепленню ланцюга на дві різні виправдані контрольні точки з однаковою висотою, оскільки для цього знадобиться 2/3 + 2/3 = 4/3 від загальної кількості голосів валідатора, тобто щонайменше одна третина валідаторів порушили правила скорочення. Однак, як ми бачили раніше, виправдані контрольні точки можуть «пропускати» певну висоту блоку. Що заважає ланцюгу розділитися на різні висоти цілі? Наприклад, чи не міг контрольно-пропускний пункт 200 розгалужуватися на контрольно-пропускні пункти 300 і 400, щоб нікого не порізати?

Ось тут і з’являється друге правило, яке, по суті, не дозволяє валідаторам «переміщувати» голоси в інші голоси. Наприклад, якщо валідатор проголосував як за 300→500, так і за 200→700, це буде порушення, яке підлягає скороченню. У випадку поділу ланцюга, як тільки одна гілка бачить завершену контрольну точку, іншій гілці стає неможливо побачити виправдану контрольну точку згодом, якщо принаймні одна третина валідаторів не порушила правило №2.

Щоб зрозуміти чому, припустімо, що блокчейн розгалужується на виправдані контрольні точки 500→800 і 500→900, а потім у якийсь момент перший ланцюжок побачить завершену контрольну точку з посиланням 1700→1800. Оскільки і 1700, і 1800 можуть бути виправдані лише на розвилці №1 (припускаючи, що ніхто не порушив перше правило порізу), єдиний спосіб, яким розвилка №2 могла побачити виправдану контрольну точку після 1800, це якщо існував певний проголосований зв’язок між висотами H1800. Але оскільки це голосування «затисне» посилання 1700→1800 і вимагатиме двох третин голосів, а 1700→1800 вже пройдено двома третинами голосів, тоді принаймні одна третина валідаторів повинна буде порушити правило # 2. На папері Casper є гарна діаграма, яка демонструє цю властивість:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

І все, просто дотримуйтеся правил Каспера, і все добре!

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Здається досить простим, чи не так? Я впевнений, що PoS буде використовувати слешінг лише як крайній засіб для підтримки консенсусу, а не як здирницький механізм, щоб натиснути на валідаторів, щоб вони поводилися певним чином… так?

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Це підводить нас до нашого третього принципу PoS: немає правил. «Правила» — це все, що кажуть інші.

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Одного разу ваш вузол технічно точно дотримуватиметься всіх наказів Каспера, а наступного дня ваші заощадження можуть бути скорочені, оскільки ви робите щось, що не подобається іншим. Один раз схвалили трансакцію «червоної команди»? Завтра «синя» більшість може вас урізати. Або, можливо, ви зробили навпаки і пропустили забагато транзакцій «червоної команди»? Завтра «червона» більшість може врізати вас за цензуру. Можливість скорочення виходить далеко за межі обмеженої сфери цензури OFAC (Управління з контролю за іноземними активами). PoS схожий на безперервне мексиканське протистояння, де прихована загроза розбиття постійно присутня.

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

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

Котра година?

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

Перше, що слід зрозуміти про Гаспера, це те, що сам час є основною незалежною змінною. Реальний час поділено на дванадцятисекундні одиниці, які називаються «слотами», де кожен слот містить щонайбільше один блок. Потім ці слоти утворюють більші групи, які називаються «епохами», де кожна епоха відноситься до однієї контрольної точки. Кожна епоха містить 32 слоти, що становить 6.4 хвилини.

Варто зазначити, що ця парадигма перевертає причинно-наслідковий зв’язок між часом і виробництвом блоків у порівнянні з PoW. У PoW блоки створюються тому, що знайдено дійсний хеш, а не тому, що минуло достатньо часу. Але в Gasper блоки створюються, тому що минуло достатньо реального часу, щоб дістатися до наступного слота. Я можу лише уявити, з якими хитрими помилками синхронізації може зіткнутися така система, особливо коли на одному комп’ютері працює не лише одна програма, а десятки тисяч комп’ютерів, які намагаються працювати синхронно по всьому світу. Сподіваємось, розробники Ethereum знайомі з неправда, в яку вірять програмісти про час.

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

Це підводить нас до нашого четвертого принципу PoS, який полягає в тому, що PoS покладається на суб’єктивну правду.

Просто немає об’єктивного способу вибору між двома конкуруючими блокчейнами, і будь-які нові вузли в мережі повинні зрештою довіряти якомусь існуючому джерелу правди, щоб вирішити будь-яку двозначність. Це суттєво контрастує з біткойнами, де «справжній» ланцюжок завжди має найбільше роботи. Немає значення, якщо тисячі вузлів повідомляють вам ланцюг X, якщо один вузол транслює ланцюжок Y і містить більше роботи, тоді Y є правильним блокчейном. Заголовок блоку може довести власну цінність, повністю позбавляючи потреби в довірі.

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Покладаючись на суб’єктивну правду, PoS знову вводить потребу в довірі. Тепер я визнаю, що я, мабуть, трохи упереджений, тож якщо ви хочете прочитати іншу сторону, Бутерін написав есе, у якому виклав свої погляди тут. Я визнаю, що на практиці поділ ланцюга не виглядає надто ймовірним, враховуючи правила Casper, але, незважаючи на це, я відчуваю деякий спокій, знаючи, що це навіть неможливо в біткойнах.

Виробництво блоків і голосування

Тепер, коли ми знайомі зі слотами та епохами, як створюються та голосуються окремі блоки? На початку кожної епохи повний набір валідаторів «випадковим чином» розбивається на 32 групи, по одній для кожного слота. Під час кожного слоту один валідатор «випадковим чином» вибирається виробником блоку, тоді як інші обираються голосуючими (або «аттестаторами»). Я беру «випадковим чином» у лапки, тому що процес має бути детермінованим, оскільки всі мають однозначно погоджуватися на однакові набори валідаторів. Однак цей процес також має бути непридатним для експлуатації, оскільки бути виробником блоків є дуже привілейованим становищем через додаткові винагороди, доступні від майнерської вартості (MEV), або, як її перейменували, «максимальна видобута вартість». «Ethereum - це темний ліс” чудово читати про це.

Після створення блоку, як інші валідатори голосують або «засвідчують» його? Передбачається, що пропозиція блокування має відбутися протягом першої половини (шість секунд) слота, а атестація – протягом другої половини, тому теоретично має бути достатньо часу для тих, хто підтверджує, щоб проголосувати за блокування свого слота. Але що станеться, якщо пропонент блоку перебуває в автономному режимі, не зможе зв’язатися або будує на основі пошкодженого блоку? Робота засвідчувача полягає не обов’язково в голосуванні за блок цього слота, а в тому, який блок «виглядає найкраще» з його точки зору на даний момент часу. За звичайних умов це зазвичай буде блок із цього слота, але також може бути старіший блок, якщо щось пішло не так. Але що технічно означає «виглядати найкраще»? Тут на допомогу приходить алгоритм GHOST.

GHOST розшифровується як «Greediest Heaviest Observed SubTree» і є жадібним рекурсивним алгоритмом для пошуку блоку з найбільшою «останньою активністю». По суті, цей алгоритм розглядає всі останні блоки у формі дерева та проходить по дереву, жадібно вибираючи гілку з найбільшою кількістю кумулятивних атестацій у всій підгілці. Лише остання атестація кожного валідатора зараховується до цієї суми, і зрештою цей процес приземляється на якийсь аркушовий блок.

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Атестації — це не лише голоси за поточний найкращий блок, а й за останні контрольні точки, які ведуть до цього блоку. Варто зауважити, що в Gasper контрольні точки базуються на епохах, а не на висотах блоків. Кожна епоха стосується точно одного блоку контрольної точки, який є або блоком у першому слоті цієї епохи, або, якщо цей слот був пропущений, то останнім блоком перед цим слотом. Той самий блок теоретично може бути контрольною точкою у двох різних епохах, якщо епоха якимось чином пропускає кожен окремий слот, тому контрольні точки представлені за допомогою пар (епоха, блок). На діаграмі нижче EBB означає «граничний блок епохи» та представляє контрольну точку для певної епохи, тоді як «LEBB» означає «граничний блок останньої епохи» та представляє останню контрольну точку в цілому.

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Подібно до Casper, контрольна точка стає виправданою, коли загальна кількість атестацій перевищить поріг у дві третини, і завершується, якщо за нею негайно слідує інша виправдана контрольна точка в наступній епосі. Приклад того, як працює це голосування, показано нижче:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

У Gasper є дві умови розрізання, які аналогічні правилам розрізання в Casper:

  1. Не можна голосувати двічі в одну епоху.
  2. Жодне голосування не може містити контрольні точки епохи, які «з’єднують» контрольні точки епохи іншого голосування.

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

Також варто відзначити, що атестації включені в самі блоки. Подібно до того, як блок у PoW виправдовує себе за допомогою свого хешу, завершена контрольна точка в PoS виправдовує себе за допомогою всіх своїх минулих атестацій. Коли хтось порушує правила скорочення, ці погані атестації включаються в блок, який доводить порушення. Існує також невелика винагорода для виробника блоку, який включив порушення, щоб забезпечити стимул для покарання порушників правил.

вилки

Цікаво подумати про те, що станеться у випадку вилки. Коротко нагадаємо, що форк означає зміну правил консенсусу, і вони бувають двох різновидів: хард форки та м’які форки. У хардфорку нові правила не є зворотно сумісними, що потенційно може призвести до двох конкуруючих блокчейнів, якщо не всі перейдуть. У софтфорку нові правила є більш обмежувальними, ніж старі правила, але зберігають їх зворотну сумісність. Коли понад 50% майнерів або валідаторів починають застосовувати нові правила, механізм консенсусу перемикається без розщеплення ланцюжка. Софтфорки, як правило, асоціюються з оновленнями та новими типами транзакцій, але технічно вони також включають будь-який тип цензури, яка застосовується більшістю 51%. PoS також має третій тип «розгалуження», якого немає в PoW: розділення ланцюга без змін до правил. Але оскільки ми вже розглянули це, ми зосередимося на жорстких і м’яких форках.

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

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

А тепер припустімо, що валідатори сиділи один день і вирішили, що їм недостатньо платять, і вирішили підвищити свою винагороду з 5% на рік до 10% на рік. Це був би явний компроміс на користь валідаторів за рахунок невалідаторів, які тепер ставали б більш розведеними. У разі розколу ланцюга, який ланцюг виграє?

Це призводить до нашого п’ятого принципу PoS, який полягає в тому, що гроші – це сила.

З наявних 120 мільйонів ETH більше 10% з них наразі ставляться, як показано на діаграмі нижче:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

Враховуючи суперечливий хардфорк між валідаторами та невалідаторами, припускаючи, що всі невалідатори продали новий ланцюжок, а всі валідатори продали старий ланцюжок, тоді теоретично старий ланцюжок виграє, оскільки більшість ETH, як і раніше, утримуватимуть невалідатори (90% проти 10%). Але є ще кілька речей, які слід враховувати. По-перше, після будь-якого поділу ланцюга валідатори все ще будуть «контролювати» обидва блокчейни. Якби валідатори змогли вплинути на інший ланцюжок, вони могли б спонукати довести його до збою. По-друге, існує також ядерний варіант, який обговорювався раніше, за якого новий ланцюжок може врізати будь-кого, хто все ще перевіряє старий ланцюг, щоб змусити їх приєднатися. Нарешті, валідатори, ймовірно, матимуть значний соціальний і політичний вплив на всіх інших у мережі. Якби Бутерін, фонд Ethereum та біржі разом вирішили підвищити винагороду за ставку, мені важко повірити, що звичайні користувачі та валідатори Ethereum зможуть зберегти старий форк, а також зробити його більш цінним через тиск покупців.

Переходячи до м’яких форків, що трапиться у спірному soft-форку, наприклад цензурі OFAC? Валідатори досить централізовані, як ми можемо бачити на діаграмі нижче:

Технічний і поглиблений аналіз компромісів, які досягає механізм консенсусу Ethereum при переході на proof-of-stake, і чим відрізняється proof-of-work.

(Source)

На відміну від PoW, де майнери можуть перемикати пули одним натисканням кнопки валідатори в Ethereum блокуються на адресі стекінгу, доки вони не оброблять вихідну транзакцію. Якби Lido та провідні біржі змусили цензурувати певні транзакції, вони могли б легко пройти більшість у дві третини, необхідну для визначення контрольних точок. Раніше ми бачили, як Бутерін та інші валідатори ETH могли спробувати протистояти цензурному софт-форку за допомогою власного контр-цензурного хард-форка, одночасно знищуючи цензорів у процесі. Навіть якби їм вдалося створити форк, багато цінностей було б знищено в процесі як через розрізання, так і через втрату довіри.

Заключні думки

У цьому есе ми розглянули, як PoS вирішує проблему подвійних витрат за допомогою Gasper, комбінації правил контрольної точки/розрізу під назвою Casper і правила голосування за «найкращий блок» під назвою GHOST. Підсумовуючи, Гаспер ділить час на одиниці, які називаються слотами, де кожен слот може мати щонайбільше один блок, а слоти згруповані в епохи, де кожна епоха відноситься до однієї контрольної точки. Якщо більшість у дві третини проголосує за контрольну точку, вона стає виправданою, а якщо дві виправдані контрольні точки зустрічаються поспіль, перша з цих двох контрольних точок стає остаточною. Після завершення контрольної точки стає неможливим завершити паралельний ланцюжок, якщо тільки одна третина валідаторів не буде скорочена.

У цьому процесі ми розкрили п’ять принципів PoS:

  1. PoS використовує негативну (на основі штрафів) структуру заохочень.
  2. PoS є дозволеною системою.
  3. У PoS немає правил.
  4. PoS покладається на суб’єктивну правду.
  5. У PoS гроші — це сила.

Кожен із цих принципів має протилежну поведінку в PoW:

  1. PoW використовує позитивну (на основі винагороди) систему заохочень.
  2. PoW — це система без дозволу (будь-хто може почати або зупинити майнінг у будь-який час).
  3. У PoW форки, які змінюють правила, ігноруються.
  4. PoW покладається на об'єктивну правду.
  5. У PoW майнери обслуговують користувачів і самі мають невелику потужність.

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

Це гостьовий пост Скотта Саллівана. Висловлені думки повністю належать їм і не обов’язково збігаються з думками BTC Inc. або Bitcoin Magazine.

Часова мітка:

Більше від Журнал Bitcoin