Изображение
Сайдчейни

Обзор компромиссов для различных реализаций сайдчейнов

Каждая реализация сайдчейна Биткоина приводит к различным проблемам централизации и консенсуса, которые необходимо взвесить и рассмотреть.
25 августа 2022

Что такое сайдчейн в двух словах? Блокчейны, которые позволяют вам перемещать ваши биткоины из блокчейна Биткоина в этот другой сайдчейн. В этом и заключается проблема и сложность разработки сайдчейна – на самом деле вы не можете этого сделать. Вы не можете переместить биткоины из блокчейна Биткоина в другой блокчейн; это невозможно, потому что единственное место, где на самом деле существуют ваши биткоины, – это блокчейн Биткоина. Они не могут реально существовать где-либо еще. Все, что действительно возможно сделать, – это каким-то образом заблокировать биткоины в блокчейне Биткоина, а затем создать другие токены в другой цепочке для репрезентации этих биткоинов. Наивысшее стремление сайдчейна состоит в том, чтобы сделать это таким образом, чтобы можно было проверить, что эти токены существуют только 1:1 с реальным биткоином (легко), и где единственный способ разблокировать биткоины в мейнчейне в любой ситуации – это проверяемо заблокировать токены, которые вы законно контролируете в другой цепочке (это очень сложно сделать способом, не требующим доверия, который не делает сами биткоины более дорогими для проверки).

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

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

Централизация майнинга

Все различные проекты, через которые я прошел, за исключением Liquid, в обеспечении безопасности сайдчейна так или иначе зависят от биткоин-майнеров. RSK, несмотря на то, что это федеративная привязка, по-прежнему использует биткоин-майнеров. Теоретически софтчейны могли бы использовать что-то еще, но если бы они не обеспечивали такой же уровень безопасности на основе доказательства работы (PoW), как биткоин-майнеры, то они открывали бы блокчейн Биткоина для атак типа «отказ в обслуживании» (DoS). Таким образом, на самом деле, если бы был задействован софтчейн, он использовал бы Биткоин-майнеров. PoW спейсчейнов явно основан на том, что Биткоин-майнеры подтверждают транзакцию обязательств для сайдчейна. Драйвчейны специально разработаны для слитного майнинга Биткоин-майнерами. Невозможно избежать вовлечения майнеров в сайдчейны, если что-то еще, кроме чистого федеративного сайдчейна, это все, что когда-то задействовалось.

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

Чтобы майнить, майнеры должны проверять блокчейн, независимо от того, передана ли эта функция на аутсорсинг. Без проверки цепочки они не имеют понятия, содержит ли блок, который они добывают, только действительные транзакции; достаточно одной недействительной транзакции, чтобы аннулировать найденный блок и потерять все деньги, которые они могли бы заработать. Это требование проверки, однако, не является причиной использования майнинговых пулов: такой является предсказуемость вознаграждений. Майнер с 1% хэшрейта очень редко находит блок и получает всю награду, в то время как майнер с 1% хешрейта, использующий пул, будет регулярно собирать примерно 1% вознаграждения за блок, которое коллективно зарабатывает пул. Стоимость проверки мизерная. Предсказуемость вознаграждения – это преимущество, поэтому разработчики пытаются найти способ получить те же преимущества, не требуя централизованного пула. Это позволяет майнерам не зависеть от централизованного субъекта, который контролирует, какие транзакции входят в блок.

Теперь представьте, если бы затраты на проверку были выше. Количество создаваемых спейсчейнов не ограничено. И хотя они не привязаны к биткоину по цене, как другие проекты, любой из них, имеющий значительную ценность, будет стоить того, чтобы майнинговые пулы (и майнеры) запускали их, чтобы получить больше денег. Майнеры, которые сделали бы это, были бы более конкурентоспособными, чем те, кто этого не сделал, и, если майнинг в долгосрочной перспективе станет отраслью с очень низкой нормой прибыли, это фактически станет требованием для майнинга в этих других цепочках. Если вы этого не сделаете, вы не будете иметь прибыли. Майнеры, которые их запускают, могут повысить затраты для майнеров, которые этого не делают, и при этом получать прибыль, вытесняя остальных из бизнеса.

Также помните, что нет ограничений на стоимость проверки сайдчейна. Проверка некоторых криптографических функций может быть очень дорогостоящей, касаться вещей произвольной сложности, например Ethereum, или даже полной гигаблоковой глупости, такой как BSV. Софтчейны имеют точно такой же риск, в дополнение к увеличению стоимости проверки обычных пользователей, использующих полные узлы. Единственная «спасительная мера», можно так это назвать, – это требование активировать один сайдчейн за раз с помощью уникального софтфорка. Это, по крайней мере, означает, что каждое отдельное предложение и стоимость его проверки будут тщательно изучены перед активацией.

Драйвчейны? Они утверждают, что решили эту проблему, но на самом деле это не так. Идея драйвчейна заключается в том, что создатель блока в конечном итоге платит майнерам большую часть комиссии за майнинг своего блока, оставляя себе лишь небольшую часть. Эта небольшая часть в мире чрезвычайно низкой нормы прибыли – это больше прибыли, которую можно получить, что опять-таки сводится к возможности вытеснить других майнеров из бизнеса, если вы сделаете это сами. Даже если вы предполагаете, что создатели блоков драйвчейна не оставляют комиссий себе, отдавая 100% майнерам, зачем им это делать, если не будет какого-то другого аспекта этого сайдчейна, который они могли бы монетизировать? Скорее всего, это форма извлекаемой стоимости майнера (MEV), на которой майнеры могли бы зарабатывать деньги, обладая таким же эффектом централизации. В долгосрочной перспективе любой тип децентрализованного пула для майнинга должен будет включать майнеров, управляющих всеми этими узлами сайдчейна в дополнение к узлу мейнчейна, что может оказаться очень нереалистичной перспективой для мелких майнеров. Это создало бы искусственный нижний предел, ограничивающий децентрализованность майнинга.

Только федеративные сайдчейны избегают централизованного воздействия на майнинг биткоинов, потому что они никоим образом не взаимодействуют с майнерами, за исключением выплаты комиссий майнерам за транзакции, выводящие монеты из сайдчейна.

Риски привязки и консенсуса

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

Софтчейны представляют очень явный риск консенсуса для основной сети Биткоина. Во-первых, увеличивается стоимость проверки за каждый софтчейн, который добавляется для узлов, предназначенных только для мейнчейна, и в зависимости от размера блоков или сложности правил для проверки это может быть незначительным увеличением или довольно значительным увеличением. Во-вторых, любое разделение консенсуса из-за недетерминированной ошибки может повлиять на мейнчейн. Такая ошибка была причиной разделения цепи, которое произошло в 2013 году. Из-за того, как работает база данных, которую Биткоин использует для считывания и записи данных, некоторые узлы «исчерпали» время, когда они могли читать и записывать данные, и аннулировать иначе недействительный блок. Поскольку эти операции были ограничены в зависимости от ресурсов отдельных компьютеров, не было постоянной ситуации, которая могла бы вызвать это, поскольку ресурсы каждого отдельного узла различны.

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

Драйвчейны представляют более тонкий риск для консенсуса. Как обсуждалось выше, они на самом деле представляют собой механизм, как и другие проекты сайдчейнов, который создает давление, еще больше централизирующее майнинг. Это очень плохо сочетается с тем фактом, что привязка – это, по сути, только майнеры, полностью контролирующие монеты в драйвчейнах; большинство из них могут эффективно делать все, что хотят, с монетами, запертыми в драйвчейнах. Безопасность всех монет в драйвчейнах зависит от достаточной децентрализации майнеров, чтобы сделать атаки 51% нецелесообразными, но в то же время создает давление, которое, вероятно, в долгосрочной перспективе увеличит централизацию майнинга.

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

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

Подведение итогов

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

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

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