Segregated Witness - софтфорк, снижающий транзакционные комиссии — статьи о криптовалюте и биткоинах для продвинутых
443

Segregated Witness - софтфорк, снижающий транзакционные комиссии

Segregated Witness - софтфорк, снижающий транзакционные комиссии title=

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

Segregated Witness

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

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

Какие проблемы призван решать SegWit

1. Проблема масштабируемости

В 2010 Сатоши Накамото ввёл ограничение на размер блока в 1 мегабайт. Ограничение позволило улучшить совместимость узлов сети, а также снизить эффективность DDoS-атак, но снизило максимальную пропускную способность сети до 3-7 транзакций в секунду. Именно это в дальнейшем оказало негативное влияние на способность сети к масштабированию. С ростом пользователей и количества переводов, стали расти и задержки — некоторые транзакции ожидали очереди несколько дней. Это также привело к росту комиссий за переводы (больше комиссия - быстрее перевод), что резко снизило привлекательность Биткойна для мелких платежей. Это так же противоречило смыслу Биткойна как быстрого, безопасного средства платежа с минимально возможной комиссией.

Предлагалось увеличить размер блока, что было реализовано в форках Биткойна, самым успешным оказался Bitcoin Cash.

2. Гибкость (пластичность) транзакции

Это вид атаки, который позволяет злоумышленнику изменить уникальный идентификатор транзакции биткоинов до её подтверждения в сети Bitcoin. При таком изменении и при соблюдении должных условий пользователь может сделать вид, что транзакция не была осуществлена. Любое небольшое изменение входных данных резко изменит хэш на выходе. А как известно, все транзакции хэшируются.

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

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

Если говорить простыми словами, подписью, которая идет вместе с входными данными, можно манипулировать. Это может изменить идентификатор транзакции. Например,  у вас есть набор блоков, который говорит «3 + 1 = 4», а затем кто-то приходит и меняет его на «2 + 2 = 4», результат все тот же в обоих случаях, но внутри все изменилось. Вот и тут так. Предположим, Рома хочет, чтобы Оля послала ему 3 BTC. Оля переводит их на публичный адрес Ромы, оправляет на подтверждение майнерам. Пока транзакция стоит в очереди, Рома использует транзакционную гибкость для изменения подписи Оли и изменения идентификатора транзакции.

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

Некоторое программное обеспечение (в частности то, что использовала биржа MT.Gox) проверяло поступление платежа по наличию хэша транзакции в блокчейне. Таким образом становится возможна данная атака: система не видит свою транзакцию и считает, что ее не было. 

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

Одним из самых известных примеров была атака на биржу Mt. Gox в 2014 году, с одной из крупнейших бирж было украдено 64 564 BTC. Сеть Bitcoin Cash подверглась масштабной атаке на гибкость транзакций вскоре после хард-форка.

Разработчики и раньше пытались решить эту проблему, но она так и не была полностью устранена до обновления SegWit.

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

Плюсы и минусы SegWit

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

•         Совместим с предыдущими версиями ПО;

•         Увеличивает количество транзакций в блоке;

•         Снижает комиссионные сборы;

•         За счёт количества транзакций в блоке, общие сборы майнеров могут увеличиться;

•         Уменьшает время ожидания в очереди;

•         Способствует масштабируемости Биткойна;

•         Устраняет гибкость (пластичность) транзакций;

•         Облегчает разработку и увеличивает эффективность и безопасность дополнительных надстроек (смарт-контракты, Lightning Network и т. д.);

•         Устраняет проблему квадратичного роста времени верификации транзакций

Недостатки

•         Увеличивает использование ресурсов узла сети;

•         Несколько усложняется проверка транзакций;

•         Дополнительная цепочка тоже требует обслуживания, в чём майнеры не особо заинтересованы. В сети Биткойн нет вознаграждения за верификацию транзакций (в отличие от Dash). Майнеров сдерживает только высокая вероятность майнинга ошибочных блоков при высокой концентрации облегченных клиентов (SPV-нод).

Что требовалось для активации Segregated Witness?

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

Итоги активации SegWit

В настоящее время удельный вес SegWit-транзакций в сети биткоина составляет примерно 30%. При этом средняя доля таких транзакций в блоке биткоина составляет около 22 %.

С момента имплементации Segregated Witness, объем SegWit-транзакций на 20,1 % превысил совокупное число транзакций, осуществленных в сети Bitcoin Cash (BCH). Напомним, что активация протокола Segregated Witness была осуществлена в том же месяце, что и хардфорк Bitcoin Cash. Последний продвигался его сторонниками как альтернатива решениям по масштабированию сети биткоина, предполагающая значительную экономию на транзакционных комиссиях.

В начале марта криптовалютные биржи Bitfinex, Kraken и Binance заявили, что благодаря имплементации SegWit площадкам удалось существенно снизить транзакционные комиссии. 1 марта биржа Bitfinex объявила о снижении комиссионных на 25 %, а Binance на 50 %.

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

 

Автор:

Дубко Елена

https://www.instagram.com/elenadubko/

 

Мы в социальных сетях:

https://aliencloud.xyz

https://www.facebook.com/AlienCloud.Company/

https://twitter.com/AlienCloudxyz

https://www.instagram.com/aliencloud.xyz

https://vk.com/aliencloud

https://t.me/AlienCloudRu

https://t.me/AlienCloudEng

Нашли ошибку в новости? Выделите ее и нажмите Ctrl+Enter.

Сообщите свою новость