Проблемы
Функционирование любой системы сопряжено с проблемами и багами, возникающими в процессе работы. Причинами их могут быть недоработки при проектировании или новые требования, выдвигаемые к ней пользователями.
Пока сеть Биткоин включала в себя немного пользователей и стоимость транзакции была небольшой, проблемы не ощущались очень остро. У разработчиков (Bitcoin Core) было достаточно времени на обнаружение и исправление недочетов. Шел процесс обсуждения, тестирования, ожидание консенсуса всех участников сети, и только потом вводились исправления в программное обеспечение.
С быстрым ростом стоимости BTC и количества участников сети обострились некоторые проблемы, которые были известны, а также возникли новые. Выяснилось, что ограничение на 3 -7 транзакций в секунду, зафиксированное в протоколе, является причиной перегрузки сети и вызывает рост комиссии за обработку транзакции. Вместо среднего значения записи блока в 10 минут иногда на это требовалось несколько часов, а стоимость обработки транзакции взлетала до 200 долларов США.
Такое состояние дел не устраивает ни пользователей, ни майнеров, да и разработчики также хотят исправить ситуацию. Образовалось два подхода к решению проблем: “консервативный” и “прогрессивный”.
Первые ратуют за постепенное изменение программного обеспечения, без затрагивания ядра и протокола, за сохранение принципа децентрализации и консенсуса. Они отвергают любые новшества, грозящие сети Биткоин потерей основ его построения.
Вторые настаивают на изменениях, которые быстро решат существующие проблемы и будут развивать сеть дальше. Они не отрицают ценности, заложенные в Биткоин, но их экономические интересы подталкивают к более радикальным решениям.
Данные разногласия ставят сеть Биткоин в трудное положение, которое угрожает основам ее существования.
Как уже говорилось выше, камнем преткновения стал размер блока и масштабируемость сети. Сейчас размер блока ограничен 1 Мб.
“Прогрессисты” предлагают незамедлительно увеличить размер блока, чтобы увеличить число транзакций, которые в него входят. Они предполагают, что за счет этого удастся сократить количество неподтвержденных транзакций и время ожидания на валидацию.
“Консерваторы” считают, что увеличение размера блока приведет к уменьшению скорости его перемещения от одного полного узла к другому и увеличению времени записи блока таким узлом. Они предполагают, что это еще больше нагрузит сеть и заставит пользователей искать более быстрые способы подтверждения транзакций. Самым эффективным из таких способов является использование центрального сервера. Они опасаются, что в результате возникнет ситуация, когда будет нарушен принцип децентрализованности сети и отсутствия единой точки отказа.
Форки
В технологии блокчейна заложен уникальный инструмент исправления проблем — он называется форком (разветвлением). Существуют два вида: “мягкий” (soft) и “жесткий” (hard).
Softfork предполагает сохранение консенсуса и правил работы протокола. Он вносит изменения, которые не затрагивают базовые принципы работы сети и не вызывает разделение блокчейна на две ветви. После его введения в одном и том же блокчейне продолжают работать и понимать друг друга узлы, которые приняли изменения и которые не приняли изменения. Транзакции, подтвержденные любым узлом в сети, считаются валидными и теми, и другими.
Hardfork, напротив, предназначен для радикальных изменений в протоколе, что неминуемо вызовет разделение сети на узлы, принявшие его, и те, что отказались от форка. Это происходит потому, что новые правила работы таковы, что “старые” узлы просто перестают их понимать и считать блоки, записанные “новыми” узлами достоверными. Блокчейн разделяется на две ветки, имеющие общее прошлое, но различное будущее.
Если при софтфорке основные уязвимости сети остаются те же (для Биткоина — “двойная трата”, “проблема 51%”), то при хардфорке появляются новые. Они связаны с новыми правилами и тем, что существует общая история с другим блокчейном. Хотя основная задача форков — устранить недостатки, идеальных систем не существует, и вместо старых, на передний план выходят другие.
Проблема, возникающая при разделении блокчейнов носит название “двойное воспроизведение”. Она основана на общем прошлом обоих блокчейнов, то есть существовании блоков и подписей транзакций, которые валидны в обоих ветвях. Может возникнуть такая ситуация, что владелец подписи остался только в одной ветви, где и совершает транзакции. В таком случае может найтись некто, кто использует его адрес и подпись в другой ветви. Как известно, при жестком форке у каждого участника сети образуется одинаковое количество коинов в каждом из блокчейнов, равное тому, что было на счету в момент разделения.
Например, у Полуэкта было 2 BTC в момент появления биткоин кеш. Но он остался в блокчейне Биткоина и там проводит все свои транзакции. Существует вероятность того, что кто-то (например, один из предыдущих получателей) повторит старую транзакцию в новом блокчейне, и отправит себе со счета Полуэкта некоторое количество BCH.
На самом деле такая транзакция в сети биткоин кеш невозможна, поскольку разработчики ввели дополнительную отметку, обозначающую, что транзакция действительна только в их блокчейне. Любая другая сеть отвергнет эту операцию.
А создатели протокола SegWit2x отказываются вносить подобные изменения в протокол, что вызывает ожесточенные споры в сообществе.
Новые технологии защиты
Опыт 2017 года показал, что основными способами защиты сети являются форки. Можно даже назвать этот год годом форков. В 2017 были осуществлены:
- SegWit;
- Bitcoin Cash;
- Bitcoin Gold;
- Bitcoin Silver;
- Bitcoin Diamond;
- Bitcoin God.
Те, кто хотят радикальных изменений и введения собственных правил, поддерживают хардфорк и уходят в будущее с новой монетой, новыми возможностями и проблемами.
Те, кто хочет придерживаться традиционных принципов Биткоина, но желает исправить возникшие в процессе работы сети в новых условиях недостатки, придерживаются софтфорков.
Именно таким изменением стало активированное 24 августа 2017 года Segregated Witness (Отдельный свидетель).
Одним из основных новшеств является вынос подписи отправителя из тела транзакции в специальный раздел, называемый SegWit. Это высвобождает около половины места в блоке для новых транзакций, оставляя размер самого блока прежним — 1 Мбайт. Тем самым при сохранении правил и консенсуса увеличивается пропускная способность сети.
Кроме этого, в данный раздел может записываться другая информация, не только подписи. Это устанавливает размер блока, примерно, в 1,8 Мбайт, при максимально возможном — 4 Мбайта.
Этот форк создает большие возможности для:
- оптимизации размера блока;
- масштабирования сети;
- скорости записи транзакций в блок;
- устранения атаки “гибкости транзакции”, когда существует возможность изменения ID транзакции до момента ее подтверждения;
- снижения комиссии за подтверждение транзакции.
Внедрение SegWit позволило использовать в блокчейне Биткоина дополнительное средство защиты — мультиподпись транзакций. Для большей безопасности операцию можно совершать с применением нескольких ключей, устанавливая правило их работы. Например можно указать, что транзакция считается действительной, если используются 3 из 4 ключей или 9 из 9.
Также Segregated Witness предоставляет большие возможности использования надстроек типа sidechain и Lightning Network.
Напомним, что сайдчейн позволяет “использовать” биткоины в блокчейне другой криптовалюты, например, для ускорения подписи транзакций или снижения комиссий.
Lightning Network позволяет создавать платежные каналы между пользователями, что значительно ускоряет процесс перевода средств. Эта возможность важна для тех, кто постоянно проводит транзакции друг с другом.
Другим, довольно нестандартным, методом защиты биткоина, в данном случае от высокой волатильности, явился запуск фьючерсов на биткоин на Чикагской бирже опционов и на Чикагской товарной бирже. Это позволит повысить ликвидность криптовалюты, снизить колебания цены и упростить предсказуемость ее движения. Говорить о реальных результатах еще рано ввиду недавности событий.
Заключение
Технологии защиты зависят от угроз, против которых они работают.
Наверное Сатоши Накамото не предполагал, что монету платежной системы Биткоин начнут использовать как средство спекуляции или для сохранения накоплений. Поэтому и не заложил в технологию средство защиты от волатильности. И здесь решение возникло как совпадение интересов биржевых игроков и пользователей блокчейна Биткоин.
Другие, более глубокие противоречия, были видны раньше, поэтому и готовились к ним заранее. Код Segregated Witness был опубликован в декабре 2015 года, как решение проблемы пластичности транзакций. Но его не могли принять больше полутора лет. Майнеров все устраивало в существующем положении дел. И лишь новые обстоятельства подтолкнули их сделать это.
Как часто бывает с хорошими решениями, они, устраняя один недостаток, попутно закрывают еще несколько. Так и произошло с SegWit.
То, что мы наблюдаем в отношении Биткоина, бурные дискуссии и изменения, говорит о том, что система жива и устойчива. Это внушает оптимизм всем ее пользователям.
Похожие публикации:
- Самые перспективные криптовалюты
- Самые перспективные криптовалюты в 2017 году
- Ответы на часто задаваемые вопросы о Bitcoin
- Все мифы о биткоин
- Чем обеспечен Bitcoin? Что его поддерживает? Что влияет на его рост и откат?
- Поздно ли покупать Биткоин?
- По каким вопросам BTC можно обратиться к юристу
- Значение децентрализации в жизни каждого из нас