Stratum bitcoin что это

Stratum mining protocol

The stratum overlay protocol was extended to support pooled mining as a replacement for obsolete getwork protocol in late 2012. The mining service specification was initially announced via Slush’s pool’s website [1] . Shortly thereafter, alternative «cheat sheet» style documentation was provided by BTCGuild [2] . As the extension lacks a formal BIP describing an official standard, it has further developed only by discussion and implementation [3] .

Contents

Protocol

Overview

Methods (client to server)

mining.authorize

The result from an authorize request is usually true (successful), or false. The password may be omitted if the server does not require passwords.

mining.capabilities (DRAFT)

NOTE: This is a draft extension proposal. It is not yet in use, and may change at any moment.

The client may send this to inform the server of its capabilities and options. The singleton parameter is an Object describing capabilities; by default, it is considered as <"notify":<>, «set_difficulty»:[]>, but as soon as this method is used these must be explicitly included if desired. The «suggested_target» key may supersede the mining.suggest_target method.

Note that most of the keys do not have any meaningful value at this time, and the values thereof should be ignored (ie, only their presence matters).

mining.extranonce.subscribe

Indicates to the server that the client supports the mining.set_extranonce method.

mining.get_transactions

Server should send back an array with a hexdump of each transaction in the block specified for the given job id.

mining.submit

Miners submit shares using the method «mining.submit». Client submissions contain:

Server response is result: true for accepted, false for rejected (or you may get an error with more details).

mining.subscribe

The optional second parameter specifies a mining.notify subscription id the client wishes to resume working with (possibly due to a dropped connection). If provided, a server MAY (at its option) issue the connection the same extranonce1. Note that the extranonce1 may be the same (allowing a resumed connection) even if the subscription id is changed!

The client receives a result:

The result contains three items:

  • Subscriptions. — An array of 2-item tuples, each with a subscription type and id.
  • ExtraNonce1. — Hex-encoded, per-connection unique string which will be used for creating generation transactions later.
  • ExtraNonce2_size. — The number of bytes that the miner users for its ExtraNonce2 counter.

mining.suggest_difficulty

Used to indicate a preference for share difficulty to the pool. Servers are not required to honour this request, even if they support the stratum method.

mining.suggest_target

Used to indicate a preference for share target to the pool, usually prior to mining.subscribe. Servers are not required to honour this request, even if they support the stratum method.

Methods (server to client)

client.get_version

The client should send a result String with its name and version.

client.reconnect

The client should disconnect, wait waittime seconds (if provided), then connect to the given host/port (which defaults to the current server). Note that for security purposes, clients may ignore such requests if the destination is not the same or similar.

Читайте также:  Топ алгоритмов для майнинга 2021

client.show_message

The client should display the message to its user in some reasonable way.

mining.notify

Fields in order:

  1. Job ID. This is included when miners submit a results so work can be matched with proper transactions.
  2. Hash of previous block. Used to build the header.
  3. Generation transaction (part 1). The miner inserts ExtraNonce1 and ExtraNonce2 after this section of the transaction data.
  4. Generation transaction (part 2). The miner appends this after the first part of the transaction data and the two ExtraNonce values.
  5. List of merkle branches. The generation transaction is hashed against the merkle branches to build the final merkle root.
  6. Bitcoin block version. Used in the block header.
  7. nBits. The encoded network difficulty. Used in the block header.
  8. nTime. The current time. nTime rolling should be supported, but should not increase faster than actual time.
  9. Clean Jobs. If true, miners should abort their current work and immediately use the new job. If false, they can still use the current job, but should move to the new one after exhausting the current nonce range.

mining.set_difficulty

The server can adjust the difficulty required for miner shares with the «mining.set_difficulty» method. The miner should begin enforcing the new difficulty on the next job received. Some pools may force a new job out when set_difficulty is sent, using clean_jobs to force the miner to begin using the new difficulty immediately.

mining.set_extranonce

These values, when provided, replace the initial subscription values beginning with the next mining.notify job.

mining.set_goal (DRAFT)

NOTE: This is a draft extension proposal. It is not yet in use, and may change at any moment.

Informs the client that future jobs will be working on a specific named goal, with various parameters (currently only «malgo» is defined as the mining algorithm). Miners may assume goals with the same name are equivalent, but should recognise parameter changes in case a goal varies its parameters.

Software support

Tables showing miner/server support for Stratum mining protocol:

Criticism

Closed development

The mining extensions have been criticised as having been developed behind closed doors without input from the wider development and mining community, resulting in various obvious problems that could have been addressed had it followed the standard BIP drafting process [4] .

Displacing GBT

The mining extensions were announced after the community had spent months developing a mostly superior open standard protocol for mining (getblocktemplate) [5] . Because stratum’s mining extensions launched backed by a major mining pool, GBT adoption suffered, and decentralised mining is often neglected while stratum is deployed.

Источник

Stratum V2 изнутри: решение проблемы кражи хэшрейта и другие преимущества для майнеров

Устойчивость Биткоина к изменениям — одна из его самых важных функций в становлении как надежного средства сохранения стоимости. Однако пользователям приходится быть весьма терпеливыми, когда дело доходит до таких ключевых обновлений как подписи Шнорра и Taproot, так как требуются годы для их безопасного развертывания.

Когда дело доходит до майнинга, все немного по-другому. Изменения не происходят в одночасье, но майнеры, которые не адаптируются и не держат руку на пульсе индустрии, скорее всего, рано или поздно останутся позади. За последний год хэшрейт сети Биткоина увеличился почти на 200%. Это означает, что игроки индустрии майнинга активно конкурируют друг с другом и пытаются найти способы не отставать в развитии.

Майнинг остается наименее изученной областью экосистемы Биткоина. После публикации документации и спецификации Stratum V2 стало ясно, что у пользователей биткоина и майнеров разный подход к оценке новой версии протокола. Тогда как биткойнеры в основном оценивали улучшения в области децентрализации, майнеров интересовали другие изменения, многие из которых могут реально повысить популярность биткоина в краткосрочной перспективе.

Читайте также:  Рампа common rail что это такое

Развитие майнинга

Когда на старейшем в мире пуле майнинга Slush Pool был добыт первый блок в 2010 году, большинство блоков создавалось на персональных компьютерах энтузиастов в Северной Америке и Европе. Сегодня один ASIC нового поколения обеспечивает примерно в 700 раз больше мощности хэширования, чем все майнеры того времени.

Технология майнинга прошла долгий путь, наряду с бизнес-составляющей индустрии – от отсутствия конкуренции как таковой, экосистема перешла к активной борьбе за превосходство среди производителей и пулов.

Сегодняшние майнеры, как правило, больше сосредоточены на чистой прибыли, чем на поддержке фундаментальных принципов Биткоина. Нельзя сказать, что нет идейно-ориентированных майнеров, которые бы заботились об успехе Биткоина в целом — их все еще много. Однако нельзя ожидать от людей, управляющих крупными майнинговыми фермами с сотнями петаэшей, перехода на протокол Stratum V2 только потому, что это улучшает децентрализацию.

Если Stratum V2 не способен повлиять на чистую прибыль майнера, вполне вероятно, что компании не будут переходить на него. У бизнеса есть два способа увеличить чистую прибыль: увеличить доходы или снизить расходы. Что же может побудить самых бизнес-ориентированных и наименее идеологически приверженных Биткоину майнеров начинать внедрять Stratum V2?

Проблема кражи хэшрейта

Версия протокола Stratum V1 имеет серьезный недостаток в области безопасности: она уязвима для атак с применением способа «человек посередине» (MITM). Наихудший вариант такой атаки — кража хэшрейта, при котором злонамеренная третья сторона может украсть работу майнера до того, как она достигнет целевого пула, тем самым получив вознаграждение для себя.

Что еще хуже для майнеров, злоумышленник способен осуществить кражу хэшрейта совершенно незаметно. Если злоумышленник умен и скрытен, он может украсть только 1% или 2% хэшрейта. Этого достаточно, чтобы повлиять на прибыль майнера, но недостаточно, чтобы майнер заметил атаку.

В Stratum V2 эта уязвимость устранена. Соединения между майнерами и пулами шифруются с помощью AEAD — режима блочного шифрования, который защищает целостность передачи данных.

Разработчикам протокола неоднократно поступали сообщения от майнеров из Китая, Казахстана, России и Европы, которые подозревают кражу хэшрейта. Само наличие риска кражи хэшрейта — серьезный стимул для бизнеса, чтобы перейти на Stratum V2 и начать шифрование своих сообщений. Тот факт, что кража хэшрейта может происходить незамеченной в течение длительного периода времени, делает проблему важной для всех.

Повышение эффективности снижает накладные расходы

Управление майнинговым пулом с глобальной клиентской базой – не самое дешевое предприятие. Требуется укомплектовать квалифицированную команду разработчиков и поддерживать географически распределенные серверы в непосредственной близости от как можно большего числа мощностей клиентов пула. Пулы ежедневно обрабатывают миллионы пакетов данных по десяткам тысяч отдельных физических соединений. Stratum V2 уменьшает как размер, так и количество передаваемых данных. Другими словами, это делает обслуживание пула проще и доступнее.

Что касается реальных майнеров, то повышение эффективности может быть не таким сильным стимулом для одних, как для других. Многие майнеры платят фиксированную цену за хостинг своих устройств, которая включает в себя стоимость интернет-инфраструктуры и данных, используемых для связи с пулами. Однако существует множество других майнеров, расположенных в крайне удаленных местах, где трафик стоит дорого, а пропускная способность ограничена. Для них переход на новую версию протокола может способствовать существенному повышению эффективности.

Более того, функция мультиплексирования в Stratum V2 позволяет майнерам добывать несколько монет по одному соединению. Майнеры могут более эффективно переключаться между монетами для увеличения прибыли (например, между BTC, BCH и BSV) или даже отправлять хэшрейт на несколько пулов одновременно по одному соединению.

Читайте также:  Рампа трубка двигатель 409

Наконец, упрощенный режим добычи для ASIC дает майнерам возможность избежать обработки данных по полному маршруту дерева Меркла путем упрощения прошивки и проверки работы для пулов. Такой майнинг упрощает управление крупными фермами, оптимизирует будущие обновления протоколов и приводит к снижению дисперсии хэшрейта для майнеров. В итоге конечные майнеры получают следующие преимущества с внедрением Stratum V2:

Менее сложная настройка и запуск майнинга

Снижение затрат на интернет-инфраструктуру

Добавление более сложных вариантов использования, которые могут увеличить доход и/или снизить затраты

Полная реализация в BOSminer упрощает внедрение Stratum V2

Компания Braiins, управляющая Slush Pool и разрабатывающая протокол Stratum, также создает прошивки для ASIC-майнеров. Это позволяет разработчикам создать полную реализацию Stratum V2 в компоненте прошивки BOSminer с открытым исходным кодом, которая будет бесплатной для всего сообщества майнеров Биткоина.

Помимо этого, Braiins разработала прокси-серверы для перевода Stratum V2 в Stratum V1 и наоборот. Это означает, что майнеры могут использовать V2 при майнинге в пуле, который его не поддерживает, и что пулы могут внедрять V2, не вынуждая своих майнеров использовать его.

Таким образом, майнеры, которые хотят использовать Stratum V2, не должны самостоятельно решать проблемы внедрения протокола. Вместо этого они смогут просто заменить CGminer на BOSminer в прошивке своих устройств. Это значительно снижает стоимость перехода на Stratum V2, чего может быть достаточно для привлечения большой группы майнеров.

Stratum V2 был разработан для решения как можно большего числа проблем индустрии, и разработчики уверены, что он облегчит жизнь практически всем.Развертывание новой версии протокола поможет предотвратить кражу хэшрейта, повысить эффективность майнинга при снижении накладных расходов, а также обеспечить простоту переключения между монетами, благодаря полной реализации прошивки с открытым исходным кодом, доступной для всех.

Важно отметить, что финальная версия спецификации еще не выпущена и Stratum V2 на текущий момент нельзя считать готовым продуктом. Однако разработчики продолжают трудиться над протоколом и скоро финальные спецификации будут доступны для всех желающих.

Источник

Новый протокол Stratum V2 обеспечивает большую безопасность майнинга биткоина

Пражская компания Braiins выпустила BOSminer, который является первой работающей реализацией Stratum V2 ― протокола, спецификации которого были выпущены в 2019 году. С этим выпуском усилия Braiins по улучшению майнинга биткоина теперь реализованы в работающем коде, пишет Coindesk.

«Важность этого выпуска заключается в том, что это первый реальный код или продукт, использующий V2; с его помощью уже добываются настоящие биткоины», ― сказал в комментарии для CoinDesk генеральный директор Braiins Павел Моравец.

В протоколе Stratum, который используется пулами с 2012 года, были обнаружены несколько проблем, которые Braiins стремилась исправить в Stratum V2.

В Slush Pool (шестой по величине пул для майнинга биткоина, которым управляет Braiins) теперь установлено ПО, которое предлагает майнерам другой способ подключения с лучшей конфиденциальностью и защитой. ПО в ближайшее время могут начать использовать другие майнинг-пулы (майнинг-пул уже EMCD экспериментирует с протоколом).

Но хотя релиз ПО продвигает важные изменения в майнинге, спецификации ещё не были полностью реализованы в коде.

Хотя эта версия приносит преимущества в области безопасности, наиболее серьезное изменение ― «согласование работы» ― которое может иметь положительно повлиять на биткоин в целом, ещё не реализовано в этом выпуске. Это решение обещает решить проблему централизации майнинга биткоина путем перераспределения власти в майнинг-пулах.

Функция будет добавлена ​​позже, но сроки в Braiins не озвучивают.

По словам соучредителя Braiins Яна Чапека, для того, чтобы согласование работы работало наиболее эффективно, необходимо добавить «template distribution interface» в Bitcoin Core.

Дата публикации 07.04.2020
Поделитесь этим материалом в социальных сетях и оставьте свое мнение в комментариях ниже.

Источник

Оцените статью