14листопад–грудень 2010
Slush Pool: празька ідея проти майнінгової лотереї
Марек Палатінус об'єднав потужність малих гірників і розділив між ними частіші малі виплати. Перший публічний пул вирішив одну невизначеність Біткоїна і водночас створив нову точку довіри.
На початку листопада 2010 року домашній гірник міг залишити комп'ютер увімкненим тижнями і все одно нічого не отримати. Якщо він мав щастя, вся винагорода у 50 БТК припадала йому; якщо ні, він платив за електрику і продовжував чекати. Празький програміст Марек «Slush» Палатінус запропонував, щоб люди перестали грати кожен свою лотерею. Їхні машини мали працювати над спільним блоком, а служба мала б розділити винагороду згідно з доведеною роботою. 27 листопада він представив «кооперативний гірничий сервер». За менш ніж три тижні пул видобув блок 97 834. З імпровізованого проекту однієї людини виросла модель, без якої сьогодні майже неможливо уявити видобуток — і суперечка про те, скільки координації може безпечно витримати децентралізована мережа.
П'ятдесят біткоїнів, або довго нічого
Біткоїн тоді винагороджував переможців блоків п'ятдесятьма монетами. Для мережі це був простий механізм, але для окремих осіб — жорстока лотерея. Імовірність знаходження блоку відповідала частці його обчислювальної потужності у всій мережі. Як тільки загальна потужність зростала, малий гірник міг чекати все довше, хоча його машина працювала без перерви.
Довгостроковий середній показник міг виглядати сприятливо, але рахунки за електрику приходили кожен місяць. Людина повинна була нести великий розкид: або вона отримувала всю винагороду, або нічого не отримувала протягом довгого періоду. Це витісняло людей з меншою потужністю, хоча їхня робота була з погляду мережі так само корисною, як і робота великого підприємства.
Палатінус знав цю проблему з власного досвіду. У форумі він описав, що спільний сервер може об'єднати тисячі малих спроб і розділити результати. Учасник уже не буде чекати на свій рідкісний успіх; він отримає меншу частку кожного разу, коли кому-небудь у групі вдасться видобути блок.
Гірничий пул тим самим не змінює імовірність всієї групи і не створює більше біткоїнів. Він змінює розподіл ризику в часі. Це різниця між одним лотерейним квитком з великою виграшем і регулярною часткою великого пакету квитків. За стабільніший дохід гірник платить комісію і залежність від правильного обліку оператора.
Slush не представив свій проєкт як чисто технічну перемогу. Вже у першій ниті він перерахував переваги, недоліки і необхідну довіру. Сервер повинен був правильно вимірювати виконану роботу, не красти винагороди і залишатися доступним. Пул усував одну невизначеність, але додавав посередника, якого сам біткоїновий консенсус не контролював.
Для малого гірника найбільшою проблемою була не середня дохідність, а час. Статистично він міг мати право на частку винагороди щодня, проте реальний протокол не виплачував частки за саму спробу. Або його машина знаходила валідний блок і отримувала цілих п'ятдесят біткоінів, або не отримувала нічого. Довга серія невдач при цьому не означала, що пристрій не працював; вона означала лише те, що лотерея поки що не випала на його користь. Спільний сервер перетворював цю нерегулярну подію на менші частки відповідно до підтвердженої роботи. Пул не збільшував очікувану кількість знайдених блоків, але змінював ритм надходжень, і саме ця різниця могла вирішити, чи міг він дозволити собі продовжувати видобуток.
Кооперативний гірничий сервер
Оголошення від 27 листопада 2010 року ще не представляло готовий продукт компанії. Палатінус шукав людей, готових випробувати протокол, підключення та спосіб розподілу винагород. Система мала приймати часткові докази роботи — результати, яких не вистачало для чинного блоку, але які підтверджували, що майнер справді виконував обчислення.
Ці так звані часткові результати дозволяли пулові оцінити внесок кожної машини. Коли якийсь учасник знайшов хеш, який задовольняв складність усієї мережі, пул отримував блокову винагороду і розділяв її згідно з обраним правилом обліку. Для звичайного гірника результат змінився з нерегулярних п'ятдесяти біткоїнів на потік менших платежів.
Перша форма служби працювала під назвою Bitcoin.cz Mining Pool. Веб-сайт, сервер і підтримка були в основному роботою однієї людини. Це дає чеському пріоритету більш точний розмір: не йшлося про національний проєкт чи державну програму, а про програміста, який з Праги вирішував конкретну економічну проблему глобальної мережі.
Пул одночасно потребував складати кандидатський блок і розсилали гірникам завдання. окремі машини забезпечували потужність, але оператор визначав, над якою голівкою вони працюють і які транзакції шаблон містить. Розподіл апаратного забезпечення між багатьма людьми сам по собі не гарантував розподілу прийняття рішень.
Пізніший розвиток гірничих протоколів, включаючи Stratum V1, намагався оптимізувати комунікацію між пулами і пристроями. Основна угода, однак, залишилася такою самою: пул продає більш передбачувану винагороду, а гірник довіряє йому частину координації. Перший сервер створив зразок, який інші швидко наслідували.
Блок 97 834
Пул почав повноцінну роботу 16 грудня 2010 року й того самого дня видобув блок 97 834. Сьогодні запис у ланцюжку показує результат, але не передає тогочасного напруження: чи правильно сервер прийме виконану роботу, розпізнає чинний блок і зарахує внесок людям, які надали обчислювальні потужності?
Перший блок підтвердив, що координація працює не тільки у тесті. Винагорода могла бути розділена між учасниками, більшість яких сама в той момент нічого не отримала б. Для малих гірників це був відчутний доказ того, що їхні слабші машини не повинні бути негайно витіснені з економіки мережі.
Дата важлива відрізнити від листопадового оголошення. Ідея, публічне тестування і острий результат були трьома різними кроками. Історія не починається з раптового знаходження блоку, а тижнями перед цим, коли Slush відкрито описав проєкт і попросив спільноту допомогти йому знайти помилки.
Успіх привернув додаткову потужність і з нею відповідальність. Чим більша частина мережі пул об'єднував, тим чутливішим був кожен збій або погане рішення. Служба повинна була захищати рахунки, обчислювати винагороди і реагувати на атаки. Це вже не був просто скрипт для вирівнювання щастя; це була інфраструктура, на чий облік люди покладалися.
Блок 97 834 тому не є значущим своєю сумою. Такі самі п'ятдесят біткоїнів отримували й інші гірники. Видатним був спосіб, яким вони до нього прийшли і як його розділили. Один рядок у блокчейні представляв спільну роботу багатьох машин і перший практичний доказ того, що пулінг може працювати у публічній мережі.
Від Slush до галузі пулів
Проєкт пізніше пройшов назви Slush Pool і Braiins Pool. Команда Braiins професійалізувала службу, тоді як Марек Палатінус присвятив більше енергії SatoshiLabs і апаратному гаманцю Trezor. З оригінального сервера, однак, залишилася неперервна історична лінія до одного з найстаріших імен біткоїнового видобутку.
Пулінг розширив можливість видобутку, але поступово також зосередив створення блокових шаблонів у меншій кількості служб. Самостійний гірник вирішує сам, який блок будує. Учасник звичайного пула часто тільки обчислює завдання, яке він отримав. Фізична потужність може бути розкидана, тоді як рішення щодо координації залишаються централізованими.
Ця концентрація не означає, що пул володіє всіма підключеними машинами. Гірники можуть перенаправити потужність в інше місце, якщо вони не згодні з комісіями, цензурою або поведінкою оператора. Перенаправлення, однак, вимагає інформації і готовності реагувати. Децентралізація тому вимірюється не тільки кількістю пристроїв, але і тим, хто складає блоки і як легко можна змінити координатора.
Slush у своєму першому тексті не приховував цей компроміс. Він запропонував рішення економічної проблеми і водночас назвав довіру, яку рішення вимагає. Саме ця відкритість допомагає читати історію без пізнішого тріумфалізму: пул не був остаточною відповіддю, а новим інструментом з ясними витратами.
Празький проєкт змінив видобуток, відокремивши роботу від щастя. Людина вже не повинна була сама вигравати весь блок, щоб її хешрейт отримував постійну ціну. Одночасно він показав, що навіть система, розроблена без центрального банку, буде створювати служби, яким люди довіряють координацію. Питання не в тому, чи виникнуть вони, а чи учасники зможуть контролювати, покидати і замінювати їх.
Тому концентрацію пулів не можна вимірювати лише кількістю підключених машин. Важливо, хто формує шаблон блоку, відбирає транзакції, встановлює правила виплат і здатен переконати учасників змінити програмне забезпечення, коли виникає проблема. Гірник може покинути пул лише тоді, коли в нього є інший придатний варіант і він дійсно стежить за тим, що робить сервіс. Початковий опис довіри Слаша в цьому плані досі актуальний. Пулінг вирішив реальну економічну проблему і водночас створив нову сферу, де необхідні конкуренція, прозорість і можливість виходу. Децентралізація підтримується не тим, що ми забороняємо координацію, а тим, що не даємо їй затвердіти в неконтрольовану владу.
Люди й поняття в Атласі
Джерела та межі історії
- 01BitcoinTalk / Satoshi Nakamoto Institute — Кооперативний видобуток
Оригінальне оголошення Slush, аргумент для менших регулярних виплат і відкрита дискусія про довіру.
- 02Braiins — Історія хешування
Історія Bitcoin.cz Mining Pool, перехід до Braiins і зв'язок з SatoshiLabs.
- 03Braiins — Хешрейт як товар
Дата острий запуск 16 грудня 2010 року, блок 97 834 і економічний сенс спільного використання винагород.
- 04Mempool.space — блок 97 834
Публічний блокчейновий запис першого блоку пула.