Будучи распределенной бухгалтерской книгой, блокчейн должен хранить исторические данные на всех узлах, чтобы обеспечить безопасность и достаточную децентрализацию хранения данных. Поскольку корректность каждого изменения состояния связана с предыдущим состоянием (источником транзакций), для обеспечения корректности транзакций блокчейн в принципе должен хранить все исторические записи от первой до текущей транзакции. Если взять в качестве примера Ethereum, то даже если средний размер блока оценивается в 20 кб, текущий общий размер блоков Ethereum достиг 370 ГБ. Помимо самого блока, полный узел также должен записывать статус и квитанции о транзакциях. С учетом этой части общая емкость хранения одного узла превысила 1 ТБ, что позволяет сосредоточить управление узлом в руках нескольких человек.
Последняя высота блока Ethereum, источник изображения: Etherscan
По сравнению со структурами хранения данных в виде баз данных или связанных списков, несопоставимость блокчейна обусловлена способностью проверять вновь созданные данные с помощью исторических данных. Поэтому обеспечение безопасности исторических данных - это первый вопрос, который необходимо рассмотреть при хранении на уровне DA. Оценивая безопасность данных в системах blockchain, мы часто анализируем ее по объему избыточности данных и методу проверки их доступности.
Исходя из предпосылки обеспечения базовой безопасности, следующей основной целью, которую должен достичь уровень DA, является снижение затрат и повышение эффективности. Первая - снизить затраты на хранение данных, независимо от разницы в производительности оборудования, то есть уменьшить расход памяти, вызванный хранением данных единичного размера. На данном этапе основными способами снижения затрат на хранение данных в блокчейне являются внедрение технологии шардинга и использование хранения на основе вознаграждения для обеспечения эффективного хранения данных и снижения количества резервных копий данных. Однако из приведенных выше методов улучшения нетрудно понять, что между стоимостью хранения и безопасностью данных существует игровая зависимость. Сокращение объема хранилища часто означает снижение уровня безопасности. Поэтому превосходный уровень DA должен обеспечивать баланс между стоимостью хранения и безопасностью данных. Кроме того, если уровень DA представляет собой отдельную публичную цепочку, ему необходимо снизить стоимость за счет минимизации промежуточного процесса обмена данными. В каждом процессе передачи индексные данные должны быть оставлены для последующих вызовов запросов. Поэтому, чем дольше процесс вызова, тем больше индексных данных останется, и стоимость хранения увеличится. Наконец, стоимость хранения данных напрямую связана с их долговечностью. Вообще говоря, чем выше стоимость хранения данных, тем сложнее для публичной сети хранить данные постоянно.
После снижения затрат следующим шагом будет повышение эффективности, которая заключается в способности быстро вызывать данные из слоя DA, когда их нужно использовать. Этот процесс включает в себя два этапа. Первый - это поиск узлов, на которых хранятся данные. Этот процесс предназначен главным образом для публичных сетей, которые не достигли согласованности данных во всей сети. Если публичная цепочка обеспечивает синхронизацию данных для узлов всей сети, этим можно пренебречь. Временные затраты на процесс. Во-вторых, в современных основных блокчейн-системах, включая Bitcoin, Ethereum и Filecoin, методом хранения узлов является база данных Leveldb. В Leveldb данные хранятся тремя способами. Во-первых, данные, записанные сразу, будут храниться в файлах типа Memtable. Когда хранилище Memtable будет заполнено, тип файла будет изменен с Memtable на Immutable Memtable. Оба типа файлов хранятся в памяти, но файлы Immutable Memtable больше не могут быть изменены, из них можно только читать данные. Горячее хранилище, используемое в сети IPFS, хранит данные в этой части. Когда он вызывается, его можно быстро считать из памяти. Однако мобильная память обычного узла часто имеет уровень GB, и в нее легко медленно записывать данные. При сбое узла или другой нештатной ситуации данные в памяти будут безвозвратно потеряны. Если Вы хотите, чтобы данные хранились постоянно, Вам нужно хранить их в виде SST-файла на твердотельном накопителе (SSD). Однако при чтении данных Вам необходимо сначала считать их в память, что значительно снижает скорость индексации данных. Наконец, в системах, использующих общее хранилище, восстановление данных требует отправки запросов данных на несколько узлов и их восстановления. Этот процесс также снизит скорость считывания данных.
Метод хранения данных Leveldb, источник изображения: Справочник Leveldb
С развитием DeFi и различными проблемами с CEX растут и потребности пользователей в межцепочечных транзакциях децентрализованных активов. Независимо от механизма кросс-цепочки - хэш-блокировки, нотариуса или ретрансляционной цепочки - одновременного определения исторических данных в обеих цепочках не избежать. Ключ к решению этой проблемы лежит в разделении данных по двум цепочкам, и прямая связь не может быть достигнута в различных децентрализованных системах. Поэтому на данном этапе предлагается решение путем изменения метода хранения на уровне DA, который не только хранит исторические данные нескольких публичных цепочек на одной доверенной публичной цепочке, но и требует обращения к данным только этой публичной цепочки во время проверки. Можно. Это требует от уровня DA способности устанавливать безопасные методы связи с различными типами публичных цепочек, что означает, что уровень DA обладает хорошей универсальностью.
Метод хранения данных после Sharding, источник изображения: Kernel Ventures
Технология DAS основана на дальнейшей оптимизации методов хранения Sharding. Во время процесса шардинга, из-за простого случайного хранения узлов, определенный блок может быть потерян. Во-вторых, для фрагментированных данных также очень важно подтвердить подлинность и целостность данных в процессе восстановления. В DAS эти две проблемы решаются с помощью кода Eraser и полиномиального обязательства KZG.
Проверка данных гарантирует, что данные, вызываемые из узла, являются точными и полными. Чтобы минимизировать объем данных и вычислительных затрат, необходимых для процесса проверки, слой DA теперь использует древовидную структуру в качестве основного метода проверки. Самая простая форма - это использование дерева Меркла для проверки, которое использует форму записей полного двоичного дерева, нужно только хранить корень Меркла и хэш-значение поддерева на другой стороне пути узла, которое может быть проверено, временная сложность проверки составляет уровень O(logN) (по умолчанию logN - это log2(N)). Хотя процесс проверки был значительно упрощен, объем данных для проверки в целом все еще растет с увеличением количества данных. Чтобы решить проблему увеличения объема проверки, на данном этапе предлагается другой метод проверки - дерево Веркле, в котором каждый узел дерева Веркле не только хранит значение, но и прикрепляет векторное обязательство, что позволяет быстро подтвердить подлинность данных, используя значение исходного узла и доказательство обязательства, без необходимости вызова значений других родственных узлов, что делает вычисления каждой проверки проще и быстрее. Таким образом, количество вычислений для каждой проверки зависит только от глубины дерева Веркле, которая является фиксированной константой, что значительно ускоряет скорость проверки. Однако вычисление Vector Commitment требует участия всех родственных узлов в одном слое, что значительно увеличивает стоимость записи и изменения данных. Однако для таких данных, как исторические данные, которые хранятся постоянно и не могут быть подделаны, а также могут быть только прочитаны, но не записаны, дерево Веркля подходит как нельзя лучше. Кроме того, Дерево Меркла и Дерево Веркла сами по себе имеют K-арную форму вариантов, конкретная реализация механизма аналогична, просто измените количество поддеревьев под каждым узлом, конкретное сравнение производительности можно увидеть в следующей таблице.
Сравнение временных характеристик методов проверки данных, источник изображения: Verkle Trees
Постоянное расширение экосистемы блокчейн привело к постоянному увеличению количества публичных цепочек. Из-за преимуществ и незаменимости каждой публичной сети в своей области, публичным сетям первого уровня практически невозможно объединиться за короткое время. Однако с развитием DeFi и различными проблемами с CEX, требования пользователей к децентрализованным межцепочечным торговым активам также растут. Поэтому все большее внимание уделяется многоцепочечному хранению данных на уровне DA, которое может устранить проблемы безопасности при межцепочечном взаимодействии данных. Однако, чтобы принимать исторические данные от различных публичных цепочек, уровень DA должен обеспечить децентрализованный протокол для стандартизированного хранения и проверки потоков данных. Например, kvye, промежуточное ПО для хранения данных, основанное на Arweave, активно захватывает данные из цепочки, и все данные в цепочке хранятся в Arweave в стандартной форме, чтобы свести к минимуму различия в процессе передачи данных. Относительно говоря, Layer2, который специально обеспечивает хранение данных на уровне DA для определенной публичной цепочки, взаимодействует с данными через внутренние общие узлы. Несмотря на то, что она снижает стоимость взаимодействия и повышает безопасность, она имеет относительно большие ограничения и может предоставлять данные только конкретным публичным сетям, которые предоставляют услуги.
У этого типа решений для хранения данных пока нет определенного названия, и наиболее ярким представителем является DankSharding на Ethereum, поэтому в данной статье для обозначения этого типа решений используется класс DankSharding. Этот тип решений в основном использует две упомянутые выше технологии хранения DA - Sharding и DAS. Сначала данные разделяются на соответствующие доли с помощью Sharding, а затем каждый узел извлекает блок данных в виде DAS для хранения. Если во всей сети достаточно узлов, мы можем выбрать большее количество шардов N, чтобы нагрузка на хранилище каждого узла составляла всего 1/N от исходной, тем самым добившись увеличения общего пространства хранения в N раз. В то же время, чтобы предотвратить экстремальную ситуацию, когда определенный блок не хранится ни в одном блоке, DankSharding кодирует данные с помощью кода стирания, и только половина данных может быть полностью восстановлена. Последний шаг - это процесс проверки данных, в котором используется структура дерева Веркля и полиномиальное обязательство для достижения быстрой проверки.
Для DA главной цепи одним из самых простых методов обработки данных является хранение исторических данных в краткосрочной перспективе. По сути, блокчейн играет роль публичной бухгалтерской книги, позволяя изменениям в ее содержимом быть засвидетельствованными всей сетью, без необходимости постоянного хранения. Если взять в качестве примера Solana, то, хотя ее исторические данные синхронизируются с Arweave, главный узел сети хранит данные о транзакциях только за последние два дня. В публичной цепочке, основанной на записях о счетах, исторические данные в каждый момент времени сохраняют окончательный статус счета на блокчейне, чего достаточно для обеспечения проверочной основы для изменений в следующий момент. Проекты, которым особенно нужны данные до этого срока, могут хранить их самостоятельно на других децентрализованных публичных цепочках или у доверенной третьей стороны. Другими словами, те, кому нужны дополнительные данные, должны платить за хранение исторических данных.
Контракт EthStorage, источник изображения: Kernel Ventures
Метод считывания данных Celestia, источник изображения: Celestia Core
Что касается технических принципов основной цепочки DA, то многие технологии, схожие с Sharding, заимствованы из публичной цепочки хранения данных. Среди сторонних DA некоторые напрямую используют публичную цепочку хранения для выполнения некоторых задач хранения. Например, данные о конкретных транзакциях в Celestia размещаются в сети LL-IPFS. В решении стороннего DA, помимо создания отдельной публичной цепочки для решения проблемы хранения данных на Layer1, более прямым способом является непосредственное соединение публичной цепочки хранения данных с Layer1 для хранения огромных исторических данных на Layer1. Для высокопроизводительных блокчейнов объем исторических данных еще больше. При работе на полной скорости объем данных высокопроизводительной публичной сети Solana приближается к 4 ПГ, что совершенно невозможно для хранения на обычных узлах. Решение, которое выбрала компания Solana, заключается в хранении исторических данных в децентрализованной сети хранения данных Arweave, а на основных узлах сети сохраняются данные только за 2 дня для проверки. Чтобы обеспечить безопасность хранимого процесса, Solana и Arweave Chain специально разработали протокол моста для хранения данных, Solar Bridge. Данные, проверенные узлом Solana, будут синхронизированы с Arweave, и соответствующий тег будет возвращен. Только благодаря этой метке узел Solana может в любой момент просмотреть исторические данные блокчейна Solana. В Arweave нет необходимости в том, чтобы все узлы сети поддерживали согласованность данных и использовали это в качестве порога для участия в сетевых операциях. Вместо этого используется хранение вознаграждений. Прежде всего, Arweave не использует традиционную цепную структуру для построения блоков, а больше похож на структуру графа. В Arweave новый блок будет не только указывать на предыдущий блок, но и случайным образом указывать на сгенерированный блок Recall Block. Конкретное местоположение блока Recall определяется результатом хэширования его предыдущего блока и высотой блока. Расположение блока Recall неизвестно до тех пор, пока не будет добыт предыдущий блок. Однако в процессе генерации нового блока узлу необходимо иметь данные Recall Block, чтобы использовать механизм POW для вычисления хэша заданной сложности. Вознаграждение может получить только тот майнер, который первым вычислит хэш, соответствующий заданной сложности, что побуждает майнеров накапливать как можно больше. исторические данные. В то же время, чем меньше людей хранят определенный исторический блок, у узлов будет меньше конкурентов при генерации нонсов, отвечающих заданной сложности, что побуждает майнеров хранить меньше блоков в сети. И наконец, чтобы гарантировать, что узлы будут постоянно хранить данные в Arweave, в проекте используется механизм оценки узлов WildFire. Узлы будут стремиться общаться с узлами, которые могут быстрее предоставить больше исторических данных, в то время как узлы с более низким рейтингом часто не могут получить последние данные о блоках и транзакциях как можно быстрее и, таким образом, не могут воспользоваться преимуществами соревнования POW...
Метод создания блоков Arweave, источник изображения: Arweave Yellow-Paper
Далее мы сравним преимущества и недостатки пяти решений для хранения данных, основываясь на четырех измерениях показателей производительности DA.
Сравнение производительности решений для хранения данных, источник изображения: Kernel Ventures
В настоящее время блокчейн переживает трансформацию из криптовалюты в более всеохватывающий Web3. Этот процесс приносит не только богатство проектов на блокчейне. Чтобы обеспечить одновременную работу такого большого количества проектов на Layer1 и в то же время гарантировать опыт проектов Gamefi и Socialfi, Layer1, представленный Ethereum, принял такие методы, как Rollup и Blobs, чтобы улучшить TPS. Среди новых блокчейнов также растет число высокопроизводительных блокчейнов. Но более высокий TPS означает не только более высокую производительность, но и большую нагрузку на сеть. Для массивных исторических данных в настоящее время предлагаются различные методы DA, основанные на основной цепочке и третьих сторонах, чтобы адаптироваться к увеличению давления на цепочку. Каждый метод улучшения имеет свои преимущества и недостатки и применим в разных ситуациях.
Блокчейн, ориентированный на платежи, предъявляет чрезвычайно высокие требования к безопасности исторических данных и не стремится к особо высокому TPS. Если этот тип публичной цепочки все еще находится на стадии подготовки, можно использовать метод хранения, подобный DankSharding, который позволяет добиться огромного увеличения емкости хранилища, обеспечивая при этом безопасность. Однако если речь идет о публичной цепочке, такой как Биткойн, которая уже сформировалась и имеет большое количество узлов, существуют огромные риски поспешных улучшений на уровне консенсуса. Поэтому для баланса между безопасностью и хранением можно использовать выделенный DA главной цепи с более высокой степенью защиты во внецепочечном хранилище... Однако стоит отметить, что функции блокчейна не статичны, а постоянно меняются. Например, ранние функции Ethereum в основном ограничивались платежами и простой автоматизированной обработкой активов и транзакций с помощью смарт-контрактов. Однако по мере того, как блокчейн-ландшафт продолжает расширяться, к Ethereum постепенно добавляются различные проекты Socialfi и Defi. Заставьте Ethereum развиваться в более комплексном направлении. Недавно, после взрыва экологии надписей на Биткойне, плата за транзакции в сети Биткойн выросла почти в 20 раз с августа. Это говорит о том, что скорость транзакций в сети Биткойн на данном этапе не может удовлетворить спрос на транзакции, и трейдеры могут только повышать комиссионные сборы, чтобы транзакции обрабатывались как можно быстрее. Теперь сообществу Биткойна необходимо сделать выбор: смириться с высокими комиссиями и низкой скоростью транзакций или снизить безопасность сети, чтобы увеличить скорость транзакций, но при этом нарушить первоначальный замысел платежной системы. Если биткойн-сообщество выберет последний вариант, то в условиях растущего давления данных соответствующее решение для хранения данных также придется корректировать.
Комиссионные за транзакции в сети Биткойн колеблются, источник изображения: OKLINK
Государственные сети с комплексными функциями больше стремятся к TPS, а рост исторических данных еще больше. Трудно приспособиться к быстрому росту TPS в долгосрочной перспективе, приняв решение, подобное DankSharding. Поэтому более подходящим способом является перенос данных на хранение в сторонний DA. Среди них DA, ориентированная на основную цепочку, обладает наибольшей совместимостью и может иметь больше преимуществ, если рассматривать только вопросы хранения данных одной публичной цепочки. Но сегодня, когда публичные цепочки первого уровня процветают, межцепочечная передача активов и взаимодействие данных стали обычным стремлением блокчейн-сообщества. Если принять во внимание долгосрочное развитие всей экосистемы блокчейн, хранение исторических данных разных публичных цепочек на одной публичной цепочке может устранить многие проблемы безопасности в процессе обмена и проверки данных. Таким образом, разница между модульным DA и способом хранения публичной цепочки DA может быть лучшим выбором. В соответствии с предпосылкой близкой универсальности, модульная DA фокусируется на предоставлении услуг уровня DA блокчейна, внедряя более совершенное управление историческими данными индекса, которое может разумно классифицировать различные данные публичной цепи и хранить данные публичной цепи. Имеет больше преимуществ, чем. Однако вышеописанное решение не учитывает стоимость настройки уровня консенсуса в существующей публичной цепочке. Этот процесс чрезвычайно рискован. Как только возникнут проблемы, это может привести к системным уязвимостям и к тому, что публичная цепочка потеряет консенсус сообщества. Поэтому, если речь идет о переходном решении в процессе расширения блокчейна, простейшее временное хранение основной цепи может оказаться более подходящим. Наконец, вышеизложенное обсуждение основано на результатах работы во время реальной эксплуатации. Однако если целью определенной публичной цепочки является развитие ее экологии и привлечение большего числа сторон и участников проекта, она также может предпочесть проекты, которые поддерживаются и финансируются ее фондом... Например, когда общая производительность эквивалентна или даже немного ниже, чем у решений для хранения данных публичной цепочки, сообщество Ethereum также будет склоняться к проектам Layer 2, поддерживаемым фондом Ethereum Foundation, таким как EthStorage, чтобы продолжать развивать экосистему Ethereum.
В целом, функции современного блокчейна становятся все более сложными, что также приводит к увеличению требований к объему хранилища. При наличии достаточного количества узлов проверки уровня 1 исторические данные не нужно резервировать на всех узлах всей сети. Только когда количество резервных копий достигает определенного значения, можно гарантировать относительную безопасность. В то же время, разделение труда в общественных сетях также становится все более и более детальным, Уровень 1 отвечает за консенсус и исполнение, Rollup - за расчеты и проверку, а для хранения данных используется отдельный блокчейн. Каждая часть может сосредоточиться на определенной функции, не будучи ограниченной производительностью других частей. Однако то, насколько конкретный объем хранилища или какая доля узлов должна быть разрешена для хранения исторических данных, может обеспечить баланс между безопасностью и эффективностью, и как обеспечить безопасное взаимодействие между различными блокчейнами, - это вопрос, который требует от разработчиков блокчейна размышлений и постоянного совершенствования. Инвесторы, тем не менее, обращают внимание на проект DA на главной цепочке Ethereum, потому что на данном этапе у Ethereum уже достаточно сторонников и ему не нужно полагаться на другие сообщества для расширения своего влияния. Что еще более необходимо, так это улучшать и развивать свое сообщество и привлекать больше проектов в экосистему Ethereum. Однако для публичных сетей, находящихся в положении догоняющих, таких как Solana и Aptos, одна сеть сама по себе не обладает такой полной экологией, поэтому она может быть более склонна к объединению усилий с другими сообществами, чтобы создать огромную межсетевую экологию для расширения влияния. Таким образом, зарождающийся уровень 1, общий сторонний DA заслуживает большего внимания.
Kernel Ventures - это криптовалютный венчурный фонд, движимый сообществом исследователей и разработчиков, с более чем 70 инвестициями на ранних стадиях, сосредоточенными на инфраструктуре, промежуточном ПО, dApps, особенно ZK, Rollup, DEX, модульных блокчейнах, а также онбординговых вертикальных областях для миллиардов криптовалютных пользователей в будущем, таких как абстракция счетов, доступность данных, масштабируемость и т.д. На протяжении последних семи лет мы поддерживаем рост основных сообществ разработчиков и университетских ассоциаций блокчейна по всему миру.
Будучи распределенной бухгалтерской книгой, блокчейн должен хранить исторические данные на всех узлах, чтобы обеспечить безопасность и достаточную децентрализацию хранения данных. Поскольку корректность каждого изменения состояния связана с предыдущим состоянием (источником транзакций), для обеспечения корректности транзакций блокчейн в принципе должен хранить все исторические записи от первой до текущей транзакции. Если взять в качестве примера Ethereum, то даже если средний размер блока оценивается в 20 кб, текущий общий размер блоков Ethereum достиг 370 ГБ. Помимо самого блока, полный узел также должен записывать статус и квитанции о транзакциях. С учетом этой части общая емкость хранения одного узла превысила 1 ТБ, что позволяет сосредоточить управление узлом в руках нескольких человек.
Последняя высота блока Ethereum, источник изображения: Etherscan
По сравнению со структурами хранения данных в виде баз данных или связанных списков, несопоставимость блокчейна обусловлена способностью проверять вновь созданные данные с помощью исторических данных. Поэтому обеспечение безопасности исторических данных - это первый вопрос, который необходимо рассмотреть при хранении на уровне DA. Оценивая безопасность данных в системах blockchain, мы часто анализируем ее по объему избыточности данных и методу проверки их доступности.
Исходя из предпосылки обеспечения базовой безопасности, следующей основной целью, которую должен достичь уровень DA, является снижение затрат и повышение эффективности. Первая - снизить затраты на хранение данных, независимо от разницы в производительности оборудования, то есть уменьшить расход памяти, вызванный хранением данных единичного размера. На данном этапе основными способами снижения затрат на хранение данных в блокчейне являются внедрение технологии шардинга и использование хранения на основе вознаграждения для обеспечения эффективного хранения данных и снижения количества резервных копий данных. Однако из приведенных выше методов улучшения нетрудно понять, что между стоимостью хранения и безопасностью данных существует игровая зависимость. Сокращение объема хранилища часто означает снижение уровня безопасности. Поэтому превосходный уровень DA должен обеспечивать баланс между стоимостью хранения и безопасностью данных. Кроме того, если уровень DA представляет собой отдельную публичную цепочку, ему необходимо снизить стоимость за счет минимизации промежуточного процесса обмена данными. В каждом процессе передачи индексные данные должны быть оставлены для последующих вызовов запросов. Поэтому, чем дольше процесс вызова, тем больше индексных данных останется, и стоимость хранения увеличится. Наконец, стоимость хранения данных напрямую связана с их долговечностью. Вообще говоря, чем выше стоимость хранения данных, тем сложнее для публичной сети хранить данные постоянно.
После снижения затрат следующим шагом будет повышение эффективности, которая заключается в способности быстро вызывать данные из слоя DA, когда их нужно использовать. Этот процесс включает в себя два этапа. Первый - это поиск узлов, на которых хранятся данные. Этот процесс предназначен главным образом для публичных сетей, которые не достигли согласованности данных во всей сети. Если публичная цепочка обеспечивает синхронизацию данных для узлов всей сети, этим можно пренебречь. Временные затраты на процесс. Во-вторых, в современных основных блокчейн-системах, включая Bitcoin, Ethereum и Filecoin, методом хранения узлов является база данных Leveldb. В Leveldb данные хранятся тремя способами. Во-первых, данные, записанные сразу, будут храниться в файлах типа Memtable. Когда хранилище Memtable будет заполнено, тип файла будет изменен с Memtable на Immutable Memtable. Оба типа файлов хранятся в памяти, но файлы Immutable Memtable больше не могут быть изменены, из них можно только читать данные. Горячее хранилище, используемое в сети IPFS, хранит данные в этой части. Когда он вызывается, его можно быстро считать из памяти. Однако мобильная память обычного узла часто имеет уровень GB, и в нее легко медленно записывать данные. При сбое узла или другой нештатной ситуации данные в памяти будут безвозвратно потеряны. Если Вы хотите, чтобы данные хранились постоянно, Вам нужно хранить их в виде SST-файла на твердотельном накопителе (SSD). Однако при чтении данных Вам необходимо сначала считать их в память, что значительно снижает скорость индексации данных. Наконец, в системах, использующих общее хранилище, восстановление данных требует отправки запросов данных на несколько узлов и их восстановления. Этот процесс также снизит скорость считывания данных.
Метод хранения данных Leveldb, источник изображения: Справочник Leveldb
С развитием DeFi и различными проблемами с CEX растут и потребности пользователей в межцепочечных транзакциях децентрализованных активов. Независимо от механизма кросс-цепочки - хэш-блокировки, нотариуса или ретрансляционной цепочки - одновременного определения исторических данных в обеих цепочках не избежать. Ключ к решению этой проблемы лежит в разделении данных по двум цепочкам, и прямая связь не может быть достигнута в различных децентрализованных системах. Поэтому на данном этапе предлагается решение путем изменения метода хранения на уровне DA, который не только хранит исторические данные нескольких публичных цепочек на одной доверенной публичной цепочке, но и требует обращения к данным только этой публичной цепочки во время проверки. Можно. Это требует от уровня DA способности устанавливать безопасные методы связи с различными типами публичных цепочек, что означает, что уровень DA обладает хорошей универсальностью.
Метод хранения данных после Sharding, источник изображения: Kernel Ventures
Технология DAS основана на дальнейшей оптимизации методов хранения Sharding. Во время процесса шардинга, из-за простого случайного хранения узлов, определенный блок может быть потерян. Во-вторых, для фрагментированных данных также очень важно подтвердить подлинность и целостность данных в процессе восстановления. В DAS эти две проблемы решаются с помощью кода Eraser и полиномиального обязательства KZG.
Проверка данных гарантирует, что данные, вызываемые из узла, являются точными и полными. Чтобы минимизировать объем данных и вычислительных затрат, необходимых для процесса проверки, слой DA теперь использует древовидную структуру в качестве основного метода проверки. Самая простая форма - это использование дерева Меркла для проверки, которое использует форму записей полного двоичного дерева, нужно только хранить корень Меркла и хэш-значение поддерева на другой стороне пути узла, которое может быть проверено, временная сложность проверки составляет уровень O(logN) (по умолчанию logN - это log2(N)). Хотя процесс проверки был значительно упрощен, объем данных для проверки в целом все еще растет с увеличением количества данных. Чтобы решить проблему увеличения объема проверки, на данном этапе предлагается другой метод проверки - дерево Веркле, в котором каждый узел дерева Веркле не только хранит значение, но и прикрепляет векторное обязательство, что позволяет быстро подтвердить подлинность данных, используя значение исходного узла и доказательство обязательства, без необходимости вызова значений других родственных узлов, что делает вычисления каждой проверки проще и быстрее. Таким образом, количество вычислений для каждой проверки зависит только от глубины дерева Веркле, которая является фиксированной константой, что значительно ускоряет скорость проверки. Однако вычисление Vector Commitment требует участия всех родственных узлов в одном слое, что значительно увеличивает стоимость записи и изменения данных. Однако для таких данных, как исторические данные, которые хранятся постоянно и не могут быть подделаны, а также могут быть только прочитаны, но не записаны, дерево Веркля подходит как нельзя лучше. Кроме того, Дерево Меркла и Дерево Веркла сами по себе имеют K-арную форму вариантов, конкретная реализация механизма аналогична, просто измените количество поддеревьев под каждым узлом, конкретное сравнение производительности можно увидеть в следующей таблице.
Сравнение временных характеристик методов проверки данных, источник изображения: Verkle Trees
Постоянное расширение экосистемы блокчейн привело к постоянному увеличению количества публичных цепочек. Из-за преимуществ и незаменимости каждой публичной сети в своей области, публичным сетям первого уровня практически невозможно объединиться за короткое время. Однако с развитием DeFi и различными проблемами с CEX, требования пользователей к децентрализованным межцепочечным торговым активам также растут. Поэтому все большее внимание уделяется многоцепочечному хранению данных на уровне DA, которое может устранить проблемы безопасности при межцепочечном взаимодействии данных. Однако, чтобы принимать исторические данные от различных публичных цепочек, уровень DA должен обеспечить децентрализованный протокол для стандартизированного хранения и проверки потоков данных. Например, kvye, промежуточное ПО для хранения данных, основанное на Arweave, активно захватывает данные из цепочки, и все данные в цепочке хранятся в Arweave в стандартной форме, чтобы свести к минимуму различия в процессе передачи данных. Относительно говоря, Layer2, который специально обеспечивает хранение данных на уровне DA для определенной публичной цепочки, взаимодействует с данными через внутренние общие узлы. Несмотря на то, что она снижает стоимость взаимодействия и повышает безопасность, она имеет относительно большие ограничения и может предоставлять данные только конкретным публичным сетям, которые предоставляют услуги.
У этого типа решений для хранения данных пока нет определенного названия, и наиболее ярким представителем является DankSharding на Ethereum, поэтому в данной статье для обозначения этого типа решений используется класс DankSharding. Этот тип решений в основном использует две упомянутые выше технологии хранения DA - Sharding и DAS. Сначала данные разделяются на соответствующие доли с помощью Sharding, а затем каждый узел извлекает блок данных в виде DAS для хранения. Если во всей сети достаточно узлов, мы можем выбрать большее количество шардов N, чтобы нагрузка на хранилище каждого узла составляла всего 1/N от исходной, тем самым добившись увеличения общего пространства хранения в N раз. В то же время, чтобы предотвратить экстремальную ситуацию, когда определенный блок не хранится ни в одном блоке, DankSharding кодирует данные с помощью кода стирания, и только половина данных может быть полностью восстановлена. Последний шаг - это процесс проверки данных, в котором используется структура дерева Веркля и полиномиальное обязательство для достижения быстрой проверки.
Для DA главной цепи одним из самых простых методов обработки данных является хранение исторических данных в краткосрочной перспективе. По сути, блокчейн играет роль публичной бухгалтерской книги, позволяя изменениям в ее содержимом быть засвидетельствованными всей сетью, без необходимости постоянного хранения. Если взять в качестве примера Solana, то, хотя ее исторические данные синхронизируются с Arweave, главный узел сети хранит данные о транзакциях только за последние два дня. В публичной цепочке, основанной на записях о счетах, исторические данные в каждый момент времени сохраняют окончательный статус счета на блокчейне, чего достаточно для обеспечения проверочной основы для изменений в следующий момент. Проекты, которым особенно нужны данные до этого срока, могут хранить их самостоятельно на других децентрализованных публичных цепочках или у доверенной третьей стороны. Другими словами, те, кому нужны дополнительные данные, должны платить за хранение исторических данных.
Контракт EthStorage, источник изображения: Kernel Ventures
Метод считывания данных Celestia, источник изображения: Celestia Core
Что касается технических принципов основной цепочки DA, то многие технологии, схожие с Sharding, заимствованы из публичной цепочки хранения данных. Среди сторонних DA некоторые напрямую используют публичную цепочку хранения для выполнения некоторых задач хранения. Например, данные о конкретных транзакциях в Celestia размещаются в сети LL-IPFS. В решении стороннего DA, помимо создания отдельной публичной цепочки для решения проблемы хранения данных на Layer1, более прямым способом является непосредственное соединение публичной цепочки хранения данных с Layer1 для хранения огромных исторических данных на Layer1. Для высокопроизводительных блокчейнов объем исторических данных еще больше. При работе на полной скорости объем данных высокопроизводительной публичной сети Solana приближается к 4 ПГ, что совершенно невозможно для хранения на обычных узлах. Решение, которое выбрала компания Solana, заключается в хранении исторических данных в децентрализованной сети хранения данных Arweave, а на основных узлах сети сохраняются данные только за 2 дня для проверки. Чтобы обеспечить безопасность хранимого процесса, Solana и Arweave Chain специально разработали протокол моста для хранения данных, Solar Bridge. Данные, проверенные узлом Solana, будут синхронизированы с Arweave, и соответствующий тег будет возвращен. Только благодаря этой метке узел Solana может в любой момент просмотреть исторические данные блокчейна Solana. В Arweave нет необходимости в том, чтобы все узлы сети поддерживали согласованность данных и использовали это в качестве порога для участия в сетевых операциях. Вместо этого используется хранение вознаграждений. Прежде всего, Arweave не использует традиционную цепную структуру для построения блоков, а больше похож на структуру графа. В Arweave новый блок будет не только указывать на предыдущий блок, но и случайным образом указывать на сгенерированный блок Recall Block. Конкретное местоположение блока Recall определяется результатом хэширования его предыдущего блока и высотой блока. Расположение блока Recall неизвестно до тех пор, пока не будет добыт предыдущий блок. Однако в процессе генерации нового блока узлу необходимо иметь данные Recall Block, чтобы использовать механизм POW для вычисления хэша заданной сложности. Вознаграждение может получить только тот майнер, который первым вычислит хэш, соответствующий заданной сложности, что побуждает майнеров накапливать как можно больше. исторические данные. В то же время, чем меньше людей хранят определенный исторический блок, у узлов будет меньше конкурентов при генерации нонсов, отвечающих заданной сложности, что побуждает майнеров хранить меньше блоков в сети. И наконец, чтобы гарантировать, что узлы будут постоянно хранить данные в Arweave, в проекте используется механизм оценки узлов WildFire. Узлы будут стремиться общаться с узлами, которые могут быстрее предоставить больше исторических данных, в то время как узлы с более низким рейтингом часто не могут получить последние данные о блоках и транзакциях как можно быстрее и, таким образом, не могут воспользоваться преимуществами соревнования POW...
Метод создания блоков Arweave, источник изображения: Arweave Yellow-Paper
Далее мы сравним преимущества и недостатки пяти решений для хранения данных, основываясь на четырех измерениях показателей производительности DA.
Сравнение производительности решений для хранения данных, источник изображения: Kernel Ventures
В настоящее время блокчейн переживает трансформацию из криптовалюты в более всеохватывающий Web3. Этот процесс приносит не только богатство проектов на блокчейне. Чтобы обеспечить одновременную работу такого большого количества проектов на Layer1 и в то же время гарантировать опыт проектов Gamefi и Socialfi, Layer1, представленный Ethereum, принял такие методы, как Rollup и Blobs, чтобы улучшить TPS. Среди новых блокчейнов также растет число высокопроизводительных блокчейнов. Но более высокий TPS означает не только более высокую производительность, но и большую нагрузку на сеть. Для массивных исторических данных в настоящее время предлагаются различные методы DA, основанные на основной цепочке и третьих сторонах, чтобы адаптироваться к увеличению давления на цепочку. Каждый метод улучшения имеет свои преимущества и недостатки и применим в разных ситуациях.
Блокчейн, ориентированный на платежи, предъявляет чрезвычайно высокие требования к безопасности исторических данных и не стремится к особо высокому TPS. Если этот тип публичной цепочки все еще находится на стадии подготовки, можно использовать метод хранения, подобный DankSharding, который позволяет добиться огромного увеличения емкости хранилища, обеспечивая при этом безопасность. Однако если речь идет о публичной цепочке, такой как Биткойн, которая уже сформировалась и имеет большое количество узлов, существуют огромные риски поспешных улучшений на уровне консенсуса. Поэтому для баланса между безопасностью и хранением можно использовать выделенный DA главной цепи с более высокой степенью защиты во внецепочечном хранилище... Однако стоит отметить, что функции блокчейна не статичны, а постоянно меняются. Например, ранние функции Ethereum в основном ограничивались платежами и простой автоматизированной обработкой активов и транзакций с помощью смарт-контрактов. Однако по мере того, как блокчейн-ландшафт продолжает расширяться, к Ethereum постепенно добавляются различные проекты Socialfi и Defi. Заставьте Ethereum развиваться в более комплексном направлении. Недавно, после взрыва экологии надписей на Биткойне, плата за транзакции в сети Биткойн выросла почти в 20 раз с августа. Это говорит о том, что скорость транзакций в сети Биткойн на данном этапе не может удовлетворить спрос на транзакции, и трейдеры могут только повышать комиссионные сборы, чтобы транзакции обрабатывались как можно быстрее. Теперь сообществу Биткойна необходимо сделать выбор: смириться с высокими комиссиями и низкой скоростью транзакций или снизить безопасность сети, чтобы увеличить скорость транзакций, но при этом нарушить первоначальный замысел платежной системы. Если биткойн-сообщество выберет последний вариант, то в условиях растущего давления данных соответствующее решение для хранения данных также придется корректировать.
Комиссионные за транзакции в сети Биткойн колеблются, источник изображения: OKLINK
Государственные сети с комплексными функциями больше стремятся к TPS, а рост исторических данных еще больше. Трудно приспособиться к быстрому росту TPS в долгосрочной перспективе, приняв решение, подобное DankSharding. Поэтому более подходящим способом является перенос данных на хранение в сторонний DA. Среди них DA, ориентированная на основную цепочку, обладает наибольшей совместимостью и может иметь больше преимуществ, если рассматривать только вопросы хранения данных одной публичной цепочки. Но сегодня, когда публичные цепочки первого уровня процветают, межцепочечная передача активов и взаимодействие данных стали обычным стремлением блокчейн-сообщества. Если принять во внимание долгосрочное развитие всей экосистемы блокчейн, хранение исторических данных разных публичных цепочек на одной публичной цепочке может устранить многие проблемы безопасности в процессе обмена и проверки данных. Таким образом, разница между модульным DA и способом хранения публичной цепочки DA может быть лучшим выбором. В соответствии с предпосылкой близкой универсальности, модульная DA фокусируется на предоставлении услуг уровня DA блокчейна, внедряя более совершенное управление историческими данными индекса, которое может разумно классифицировать различные данные публичной цепи и хранить данные публичной цепи. Имеет больше преимуществ, чем. Однако вышеописанное решение не учитывает стоимость настройки уровня консенсуса в существующей публичной цепочке. Этот процесс чрезвычайно рискован. Как только возникнут проблемы, это может привести к системным уязвимостям и к тому, что публичная цепочка потеряет консенсус сообщества. Поэтому, если речь идет о переходном решении в процессе расширения блокчейна, простейшее временное хранение основной цепи может оказаться более подходящим. Наконец, вышеизложенное обсуждение основано на результатах работы во время реальной эксплуатации. Однако если целью определенной публичной цепочки является развитие ее экологии и привлечение большего числа сторон и участников проекта, она также может предпочесть проекты, которые поддерживаются и финансируются ее фондом... Например, когда общая производительность эквивалентна или даже немного ниже, чем у решений для хранения данных публичной цепочки, сообщество Ethereum также будет склоняться к проектам Layer 2, поддерживаемым фондом Ethereum Foundation, таким как EthStorage, чтобы продолжать развивать экосистему Ethereum.
В целом, функции современного блокчейна становятся все более сложными, что также приводит к увеличению требований к объему хранилища. При наличии достаточного количества узлов проверки уровня 1 исторические данные не нужно резервировать на всех узлах всей сети. Только когда количество резервных копий достигает определенного значения, можно гарантировать относительную безопасность. В то же время, разделение труда в общественных сетях также становится все более и более детальным, Уровень 1 отвечает за консенсус и исполнение, Rollup - за расчеты и проверку, а для хранения данных используется отдельный блокчейн. Каждая часть может сосредоточиться на определенной функции, не будучи ограниченной производительностью других частей. Однако то, насколько конкретный объем хранилища или какая доля узлов должна быть разрешена для хранения исторических данных, может обеспечить баланс между безопасностью и эффективностью, и как обеспечить безопасное взаимодействие между различными блокчейнами, - это вопрос, который требует от разработчиков блокчейна размышлений и постоянного совершенствования. Инвесторы, тем не менее, обращают внимание на проект DA на главной цепочке Ethereum, потому что на данном этапе у Ethereum уже достаточно сторонников и ему не нужно полагаться на другие сообщества для расширения своего влияния. Что еще более необходимо, так это улучшать и развивать свое сообщество и привлекать больше проектов в экосистему Ethereum. Однако для публичных сетей, находящихся в положении догоняющих, таких как Solana и Aptos, одна сеть сама по себе не обладает такой полной экологией, поэтому она может быть более склонна к объединению усилий с другими сообществами, чтобы создать огромную межсетевую экологию для расширения влияния. Таким образом, зарождающийся уровень 1, общий сторонний DA заслуживает большего внимания.
Kernel Ventures - это криптовалютный венчурный фонд, движимый сообществом исследователей и разработчиков, с более чем 70 инвестициями на ранних стадиях, сосредоточенными на инфраструктуре, промежуточном ПО, dApps, особенно ZK, Rollup, DEX, модульных блокчейнах, а также онбординговых вертикальных областях для миллиардов криптовалютных пользователей в будущем, таких как абстракция счетов, доступность данных, масштабируемость и т.д. На протяжении последних семи лет мы поддерживаем рост основных сообществ разработчиков и университетских ассоциаций блокчейна по всему миру.