✅✅✅
FIBRE - Протокол для ретрансляции блоков
Для стека биткоина
⬇️⬇️⬇️
FIBRE (Fast Internet Bitcoin Relay Engine - высокоскоростная ретрансляция блоков на базе сети Интернет) - это расширение для Bitcoin Core, которое обеспечивает ретрансляцию блоков с высокой скоростью и ручным выбором равноправных узлов по UDP.
UDP – это транспортный протокол, передающий сообщения без необходимости установки соединения в IP-сети. Его можно считать оптимальным протоколом для приложений, которые рассчитаны на широкую пропускную способность и быстрый обмен.
Биткойн - это одноранговая сеть, где узлы соединяются друг с другом случайным образом. Транзакции и блоки по этой сети передаются всем узлам. Пока все узлы получат информацию о блоке или транзакции должно пройти время. Тут то и проблема...Майнеры тратят некоторое количество времени на майнинг поверх старых блоков, когда сеть уже выбрала последний блок. Информация об этом, еще не дошла до всех узлов.
FIBRE решает проблему скорости распространения блоков.
Информация о блоках между узлами передается пакетами (порциями). Узел в сети получает каждый пакет и восстанавливает блоки из данных в этих пакетах и снова отправляет другим узлам, и снова в разных пакетах. Тут есть проблема: эти пакеты могут теряться и узлам необходимо повторно передавать данные, а это влияет на скорость передачи.
Основным улучшением в FIBRE является переход от использования TCP к использованию UDP с прямой коррекцией ошибок (FEC). В чем разница между TCP и UDP?
В отличие от TCP, скорость передачи UDP предварительно закодирована (предопределена), поэтому нет медленного времени нарастания или ожидания потерянных пакетов.
FEC (Forward Error Correction) - техника помехоустойчивого кодирования и декодирования, позволяющая исправлять ошибки методом упреждения. Применяется для исправления сбоев и ошибок при передаче данных путём передачи избыточной служебной информации, на основе которой может быть восстановлено первоначальное содержание.
Использование FEC позволяет узлам восстанавливать передаваемые данные, даже если некоторые из них потерялись в пути. Дополнительные данные посылаются вдоль ретранслируемых блоков, так что принимающий узел может восстановить полные блоки, без контакта с отправляющим узлом.
FIBRE спроектирован как более децентрализованная альтернатива другим ретрансляционным сетям, например Fast Relay Network.
Ключевая особенность FIBRE в том, что он разработан как дополнение для ядра биткойна, поэтому каждый, кто управляет узлом, имеет возможность настроить свою собственную сеть.
Стоит отметить, что в 2018 году, была найдена и исправлена уязвимость в Bitcoin Core, которая позволяла нарушить работу 90% нод и нарушить ограничение на максимальное количество биткоинов в обращении. Встроенный в сеть Bitcoin Core алгоритм The Fast Internet Bitcoin Relay Engine (FIBRE) мог облегчить работу при использовании уязвимости.
#Mining
FIBRE - Протокол для ретрансляции блоков
Для стека биткоина
⬇️⬇️⬇️
FIBRE (Fast Internet Bitcoin Relay Engine - высокоскоростная ретрансляция блоков на базе сети Интернет) - это расширение для Bitcoin Core, которое обеспечивает ретрансляцию блоков с высокой скоростью и ручным выбором равноправных узлов по UDP.
UDP – это транспортный протокол, передающий сообщения без необходимости установки соединения в IP-сети. Его можно считать оптимальным протоколом для приложений, которые рассчитаны на широкую пропускную способность и быстрый обмен.
Биткойн - это одноранговая сеть, где узлы соединяются друг с другом случайным образом. Транзакции и блоки по этой сети передаются всем узлам. Пока все узлы получат информацию о блоке или транзакции должно пройти время. Тут то и проблема...Майнеры тратят некоторое количество времени на майнинг поверх старых блоков, когда сеть уже выбрала последний блок. Информация об этом, еще не дошла до всех узлов.
FIBRE решает проблему скорости распространения блоков.
Информация о блоках между узлами передается пакетами (порциями). Узел в сети получает каждый пакет и восстанавливает блоки из данных в этих пакетах и снова отправляет другим узлам, и снова в разных пакетах. Тут есть проблема: эти пакеты могут теряться и узлам необходимо повторно передавать данные, а это влияет на скорость передачи.
Основным улучшением в FIBRE является переход от использования TCP к использованию UDP с прямой коррекцией ошибок (FEC). В чем разница между TCP и UDP?
В отличие от TCP, скорость передачи UDP предварительно закодирована (предопределена), поэтому нет медленного времени нарастания или ожидания потерянных пакетов.
FEC (Forward Error Correction) - техника помехоустойчивого кодирования и декодирования, позволяющая исправлять ошибки методом упреждения. Применяется для исправления сбоев и ошибок при передаче данных путём передачи избыточной служебной информации, на основе которой может быть восстановлено первоначальное содержание.
Использование FEC позволяет узлам восстанавливать передаваемые данные, даже если некоторые из них потерялись в пути. Дополнительные данные посылаются вдоль ретранслируемых блоков, так что принимающий узел может восстановить полные блоки, без контакта с отправляющим узлом.
FIBRE спроектирован как более децентрализованная альтернатива другим ретрансляционным сетям, например Fast Relay Network.
Ключевая особенность FIBRE в том, что он разработан как дополнение для ядра биткойна, поэтому каждый, кто управляет узлом, имеет возможность настроить свою собственную сеть.
Стоит отметить, что в 2018 году, была найдена и исправлена уязвимость в Bitcoin Core, которая позволяла нарушить работу 90% нод и нарушить ограничение на максимальное количество биткоинов в обращении. Встроенный в сеть Bitcoin Core алгоритм The Fast Internet Bitcoin Relay Engine (FIBRE) мог облегчить работу при использовании уязвимости.
#Mining
✅✅✅
Mining Derivatives - контракты на биткойн-хэшрейт.
Для стека биткоина
⬇️⬇️⬇️
Деривативы - это производные финансовые инструменты. Производные они, потому что сами по себе они ничего не стоят, поэтому их стоимость определяется ценой базового актива. Базовым активом может быть что угодно: долговые обязательства, валюты, ценные бумаги, или как в нашем случае, биткойн-хэшрейт.
Деривативы предназначены для спекуляций и хэджирования рисков. Если с первым все довольно понятно, то вот с хэджированием думаю стоит разобраться...
Хеджирование - открытие сделок на одном рынке для компенсации воздействия ценовых рисков равной, но противоположной позиции на другом рынке.
В статье "Hedging mining difficulty", Tamas Blummer провел исследование расчета и хэджирования сложности майнинга.
Оценивая скорость увеличения сложности невозможно точно определить влияние изменений сложности на добычу на более длительный срок. Более точный эффект корректировки сложности можно рассчитать наблюдая за совокупной работой, требуемой сетью. А фактическая производительность майнера пропорциональна той доле работы, которую он смог выполнить из общего количества требуемых сетью.
Чтобы немного больше погрузиться в тему хэшрейта и его влияния на цену BTC, рекомендую к прочтению статьи автора канала t.me/gfoundinshit.
Ну а теперь собственно к хэджированию...
Майнер хочет перестраховаться от более сильного (чем ожидалось) увеличения сложности. Есть спекулянт который хочет взять другую сторону этой ставки. В итоге, они создают две транзакции:
1-ая транзакция - майнер и спекулянт вносят средства для совместного депонирования (multisig). Спекулянт вносит X BTC, а майнер <X BTC, и они оба согласны в справедливости цены страховки.
2-ая транзакция блокируется и не вносится в блокчейн установленный контрактом срок. По истечении времени одна из сторон получает сумму условного депонирования в зависимости от увеличения сложности на момент разблокировки контракта.
Такой способ создает полностью обеспеченную ставку, без третей стороны или оракула.
Проект позволяющий спекулировать на хэшрейте BTC, для хэджирования от волатильности цен сейчас в AlphaTest.
PowSwap - это метод торговли производными хешрейта биткойна, использующий протокол Биткойна в качестве оракула, таким образом, не полагаясь на доверенных третьих лиц.
Разработчик Powswap Jeremy Rubin объявил о запуске проекта в ноябре 2019 года.
"Это смарт-контракт/платформа для торговли деривативами Биткойн-хешрейта. Без посредников. Никаких оракулов. Никаких депозитов. Ничего, кроме Биткойна.”
Powswap работает на Bitcoin Core и не требует софтфорка. Базовый протокол не требует участия других сторон. Это некастодиальная, не требующая доверия платформа производных хэшрейта.
Используя смарт-контракты, powswap автоматически обнаруживает изменения в хешрейте биткойна и производит выплаты контрактов на этой основе. Протокол Powswap является гибкой основой для экзотических контрактов хешрейта.
Платформа ретранслирует заказы через доску объявлений доступных предложений и берет небольшую комиссию за ретрансляцию заказов. Контракты могут обновляться без взаимодействия по цепочке, что позволяет договаривающимся сторонам пересматривать контракты по мере корректировки рыночных прогнозов.
Сложность возникает лишь в том, будут ли стороны согласны заключать предложенные ставки...Ведь такой вид деривативов весьма специфичен
В апреле 2017 года CME Group опубликовали патент на создание платформы для майнеров BTC, позволяющую хэджировать операционные риски.
В декабре 2019 года компания Canaan в партнерстве с маркет-мейкером GSR и Interhash создала концепцию, позволяющую майнерам хеджировать свои риски. (Ссылка)
В чем же основные отличия?
Powswap - это децентрализованная платформа, что определенно большой плюс для нее...
#Mining
Mining Derivatives - контракты на биткойн-хэшрейт.
Для стека биткоина
⬇️⬇️⬇️
Деривативы - это производные финансовые инструменты. Производные они, потому что сами по себе они ничего не стоят, поэтому их стоимость определяется ценой базового актива. Базовым активом может быть что угодно: долговые обязательства, валюты, ценные бумаги, или как в нашем случае, биткойн-хэшрейт.
Деривативы предназначены для спекуляций и хэджирования рисков. Если с первым все довольно понятно, то вот с хэджированием думаю стоит разобраться...
Хеджирование - открытие сделок на одном рынке для компенсации воздействия ценовых рисков равной, но противоположной позиции на другом рынке.
В статье "Hedging mining difficulty", Tamas Blummer провел исследование расчета и хэджирования сложности майнинга.
Оценивая скорость увеличения сложности невозможно точно определить влияние изменений сложности на добычу на более длительный срок. Более точный эффект корректировки сложности можно рассчитать наблюдая за совокупной работой, требуемой сетью. А фактическая производительность майнера пропорциональна той доле работы, которую он смог выполнить из общего количества требуемых сетью.
Чтобы немного больше погрузиться в тему хэшрейта и его влияния на цену BTC, рекомендую к прочтению статьи автора канала t.me/gfoundinshit.
Ну а теперь собственно к хэджированию...
Майнер хочет перестраховаться от более сильного (чем ожидалось) увеличения сложности. Есть спекулянт который хочет взять другую сторону этой ставки. В итоге, они создают две транзакции:
1-ая транзакция - майнер и спекулянт вносят средства для совместного депонирования (multisig). Спекулянт вносит X BTC, а майнер <X BTC, и они оба согласны в справедливости цены страховки.
2-ая транзакция блокируется и не вносится в блокчейн установленный контрактом срок. По истечении времени одна из сторон получает сумму условного депонирования в зависимости от увеличения сложности на момент разблокировки контракта.
Такой способ создает полностью обеспеченную ставку, без третей стороны или оракула.
Проект позволяющий спекулировать на хэшрейте BTC, для хэджирования от волатильности цен сейчас в AlphaTest.
PowSwap - это метод торговли производными хешрейта биткойна, использующий протокол Биткойна в качестве оракула, таким образом, не полагаясь на доверенных третьих лиц.
Разработчик Powswap Jeremy Rubin объявил о запуске проекта в ноябре 2019 года.
"Это смарт-контракт/платформа для торговли деривативами Биткойн-хешрейта. Без посредников. Никаких оракулов. Никаких депозитов. Ничего, кроме Биткойна.”
Powswap работает на Bitcoin Core и не требует софтфорка. Базовый протокол не требует участия других сторон. Это некастодиальная, не требующая доверия платформа производных хэшрейта.
Используя смарт-контракты, powswap автоматически обнаруживает изменения в хешрейте биткойна и производит выплаты контрактов на этой основе. Протокол Powswap является гибкой основой для экзотических контрактов хешрейта.
Платформа ретранслирует заказы через доску объявлений доступных предложений и берет небольшую комиссию за ретрансляцию заказов. Контракты могут обновляться без взаимодействия по цепочке, что позволяет договаривающимся сторонам пересматривать контракты по мере корректировки рыночных прогнозов.
Сложность возникает лишь в том, будут ли стороны согласны заключать предложенные ставки...Ведь такой вид деривативов весьма специфичен
В апреле 2017 года CME Group опубликовали патент на создание платформы для майнеров BTC, позволяющую хэджировать операционные риски.
В декабре 2019 года компания Canaan в партнерстве с маркет-мейкером GSR и Interhash создала концепцию, позволяющую майнерам хеджировать свои риски. (Ссылка)
В чем же основные отличия?
Powswap - это децентрализованная платформа, что определенно большой плюс для нее...
#Mining
✅✅✅
BetterHash - альтернативный майнинг-протокол
Для стека биткоина
⬇️⬇️⬇️
Подробнее на эту тему не напишешь, поэтому, дабы избежать плагиата, ниже перевод статьи "BetterHash: Decentralizing Bitcoin Mining With New Hashing Protocols"
https://bitnovosti.com/2020/03/04/betterhash-detsentralizovannyj-majning-bitkojnov-s-novymi-protokolami-heshirovaniya/
#Mining
BetterHash - альтернативный майнинг-протокол
Для стека биткоина
⬇️⬇️⬇️
Подробнее на эту тему не напишешь, поэтому, дабы избежать плагиата, ниже перевод статьи "BetterHash: Decentralizing Bitcoin Mining With New Hashing Protocols"
https://bitnovosti.com/2020/03/04/betterhash-detsentralizovannyj-majning-bitkojnov-s-novymi-protokolami-heshirovaniya/
#Mining
✅✅✅
Stratum - объединенный протокол майнинга
Для стека биткоина
⬇️⬇️⬇️
До конца 2012 года для майнинга использовался протокол "getwork". После, в середине 2012 года, разработан новый децентрализованный протокол майнинга BTC "getblocktemplate".
Оригинальный протокол getwork был заменен, так как просто выдавал заголовки блоков для решения. Майнер понятия не имел, что находится в блоке и никак не влиял на него. Майнер мог решать какие транзакции принимаются и передавать их оператору пула, а тот в свою очередь, мог использовать мощности всех майнеров для атак с двойной тратой и др.
Протокол "getblocktemplate" позволил перемещать создание блоков в майнер, предоставляя пулам возможность устанавливать правила участия. Это повысило безопасность сети за счет повторной децентрализации блоков.
"Getwork" предоставлял только один заголовок блока, которого достаточно для общей сложности около 4 GH. Майнер отправлял пулу запросы getwork уже начиная от 4GH, что не позволяло подключать к пулу большие мощности. "Getblocktemplate" снизил нагрузку, необходимую для одного запроса на новый блок в сети.
С помощью "getwork", заголовок блока передавался с сервера на клиент без каких-либо транзакций. Единственный способ изменить блок можно было через значение nonce. Максимум, что мог сделать клиент, - это попробовать все значения nonce, требующие дополнительной работы от сервера. Плюс ко всему "getwork" был несовместим с расширениями.
Протокол Stratum был представлен основателем SlushPool Марек Палатинусом. Stratum на тот момент, был более стабилен, меньше нагружал сеть и решал проблемы безопасности и роста сети. Он явился заменой сетевых серверов пула и позволил клиентам генерировать работу.
Сегодня, Stratum используется при майнинге криптовалют на алгоритме PoW. Изначально же он разрабатывался для light биткоин-клиента Electrum. Как оказалось, требования протокола схожи и для майнинга BTC и его начали использовать как сеть.
Stratum-это линейный протокол, использующий TCP socket, с полезной нагрузкой, закодированной в виде сообщений JSON-RPC. Такое решение, позволяет клиенту и серверу общаться в удобно-читаемом формате. Этот протокол легко расширяется и не нарушает обратной совместимости.
Stratum решал ситуацию с HTTP, где клиенты запрашивали у сервера определенный контент. Т.е. в майнинге HTTP управляется майнерами, запрашивающими новые задания для майнинга, доступные для серверов пула. Майнеры тратили время на эти запросы. Stratum позволил более эффективно управлять коммуникацией майнеров и пула.
Для каждого задания майнер может изменять поля ntime и nonce. Крупные майнеры перебирают все возможные значения двух полей в поисках решения. Если у майнера заканчиваются уникальные возможности перебора, он отправляет новый запрос. Новым и более быстрым майнерам сделать это проще. Stratum позволяет майнерам изменять еще несколько полей, что увеличивает общее число возможных решений для блока.
nonce-это 32-битное значение, которое корректируется постепенно и используется для повторного хэширования хэшированного блока до тех пор, пока хэш-выход не будет соответствовать текущим ограничениям уровня сложности сети, сигнализируя о том, что было найдено допустимое решение, и майнер может затем предложить свой блок остальной части сети.
nTime - это целочисленная временная метка (в секундах), включенная в заголовок блока. Rolling NTime-это способ для майнеров увеличить отметку времени локально в своем оборудовании, а не требовать каждый раз новый заголовок блока из своего пула, уменьшая объем передачи данных, которые должны происходить между пулами и майнерами.
Уже все наслышаны о v.2 протокола Stratum. Новая модификация протокола предназначена для улучшения совместной работы майнеров и пулов. И самое важно, версия 2.0. сделает добычу более децентрализованной.
Более подробно затрону Stratum при разборе v.2.0.
#Mining
Stratum - объединенный протокол майнинга
Для стека биткоина
⬇️⬇️⬇️
До конца 2012 года для майнинга использовался протокол "getwork". После, в середине 2012 года, разработан новый децентрализованный протокол майнинга BTC "getblocktemplate".
Оригинальный протокол getwork был заменен, так как просто выдавал заголовки блоков для решения. Майнер понятия не имел, что находится в блоке и никак не влиял на него. Майнер мог решать какие транзакции принимаются и передавать их оператору пула, а тот в свою очередь, мог использовать мощности всех майнеров для атак с двойной тратой и др.
Протокол "getblocktemplate" позволил перемещать создание блоков в майнер, предоставляя пулам возможность устанавливать правила участия. Это повысило безопасность сети за счет повторной децентрализации блоков.
"Getwork" предоставлял только один заголовок блока, которого достаточно для общей сложности около 4 GH. Майнер отправлял пулу запросы getwork уже начиная от 4GH, что не позволяло подключать к пулу большие мощности. "Getblocktemplate" снизил нагрузку, необходимую для одного запроса на новый блок в сети.
С помощью "getwork", заголовок блока передавался с сервера на клиент без каких-либо транзакций. Единственный способ изменить блок можно было через значение nonce. Максимум, что мог сделать клиент, - это попробовать все значения nonce, требующие дополнительной работы от сервера. Плюс ко всему "getwork" был несовместим с расширениями.
Протокол Stratum был представлен основателем SlushPool Марек Палатинусом. Stratum на тот момент, был более стабилен, меньше нагружал сеть и решал проблемы безопасности и роста сети. Он явился заменой сетевых серверов пула и позволил клиентам генерировать работу.
Сегодня, Stratum используется при майнинге криптовалют на алгоритме PoW. Изначально же он разрабатывался для light биткоин-клиента Electrum. Как оказалось, требования протокола схожи и для майнинга BTC и его начали использовать как сеть.
Stratum-это линейный протокол, использующий TCP socket, с полезной нагрузкой, закодированной в виде сообщений JSON-RPC. Такое решение, позволяет клиенту и серверу общаться в удобно-читаемом формате. Этот протокол легко расширяется и не нарушает обратной совместимости.
Stratum решал ситуацию с HTTP, где клиенты запрашивали у сервера определенный контент. Т.е. в майнинге HTTP управляется майнерами, запрашивающими новые задания для майнинга, доступные для серверов пула. Майнеры тратили время на эти запросы. Stratum позволил более эффективно управлять коммуникацией майнеров и пула.
Для каждого задания майнер может изменять поля ntime и nonce. Крупные майнеры перебирают все возможные значения двух полей в поисках решения. Если у майнера заканчиваются уникальные возможности перебора, он отправляет новый запрос. Новым и более быстрым майнерам сделать это проще. Stratum позволяет майнерам изменять еще несколько полей, что увеличивает общее число возможных решений для блока.
nonce-это 32-битное значение, которое корректируется постепенно и используется для повторного хэширования хэшированного блока до тех пор, пока хэш-выход не будет соответствовать текущим ограничениям уровня сложности сети, сигнализируя о том, что было найдено допустимое решение, и майнер может затем предложить свой блок остальной части сети.
nTime - это целочисленная временная метка (в секундах), включенная в заголовок блока. Rolling NTime-это способ для майнеров увеличить отметку времени локально в своем оборудовании, а не требовать каждый раз новый заголовок блока из своего пула, уменьшая объем передачи данных, которые должны происходить между пулами и майнерами.
Уже все наслышаны о v.2 протокола Stratum. Новая модификация протокола предназначена для улучшения совместной работы майнеров и пулов. И самое важно, версия 2.0. сделает добычу более децентрализованной.
Более подробно затрону Stratum при разборе v.2.0.
#Mining
✅✅✅
Спецификация протокола Stratum V2
Для стека биткоина
⬇️⬇️⬇️
Предыдущие посты о протоколах майнинга: Stratum V1 и BetterHash. Stratum V2 - это объединение этих двух решений для повышения децентрализации майнинга.
Stratum V1, разработанный SlushPool 7 лет назад, используется почти всеми майнинговыми пулами. С ростом сети, изъяны, которые никуда не делись, стали представлять угрозу для экосистемы Биткойна:
Транзакции, входящие в блоки, не отправляются майнерам. Оператор пула решает какие из них будут включены в блок. Оператор пула отвечает за распределение вознаграждений. Так же оператор пула может заблокировать определенные обновления протокола, так как имеет возможность выбирать версию блока.
Майнинг в соло имеет проблему, связанную с неравномерным распределением наград. Если обратиться к статистике, то 3-4 пула, контролируют 50% хэшрейта сети и могут выбирать транзакции, которые будут включены в блоки.
Коротко о майнинге в пуле:
Майнер в пуле подключает свои вычислительные мощности к серверу пула, к которому подключены остальные майнеры пула. Каждый из них передает свои вычислительные мощности пулу и объединив их вместе, пул ищет блок транзакций. При успешном хэшировании, пул получает вознаграждение и делит между участниками сети.
Пул состоит из n-го количества майнеров и каждый пытается найти решение для блока. Майнеры запрашивают у оператора пула частичный “шаблон блока" (“block template”). Это неполный блок Биткойна, без доказательства работы. В процессе поиска майнеры отправляют свои решения (Share, Шары) оператору пула и тот проверяет правильность решения.
Новая версия позволит майнерам добывать собственные блоки, вместо предлагаемых пулом. Также Stratum V2 использует решение "Job Negotiation", дающее майнерам возможность выбирать транзакции включаемые в блоки. Вместо того чтобы оператор пула отправлял шаблон блока майнеру (“block template”), майнер отправляет шаблон блока оператору пула. Такое решение позволяет майнерам самим выбирать транзакции и версию блока.
Stratum V1 основан на JSON и не имеет криптографической аутентификации, что делает его более медленным, тяжелым и менее безопасным. Связь Stratum V2 осуществляется в двоичном коде.
Stratum V2 повышает передачу данных между майнерами, прокси-серверами и операторами пулов, что повышает пропускную способность сети.
\\\
Stratum V1 имеет проблемы с безопасностью, так как уязвима для атак MITM (Человек посередине), что позволяет перехватывать хэшрейт и присваивать награду третей стороне. Изображение
Такая атака возможна так как нет никакой криптографической аутентификации данных, для проверки того, что компьютер майнера действительно связан с компьютером оператора пула, и только с ним.
Новая версия протокола использует режим блочного шифрования - AEAD для устранения этой уязвимости. Операторы пула криптографически подписывают шаблоны частичных блоков. Если майнер знает открытый ключ оператора пула, он может проверить, что шаблон частичного блока поставляется с действительной подписью и, следовательно, действительно предоставляется оператором.
Еще больше об изменениях в протоколе здесь
stratumprotocol.org
Video about Stratum V2 by ChicoCrypto
#Mining
Спецификация протокола Stratum V2
Для стека биткоина
⬇️⬇️⬇️
Предыдущие посты о протоколах майнинга: Stratum V1 и BetterHash. Stratum V2 - это объединение этих двух решений для повышения децентрализации майнинга.
Stratum V1, разработанный SlushPool 7 лет назад, используется почти всеми майнинговыми пулами. С ростом сети, изъяны, которые никуда не делись, стали представлять угрозу для экосистемы Биткойна:
Транзакции, входящие в блоки, не отправляются майнерам. Оператор пула решает какие из них будут включены в блок. Оператор пула отвечает за распределение вознаграждений. Так же оператор пула может заблокировать определенные обновления протокола, так как имеет возможность выбирать версию блока.
Майнинг в соло имеет проблему, связанную с неравномерным распределением наград. Если обратиться к статистике, то 3-4 пула, контролируют 50% хэшрейта сети и могут выбирать транзакции, которые будут включены в блоки.
Коротко о майнинге в пуле:
Майнер в пуле подключает свои вычислительные мощности к серверу пула, к которому подключены остальные майнеры пула. Каждый из них передает свои вычислительные мощности пулу и объединив их вместе, пул ищет блок транзакций. При успешном хэшировании, пул получает вознаграждение и делит между участниками сети.
Пул состоит из n-го количества майнеров и каждый пытается найти решение для блока. Майнеры запрашивают у оператора пула частичный “шаблон блока" (“block template”). Это неполный блок Биткойна, без доказательства работы. В процессе поиска майнеры отправляют свои решения (Share, Шары) оператору пула и тот проверяет правильность решения.
Новая версия позволит майнерам добывать собственные блоки, вместо предлагаемых пулом. Также Stratum V2 использует решение "Job Negotiation", дающее майнерам возможность выбирать транзакции включаемые в блоки. Вместо того чтобы оператор пула отправлял шаблон блока майнеру (“block template”), майнер отправляет шаблон блока оператору пула. Такое решение позволяет майнерам самим выбирать транзакции и версию блока.
Stratum V1 основан на JSON и не имеет криптографической аутентификации, что делает его более медленным, тяжелым и менее безопасным. Связь Stratum V2 осуществляется в двоичном коде.
Stratum V2 повышает передачу данных между майнерами, прокси-серверами и операторами пулов, что повышает пропускную способность сети.
\\\
Stratum V1 имеет проблемы с безопасностью, так как уязвима для атак MITM (Человек посередине), что позволяет перехватывать хэшрейт и присваивать награду третей стороне. Изображение
Такая атака возможна так как нет никакой криптографической аутентификации данных, для проверки того, что компьютер майнера действительно связан с компьютером оператора пула, и только с ним.
Новая версия протокола использует режим блочного шифрования - AEAD для устранения этой уязвимости. Операторы пула криптографически подписывают шаблоны частичных блоков. Если майнер знает открытый ключ оператора пула, он может проверить, что шаблон частичного блока поставляется с действительной подписью и, следовательно, действительно предоставляется оператором.
Еще больше об изменениях в протоколе здесь
stratumprotocol.org
Video about Stratum V2 by ChicoCrypto
#Mining