092015–2017

Blocksize War: хто має право змінювати правила Bitcoin

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

Один мегабайт здавався технічним параметром, проблему якого розв’яжуть швидші комп’ютери й одне пристойне випробування продуктивності. До 2015 року він перетворився на суперечку про майбутній вигляд грошей і про людей, які мають право казати, що таке Bitcoin. Ґевін Андресен і Майк Герн обстоювали значно більші блоки. Розробники, зокрема Пітер Вілле та Ґреґорі Максвелл, застерігали про ціну, яку заплатять оператори вузлів. Майнери, біржі, інвестори й анонімні користувачі додавали власного тиску. Blocksize War була не однією сваркою чи двобоєм двох таборів. Це була дворічна низка пропозицій, ультиматумів, конференцій, випусків програм і граничних строків, протягом якої кожна група відчула різницю між тим, на що може впливати, і тим, що може нав’язати.

01

Повні блоки й два різні страхи

Із поширенням використання блоки наближалися до ліміту, а комісії зростали. Прихильники більших блоків застерігали, що дорогі транзакції витіснять повсякденні платежі й перетворять Bitcoin на мережу для багатих. Прихильники обережнішого підходу попереджали, що стрімке зростання обсягу даних і вимог послабить можливість запускати Full Node удома й зосередить перевірку в центрах обробки даних.

Обидві сторони говорили про децентралізацію, але вимірювали її по-різному. Одна — кількістю людей, які можуть дозволити собі транзакцію; друга — кількістю тих, хто може дозволити собі незалежно перевіряти правила. Пропозиції Bitcoin XT, Classic, а згодом Unlimited обіцяли пряме збільшення ліміту. Розробка SegWit шукала зміни формату транзакцій та ефективнішого використання простору.

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

BIP101 Андресена пропонував стрибок до восьми мегабайтів, а далі — передбачуване зростання ліміту. Герн додав його до клієнта Bitcoin XT, і обидва публічно закликали майнерів та користувачів підтримати зміну. Для них переповнена черга транзакцій порушувала початкову обіцянку дешевої електронної готівки. Якщо новий користувач муситиме змагатися високою комісією за малий платіж, то, на їхню думку, мережа програє карткам ще до того, як увійде в повсякденне життя.

По інший бік стояли не люди, які хотіли залишити Bitcoin малим. Пітер Вілле запропонував Segregated Witness, а Ґреґорі Максвелл та інші розробники говорили про другі рівні й ефективніше використання кожного байта. Їхня тривога сягала на кілька кроків уперед: більший блок сьогодні означає вищі вимоги до з’єднання, зберігання й перевірки назавжди. Коли домашній вузол стає непрактичним, користувач починає довіряти чужому серверу. Обидва табори захищали доступність; кожен бачив її з іншого боку транзакції.

02

Нью-Йоркська угода

У травні 2017 року група великих компаній і майнерів оголосила Нью-Йоркську угоду. План SegWit2x поєднував швидку активацію SegWit із подальшим Hard Fork до базового блока розміром два мегабайти. Підписанти заявляли про значну частку обчислювальної потужності та обсягу транзакцій і поводилися так, ніби узгоджені дії найбільших підприємств могли завершити суперечку.

Однак угода не зобов’язувала користувачів, які запускали інше програмне забезпечення. Критики відкидали передусім думку, що закрита зустріч може від імені мережі пообіцяти несумісну зміну. Майнери можуть пропонувати блоки, а компанії — давати їм назву; вузол усе одно може визнати їх недійсними.

Початкове оголошення говорило про 58 компаній із 22 країн і 83,28 відсотка обчислювальної потужності. Ці числа мали вагу, але не вимірювали згоди незалежних вузлів чи людей, які тримали біткоїни поза сервісами підписантів. Поєднання SegWit із пізнішим Hard Fork до того ж створило політичний обмін: кожна сторона мала отримати частину бажаного. Коли першу частину активували, а друга залишилася спірною, стало зрозуміло, що за всім пакетом немає установи, здатної примусити довести його до кінця.

Угоду організував засновник Digital Currency Group Баррі Сілберт під час конференції Consensus у Нью-Йорку. За столом сиділи представники бірж, гаманців, платіжних і майнінгових компаній; реалізацію SegWit2x очолив Джефф Ґарзік. Для підприємців, виснажених тривалою суперечкою, це виглядало зрілим компромісом: впливові люди нарешті погодили дату й підписалися під нею від імені своїх компаній. Але Bitcoin не мав реєстру членів, у якому їхні підписи становили б кваліфіковану більшість.

Критики реагували не лише на два мегабайти, а й на спосіб ухвалення рішення. Адам Бек, Ґреґорі Максвелл та інші застерігали, що несумісна зміна зі стислим строком ставить користувачів перед доконаним фактом. Підписанти контролювали сервіси, через які проходило багато людей, а майнери могли забезпечити більшість обчислювальної потужності. Але вони не могли віддалено змінити правила перевірки вузла, що працював у чужій квартирі. Отже, угода створила дивну ситуацію: найбільші компанії могли оголосити, що називатимуть Bitcoin, але власник кожного вузла зберігав власну кнопку відмови.

03

UASF, BIP91 і ланцюг, який не розділився

BIP148 запропонував Soft Fork, активований користувачами: з 1 серпня залучені вузли мали відхиляти блоки, які не сигналізували підтримки SegWit. Це був ризикований тиск. Якби економічно значуща частина мережі залишилася осторонь, могли виникнути конкуруючі історії чи хаотичні реорганізації.

Однак ще до вирішального дня майнери через BIP91 почали сигналізувати умови, що вели до фіксації активації SegWit. Тому нечесно приписувати результат одному учасникові: загроза UASF змінила стимули, майнери скоординували сигналізацію, а наявні вузли забезпечили дотримання правил сумісного Soft Fork. SegWit активували 24 серпня 2017 року.

Вузли з BIP148 не могли самі намайнити SegWit чи змусити інших ним користуватися. Вони могли лише заздалегідь пообіцяти, що після встановленої дати не прийматимуть певної групи блоків. Сила обіцянки залежала від того, чи підуть за ними біржі, торговці, гаманці й власники, чиї монети надають ланцюгу економічного значення. Таким чином UASF діяв як публічне зобов’язання в координаційній грі: його вплив походив не від наказу, а від правдоподібної можливості, що неслухняний ланцюг матиме обчислювальну потужність, але менше покупців.

Пропозицію BIP148 опублікував розробник під псевдонімом Shaolinfry. Люди почали носити кепки з літерами UASF і називати 1 серпня днем незалежності. Проте за мемами стояла серйозна ставка. Якби майнери продовжили працювати без сигналізації, а значна частина економіки підтримала BIP148, історії могли б тимчасово розділитися, і користувачі не знали б, який вхідний переказ залишиться чинним. Отже, активіст, що запускав вузол, ризикував не просто гаслом; він ризикував власною здатністю безпечно отримувати гроші.

BIP91 Джеймса Гілларда дав майнерам шлях до координації ще до граничної дати й фіксації сигналізації SegWit за нижчого порога. Коли підтримка раптово зросла, кожна сторона прочитала результат по-своєму. Прихильники UASF побачили доказ того, що тиск користувачів змінив стимули. Майнери вказували на власну координацію, а підписанти Нью-Йоркської угоди — на свій компроміс. Історія не дає контрольного експерименту, в якому можна прибрати одну з груп. Безсумнівно лише те, що загроза конфлікту змусила всіх діяти раніше.

04

Bitcoin Cash відокремився, SegWit2x відступив

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

Друга частина Нью-Йоркської угоди мала активувати Hard Fork до двох мегабайтів у листопаді. 8 листопада організатори призупинили його, визнавши, що не досягли достатнього консенсусу для безконфліктного оновлення. Висока частка обчислювальної потужності, що сигналізувала підтримку, не перетворилася на впевненість у тому, що економіка прийме нові блоки як Bitcoin.

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

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

SegWit2x мав бути іншим. Його прихильники хотіли, щоб ланцюг із блоками по два мегабайти успадкував позначення BTC і став продовженням, а не бічною гілкою. З наближенням листопада бракувало широкої підтримки в клієнтському програмному забезпеченні та чіткого плану безпечної роботи з двома ланцюгами. 8 листопада Майк Белше, Венсес Касарес, Джихан Ву, Джефф Ґарзік, Пітер Сміт та Ерік Вурхіс оголосили відтермінування. Вони визнали, що без ширшої згоди продовжать розділяти спільноту, яку хотіли об’єднати.

05

Влада розподілена, а не відсутня

Війну часто зображують як беззаперечну перемогу користувачів. Точніший висновок складніший. Розробники контролюють увагу та якість коду, майнери — порядок блоків, компанії — ліквідність і бренд, користувачі — вибір програм та контрагентів. Жодна група не має всіх важелів самотужки; утім, у декого їх значно більше, ніж в інших.

Тоді Bitcoin не голосував одним числом. Він координувався через код, публічні аргументи, комерційні рішення, строки й готовність ризикнути розколом. Результат не був тихим чи дешевим. Саме в цьому його значення: правила залишилися незмінними не тому, що суперечки не було, а тому, що для зміни виявилося недостатньо переконати лише найпомітнішу кімнату.

Консенсус Накамото визначає порядок транзакцій у межах спільно прийнятих правил; це не парламент, який голосуванням обчислювальної потужності переписує самі правила. Майнер може створити блок із величезним обсягом роботи, але вузол відкине його, якщо той порушує правила його програми. Отже, вибір правил відбувається поза самим блокчейном: у коді, версіях клієнтів, цінах, договорах і в тому, з ким люди готові торгувати. Blocksize War не відкрила простої конституції Bitcoin. Вона показала систему, де зміни можливі, але ніхто не має гарантованого права називати їх консенсусом.

Люди з усіх боків заплатили особисту ціну. У січні 2016 року Майк Герн публічно залишив проєкт і назвав експеримент невдалим. Ґевін Андресен утратив колишнє становище в Bitcoin Core. Розробники зазнавали кампаній проти них, компанії — бойкотів, а окремі люди — нападок, що перетворювали технічну незгоду на випробування характеру. Розповідь переможця часто зводить цих людей до зрадників і героїв. Точніше визнати, що багато хто захищав різні уявлення про ту саму мету й іноді вдавався до тиску, який сам уважав необхідним захистом.

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

Atlas

Люди й поняття в Атласі

2017Війна за розмір блокаBIP141SegWitNODEFull NodeFORK↓Soft ForkFORK↑Hard ForkRULESПравила консенсусуCOREBitcoin CoreGAVINGavin AndresenHEARNMike HearnSIPAPieter WuilleGMAXGregory MaxwellBACKAdam BackGARZIKJeff Garzik
  1. 01
    BIP 101 — збільшення максимального розміру блока

    Одна з головних формальних пропозицій автоматичного зростання ліміту.

  2. 02
    BIP 141 — Segregated Witness

    Технічна специфікація SegWit і ваги блока.

  3. 03
    Digital Currency Group — угода про масштабування Bitcoin на Consensus 2017

    Початковий текст Нью-Йоркської угоди та список підписантів.

  4. 04
    Робоча група SegWit2x — архівний репозиторій

    Тогочасна документація мети та реалізації SegWit2x.

  5. 05
  6. 06
    BIP 91 — знижений поріг SegWit MASF

    Механізм координації майнерів, який зафіксував сигналізацію до 1 серпня.

  7. 07
    Bitcoin ABC — технічна специфікація UAHF

    Тогочасна специфікація відокремлення Bitcoin Cash.

  8. 08
    Список розсилки SegWit2x — далі

    Повідомлення від 8 листопада 2017 року про те, що для Hard Fork немає достатнього консенсусу.

Наступна історія · 10FTX: залишок, якого не було там, де він мав бути