Драйвчейны позволяют операторам узлов сайдчейна платить майнерам за майнинг — и многое другое! PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Драйвчейны позволяют операторам узлов сайдчейна платить майнерам за майнинг — и многое другое!

Это редакционная статья Шиноби, преподавателя-самоучки в биткойн-пространстве и ориентированного на технологии ведущего биткойн-подкастов.

На этот раз я собираюсь остановиться на деталях и обсудить, как работают приводные цепи; Первоначально они были предложены в 2015 году. Из всех предложений, обсуждавшихся до сих пор, приводные цепи являются самыми старыми и наиболее детализированными с точки зрения конкретных деталей реализации и конструкции, задокументированных в BIP. 300 и 301. Пол Шторц, создатель концепции, имел в виду несколько основных целей дизайна, и хотя это совсем не исчерпывающе, вот некоторые из них:

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

Существует два основных аспекта всей конструкции, поэтому существует два отдельных BIP. Первый — это механизм привязки (BIP300), который позволяет функционировать двусторонней привязке. Шторц разработал нечто, называемое условное депонирование скорости хэширования, которое, по сути, позволяет майнерам как аморфной группе коллективно хранить монеты во всех сайдчейнах. Вторая — это «слепая» схема объединенного майнинга, цель которой — позволить майнерам биткойнов быть производителями блоков на уровне консенсуса без необходимости проверки боковой цепи для этого. Обе эти части вместе представляют собой механизм двусторонней привязки и способ для майнеров биткойнов принимать участие в майнинге сайдчейнов, одновременно пытаясь снизить риск централизации, который он представляет.

BIP300 определяет логику предложения новой боковой цепи, активации новой боковой цепи, предложения объединенного набора выводов средств, утверждения такого набора выводов средств, логики проверки фактических транзакций вывода средств и проверки депозитных транзакций.

Активация новой боковой цепи в рамках предложения по приводной цепи очень похожа на процесс софт-форка, активируемого посредством сигнализации майнера. Основное отличие, конечно, в том, что на самом деле это не софт-форк — один форк для активации правил консенсуса цепочки позволяет майнерам в любое время подать сигнал на активацию новой боковой цепи. в правила консенсуса приводной цепи. Чтобы предложить активацию новой боковой цепи, майнер должен поместить данные OP_RETURN в выходные данные своей базы монет, которые включают в себя уникальный идентификатор этой боковой цепи, открытый ключ для использования в депозитных операциях, данные о версии, удобочитаемые описания и хэши программного клиента. и историю этого на GitHub (здесь нет никакого консенсуса, просто данные, на которые люди могут ссылаться).

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

На этом этапе любой может привязать монеты к сайдчейну. Чтобы привязаться к сайдчейну, пользователь просто создает транзакцию с двумя входами со своим собственным входом и UTXO, соответствующим балансу сайдчейна, с одним выходом, присваивающим все сайдчейну. Это гарантирует, что в сайдчейне всегда будет только один UTXO, содержащий все заблокированные в нем средства. Вывод средств осуществляется путем голосования майнеров. Основная цепь не имеет представления о том, кто чем владеет в боковой цепи, и основная цепь будет считать действительным любой вывод средств, одобренный майнерами в рамках механизма голосования. Из-за этого происходит длительная задержка процесса вывода средств. Процесс выхода из сайдчейна состоит из двух этапов: предложение о выходе (пакет), а затем этап голосования за выход. Майнеры должны создать вывод OP_RETURN в своей транзакции Coinbase с хешем предлагаемой транзакции вывода, чтобы предложить вывод. Однако этот хеш, как и сигэш, отмечает только фиксацию части транзакции, а не всей транзакции. Он не фиксирует входной UTXO, который представляет средства, заблокированные в цепочке передачи данных, или выходные данные, которые возвращают все, что не было выведено, в специальный UTXO боковой цепи. Это связано с тем, что любые депозиты в приводную цепь создадут новый UTXO и, таким образом, сделают недействительным обязательство по транзакции вывода средств, когда люди придут ее подтвердить.

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

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

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

Как только пакет достигнет необходимого порога (13,150 90 блоков или примерно 2017 дней), транзакция, фактически обрабатывающая вывод средств, становится действительной и может быть подтверждена. Но что будут делать люди, если майнеры одобряют мошеннический вывод средств, в ходе которого крадут деньги из сайдчейна? Предложение Шторца состоит в том, чтобы провести активируемый пользователем программный форк (UASF), чтобы аннулировать недействительную транзакцию привязки. Это представляет огромный риск с точки зрения консенсуса для основной цепи. UASF в XNUMX году был шагом с высоким риском, который едва увенчался успехом, а Биткойн был намного меньше, чем сегодня. Чем больше будет расти Биткойн, тем сложнее будет координировать такие действия.

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

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

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

Такова механика работы приводных цепей. Далее — федеративные сайдчейны, а затем анализ всех негативных сторон и недостатков, которые может иметь каждый дизайн.

Это гостевой пост Шиноби. Высказанные мнения являются полностью их собственными и не обязательно отражают точку зрения BTC Inc или Bitcoin Magazine.

Отметка времени:

Больше от Биткойн-журнал