Проектирование с учетом трилеммы блокчейна
Каждый дизайн, который мы делаем как разработчики, открывает одни двери и закрывает другие. Особенно это касается технологии блокчейн. Когда вы приступите к созданию своего блокчейн-проекта, у вас будет огромный выбор блокчейнов, технологий и протоколов.
Выяснение того, как задавать правильные вопросы о потребностях вашего проекта, поможет вам, разработчику, создать продукт, который понравится людям.
Например, вы создаете игру, которая требует быстрых транзакций? Вы создаете инструмент для инфраструктуры, которая нуждается в сверхнадежной безопасности? Является ли это внутренним проектом компании, в которой вы работаете, и должен ли он быть частным блокчейном со своими собственными узлами и механизмом консенсуса?
Прежде чем углубляться в то, как Nervos Network отвечает на эти вопросы с помощью своей многоуровневой технологии, нам нужно понять, какие вопросы задавать для наших конкретных случаев использования.
Здесь нам может помочь трилемма блокчейна. Напомним, трилемма блокчейна гласит, что увеличение одного (масштабируемость, безопасность, децентрализация) обычно происходит за счет двух других. Поэтому увеличить сразу все три всего одним блокчейном, скорее всего, невозможно. Умные вопросы будут сосредоточены на компромиссах между этими тремя вещами.
Давайте более подробно рассмотрим трилемму блокчейна и в первую очередь необходимость многоуровневой, интероперабельной, многоцепочечной архитектуры.
Масштабируемость
Сегодня масштабируемость является проблемой номер один для блокчейн-проектов. Хотя масштабируемость — это гораздо больше, чем количество транзакций в секунду (TPS), мы сейчас сосредоточимся на TPS. Возьмем, к примеру, Биткойн, который ограничен 10 TPS по сравнению со средним значением около 2000 TPS для Visa.
Почему биткойн медленный? Биткойн отдает предпочтение безопасности и децентрализации как главному приоритету и был разработан таким образом намеренно. Биткойн можно ускорить, но всегда есть компромисс. Bitcoin Cash — это форк Bitcoin, в котором увеличен размер блока для обеспечения масштабируемых транзакций, подходящих для покупки кофе в кафе. Однако объективно считается, что Bitcoin Cash имеет значительно более низкую безопасность и децентрализованность. Это далеко от первоначального замысла Биткойна — быть самыми безопасными, децентрализованными деньгами на земле.
Так как же ускорить? Вы используете решение масштабирования второго уровня, протокол или сайдчейн с более быстрым механизмом консенсуса.
Безопасность
Если вы были в сфере блокчейна хотя бы неделю, вы видели заголовки обо всех проблемах безопасности, которые преследуют мир блокчейна. Общие причины включают использование неподходящих механизмов консенсуса для определенных приложений, количество сетевых узлов, необходимых для подтверждения транзакции, прежде чем она станет окончательной, и то, как эти майнеры (в случае блокчейнов Proof-Of-Work) или валидаторы (в случае Proof -государственные блокчейны) получают вознаграждение. Обеспечение безопасности блокчейна напрямую связано с тем, как достигается и вознаграждается консенсус с течением времени.
Многие из них касаются не самих блокчейнов, а их конечных точек, таких как биржи, мосты, кошельки и другие. Проблема здесь в том, что часто для того, чтобы пользователи могли хорошо работать с приложением, это приложение берет на себя больший риск в пользу скорости. Это проектные решения, которые необходимо принимать на основе варианта использования каждого приложения.
Децентрализация
Тема децентрализации актуальна. Ярким примером является спор о Proof-Of-Work (PoW) и Proof-Of-Stake (PoS). С PoW, если группа майнеров, вступивших в сговор, получает 51% или более скорости хеширования сети, они могут атаковать сеть и временно взять ее под контроль, как если бы это была централизованная система.
Цепи PoS сталкиваются с аналогичной проблемой, и многие аналитики считают, что эти цепочки могут быть скомпрометированы, если только 34% валидаторов сети вступят в сговор. В широком обобщении PoS обеспечивает лучшую масштабируемость, но снижает степень децентрализации и безопасности этой сети. Здесь можно сказать гораздо больше, но Nervos твердо верит в проверенный временем механизм консенсуса PoW для всех протоколов первого уровня. Nervos считает, что первый слой должен обеспечивать якорь безопасности для всех остальных слоев, построенных поверх него.
Все современные системы любой заметной сложности разрабатываются с использованием модульной или многоуровневой схемы для разделения и управления сложностью. Понимая, что трилемма блокчейна никогда не будет решена с помощью всего лишь одного слоя, Nervos разработала свою технологию с нуля, предполагая, что поверх нее может быть построено любое произвольное количество слоев.
"Попытки решить трилемму обычно совершают ключевую ошибку: предположение, что все транзакции должны происходить на одном базовом уровне блокчейна. Это означает неправильное понимание того, что революционного в блокчейнах и чего может достичь их преобразующая сила".
– Ведущий архитектор и исследователь Nervos, Ян Се
Вкратце, многоуровневый подход Nervos таков:
Уровень 1 — должен быть безопасным, децентрализованным, долгосрочным средством сбережения. (CKB Nervos Layer 1)
Уровень 2 — Должны быть взаимодействующие компоненты, обеспечивающие масштабирование (решение для масштабирования уровня 2 Godwoken, боковая цепь Axon).
Децентрализованные приложения (dApps) могут быть построены на уровнях 1 или 2, но это не значит, что между ними не может быть никакого количества слоев.
В этом красота Nervos.
Другие аспекты разработки
В дополнение к трилемме блокчейна, при планировании пути к победе Web3 необходимо решить общие проблемы разработки программного обеспечения.
Разработка программного обеспечения, как правило, требует много времени и денег, но блокчейн добавляет больше проблем, включая безопасность и общую сложность. Вы можете захотеть построить свой проект на языке программирования, с которым вы знакомы, и вас могут волновать только некоторые другие факторы!
Например, если вы являетесь разработчиком Solidity, вы, вероятно, захотите придерживаться нашей технологии, на 100% совместимой с EVM (уровень 2 — Godwoken).
Если вы разработчик Rust, вы, скорее всего, выберете Nervos CKB Layer 1 (построенный с использованием Rust).
Сам пo себе язык может быть решающим фактором, и ничто из того, что последует, не будет иметь значения.
Вот некоторые другие проблемы, с которыми сталкиваются разработчики при выборе слоя для построения:
Гибкость модели программирования.
Инфраструктура экосистемы и долголетие.
Инструменты, документация, учебные пособия, руководства.
Уровень принятия: (сила сообщества).
Уровень сложности для построения (совместимость с EVM, используемые языки программирования и сложность протоколов)
Наконец, если бы мне нужно было подытожить, как выбрать слой, я бы сделал это следующим образом:
Выберите CKB L1, если вам важны безопасность и децентрализация.
Выберите Axon, если вам важна производительность.
Выберите Godwoken, если вы хотите найти баланс между компромиссами.
Источник: https://nervosninja.com/nervos-network-which-layer-should-i-build-on/