Segregated Witness (SegWit)

 

 

Что такое SegWit?

Segregated Witness (отделённый свидетель — рус.) — это обновление протокола Биткоина, призванное решить проблему пропускной способности сети. SegWit был активирован 24 августа 2017 года и был принят после признания 95 % майнеров. Является софтфорком, то есть таким изменением протокола, при котором узлы, не принявшие новые правила игры, продолжают оставаться участниками сети, в отличие от хардфорка.

Зачем ввели SegWit?

В протоколе Биткоина установлено жёсткое ограничение размера блока в 1 мегабайт. Это правило ввёл Сатоши Накамото в 2010 году. Первоначально размер блока был равен 32 мегабайтам. С данным ограничением сеть максимально могла проводить не более 7 транзакций в секунду без создания «завала».

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

 

 

В это же время активизировались сторонники немедленного увеличения размера блока. Одновременность этих событий говорит о возможной их причастности к организации атак на сеть. В итоге они создали свой хардфорк под названием Bitcoin Cash с размером блока 8 Мб. Сеть Биткоина разделилась на две ветви и каждая пошла своей дорогой.  Но сейчас речь не об этом.

Что делает SegWit?

Упрощённая суть Segwit довольно проста. Обычная транзакция содержит в себе цифровую подпись владельца монет, генерируемую с помощью приватного ключа. Она подтверждает валидность перевода монет. Каждой транзакции соответствует свой хэш. Подписи занимали более половины данных внутри блока. С помощью обновления подпись выносится за пределы блока, что значительно увеличивает количество свободного места внутри. При этом данные Segregated witness сжимаются на 75 %, обеспечивая солидную прибавку места.

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

Таким образом реализация протокола Segregated Witness позволила решить на время вопрос недостатка места в блоке, а также увеличить безопасность сети. Но одним сегвитом не обойтись. Когда-нибудь место в блоках закончится опять. Необходимо будет реализовать Lightning Network — принципиально новое решение вопроса свободного места.