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