Будущее видение блокчейна заключается в децентрализации, безопасности и масштабируемости, но обычно возможно реализовать только два из них, что называется «невозможной треугольник проблем блокчейна». На протяжении многих лет люди исследовали, как решить эту задачу, как повысить пропускную способность и скорость транзакций блокчейна при сохранении децентрализации и безопасности, то есть решить проблему масштабирования, что является одной из актуальных тем в процессе развития блокчейна.
Децентрализация, безопасность и масштабируемость блокчейна определяются следующим образом:
Децентрализация: любой может стать узлом и участвовать в производстве и верификации блокчейн-системы, чем больше узлов, тем выше степень децентрализации, что обеспечивает контроль сети не небольшой группой крупных централизованных участников.
Безопасность: чем выше затраты на получение контроля над системой блокчейна, тем выше безопасность, и цепочка может противостоять атакам со стороны большего процента участников.
Масштабируемость: способность блокчейна обрабатывать большое количество транзакций.
Первое значительное хард-форк в сети Биткойн произошло из-за проблемы масштабирования. С увеличением числа пользователей и объема транзакций в сети Биткойн, ограничение в 1 МБ на блок начало вызывать проблемы с перегрузкой; начиная с 2015 года, в сообществе Биткойн возникли разногласия по вопросу масштабирования: одна сторона, представленная Bitcoin ABC, поддерживала расширение блоков, в то время как другая сторона, представленная Bitcoin Core, считала, что следует использовать решение Segwit для оптимизации структуры основной цепи. 1 августа 2017 года клиентская система Bitcoin ABC, разработанная самостоятельно до 8 МБ, начала работать, что привело к первому значительному хард-форку в истории Биткойн и, таким образом, появлению новой криптовалюты BCH.
Таким образом, сеть Ethereum также выбрала пожертвовать частью масштабируемости, чтобы обеспечить безопасность и децентрализацию сети; хотя сеть Ethereum не ограничивает объем транзакций, как сеть Bitcoin, ограничивая размер блока, она косвенно превращается в установление предела на топливные сборы, которые может вместить один блок, но цель остается одной — достичь Trustless Consensus и обеспечить широкое распространение узлов (, независимо от того, отменяется ли или повышается лимит, это приведет к исключению многих малых узлов с недостаточной пропускной способностью, хранилищем и вычислительными мощностями ).
С 2017 года, начиная от CryptoKitties, лета DeFi, и до последующего роста таких цепочных приложений, как GameFi и NFT, рынок испытывает постоянно растущий спрос на пропускную способность. Однако даже у Тьюринг-полного Эфириума может обрабатываться всего 15~45 транзакций в секунду ( TPS ), что приводит к постоянному увеличению стоимости транзакций, увеличению времени расчетов и делает большинство Dapps трудными для покрытия операционных расходов. Вся сеть становится медленной и дорогой для пользователей, и проблему масштабирования блокчейна необходимо срочно решить. Идеальное решение для масштабирования заключается в том, чтобы повысить скорость транзакций сети блокчейна (, не жертвуя децентрализацией и безопасностью, а также сократить время окончательной обработки ) и увеличить пропускную способность транзакций ( до более высокого TPS ).
Мы разделили решения по расширению на две основные категории: расширение на блокчейне и вне блокчейна, основываясь на стандарте "изменится ли уровень основной сети".
2.1 Расширение на цепи
Ключевая концепция: решение, достигающее эффекта масштабирования путем изменения одного уровня протокола основной сети, в настоящее время основным решением является шarding.
На блокчейне существует множество решений для масштабирования, в этой статье они не будут подробно рассмотрены, ниже кратко перечислены два решения:
Первый вариант заключается в увеличении пространства блока, то есть в увеличении количества транзакций, упакованных в каждый блок, но это повысит требования к высокопроизводительным узловым устройствам, увеличит порог входа для узлов и снизит уровень "децентрализованности".
Решение два — это шардирование, которое разделяет бухгалтерскую книгу блокчейна на несколько частей, где не каждый узел участвует в ведении всех записей, а разные шардированные группы, то есть разные узлы, отвечают за различные записи, что позволяет параллельно обрабатывать несколько транзакций; это снижает вычислительное давление на узлы и барьеры для присоединения, увеличивает скорость обработки транзакций и степень децентрализации; но это означает, что общая вычислительная мощность сети распределена, что может снизить "безопасность" всей сети.
Изменение кода протокола основной сети может привести к непредсказуемым негативным последствиям, поскольку любое незначительное уязвимое место в безопасности на нижнем уровне серьезно угрожает безопасности всей сети, и сеть может быть вынуждена произвести форк или прервать обновление для исправления. Например, инцидент с инфляционной уязвимостью Zcash в 2018 году: код Zcash был основан на модифицированном коде версии Bitcoin 0.11.2, и в 2018 году один инженер обнаружил высокую уязвимость в его базовом коде, а именно, токены могли выпускаться без ограничений, после чего команда потратила 8 месяцев на секретное исправление, и только после устранения уязвимости этот инцидент был обнародован.
2.2 вне блокчейна расширение
Основная концепция: решение по масштабированию, не изменяющее существующий протокол основного сетевого уровня.
вне блокчейна расширения могут быть дополнительно разделены на Layer2 и другие решения:
Состояние канала требует, чтобы пользователи взаимодействовали с основной сетью только при открытии, закрытии или разрешении спора, и чтобы взаимодействие между пользователями происходило вне блокчейна, с целью снижения временных и финансовых затрат пользователей, а также для того, чтобы количество транзакций не было ограничено.
Состояние канала — это простой P2P-протокол, подходящий для "приложений, основанных на раундах", например, для международной шахматной игры между двумя участниками. Каждый канал управляется многоподписным смарт-контрактом, работающим в основной сети, который контролирует активы, внесенные в канал, проверяет обновления состояния и разрешает споры между участниками ( на основе доказательства мошенничества с подписями и временными метками ). После развертывания контракта в блокчейн-сети участники вносят средства и блокируют их, после того как обе стороны подписывают и подтверждают, канал официально открывается. Канал позволяет участникам осуществлять неограниченное количество бесплатных транзакций вне блокчейна (, при условии, что их чистая стоимость переводов не превышает общей суммы внесенных токенов ). Участники по очереди отправляют друг другу обновления состояния и ждут подтверждения подписи со стороны другого участника. Как только другая сторона подтверждает подпись, это обновление состояния считается завершенным. В нормальных условиях обновления состояния, согласованные обеими сторонами, не загружаются в основную сеть; только в случае спора или закрытия канала они зависят от подтверждения основной сети. В случае необходимости закрытия канала любой из участников может подать запрос на транзакцию в основной сети, и если запрос на выход получает единогласное одобрение подписей, транзакция выполняется немедленно, то есть смарт-контракт распределяет оставшиеся заблокированные средства на основе остатков каждого участника в конечном состоянии канала; если другие участники не одобряют подпись, всем придется дождаться окончания "периода вызова", чтобы получить оставшиеся средства.
Таким образом, решение с каналом состояния может значительно снизить вычислительную нагрузку на основную сеть, повысить скорость транзакций и снизить стоимость транзакций.
Февраль 2015 года, Джозеф Пун и Тэддиус Дрйя выпустили черновик белой книги сети Lightning.
Ноябрь 2015 года, Джефф Коулман впервые систематически обобщил концепцию State Channel и представил Payment Channel биткойна как подкатегорию концепции State Channel.
Январь 2016 года, Джозеф Пун и Таддеус Дріджа официально опубликовали белую книгу «Сеть Lightning Bitcoin: Масштабируемые вне блокчейна мгновенные платежи», предложив решение по масштабированию сети Bitcoin – Payment Channel(, которое предназначено только для обработки переводов и платежей в сети Bitcoin.
В ноябре 2017 года были предложены первые проектные нормативы по State Channel на основе фрейма Payment Channel, известные как Sprites.
В июне 2018 года Counterfactual предложил очень подробный дизайн Обобщенных Каналов Состояний, который является первым полностью связанным с состоянием каналом дизайном.
В октябре 2018 года в статье Generalised State Channel Networks были предложены концепции State Channel Networks и Virtual Channels.
Февраль 2019 года, концепция каналов состояния расширена до N-Party Channels, Nitro является первым протоколом, основанным на этой идее.
В октябре 2019 года Pisa расширила концепцию Watchtowers, чтобы решить проблему, касающуюся необходимости постоянного онлайн-пребывания всех участников.
Март 2020 года, Hydra представила Быстрые Изоморфные Каналы.
)# 3.1.3 Технический принцип
Рабочий процесс канала состояния следующий:
Алиса и Боб вносят средства со своих личных EOA на адрес контракта в блокчейне, эти средства блокируются в контракте и возвращаются пользователям только после закрытия канала; после подписания подтверждения обеими сторонами, статусный канал между ними официально открывается.
Алиса и Боб теоретически могут проводить неограниченное количество сделок вне блокчейна через этот канал, участники обмениваются зашифрованными сообщениями с подписями ###, а не общаются с сетью блокчейна (. Оба пользователя должны подписывать каждую сделку, чтобы предотвратить злоупотребления двойной тратой. С помощью этих сообщений они предлагают обновления состояния своих аккаунтов и принимают предложенные обновления состояния от друг друга.
Если Алиса хочет закрыть канал и завершить сделку с Бобом, Алисе необходимо представить итоговое состояние своего счета в контракт, если Боб подпишет и одобрит, контракт вернет заблокированные средства соответствующему пользователю в соответствии с итоговым состоянием. Если Боб не ответит подписью, контракт освободит заблокированные средства соответствующему пользователю по истечении периода оспаривания.
Если в какой-то момент времени Боб не отвечает на подпись обновления состояния, отправленную Элис в его раунде, Элис может инициировать вызов, подав свою последнюю действительную запись состояния в контракт, которая также содержит подпись Боба, чтобы доказать, что последняя транзакция была одобрена Бобом, и последнее состояние было подтверждено Бобом. Затем контракт позволяет Бобу ответить в течение определенного времени, подав следующее состояние в контракт; если Боб ответит, они могут продолжать торговать в канале состояния; если Боб не ответит в этот период времени, контракт автоматически закроет канал состояния и вернет средства Элис.
! [Подробный исследовательский отчет на 10 000 слов: всесторонний анализ масштабирования вне сети])https://img-cdn.gateio.im/webp-social/moments-ad088ac016d75b1ae0b0eda699e74709.webp(
)# 3.1.4 Плюсы и минусы
Преимущества:
Мгновенность: обновления состояния происходят почти мгновенно, не требуется ожидать подтверждения блока
Приватность: только конечное состояние будет записано в блокчейн, промежуточные состояния остаются конфиденциальными
Масштабируемость: теоретически может быть бесконечно расширена, если средства участников достаточны
Низкая стоимость: вне блокчейна транзакции не требуют оплаты газовых сборов
Недостатки:
Низкая эффективность капитала: требуется заблокировать средства
Онлайн требования: участники должны постоянно находиться в сети для мониторинга
Долгое время выхода: необходимо подождать период оспаривания при закрытии канала
Зависимость от централизованных узлов: требуется сторонний мониторинговый сервис ###, такой как Watchtowers (
Статус взрыва: N пользователей необходимо N)N-1(/2 канала
Ограниченная ликвидность: средства заблокированы в определенном канале
)# 3.1.5 Приложение
Биткойн Сеть Молний
Обзор: Сеть Lightning является каналом для мелких платежей в сети Bitcoin, ее общая технологическая эволюция включает: создание одностороннего платежного канала с использованием 2/2 мультиподписей, добавление RSMC###Revocable Sequence Maturity Contract( позволяет создать двусторонний платежный канал, а затем добавление HTLC)Hash Time Lock Contract( расширяет платежные каналы до многопользовательских платежей, в конечном итоге создавая платежную сеть, известную как сеть Lightning. Через вне блокчейна каналы для мелких платежей, затем с помощью посредников формируется торговая сеть, что может решить проблему масштабируемости сети Bitcoin. Общая схема использования сети Lightning следует процессу "депозит)создание канала(→транзакция в сети Lightning)обновление состояния канала(→возврат/расчет)завершение канала("; теоретически сеть Lightning может обрабатывать миллион транзакций в секунду.
Временная линия:
Февраль 2015 года, Джозеф Пун и Таддеус Дрия опубликовали черновик белой книги сети Lightning;
В январе 2016 года была опубликована официальная версия белой книги и основана Lightning Labs;
15 марта 2018 года Lightning Labs выпустила первую версию основной сети Lightning Network Daemon )LND( версии 0.4.
В начале 2021 года общая емкость сети Lightning )TVL( составляла всего около 40 миллионов долларов, и менее 100000 пользователей пользовались сетью Lightning.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Глубина анализа решений по расширению вне блокчейна: от состояния канала до Layer2
Глубина анализа вне блокчейна
1. Необходимость масштабирования
Будущее видение блокчейна заключается в децентрализации, безопасности и масштабируемости, но обычно возможно реализовать только два из них, что называется «невозможной треугольник проблем блокчейна». На протяжении многих лет люди исследовали, как решить эту задачу, как повысить пропускную способность и скорость транзакций блокчейна при сохранении децентрализации и безопасности, то есть решить проблему масштабирования, что является одной из актуальных тем в процессе развития блокчейна.
Децентрализация, безопасность и масштабируемость блокчейна определяются следующим образом:
Децентрализация: любой может стать узлом и участвовать в производстве и верификации блокчейн-системы, чем больше узлов, тем выше степень децентрализации, что обеспечивает контроль сети не небольшой группой крупных централизованных участников.
Безопасность: чем выше затраты на получение контроля над системой блокчейна, тем выше безопасность, и цепочка может противостоять атакам со стороны большего процента участников.
Масштабируемость: способность блокчейна обрабатывать большое количество транзакций.
Первое значительное хард-форк в сети Биткойн произошло из-за проблемы масштабирования. С увеличением числа пользователей и объема транзакций в сети Биткойн, ограничение в 1 МБ на блок начало вызывать проблемы с перегрузкой; начиная с 2015 года, в сообществе Биткойн возникли разногласия по вопросу масштабирования: одна сторона, представленная Bitcoin ABC, поддерживала расширение блоков, в то время как другая сторона, представленная Bitcoin Core, считала, что следует использовать решение Segwit для оптимизации структуры основной цепи. 1 августа 2017 года клиентская система Bitcoin ABC, разработанная самостоятельно до 8 МБ, начала работать, что привело к первому значительному хард-форку в истории Биткойн и, таким образом, появлению новой криптовалюты BCH.
Таким образом, сеть Ethereum также выбрала пожертвовать частью масштабируемости, чтобы обеспечить безопасность и децентрализацию сети; хотя сеть Ethereum не ограничивает объем транзакций, как сеть Bitcoin, ограничивая размер блока, она косвенно превращается в установление предела на топливные сборы, которые может вместить один блок, но цель остается одной — достичь Trustless Consensus и обеспечить широкое распространение узлов (, независимо от того, отменяется ли или повышается лимит, это приведет к исключению многих малых узлов с недостаточной пропускной способностью, хранилищем и вычислительными мощностями ).
С 2017 года, начиная от CryptoKitties, лета DeFi, и до последующего роста таких цепочных приложений, как GameFi и NFT, рынок испытывает постоянно растущий спрос на пропускную способность. Однако даже у Тьюринг-полного Эфириума может обрабатываться всего 15~45 транзакций в секунду ( TPS ), что приводит к постоянному увеличению стоимости транзакций, увеличению времени расчетов и делает большинство Dapps трудными для покрытия операционных расходов. Вся сеть становится медленной и дорогой для пользователей, и проблему масштабирования блокчейна необходимо срочно решить. Идеальное решение для масштабирования заключается в том, чтобы повысить скорость транзакций сети блокчейна (, не жертвуя децентрализацией и безопасностью, а также сократить время окончательной обработки ) и увеличить пропускную способность транзакций ( до более высокого TPS ).
! Подробный исследовательский отчет из 10 000 слов: всесторонний анализ расширения вне сети
2. Категории решений по масштабированию
Мы разделили решения по расширению на две основные категории: расширение на блокчейне и вне блокчейна, основываясь на стандарте "изменится ли уровень основной сети".
2.1 Расширение на цепи
Ключевая концепция: решение, достигающее эффекта масштабирования путем изменения одного уровня протокола основной сети, в настоящее время основным решением является шarding.
На блокчейне существует множество решений для масштабирования, в этой статье они не будут подробно рассмотрены, ниже кратко перечислены два решения:
Первый вариант заключается в увеличении пространства блока, то есть в увеличении количества транзакций, упакованных в каждый блок, но это повысит требования к высокопроизводительным узловым устройствам, увеличит порог входа для узлов и снизит уровень "децентрализованности".
Решение два — это шардирование, которое разделяет бухгалтерскую книгу блокчейна на несколько частей, где не каждый узел участвует в ведении всех записей, а разные шардированные группы, то есть разные узлы, отвечают за различные записи, что позволяет параллельно обрабатывать несколько транзакций; это снижает вычислительное давление на узлы и барьеры для присоединения, увеличивает скорость обработки транзакций и степень децентрализации; но это означает, что общая вычислительная мощность сети распределена, что может снизить "безопасность" всей сети.
Изменение кода протокола основной сети может привести к непредсказуемым негативным последствиям, поскольку любое незначительное уязвимое место в безопасности на нижнем уровне серьезно угрожает безопасности всей сети, и сеть может быть вынуждена произвести форк или прервать обновление для исправления. Например, инцидент с инфляционной уязвимостью Zcash в 2018 году: код Zcash был основан на модифицированном коде версии Bitcoin 0.11.2, и в 2018 году один инженер обнаружил высокую уязвимость в его базовом коде, а именно, токены могли выпускаться без ограничений, после чего команда потратила 8 месяцев на секретное исправление, и только после устранения уязвимости этот инцидент был обнародован.
2.2 вне блокчейна расширение
Основная концепция: решение по масштабированию, не изменяющее существующий протокол основного сетевого уровня.
вне блокчейна расширения могут быть дополнительно разделены на Layer2 и другие решения:
Layer2: каналы состояния, побочные цепи, Plasma, Rollups
Другие: Валидиум, Воля
! Подробный исследовательский отчет из 10 000 слов: всесторонний анализ расширения вне сети
3. Решение для вне блокчейна расширения
3.1 Статусные каналы ( State Channels )
3.1.1 Описание
Состояние канала требует, чтобы пользователи взаимодействовали с основной сетью только при открытии, закрытии или разрешении спора, и чтобы взаимодействие между пользователями происходило вне блокчейна, с целью снижения временных и финансовых затрат пользователей, а также для того, чтобы количество транзакций не было ограничено.
Состояние канала — это простой P2P-протокол, подходящий для "приложений, основанных на раундах", например, для международной шахматной игры между двумя участниками. Каждый канал управляется многоподписным смарт-контрактом, работающим в основной сети, который контролирует активы, внесенные в канал, проверяет обновления состояния и разрешает споры между участниками ( на основе доказательства мошенничества с подписями и временными метками ). После развертывания контракта в блокчейн-сети участники вносят средства и блокируют их, после того как обе стороны подписывают и подтверждают, канал официально открывается. Канал позволяет участникам осуществлять неограниченное количество бесплатных транзакций вне блокчейна (, при условии, что их чистая стоимость переводов не превышает общей суммы внесенных токенов ). Участники по очереди отправляют друг другу обновления состояния и ждут подтверждения подписи со стороны другого участника. Как только другая сторона подтверждает подпись, это обновление состояния считается завершенным. В нормальных условиях обновления состояния, согласованные обеими сторонами, не загружаются в основную сеть; только в случае спора или закрытия канала они зависят от подтверждения основной сети. В случае необходимости закрытия канала любой из участников может подать запрос на транзакцию в основной сети, и если запрос на выход получает единогласное одобрение подписей, транзакция выполняется немедленно, то есть смарт-контракт распределяет оставшиеся заблокированные средства на основе остатков каждого участника в конечном состоянии канала; если другие участники не одобряют подпись, всем придется дождаться окончания "периода вызова", чтобы получить оставшиеся средства.
Таким образом, решение с каналом состояния может значительно снизить вычислительную нагрузку на основную сеть, повысить скорость транзакций и снизить стоимость транзакций.
! Подробный исследовательский отчет из 10 000 слов: всесторонний анализ масштабирования вне сети
3.1.2 Хронология
Февраль 2015 года, Джозеф Пун и Тэддиус Дрйя выпустили черновик белой книги сети Lightning.
Ноябрь 2015 года, Джефф Коулман впервые систематически обобщил концепцию State Channel и представил Payment Channel биткойна как подкатегорию концепции State Channel.
Январь 2016 года, Джозеф Пун и Таддеус Дріджа официально опубликовали белую книгу «Сеть Lightning Bitcoin: Масштабируемые вне блокчейна мгновенные платежи», предложив решение по масштабированию сети Bitcoin – Payment Channel(, которое предназначено только для обработки переводов и платежей в сети Bitcoin.
В ноябре 2017 года были предложены первые проектные нормативы по State Channel на основе фрейма Payment Channel, известные как Sprites.
В июне 2018 года Counterfactual предложил очень подробный дизайн Обобщенных Каналов Состояний, который является первым полностью связанным с состоянием каналом дизайном.
В октябре 2018 года в статье Generalised State Channel Networks были предложены концепции State Channel Networks и Virtual Channels.
Февраль 2019 года, концепция каналов состояния расширена до N-Party Channels, Nitro является первым протоколом, основанным на этой идее.
В октябре 2019 года Pisa расширила концепцию Watchtowers, чтобы решить проблему, касающуюся необходимости постоянного онлайн-пребывания всех участников.
Март 2020 года, Hydra представила Быстрые Изоморфные Каналы.
)# 3.1.3 Технический принцип
Рабочий процесс канала состояния следующий:
Алиса и Боб вносят средства со своих личных EOA на адрес контракта в блокчейне, эти средства блокируются в контракте и возвращаются пользователям только после закрытия канала; после подписания подтверждения обеими сторонами, статусный канал между ними официально открывается.
Алиса и Боб теоретически могут проводить неограниченное количество сделок вне блокчейна через этот канал, участники обмениваются зашифрованными сообщениями с подписями ###, а не общаются с сетью блокчейна (. Оба пользователя должны подписывать каждую сделку, чтобы предотвратить злоупотребления двойной тратой. С помощью этих сообщений они предлагают обновления состояния своих аккаунтов и принимают предложенные обновления состояния от друг друга.
Если Алиса хочет закрыть канал и завершить сделку с Бобом, Алисе необходимо представить итоговое состояние своего счета в контракт, если Боб подпишет и одобрит, контракт вернет заблокированные средства соответствующему пользователю в соответствии с итоговым состоянием. Если Боб не ответит подписью, контракт освободит заблокированные средства соответствующему пользователю по истечении периода оспаривания.
Если в какой-то момент времени Боб не отвечает на подпись обновления состояния, отправленную Элис в его раунде, Элис может инициировать вызов, подав свою последнюю действительную запись состояния в контракт, которая также содержит подпись Боба, чтобы доказать, что последняя транзакция была одобрена Бобом, и последнее состояние было подтверждено Бобом. Затем контракт позволяет Бобу ответить в течение определенного времени, подав следующее состояние в контракт; если Боб ответит, они могут продолжать торговать в канале состояния; если Боб не ответит в этот период времени, контракт автоматически закроет канал состояния и вернет средства Элис.
! [Подробный исследовательский отчет на 10 000 слов: всесторонний анализ масштабирования вне сети])https://img-cdn.gateio.im/webp-social/moments-ad088ac016d75b1ae0b0eda699e74709.webp(
)# 3.1.4 Плюсы и минусы
Преимущества:
Недостатки:
)# 3.1.5 Приложение
Биткойн Сеть Молний
Обзор: Сеть Lightning является каналом для мелких платежей в сети Bitcoin, ее общая технологическая эволюция включает: создание одностороннего платежного канала с использованием 2/2 мультиподписей, добавление RSMC###Revocable Sequence Maturity Contract( позволяет создать двусторонний платежный канал, а затем добавление HTLC)Hash Time Lock Contract( расширяет платежные каналы до многопользовательских платежей, в конечном итоге создавая платежную сеть, известную как сеть Lightning. Через вне блокчейна каналы для мелких платежей, затем с помощью посредников формируется торговая сеть, что может решить проблему масштабируемости сети Bitcoin. Общая схема использования сети Lightning следует процессу "депозит)создание канала(→транзакция в сети Lightning)обновление состояния канала(→возврат/расчет)завершение канала("; теоретически сеть Lightning может обрабатывать миллион транзакций в секунду.
Временная линия: