Как в Monero победили болезнь размера блоков, поразившую Bitcoin

TheFuzzStone
XMR.RU
Published in
4 min readOct 5, 2020

Динамические блоки

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

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

Размер блока Bitcoin ограничен, а это означает, что, как только в блок будет включено достаточное количество транзакций, любые дополнительные транзакции должны будут ждать в очереди для включения в следующий блок. Подходящей аналогией в данном случае будет поезд. Поезд подъезжает к станции, и те, кто стоял в очереди, заходят в вагоны. Как только поезд заполнится, всем, кто останется снаружи, придётся ждать следующего.

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

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

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

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

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

В Monero предвидели такую ситуацию и решили найти иное решение. Таким образом, разработчиками Monero был реализован динамический размер блоков.

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

Идея может показаться довольно очевидной, и тогда возникает вопрос: почему Monero является единственной криптовалютой, реализовавшей такой механизм? Почему то же самое не сделает Bitcoin, навсегда решив вопрос производительности?

К сожалению, это невозможно. На то есть несколько причин, и мы постараемся максимально понятно всё объяснить.

Майнер всегда заинтересован в том, чтобы размер блока был большим. Чем больше блок, тем больше транзакций он вмещает и тем больше можно заработать на комиссиях, а также на вознаграждениях за вычисление блоков. Потенциально это может привести к спам-атакам, если кто-то решит отправить множество небольших транзакций с небольшой комиссией, чтобы раздуть блокчейн. Майнеры просто увеличат размер блока, чтобы включить все такие транзакции, потому что деньги есть деньги, какими бы маленькими они ни были. Это бы постепенно привело к тому, что размер блоков был бы постоянно большим, а экономическая выгода довольно скромной. Bitcoin решает эту проблему, искусственно ограничивая размер блока и тем самым создавая рынок комиссий. Злоумышленникам, проводящим спам-атаки, придётся платить другим пользователям комиссии, которые будут уже далеко не маленькими. Но это также означает, что блоки заполняются, и некоторым транзакциям приходится ожидать в очереди, как говорилось выше.

Так как же тогда у Monero получается использовать динамический размер блоков и избегать при этом спам-атак? Ответ одновременно прост и рационален. Если размер блока превышает нормальное значение, на вознаграждение за вычисление блока налагается штраф. Если майнер желает увеличить размер блока, вознаграждение, которое он получит за его вычисление, будет меньше, чем майнер получил бы в противном случае. Поэтому размер блока будет увеличен только в том случае, если размер комиссий, выплачиваемых за транзакцию, перевесит теряемую часть вознаграждения. Например, если майнер теряет 0,5 XMR из-за увеличения размера блока, а сумма получаемых им с транзакций комиссий составляет 0,4 XMR, то при таком увеличении размера блока в совокупности он теряет 0,1 XMR, так что он не станет делать этого. И наоборот, если сумма комиссий будет составлять 0,7 XMR, то чистая выручка майнера составит 0,2 XMR, даже несмотря на то, что в результате увеличения размера блока он потеряет 0,5 XMR в виде штрафа, который будет снят с вознаграждения. И во втором случае майнер, конечно же, превысит нормальный размер блока.

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

Источник

--

--

TheFuzzStone
XMR.RU

Privacy, crypto, Linux and FOSS enthusiast. Co-founder of: XMR.RU