Что такое масштабирование в криптовалюте
Перейти к содержимому

Что такое масштабирование в криптовалюте

  • автор:

Масштабируемость блокчейна, главная проблема нового времени

В блокчейне это можно рассматривать как обычный апдейт системы, когда увеличивается нагрузка, необходимо добавить мощность. Вы часто замечали, как работают разные сайты в интернете? какой-то очень быстро (гугл), а какой-то очень медленно (школьный сайт средней школы), так вот, такая же проблема может возникнуть и в блокчейне.

Именно блокчейн биткоина часто критикуют из-за его медлительности, дескать, им невозможно будет пользоваться в промышленных масштабах. Обычные платежные системы типа мастеркард или виза могут обрабатывать более 10 тысяч транзакций в секунду, а биткоин. как думаете, сколько? всего 3-7 ��

Да, согласен, как-то не очень звучит, а разговоров-то было. На деле обосрались все и даже ты, так получается? не совсем ��

Если вы и одновременно миллион человек на нашей планете захотят купить себе стакан кофе, ситуация более чем жизненная, они создадут минимум миллион транзакций, а скорость обработки 3-7 в секунду, и это я не беру в расчет другие ожидающие транзакции в сети, и что же мы получим? что транзакция за ваш кофе подтвердиться примерно в течении 3 дней, вы же явно не поставите комиссию в 2-3 раза превышающую стоимость кофе ��

Зачем тогда вообще нужна такая система? карточку виза приложил и через 5 секунд забрал свой кофе, иди рассказывай про свой биткоин в другое место.

А ведь действительно, чего я тут вам затираю. ах, да, деньги ведь на вашей банковской карте не ваши, а банка ��

Интересное решение этой ситуации напишу вам в следующем посте, схожу за кофе.

Подписывайся на мой тг, там посты выходят чаще — t.me/bullweb3

Layer-2 решения: что это?

Масштабирование второго уровня — это технология, которая работает поверх протокола блокчейна и повышает скорость и эффективность базового блокчейна. Вот как это работает в деталях.

Ключевые выводы

  • Термин «Уровень-1 (Layer-1)» означает сам блокчейн, а уровень-2 (Layer-2)- к сети, которая располагается поверх основного блокчейна.
  • Решения Layer-2 призваны решить проблему масштабируемости путем обработки транзакций вне основной сети.
  • Преимущества решений Layer-2 включают увеличение количества транзакций в секунду (TPS), снижение платы за газ, поддержание безопасности и сети, ориентированные на конкретные приложения.

Подписывайтесь на мой телеграм-канал. Там я публикую эксклюзивный контент и свои сделки!

Что такое решения масштабирования второго уровня (L2 solutions)?

С момента своего появления в 2013 году Ethereum стал катализатором огромного роста в индустрии блокчейна — от использования его в качестве валюты для транзакций (ETH) до использования его неизменности для ведения записей и криптографической защиты.

Но, как и многие другие блокчейны, Ethereum достиг своего предела в масштабируемости. По состоянию на лето 2022 года Ethereum обрабатывает примерно 500 000 транзакций в день, что соответствует 30 транзакциям в секунду. Для сравнения, платежная система Visa способна обрабатывать до 150 миллионов транзакций в день и 65 000 транзакций в секунду, что значительно превосходит возможности Ethereum.

На практике достижение пределов блокчейна приводит к перегрузке сети (когда на обработку транзакции может уйти несколько часов) и чрезвычайно высоким комиссиям за газ.

Появился второй уровень, иногда называемый уровнем связи данных (Data Link Layer). Это решение призвано решить проблему масштабируемости блокчейна путем обработки транзакций в сторонних сетях (side-chains) вместо основной сети Ethereum (Layer-1). Это не только снижает нагрузку на сеть, но и сохраняет стандарты безопасности и децентрализации основного блокчейна.

Блокчейн Layer-1 против блокчейн Layer-2

Layer-1 относится к самой распределенной базе данных — сети, которая объединяет все узлы блокчейна в единую систему с лежащими в ее основе механизмами консенсуса. Например, Layer-1 в Bitcoin — это сеть Bitcoin, а Layer-1 в Ethereum — это сеть Ethereum.

Layer-2, однако, является оверлейной сетью, которая располагается поверх блокчейна. Lightning Network — это решение Layer-2 для Bitcoin. Plasma, Polygon, Optimism и Arbitrum — это лишь некоторые из сетей второго уровня, созданных на Ethereum.

Почему они важны?

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

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

При использовании Layer-2 базовой сети (mainnet) не нужно обрабатывать такие большие объемы данных, поскольку она отправляет эти данные по различным каналам обработки (третьим лицам), записывая только конечный результат в блокчейн Layer-1.

Преимущества решений второго уровня

  • Увеличение количества транзакций в секунду (TPS) позволяет улучшить пользовательский опыт и снизить перегрузку сети.
  • Транзакции консолидируются в один пакет перед записью в основной сети, что снижает плату за газ.
  • Любые обновления в решении Layer-2 не изменяют базовый блокчейн, поскольку Layer-2 построен поверх блокчейна, что помогает обеспечить безопасность сети.
  • Позволяет создавать сети Layer-2 для конкретных приложений, которые специально разработаны для оптимизации определенных функций.

Недостатки решений Layer-2

  • Вероятен отток ликвидность из основного блокчейна
  • Потенциальные уязвимости безопасности и конфиденциальности; пользователям следует провести собственное исследование (DYOR) перед использованием решений Layer-2
  • Может затруднить взаимодействие с другими приложениями на базе Ethereum (например, при использовании L-2).

Какие существуют типы решений Layer-2?

Решения Layer-2 в основном направлены на то, чтобы перенести большинство транзакций из основной сети на сайдчейны. За короткий период появилось множество проектов Layer-2, направленных на решение этой задачи. Однако лишь немногим из них удалось решить наиболее важные проблемы. Ниже приведены три примера решений по масштабированию блокчейна второго уровня:

Каналы состояния

Канал состояния — это двусторонний канал связи между участниками. Другими словами, нет необходимости в подтверждении транзакций третьей стороной, например, валидатором; это повышает скорость транзакций.

Процесс начинается с запечатывания части блокчейна с помощью мультиподписи (multisig), чтобы обеспечить прямое взаимодействие между адресантом и адресатом без необходимости передавать что-либо майнерам. После подтверждения транзакции окончательное состояние канала добавляется в блокчейн.

Примеры: Lightning Network в Bitcoin, Raiden Network в Ethereum.

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

  • Управление сложными взаимодействиями
  • Обрабатывает чрезвычайно высокую пропускную способность транзакций при очень низкой стоимости

Недостатки

  • Высокие затраты на настройку и расчетные каналы
  • Средства должны быть заблокированы в открытых платежных каналах
  • Не поддерживает открытое участие

Роллапы с нулевым знанием (Zero-Knowledge Rollups)

Роллапы с нулевым значением (ZK-Rollups) объединяют транзакции, взятые с основного блокчейна, и генерируют криптографическое доказательство, известное как SNARK (Succinct Non-Interactive Argument of Knowledge, краткий неинтерактивный аргумент о знании). Это доказательство, также называемое доказательством достоверности, является единственной записью, требуемой для внесения в основной блокчейн; следовательно, снижается плата за газ, которую пользователи понесли бы от обработки всех данных по отдельности.

Примеры: Immutable X, Polygon Hermez, Starkware.

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

  • Безопасная и децентрализованная
  • Почти мгновенные переводы

Недостатки

  • Сложность вычисления для небольших приложений с меньшей активностью на цепи
  • Не все ZK-роллапы обеспечивают совместимость с виртуальной машиной Ethereum (EVM)
  • На порядок транзакций может влиять пользователь

Оптимистические роллапы

В отличие от ZK-роллапов, оптимистические роллапы полагаются на доказательства мошенничества. Проще говоря, агрегаторы публикуют минимальную информацию на Уровне-1 и предполагают, что данные верны.

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

Примеры: Arbitrum, Boba, Cartesi, Fuel Network, Optimism.

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

  • Низкая плата за газ
  • Повышенная пропускная способность
  • Возможность заключения смарт-контрактов
  • Безопасность

Недостатки

  • Длительное время вывода средств
  • Потенциальное несоответствие стимулов и поощрений между участниками сети
  • Базовый уровень-1 может подвергать транзакции цензуре.

Что ждет масштабируемость блокчейна?

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

Решения Layer-2, представленные выше, являются первой попыткой индустрии решить проблемы масштабируемости.

Подписывайтесь на мой телеграм-канал. Там я публикую эксклюзивный контент и свои сделки!

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

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

Как на самом деле должен работать масштабируемый блокчейн?

В программировании масштабируемость относится к способности приложения, сети, алгоритма, протокола или системы развиваться в соответствии с растущей нагрузкой, чтобы штатно выполнять более широкий круг функций и обслуживать нарастающее число пользователей. В централизованных вычислительных системах производительность можно повысить двумя способами: обновить программное обеспечение оборудования, чтобы оно более эффективно выполняло увеличивающийся спектр задач, либо добавить вычислительные мощности (серверы). Под масштабируемостью блокчейна чаще всего имеется в виду способность обрабатывать большее количество транзакций в секунду, так называемый, TPS (transactions per second).

Проблема масштабируемости блокчейна на примере Эфира

Растущая нагрузка на сеть эфира сильно увеличивает стоимость транзакций. Проблема заключается в том, что сетевые комиссии, которые рассчитываются в единицах газа, – динамические. В периоды всплесков нагрузки на сеть валидаторы могут выбирать и обрабатывать те транзакции (крипто транзакции), которые предлагают больше газа, тем самым усиливая конкуренцию и дальнейшее увеличение комиссии сети. Это является одним из основных препятствий для разворачивания на сети эфира все большего количества приложений и, соответственно, роста числа пользователей. В своей последней статье Виталик Бутерин обозначил проблему “трех переходов” (Three transitions). Автор подчеркивает, что без решения трех вызовов, одним из которых как раз является масштабируемость, эфир не только не сможет привлечь больше пользователей, но ускоренными темпами начнет терять существующих.

Анимация ниже иллюстрирует, как отправители конкурируют за включение транзакции в блок путем увеличения сетевой комиссии.

Everscale – масштабируемый блокчейн пятого поколения

У Everscale уникальная архитектура гетерогенного блокчейна с горизонтальным масштабированием (о таких сложных конструкциях мы подробнее расскажем в другой статье), в которой все является смарт-контрактом. Взаимодействие между смарт контрактами осуществляется с помощью сообщений. Даже ваш криптовалютный кошелек на базе Everscale является смарт-контрактом. Проще говоря, смарт-контракт это объект с такими атрибутами как адрес, код, баланс и прочими данными. Помимо хранения данных смарт-контракт может исполнять инструкции, получаемые от других смарт-контрактов. Обмен инструкциями между смарт-контрактами происходит путем передачи сообщений. Получение сообщения и последующее успешное выполнения кода инструкции TVM (Threaded Virtual Machine) может приводить к следующим изменениям в смарт-контракте или шарде:

  1. Перезаписывание данных в смарт-контракте (инструкций, балансов и других данных);
  2. Отправка смарт-контрактом исходящего сообщения для создания другого смарт-контракта;
  3. Отправка смарт-контрактом множества исходящих сообщений.

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

Что дальше?

Цепочки

Блоки, содержащие информацию о транзакциях, образовывают цепочку. Чтобы достичь консенсуса относительно состояния, нодам, обрабатывающим транзакции, необходимо периодически согласовывать состояние смарт-контракта.

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

Кроме того, в блоке с транзакциями содержится вся информация о взаимодействии смарт-контрактов, транзакции которых были включены в блок. Другими словами, в блок также записываются входящие и исходящие сообщения, обработанные каждым шардом внутри одного воркчейна.

Разделение шардов – масштабируемость

В случае нарастания активности в сети шард можно легко разделить. Представим ситуацию: у нас есть один шард, обрабатывающий сообщения некоторого количества аккаунтов (смарт-контрактов). В какой-то момент (начался новый бычий цикл) резко возрастает потребность в обработке большего количества транзакций в секунду (TPS) или, другими словами, смарт-контракты начинают обмениваться увеличенным количеством сообщений за единицу времени. Пул смарт-контрактов, находящихся под обработкой одного шарда, может быть разделен на два шарда. В таком случае на каждый шард будет приходится вдвое меньше смарт-контрактов, и оба множества смарт-контрактов будут обрабатываться на индивидуальном подмножестве нод. В зависимости от конфигурации количество шардов внутри одного воркчейна может достигать 256. На практике, это означает, что сеть способна бесперебойно обрабатывать миллионы транзакций в секунду, не оказывая никакого влияния на стоимость сетевой комиссии.

Разделение шарда невозможно, если он обрабатывает сообщения только одного смарт-контракта.

Слияние шардов

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

Неравномерное распределение нагрузки:

Слияние шардов возможно только в том случае, когда в воркчейне существует более одного шарда – сообщения от смарт-контрактов обрабатываются не единственным шардом.

Блокчейн​

В Everscale совокупность всех шардов с обслуживаемыми ими аккаунтами, взаимодействующими в соответствии с установленными правилами, называется воркчейном (workchain).

Архитектура блокчейна позволяет создавать множество воркчейнов. Каждый воркчейн, при необходимости, может иметь свою собственную внутреннюю монету, виртуальную машину (например EVM для эфировского приложения) или комиссионную политику. Они могут работать одновременно и взаимодействовать с помощью кросс-воркчейн коммуникации, отправляя сообщения по цепочке.

Главный Воркчейн

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

Мастерчейн (masterchain)

Архитектурная особенность Everscale требует чтобы ноды достигали консенсуса относительно состояния. Именно здесь в игру вступает мастерчейн, так как его блоки содержат последние хэши блоков остальных шардов сети. Каждые две-три секунды каждый шард отправляет в мастерчейн, так называемые, доказательства выпуска блоков. Таким образом определяется состояние всех шардов сети с помощью одного лишь блока мастерчейна.

Взаимодействие мастерчейна с остальными воркчейнами сети и кросс-воркчейн коммуникация:

В ближайшем будущем можно будет создать новые воркчейны

Архитектура Everscale позволяет создавать до 232 воркчейнов, каждый из которых, в случае необходимости, может разделяться на 256 шардов, что позволяет обрабатывать огромное количество транзакций в периоды повышенной сетевой активности. Благодаря этому любой вариант прикладного применения (платежные системы, логистические решения, социальные сети или даже сервис по доставке еды) может бесперебойно функционировать в отдельном воркчейне. Каждый воркчейн может иметь свою собственную конфигурацию, виртуальную машину, комиссионную политику и внутреннюю валюту.

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

Как масштабировать биткойн-блокчейн

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

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

  • Какой самый большой недостаток биткойн-блокчейна?
  • Какие решения предлагало мировое сообщество?
  • Какое из них станет частью биткойн-сети?

/ изображение Susana FernandezCC

Сегодня к блокчейну активно присматриваются банки, энергетические компании, участники рынка интернета вещей и государственные организации. Например, Bank of America и Microsoft начали совместную разработку финансовой блокчейн-платформы, а компания Chronicled запустила блокчейн-платформу для интернета вещей, которая создает безопасные и совместимые со множеством других систем цифровые идентификаторы. Однако окружение и условия, в которых работает биткойн, значительно отличаются от тех, какими они были в момент зарождения криптовалюты. Количество пользователей выросло до нескольких десятков миллионов человек (более 13 млн), что вызвало увеличение числа ежедневных транзакций (порядка 400 тыс.).

Количество ресурсов, которые приходится затрачивать на работу программного обеспечения и хранение реестра биткойна со списком проведенных транзакций довольно большое. Вся цепочка транзакций биткойн-блокчейна прослеживается, начиная с самой первой операции, проведенной 12 января 2009 года создателем биткойна Сатоши Накамото. На сегодняшний день размер биткойн-блокчейна составляет порядка 120 ГБ и продолжает расти.

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

Однако такая мера безопасности оказала негативный эффект на пропускную способность сети в целом (в долгосрочной перспективе). На сегодняшний день биткойн может обработать порядка 7 транзакций в секунду (TPS). При этом фактическая нагрузки на сеть биткойна составляет 3,5 TPS. Для сравнения, показатель TPS в системе Visa равен 2 000 (в моменты пиковой активности — 50 000).

Ранние предложения по решению проблемы

Первые предложения по улучшению биткойна были представлены в 2015 году (BIP 100 и BIP 101) разработчиками ядра Джеффом Гарзиком (Jeff Garzik) и Гевином Андресеном (Gavin Andresen). Оба решения предлагали увеличить размер блока, однако являлись хардфорками, то есть не имели обратной совместимости. Это означало, что при их реализации старое программное обеспечение становилось несовместимым с новой сетью. В BIP 100 предлагалось настраивать размер блока по решению майнеров, а в BIP 101 — единовременно увеличить размер блока до 8 мегабайт.

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

Segregated Witness

В конце 2015 года разработчик Питер Вюлле (Pieter Wuille) презентовал предложение под названием Segregated Witness, увеличивающее пропускную способность сети. Подход изменял не размеры блока, но способ хранения транзакций. Одним из преимуществ решения стала возможность его реализации через софтфорк (то есть обеспечив обратную совместимость). После выхода технического описания Segregated Witness, предлагаемые решения проблемы масштабируемости разделились на две группы: одни стремились увеличить размер блока, а другие — оставить блок без изменений, оптимизируя иные аспекты протокола. Достигнуть консенсуса по этому вопросу никак не удавалось. До недавнего времени.

20 мая ключевые игроки биткоин-индустрии все же смогли найти точки соприкосновения. Участники конференции Hong Kong Bitcoin Roundtable Consensus (в том числе компания BitFury) согласились поддержать несколько апгрейдов протокола биткойна. Один из них —это активация Segregated Witness по достижении уровня поддержки в 80% (мощности майнеров). Второй связан с увеличением размеров блока до 2 МБ. Это решение даже повлияло на стоимость биткойна. Интерес к криптовалюте и новые открывающиеся возможности по масштабированию блокчейна привели к тому, что цена за биткойн перевалила отметку в 2,5 тыс. долларов.

Можно сказать, что транзакции в биткойне состоят из двух компонентов. Первый компонент освобождает биткойны, заблокированные в предыдущих транзакциях, используя так называемые вводы. Вводы включают в себя скрипты (ScriptSigs); каждый такой скрипт содержит набор инструкций по открыванию биткойнов (например, цифровую подпись). Второй компонент транзакции содержит набор выводов (скрипты ScriptPubKeys), которые запирают освобожденные биткойны (или немного меньше). Каждый запирающий скрипт определяет условия, при которых соответствующие биткойны могут быть потрачены (например, при условии знания определенного закрытого ключа). Получается, что биткойны перемещаются от вводов к выводам транзакции и от одной транзакции к другой.

Запирание и отпирание биткойнов осуществляется отправителями транзакций, и транслируется по сети в форме пакетов информации. В выводах, запирающих биткойны, как правило, содержатся инструкции, смысл которых — убедиться, что пользователь знает нужный приватный ключ, соответствующий указанному публичному ключу.

Технология Segregated Witness видоизменяет эту цепочку взаимодействий. Вновь созданные выводы начинают использовать другой тип запирающего скрипта, который получил название «тратит кто угодно» (anyone can spend), поскольку не требует цифровых подписей, и на первый взгляд может быть потрачен кем угодно. Хитрость в том, что запирающий скрипт вида anyone can spend содержит специфическую последовательность байтов, которая привязывает к скрипту «настоящие» условия траты биткойнов.

Похожий прием используется в P2SH (Pay to Script Hash). Как и в случае SegWit, с P2SH биткойны по-прежнему запираются в сценарии, однако в выход транзакции добавляется не сам запирающий сценарий, а его хеш. Для того, чтобы потратить биткойны, запертые таким сценарием, нужно знать не только «настоящий» запирающий сценарий (как может показаться при первом прочтении scriptPubKey), но и отпирающий scriptSig для этого сценария (например, цифровую подпись).

Segregated Witness, по сути, выделяет scriptSig (подписи транзакций) в отдельную структуру данных — witness (доказательство). Таким образом, SegWit является аддоном, который полностью игнорируется старыми узлами, но признается новыми. И старые и новые узлы считают транзакции с SegWit корректными: первые видят скрипты «тратит кто угодно» и считают транзакцию корректной (хотя и странной с точки зрения семантики), а вторые — обращаются к подписи в witness. За счет этого технология позволяет устранить плавкость транзакций (tx malleability), сохранить дисковое пространство и оптимизировать скорость проверки подписей.

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

Еще одним достоинством SegWit может служить тот факт, что в нем сохраняются байты версий. Они предшествуют скрипту и обозначают его тип. Это дает возможность обозначать требования, необходимые для высвобождения биткойнов. Фактически это позволит запирать биткойны самыми разными способами. Реализовать потенциал этой функции смогут подписи Шнорра, которые более компактны и верифицируются быстрее нынешних ECDSA-подписей, а также более сложные типы мультисигнатурных транзакций и даже смарт-контракты, подобные Ethereum.

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

"scriptPubKey":

Сценарий состоит из байта версии сценария (0), после которого идут 20 байтов, соответствующих обычному адресу в биткойн-сети (хешу публичного ключа). Если смотреть с точки зрения узла, ничего не знающего о SegWit, этот сценарий может быть потрачен кем угодно, например, пустым отпирающим сценарием scriptSig. В самом деле, scriptPubKey только добавляет данные в стек и никаких проверок данных, помещенных в стек сценарием scriptSig до этого, не производит.

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

Как именно стоит проверять SegWit-сценарий, узел определяет на основе байта версии и длины следующего элемента scriptPubKey (в примере выше — 20). Пока в SegWit определены 2 типа сценариев: на основе публичного ключа (наш пример) и более сложный для произвольных проверок (например, мультисигнатур). Во втором случае в scriptPubKey записывается 32-байтовый хеш «настоящего» запирающего сценария. Во время траты средств, этот сценарий, вместе с подходящим отпирающим сценарием, должен быть предоставлен в поле witness. При этом хеш запирающего сценария должен совпадать со значением, указанным в scriptPubKey.

Lightning Network

В рамках этого материала хотелось бы упомянуть технологию масштабирования Lightning Network (LN), которая во многом становится возможной именно за счет SegWit, и в развитии которой компания BitFury принимает активное участие. Lightning Network основана на обычных биткойн-транзакциях, только эти транзакции не передаются в биткойн-сеть (по крайней мере, сразу). Вместо этого они сохраняются локально на узлах сети LN.

Главная особенность Lightning Network — это двунаправленные «бездоверительные» платежные каналы, которые позволяют обмениваться биткойнами напрямую, минуя блокчейн. В блокчейн транслируются только открывающие и закрывающие канал транзакции, даже если между ними были совершены миллионы платежей. Это позволяет серьезно «разгрузить» блокчейн и повысить его пропускную способность, а также проводить микроскопические платежи (например, посекундно оплачивать цифровой контент или интернет-связь). Более того, LN позволяет проводить платежи через одного или более промежуточных узлов сети без риска, что эти узлы смогут похитить средства. За счет этого обеспечивается масштабируемость LN до миллионов узлов. Подробнее о принципах работы LN мы планируем рассказать в последующих материалах.

P.P.S. Дополнительные материалы по теме:

  • Валерий Вавилов, BitFury Group: «Блокчейн — индустрия на триллионы долларов»
  • Иное применение блокчейнов: Смарт-контракты
  • Что такое эксклюзивные блокчейны
  • bitfury
  • биткойн
  • блокчейн
  • Segregated Witness
  • Lightning Network

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *