Что такое SegWit?

Что такое Segregated Witness (SegWit)?

Segregated Witness (SegWit) — обновление протокола сети Bitcoin, которое призвано решить проблему пластичности транзакций и увеличения пропускной способности сети. Аналогичные обновления реализованы и в других криптовалютах, таких как Litecoin, Vertcoin, DigiBye и Groestlcoin.

Обновление SegWit реализовывается путем софт-форка и позволяет сети работать в прежнем режиме. Тем не менее структура хранения данных в блоках и механизм проверки транзакций узлами претерпевают значительных изменений. После введения данного обновления подписи и сценарии в сети выделяются в отдельную структуру, именуемую Segregated Witness (перевод: отдельный свидетель), что позволяет блоку вместить больше транзакций.

Какие проблемы решает SegWit?

  • Проблема масштабируемости. В 2010 году, Сатоши Накамото, создатель Bitcoin ввел ограничение на размер блока в 1MB. Данное ограничение позволило улучшить совместимость узлов в сети и снизить эффективность DDOS-атак, но и привело к ограничению пропускной способности до 3-7 транзакций в секунду. Решение SegWit позволяет вместить большее количество транзакций в блок, и таким образом увеличить пропускную способность сети без увеличения размера блока.
  • Пластичность транзакций. Обычная структура транзакции в сети Bitcoin содержит криптографическую подпись, которая позволяет другим участникам сети проверить валидность данной транзакции. Транзакцию можно изменить, оставив ее действительной при определенных условиях. Поэтому в случае, когда модифицированная транзакция будет включена в блок раньше оригинальной и в дальнейшем окажется в более длинной ветке блокчейна, то оригинальная транзакция будет отвергнута. Разработчики долгое время боролись с этой проблемой, но она не могла быть устранена полностью до введения SegWit.
  • Атака «Дней рождения». Адреса Bitcoin с мультиподписью используют алгоритм P2SH и защищаются с помощью HASH160 (SHA-256 внутри RIPEMD-160). Если злонамеренный пользователь обладает хотя бы 1 ключом из списка мультиподписей, то с учетом коллизии хеша он может снизить количество вариантов перебора до 280, что не является проблемой для современный вычислительных систем и может быть причиной для взлома. С обновлением SegWit для защиты мультиподписей используется алгоритм P2WSH, что усложняет перебор до 2128.

Преимущества

  • Данное обновление полностью совместимо с предыдущими версиями программного обеспечения и не требуют хард-форка.
  • Увеличивает масштабируемость благодаря большему количеству транзакций в блоке.
  • Снижает комиссионные сборы в сети.
  • Благодаря большему количеству транзакций в блоке, доход майнеров может быть увеличен.
  • Уменьшает время ожидания транзакций.
  • Увеличивает эффективность дополнительных решений, таких как смарт-контракты и Lightning Network.
  • Повышает надежность кошельков с мультиподписью.

Недостатки

  • Увеличивает нагрузку на узлы в сети.
  • Усложняет процесс проверки транзакций.
  • Из-за введения дополнительных решений могут быть снижены награды для майнеров.

Развитие SegWit

Запланированное обновление SegWit2x, в котором планировалось увеличение блока до 2MB, было отложено на неопределенное время из-за сложности достижения консенсуса между участниками сети. Тем не менее, благодаря SegWit стали доступны дополнительные надстройки, такие как Lightning Network.