Перейти к публикации
Alex03

Размер блока: Что нужно знать о грядущих изменениях в протоколе биткоина

Рекомендованные сообщения

(изменено)

080615_Blocksize1.jpg

 

На протяжении последнего года вы вероятно что-то слышали об интенсивном обсуждении текущего ограничения размера блока в блокчейне Bitcoin, а может и сами принимали в нем участие. Дискуссия в последнее время проходит все масштабнее и оживленнее, особенно после того, как около полугода назад главный разработчик кода Биткойна Гэвин Андресен обратился к сообществу с предложением увеличить максимальный размер блока, заложенный в алгоритм в данный момент. Давайте разберемся подробнее, о чем речь и попробуем понять, что ждет биткойн с технической стороны.

Что случилось?

 

Для начала обозначим некоторые ключевые моменты:

  • Сегодня майнеры добывают в среднем один блок каждые 10 минут;
  • В каждом блоке может храниться максимум 1 Мб данных;
  • Такое ограничение заложено в код биткойна, но пропускная способность сети этим не ограничивается;
  • В блок размером 1 Мб можно вместить данные примерно о 3-5 тысячах простых транзакций (между двумя кошельками с небольшим количеством входов и выходов), то есть сеть в данный момент пропускает в среднем 7 транзакций в секунду. Для сегодняшнего количества пользователей это не критично, но для будущего массового использования очень мало;
  • Количество транзакций, которые вмещаются в один блок, сокращается, во-первых, за счет многоадресных транзакций - например, рассылка пулами вознаграждения майнерам. А во-вторых, за счет того, что некоторые компании используют цепочку блоков биткойна для передачи данных или поддержания реестра (компания Factom, проект Counterparty, биржа Nasdaq). Именно о таком нефинансовом применении цепочки блоков в последнее время столько разговоров.

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

 

Неделю назад группа добровольных исследователей устроила «тест на стрессоустойчивость» сети путем «спама» цепочки блоков множеством транзакций на крохотные суммы, в результате которого на протяжении 8 часов каждый блок в сети был заполнен целиком, и большое количество транзакций, не уместившихся в блоки, остались неподтвержденным.

 

Также стоит отметить, что некоторые пользователи при переводе биткойнов умышленно увеличивают размер вознаграждения майнерам, чтобы их транзакция была приоритетной для подтверждения, то есть подтверждение обычных транзакций может происходить уже во втором, третьем и так далее блоках, а значит занимать по времени 20, 30 и даже больше минут (а иногда и пару часов). Конечно, разрабатываются различные программные решения, чтобы при оплате биткойном вам не приходилось стоять по полчаса на кассе в ожидании подтверждения, но технически все именно так, как описано выше, и с ростом масштабов использования биткойна такие задержки будут случаться все чаще и чаще.

 

Среди главных преимуществ биткойна все выделяют быстрые и дешевые переводы средств, но с текущим размером блока со временем не станет ни того, ни другого.

Зачем было ограничиваться всего 1 мегабайтом?

 

В 2010 году о биткойне написали на популярном айтишном сайте Slashdot.org, благодаря чему на едва появившуюся технологию обратило внимание множество пользователей. Однако среди них оказались и не самые добропорядочные, и сеть биткойна начала подвергаться многочисленным атакам. Создатель биткойна Сатоши Накамото и другие разработчики из сообщества быстро на это среагировали и внесли несколько поправок в протокол, чтобы сделать его более устойчивым. Одной из этих поправок как раз стало решение установить предел размера блока в 1 Мб.

Гэвин Андресен так описывает те события:

 

В 2010 году, когда о биткойне впервые написал Slashdot и курс биткойна начал расти, Сатоши применил несколько быстрых решений для защиты от разного рода DOS-атак. Одним из них стало уменьшение предельного размера блока до одного мегабайта. 

 

До этого ограничения не было, но в действительности размер блока не мог превышать 32 Мб – максимального размера сообщения в протоколе p2p. С самого начала подразумевалось, что предел размера блока нужно будет повышать, когда для обработки всего объема транзакций будет необходимость в больших блоках.

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

 

В то время объем транзакций был очень мал и считалось, что 1 Мб хватит как для защиты сети, так и для резервного пространства для будущего роста объемов транзакций, прежде чем масштабы сети будут увеличены. Тем не менее, до недавнего времени разработчики откладывали вопрос масштабирования. Если для традиционного финансового ПО отсутствие глобальных изменений скорее может быть плюсом, то в случае с биткойном - по-настоящему сдерживает его потенциал.

 

Один из ведущих разработчиков Майк Херн опубликовал письмо от Сатоши конца 2010 года, в котором он рассуждал о размере блока.

Вот его фрагмент:

 

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

 

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


Увеличиваем размер блока. Как быть?

 

Прежде всего, изменение протокола биткойна таких масштабов требует так называемого "хардфорка", то есть внесения изменений в существующий код биткойна, с которыми вынуждены будут согласиться большинство пользователей сети, или, как минимум, основные майнеры и биржи. Пока уже на протяжении трех лет разработчики спорят о том, как именно модифицировать код, время идет и сеть постоянно растет. Чем дальше, тем сложнее становится «безболезненно» вносить изменения. Именно поэтому важно остановиться на таком решении, которое в будущем не потребует еще одного хардфорка.

 

080615_Blocksize2.jpg

 

Изначально Гэвин Андресен предложил такое решение, которое потребовало бы хардфока лишь один раз - с автоматическим увеличением размера блока в заданные временные интервалы. Однако, его предложение было встречено шквалом критики как от других разработчиков, так и от многих участников сообщества, в следствие чего он согласился на компромиссное временное решение.

 

Сейчас он предлагает увеличить размер блока до 20 Мб в качестве временной меры, чтобы дать разработчикам больше времени для поиска окончательного решения. Тем не менее, и такое предложение было встречено критически некоторыми разработчиками и биржами, в частности китайскими BTCChina и Huobi. Часть из них уже согласны на менее значительное увеличение максимального размера блока - возможно до 8, а не 20 Мб.

 

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

 

Также не забывайте, что для майнеров более выгодны маленькие блоки, так как они быстрее распространяются в сети, а значит, у майнера (пула) будет больше шансов стать тем, кто «добудет» блок и получит вознаграждение. Поэтому, скорее всего, майнеры также будут предлагать собственные размеры блока или модифицировать собственные клиенты Bitcoin, с учетом соотношения своих рисков и прибылей.

Нужно ли начинать паниковать?

 

Конечно, нет. А также не стоит особо беспокоиться насчет последствий хардфорка, ведь так или иначе решения об изменениях будут приниматься в условиях открытого рынка. То, что сообщество участвует в обсуждении, является важным аспектом любого проекта с открытым исходным кодом, и так или иначе, окончательное решение будет приниматься большинством участников сети. Внесение изменений сейчас запланировано на март 2016 года.

Источник

 

Meow

Изменено пользователем Tomcat_MkII

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Alex03, если уж берете текст целиком, форматируйте хоть немного, читать невозможно слипшийся текст. Кстати немного еще подредактировали пару абзацев, уточнили пару вещей http://coinspot.io/news/breaking-news/chto-nuzhno-znat-ob-izmeneniyah-v-protokole-bitcoina/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доработал текст, ибо материал шикарный, но были некоторые неточности.

 

@CoinSpot, на форуме возможности форматирования ограничены, что имеем то имеем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доработал текст, ибо материал шикарный, но были некоторые неточности.

 

@CoinSpot, на форуме возможности форматирования ограничены, что имеем то имеем.

Спасибо, старались именно, чтобы всё было понятно и доступно всем, кто хоть что-то знает о биткоине. Насчет неточностей, видимо про майнеров, нам про это тоже писали в комментах на сайте.

 

Имелось в виду, что у майнеров есть стимул генерировать блоки меньшего размера, так как они быстрее публикуются в сети, давая им больший шанс получить награду. Если блок публикуется с задержкой, другой майнер, чей блок будет опубликован быстрее, получит награду. Поэтому даже при общем согласии на увеличение размера блока, майнеры, вероятно, также будут предлагать собственные размеры блока, с учетом соотношения своих рисков и прибылей. Но это конечно далеко не основной фактор, просто решили на это обратить внимание.

 

Текущего форматирования более чем достаточно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Насчет неточностей, видимо про майнеров, нам про это тоже писали в комментах на сайте.

В основном о предпосылках в начале статьи.

 

 

 

майнеры, вероятно, также будут предлагать собственные размеры блока,

Крупные пулы наверняка имеют клиенты собственной разработки, то есть в теории могут сами установить лимит набора транзакций в блок, не связанный с лимитом протокола. Это потребует много дополнительной возни, но вполне осуществимо. Китайсы (Discus Fish) в свое время были неоднократно замечены в генерации вообще пустых блоков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Меняли же с 400кб на 1Мб размер блока пару лет назад, или мне приснилось)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×