Згода на історію без арбітра
Найскладніша задача для блокчейну – це консенсус: отримати згоду тисяч взаємно недовірливих комп’ютерів, розкиданих по всьому Інтернету, щодо єдиного, спільного порядку транзакцій, без дозволу будь-якого центрального органу оголошувати відповідь. Proof-of-Work вирішує це, роблячи дорожчим, за допомогою реальних обчислювальних зусиль, пропонування наступного блоку, і шляхом того, що мережа слідує простому, механічному правилу – найдовший ланцюг (більш точно, ланцюжок з найбільшою сумарною роботою) є дійсним, а не голосуванням чи комітетом.
Видобуток блоку означає повторне хешування вмісту блоку разом із змінним числом, яке називається nonce, до тих пір, поки отриманий хеш падає нижче цільового значення – числа з достатньою кількістю ведучих нулів, щоб зробити його статистично рідкісним. Оскільки криптографічна хеш-функція непередбачувана, немає жодного коротшого шляху: знайти дійсний хеш вимагає в середньому спробувати приблизно 2^d різних nonce для цілі з d бітами ведучих нулів, і єдистратегія – грубе насилу
find nonce such that: SHA256(SHA256(block_header || nonce)) < target expected tries ≈ 2^difficulty_bits (pure brute force, no shortcut exists)
Перенаправлення складності підтримує стабільність годинника
Зі збільшенням кількості шахтарів, що входять до мережі, обчислювана сукупна хеш-функція зростає, і блоки будуть знаходитися швидше за інтервал протоколу (10 хвилин для Bitcoin) лише завдяки випадковості. Кожен фіксований блок, мережа перераховує ціль і коригує складність вгору або вниз, щоб, враховуючи хеш-функцію, що спостерігалася за останні періоди перенаправлення, очікувалося, що блоки будуть прибувати з однаковою стабільною частотою. Це самокоригуючий зворотний зв'язок без зовнішнього введення: саме тому блок-час Bitcoin протягом понад десятиліття залишався близьким до 10 хвилин, незважаючи на те, що мережева хеш-функція зросла у багато разів.
Проміжки розв’язуються, з достатньою кількістю часу
Оскільки глобальне поширення блоків відбувається в реальному часі, двоє шахтарів іноді можуть знайти дійсні блоки майже одночасно, обидва продовжуючи одну й ту ж батьківську гілку — тимчасовий розбій. Різні вузли спочатку бачитимуть різні кінцеві точки, оскільки потоло найкращого ланцюга. Правило, яке вирішує це без голосування, полягає просто в тому, що будь-яка гілка, яка накопичує більше загальної доказової роботи першою, є тією, на яку зрештою сфокусуються всі, і блоки з покинутої гілки відкидаються (їх транзакції повертаються до черги очікування, якщо не включені в виграшний ланцюг). Саме тому транзакція не вважається завершеною, коли вона з’являється в блоці — потрібно кілька наступних блоків (підтверджень), накладених один на одного, перш ніж шанс того, що блок буде на програшній гілці, стане незначним.
Квантове переплетення
Якщо один актор контролює більше ніж 50% від загальної кількості хешів мережі, він може, в принципі, видобувати приватну альтернативну ланцюг швидше, ніж чесна мережа розширює публічну, потім випустити її – і оскільки правило просто «найдовший накопичений обсяг переможе», мережа перейде до ланцюга нападника, відкидаючи транзакції, які раніше вважалися підтвердженими. Це дозволить нападнику подвоїти монети, які він вже чесно витратив, але критично це не дозволяє йому створювати транзакції з гаманців інших користувачів або створювати монети з нічого – криптографічні підписи все ще захищають їх. Вартість атаки прямо пропорційна загальній кількості хешів чесної мережі, що є причиною того, що безпека доведення роботи часто підсумовується як «безпека пропорційна витраченим електроенергії»: для великої та усталеної ланцюга вартість обладнання та енергії для підтримки 51% від глобальних хешів є величезною, тоді як невеликий ланцюг з незначним обсягом видобутку порівняно дешево атакувати.
Яке доказове механізми насправді купує
Елегантна частина проєкту полягає в тому, що однакові обчислювальні витрати, які роблять видобуток дорогим, також роблять переписування історії дорогим у точно тій самій валюті. Нападник не може дешево підробити фальшиву ланцюг з більшою накопиченою працею, ніж справжній, оскільки накопичена робота є, за конструкцією, реальною, непідробною та фізично обґрунтованою вартістю. Цей бартер – реальна енергія для доказу неможливості підробки – і це те, що консенсус доказового механізму насправді продає, і це також найкритичніша його особливість, оскільки одна й та сама енергія витрачається, незалежно від того, чи будь-коли спроби атаки.
Frequently asked questions
Що саме роблять майнери, коли вони "видобувають" блок?
Вони повторно хешують вміст запропонованого блоку разом із змінюваною змінною nonce, шукаючи nonce, який генерує хеш нижче заданого порогового значення. Оскільки вихідні дані хешування непередбачувані, це потребує грубої сили та спроб і помилок, а знаходження одного є доказом того, що було витрачено реальну кількість обчислювальних ресурсів.
Чому час блоку біткоїна залишається близьким до 10 хвилин навіть тоді, коли загальна потужність майнінгу зростає?
Мережа періодично перераховує цільовий рівень складності на основі того, як швидко були фактично знайдені останні блоки. Якщо блоки знаходили швидше за інтервал цілі, складність збільшується; якщо повільніше, вона падає – це саморегулюючий зворотний зв’язок, який підтримує середній інтервал стабільним, незалежно від того, скільки загальної обчислювальної потужності приєднується або покидає.
Що майнер може і не може зробити 51% нападник?
Нападник із перевагою за хеш-швидкістю може переписувати нещодавню історію транзакцій, щоб подвоїти витрачені монети, шляхом таємного видобутку альтернативної ланцюга. Вони не можуть підробляти підписи інших користувачів, красти монети з гаманців, якими вони не керують, або створювати нові монети за межами правил протоколу – криптографічні підписи все ще захищають їх.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Blockchain Consensus і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Blockchain Consensus