[новость]Блокчейн размером 22 КБ - Технический справочник[Russian Community]

Блокчейн размером 22 КБ - Технический справочник

«Весь блокчейн Mina составляет около 22 КБ - размер пары твитов».

Чтобы проанализировать вышеприведенное утверждение, сначала давайте проясним, что мы здесь подразумеваем под «блокчейном»:

  1. Однозначное пригодное для использования представление (т.е. не просто хеши) частей состояния, о которых будет заботиться типичный пользователь, а именно текущий баланс его учетной записи.
  2. Данные, которые нужны узлу для проверки реальности этого состояния без доверия.
  3. Возможность транслировать транзакции в сети для совершения перевода.

«Блокчейн» здесь захватывает (1), (2) и (3).

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

В других сетях, таких как Биткойн или Эфириум, существует понятие «легкий клиент». Эти легкие клиенты предназначены для сред с низкой пропускной способностью и помогают пользователям проверять / получать доступ к информации, имеющей отношение к ним, из последнего состояния цепочки блоков без необходимости выполнять дорогостоящую (как во времени, так и в пространстве) операцию синхронизации. Они делают это, считывая заголовок из блока и проверяя правильность баланса по отношению к полученному блоку, тем самым доверяя тому полному узлу, который отправляет им данные. Эти легкие узлы не могут представлять «цепочку блоков», как мы определили ее выше.

Mina заменяет всю цепочку блоков, от генезиса до любого блока, легко проверяемым криптографическим доказательством постоянного размера. Проверка этого доказательства, соответствующего блоку, равносильна проверке всех транзакций вплоть до нескольких блоков позади текущего блока. Доказательства и входные данные для функции проверки находятся в последнем блоке, о котором ходят слухи. Обратите внимание, что из-за определения «блокчейн», приведенного выше, используется термин «пригодный для использования». Это определение означает, что в кратком протоколе, таком как Mina, нам нужно больше, чем просто объект доказательства в сочетании с состоянием, полным непрозрачных хэшей.

Этот процесс проверки применяется ко всем узлам в сети Мины. Некоторым ролям в сети действительно нужна дополнительная информация для выполнения своих обязанностей, но это выходит за рамки определения, которое мы дали выше. Подробнее об узле «Производитель блоков» читайте в приложении.

Данные, необходимые для удобного представления блокчейна

Мы хотим (1) иметь возможность проверять баланс определенного счета и (2) иметь возможность отправлять транзакции в сеть. Для этого узла, который мы называем «узлом без консенсуса», в его памяти должно храниться только следующее: состояние протокола, учетная запись, путь Меркла к этой учетной записи и ключ проверки. Важно отметить, что эти мощные узлы не являются легкими клиентами. Они имеют такую ​​же безопасность, как и полные узлы.

Это клиентское программное обеспечение для узла, который желает действовать только как «неконсенсусный узел», еще не реализовано. Он находится в дорожной карте пост-основной сети.

Состояние протокола

Состояние протокола - это однозначное представление текущего состояния сети. Он включает в себя хэши различных структур данных, включая реестр. Узлы, производящие блоки, сплетничают о блоках, которые содержат внутри состояние протокола.

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

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

Учетная запись

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

Merkle путь к аккаунту

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

Измерение размера

Таким образом, неконсенсусный узел в Mina может проверять всю цепочку блоков и учетные записи из реестра, сертифицированного блокчейном SNARK, без доверия, как любой другой более крупный, более дорогой (с синхронизацией времени и пространства) полный узел в других сетях. (например, Биткойн или Эфириум). Давайте посмотрим, насколько велики эти данные:

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

Размер пробной копии: 7063
Размер состояния протокола: 822
Размер счета: 181
Размер пути: 741
Общий размер (комбинированный): 8807

Узлу также требуется ключ для проверки SNARKS блокчейна, и его размер на диске составляет 2039 байт.

Результат составляет примерно 11кБ. Криптография Mina развивалась с тех пор, как мы первоначально вычислили цифры и достигли 22 КБ - протокол стал немного более эффективным.

Snarked-ledger

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

Вывод

Наша цель состояла в том, чтобы показать, что вся цепочка блоков может быть представлена ​​и проверена с использованием данных размером всего 11 КБ. Мы утверждаем, что весь блокчейн Mina составляет около 22 КБ - на самом деле он даже меньше.

Приложение: узлы производства блоков

Узлы, производящие блоки, выполняют больше задач, чем просто проверка состояния. Чтобы эффективно производить блоки, производители блоков поддерживают цепочку из последних k блоков (где k - константа из нашего консенсусного алгоритма - ouroboros samasika, в настоящее время установлено значение 290). k означает окончательный аспект блока; блок, который имеет k блоков поверх него, имеет незначительную вероятность быть обращенным, и поэтому все транзакции в нем всегда будут подтверждаться на всю вечность. Производитель блоков поддерживает любые вилки, возникающие в последних k блоках, чтобы определить лучшую цепочку и создать из нее блоки. Производитель блоков также поддерживает все структуры данных, включая полную бухгалтерскую книгу, чтобы иметь возможность генерировать состояние протокола, которое затем могут проверить другие узлы. Хотя для нового узла, создающего блоки, требуется более крупное состояние, синхронизация с последним состоянием сводится к проверке k SNARK цепочки блоков и применению транзакций в этих k блоках.

Официальная страница перевода https://minaprotocol.com/blog/22kb-sized-blockchain-a-technical-reference

3 Likes