Одним из самых громких объявлений, прозвучавших на конференции CoinGeek Zurich, стала новость о публикации Комитетом по техническим стандартам Bitcoin SV (Комитетом по ТС) стандартизированного формата доказательства целостности блоков (по дереву Меркла).
Во время своего выступления главный технический директор nChain и председатель Комитета по ТС Стив Шеддерс вместе с основателем Two Hop Ventures и членом-учредителем Комитета по ТС Алексом Фаувелом объявили, что процесс общественного обсуждения стандартизированного формата доказательства целостности блоков завершен и стандарт уже опубликован под лицензией OpenBSV.
Это важная новость как для разработчиков Bitcoin SV, так и для пользователей, поскольку стандарт доказательства по дереву Меркла обеспечивает гораздо большую совместимость для BSV-платежей и предоставляет стабильную и надежную платформу для создания сервисов упрощенной проверки платежей (SPV) в блокчейне. SPV является неотъемлемым компонентом основного функционала Bitcoin SV, поскольку именно этот блокчейн наиболее точно соответствует исходной «белой книге» биткоина, опубликованной Сатоши Накамото в 2008 году, в которой описывается применение SPV для получения и подтверждения платежей без запуска полноценного биткоин-узла.
Комитет по техническим стандартам стремится облегчить взаимодействие внутри растущей экосистемы Bitcoin SV путем сотрудничества с разработчиками и заинтересованными сторонами для разработки общих стандартов, совместимых с различными приложениями. Важно подчеркнуть, что Комитет по ТС не определяет стандарты — он обеспечивает основу и процесс для разработки технических стандартов с целью улучшения взаимодействия и ускорения процесса распространения Bitcoin SV.
«Комитет по ТС создан не для того, чтобы устанавливать стандарты самостоятельно. Его цель — помочь участникам отрасли самим определять, какими должны быть эти стандарты», — отметил Шеддерс.
Стандартизированный формат доказательства целостности блоков (по дереву Меркла) прошел всеобъемлющий и открытый процесс стандартизации, который был проведен Комитетом и состоял из следующих этапов: рассмотрение, подготовка проекта, внутреннее обсуждение и общественное обсуждение. На данный момент стандарт уже опубликован и готов к внедрению.
Доказательства целостности блоков и как они работают с упрощенной проверкой платежей (SPV)
Чтобы понять пользу стандартизированного формата доказательства Меркла, необходимо сначала понять важность этой структуры данных для упрощенной проверки платежей (SPV). SPV позволяет продавцу или пользователю подтвердить транзакцию в Bitcoin SV без необходимости загружать весь блокчейн. Вместо этого они могут получить от надежного узла заголовок биткоин-блока, содержащего эту транзакцию. Заголовок блока содержит корень Меркла — хеш всех транзакций в этом блоке.
Биткоин-транзакции хранятся в структуре данных дерева Меркла, которое похоже на двоичное дерево, за исключением того, что листья структуры содержат хеши каждой транзакции, которые затем хешируются со своими соседями на каждом следующем уровне вплоть до корня дерева — корня Меркла. Таким образом, корень Меркла содержит доказательство каждой транзакции, находящейся в данном биткоин-блоке, что позволяет установить существование транзакции в блокчейне с использованием этого доказательства и идентификатора или хеша транзакции.
Технические особенности такой проверки подразумевают, что пользователи Bitcoin SV могут безопасно запустить «облегченный узел» SPV на простом и недорогом оборудовании для приема транзакций от других пользователей сети и быть уверенными, что смогут легко проверить, действительна ли определенная транзакция, без необходимости загружать весь блокчейн.
«Помимо заголовка биткоин-блока, доказательство Меркла, вероятно, одна из самых фундаментальных структур данных в биткоин-сети. Именно оно позволяет доказать, что транзакция связана с блоком, то есть доказать, что майнеры приняли эту транзакцию. Поэтому существует множество различных причин, по которым стороны могут захотеть обменяться доказательствами Меркла, — объяснят Шеддерс в интервью Bitcoin Association. — Это очень важно для однорангового взаимодействия, поскольку отчасти это взаимодействие подразумевает отправку битов информации с прикрепленными к ним доказательствами Меркла, а это означает, что множество различных кошельков должны поддерживать эту функцию. Таким образом, если каждый реализует ее по-своему, то каждый раз, когда вы захотите присоединиться к службе, вам придется разрабатывать новый способ, которым это можно было бы сделать».
С запуском стандартизированного формата доказательств целостности блока по дереву Меркла эти чрезвычайно важные доказательства могут предоставляться различным службам и пользователям с гарантией того, что они будут совместимы с пользовательскими кошельками или SPV-узлами. Тем самым весь процесс подтверждения транзакций становится более автономным и доступным.
Важность технических стандартов
Стандартизированный формат доказательства Меркла — это первый стандарт Комитета по ТС, достигший стадии публикации. И хотя к моменту перехода на стадию общественного обсуждения он казался вполне целостным и завершенным, заинтересованные стороны смогли существенно улучшить некоторые аспекты стандарта, предоставив свои отзывы перед его публикацией.
Как пояснил Шеддерс, стандарты — важный элемент, необходимый для создания экосистемы инноваций, где все приложения должны быть совместимы друг с другом. Это подтверждается широким распространением стандартов в различных традиционных отраслях. При этом они не мешают конкуренции, а наоборот, делают технологию более доступной как для конкурентов, так и для пользователей. Шеддерс привел в пример производство DVD-проигрывателей, чтобы показать, как стандарты могут способствовать конкуренции и улучшать пользовательский опыт.
«Давайте представим, что у меня был DVD-проигрыватель Sony, а потом я купил DVD-проигрыватель Samsung. А теперь представьте, что их форматы несовместимы. Мне пришлось бы заново покупать коллекцию DVD, чтобы заменить все свои старые диски. Но [общий стандарт] решает эту проблему, — объясняет Шеддерс. — Каждый кошелек может принять существующий стандарт доказательств целостности блока. Это означает, что он может мгновенно взаимодействовать со всеми другими кошельками, также принявшими стандарт, причем даже с теми, которые ранее были ему неизвестны. Это относится и к кошелькам, которые еще не существуют и будут созданы только в будущем».
Без таких стандартов любая отрасль рискует оказаться в ситуации, когда ее пользователи будут вынуждены иметь дело с разрозненной и неэффективной экосистемой, а общая доступность базовых технологий и приложений, созданных на их основе, будет очень низкой. Занимаясь стандартизацией формата доказательства Меркла, сообщество Bitcoin SV обеспечило совместимость, которая станет основополагающим компонентом для конкуренции и инноваций среди SPV-кошельков и поставщиков данных.
«Основополагающий элемент SPV — это доказательство включения, т. е. доказательство Меркла. Если бы у нас не было этого стандарта, любому, кто хотел бы реализовать полноценную SPV в своем кошельке, пришлось бы придумать собственную структуру данных, а затем разработчики другого кошелька должны были бы решать, принять ли эту структуру данных или выдумать свою собственную. Во втором случае мы получили бы два SPV-кошелька с изолированными экосистемами», — объясняет Шеддерс.
Он также подчеркнул, что стандарты, опубликованные Комитетом по ТС, отражают мнение сообщества, а не членов комитета, и добавил, что после публикации стандартов они остаются предметом общественного контроля и могут быть обновлены, изменены или даже отменены, если будут найдены лучшие решения или изменится технологическая среда.
«Комитет по ТС работает только в сотрудничестве с отраслью, при этом мы играем роль организаторов, а реальный вклад в развитие сети обеспечивают поставщики услуг и другие люди, — говорит Шеддерс. — Я думаю, что важно провести грань, когда речь идет о членах Комитета по ТС: когда они выполняют функции собственно членов Комитета, это независимые лица, выступающие в роли организаторов. Вне Комитета, конечно, все они отраслевые участники и люди, заинтересованные в определенных целях, поэтому они также могут стать членами рабочих групп».
Процесс стандартизации Комитета по ТС разработан с учетом того, что в будущем стандарт может потребовать обновления. Вполне возможно, что по мере появления новых требований или изменения экосистемы многие стандарты придется обновлять и изменять.
«Мы стараемся поощрять участников думать о совместимости с будущими приложениями, чтобы они не были консервативными в отношении грядущих изменений. Но вполне возможно, что стандарт может просто стать невыполнимым или устаревшим из-за изменения технологии. В таком случае он, скорее всего, будет отменен и заменен на новый, — продолжает Шеддерс. — Достаточно будет, чтобы кто-то сформулировал потребность отрасли в обновлении или замене стандарта, и это требование будет представлено и оценено заинтересованными сторонами, а не только Комитетом по ТС».
Стандартизированный формат доказательства целостности блоков (по дереву Меркла)
Теперь, когда стандартизированный формат доказательства Меркла опубликован, подробнее о стандарте можно узнать на специальной странице на сайте Комитета по ТС.
Формат определяет структуру данных, в которой хранится информация о доказательстве целостности блока при ее обмене пользователями, например, SPV-кошельками, которые, как отмечается в преамбуле к технической спецификации, принципиально зависят от эффективности обмена такой информацией.
Стандартизированный формат доказательства целостности блоков (по дереву Меркла) состоит из двух компонентов:
- представления предлагаемого формата структуры данных в двоичном формате и в формате JavaScript Object Notation (JSON);
- объяснения алгоритма, используемого для проверки транзакций по доказательству Меркла после их получения в этом формате.
Сфера применения стандартизированного формата доказательства Меркла относится только к простым доказательствам, таким как те, которые требуются SPV-кошелькам для подтверждения отдельных транзакций при их получении; комплексные доказательства будут затронуты в будущем расширенном стандарте. Определение стандартизированных API-вызовов также опущено, поскольку оно не связано с основной структурой данных и требует дальнейшего обсуждения.
В стандартизированном формате доказательства Меркла хранятся в структуре, включающей один байт флагов, позиционный индекс транзакции в дереве Меркла, список 32-байтных хешей и идентификатор транзакции или ее хеш. Эта информация может храниться и предоставляться в двоичном или JSON-формате, при этом байт флагов описывает дополнительную функциональность. Те, кто использует этот стандарт для проверки транзакции по доказательству целостности блока (по дереву Меркла), могут выбрать, включать ли исходную транзакцию или только идентификатор транзакции, тип цели или конечный элемент, тип доказательства (ветвь или дерево), и является ли это доказательство частью комплексного доказательства.
Также описан процесс проверки доказательства Меркла, который включает несколько проверок с учетом вышеупомянутых флагов, а также проверку узлов, не имеющих соседей в структуре данных дерева Меркла.
В процессе внутреннего и общественного обсуждения стандарта Комитет по ТС получил комментарии относительно сложности и опций по умолчанию для формата стандартной структуры данных. В частности, многие заинтересованные стороны выразили мнение, что основной сценарий использования (проверка отдельных транзакций с использованием общих полей данных) не должен требовать взаимодействия с более сложными аспектами формата.
В спецификации сказано: «Чтобы решить эту проблему, были внесены некоторые изменения (в первую очередь в сценарий использования JSON) таким образом, что использование опций по умолчанию приводит к созданию гораздо более простого объекта JSON. Это сохраняет возможность использования альтернативных вариантов без нарушения стандарта, скрывая при этом необязательные поля типизации в случае по умолчанию».
Полное техническое описание стандартизированного формата доказательства Меркла можно найти на сайте Комитета по ТС.
Как создаются стандарты Bitcoin SV
Этот первый стандарт демонстрирует потенциал Комитета по ТС в качестве механизма развития сообщества с целью улучшения среды, в которой действуют разработчики, стартапы и предприятия Bitcoin SV. Внутреннее и общественное обсуждение стандартизированного формата доказательства Меркла привело к созданию более простого в использовании формата структуры данных и алгоритма проверки, сохранив при этом гибкость и перспективную возможность поддержки таких задач, как проверка составных доказательств.
Комитет по ТС следует всестороннему процессу стандартизации, который состоит из нескольких этапов, обеспечивающих взаимодействие с сообществом и заинтересованными сторонами. Идеи для стандартов Bitcoin SV могут быть предложены кем угодно. Затем они рассматриваются комитетом, прежде чем дойти до этапа подготовки проекта технического стандарта.
После подготовки проекта стандарта он проходит ряд внутренних проверок. В их число входят проверка интеллектуальной собственности и юридическая проверка с целью определения любых проблем, которые могут возникнуть в связи с публикацией проекта стандарта. Пока это происходит, действует соглашение о неразглашении, гарантирующее, что предлагаемый стандарт остается защищенным в среде членов Комитета и заинтересованных сторон.
После завершения процессов рассмотрения стандарт либо возвращается на стадию разработки (если требуется его доработка), либо переходит на стадию общественного обсуждения. В ходе общественного обсуждения любые заинтересованные стороны могут представить отзывы о предлагаемом стандарте — все они будут рассмотрены, и, если будет доказана их актуальность, стандарт может быть изменен с учетом этих замечаний.
Стандарт публикуется только после прохождения стадии общественного обсуждения, но работа на этом не заканчивается. После публикации стандарта Комитет по ТС и заинтересованные стороны проверяют реакцию отрасли и уровень его принятия. По истечении достаточного периода времени они могут рекомендовать применение стандарта или снять стандарт с публикации.
«Комитет по ТС разработал стандартный процесс создания проектов стандартов, который состоит из трех этапов. Первый этап — этап подачи заявки, который позволяет людям, не входящим в Комитет по ТС, рассказать нам о том, какие стандарты они хотели бы видеть, независимо от того, связаны ли они сами с этой отраслью или нет. Конечно, мы бы предпочли, чтобы они были заинтересованными сторонами из этой отрасли, которые в будущем действительно примут и будут применять предлагаемый стандарт, одновременно делая его более востребованным в реальной сфере деятельности, — объясняет член-учредитель Комитета по ТС Алекс Фаувел.
— На втором этапе мы подготавливаем проект стандарта. По сути, мы создаем черновой проект, рассматриваем его внутри Комитета, а затем привлекаем специалистов по интеллектуальной собственности для того, чтобы они тоже изучили наш стандарт. Потом, если это необходимо, мы привлекаем технических специалистов.
После того как мы решаем, что удовлетворены черновым вариантом, — а для этого обычно требуется несколько циклов — мы публикуем его в открытом доступе, чтобы общественность могла высказать свои замечания. Это занимает примерно два месяца, и после того, как мы учтем все отзывы (если это будет необходимо), мы опубликуем стандарт, а это уже третий этап. Затем мы начинаем отслеживать, как новый стандарт принимается представителями отрасли, чтобы потом поставить на нем “знак качества” и объявить, что мы рекомендуем его использование. В противном случае мы можем отозвать стандарт, но это то, чего, я надеюсь, нам никогда не придется делать!»
Комитет по ТС использует этот процесс, продолжая стимулировать создание полезных и мощных стандартов для разработки приложений и сервисов на базе Bitcoin SV. Данная деятельность включает в себя работу над спецификацией комплексного протокола, которая в настоящее время находится на стадии общественного обсуждения и открыта для комментариев. Эта спецификация касается способа хранения данных в биткоин-транзакциях путем создания комплексного протокола данных общего назначения, который позволяет эффективно обрабатывать информацию и взаимодействовать с уже существующими и будущими протоколами для работы с данными.
Чтобы принять участие в разработке технических стандартов для Bitcoin SV, посетите сайт Комитета по ТС, где вы сможете предложить новый стандарт, прокомментировать проекты существующих стандартов, находящихся в фазе общественного обсуждения, или внести предложения по проекту дорожной карты.