Застекайте ETH, чтобы стать участником tBTC! Присоединяйтесь к предстоящему стейкдропу, запланированному на 8 июня 2020. RSVP

Модель безопасности tBTC

2020-05-29

tBTC спроектирован таким образом, чтобы пользователи могли безопасно использовать BTC в сети Ethereum. В различных проектах используются разные подходы к обеспечению безопасности. Ниже приведен обзор модели безопасности tBTC и того, как она обеспечивает высокий уровень безопасности для пользователей и подписантов.

Биткоин сайдчейн с минимальным доверием

Сайдчейны были изобретены как способ экспериментировать с раскрытием потенциала биткоина в других блокчейнах. Идея проста - залочить BTC на блокчейне и разлочить его для использования на другом блокчейне, создав новую валюту, привязанную к BTC. На практике построить двусторонний канал без доверенных посредников довольно сложно. Liquid от Blockstream - это работающий пример сайдчейна биткоина, который полагается на доверенных посредников.

Хотя Liquid работает, ему не хватает открытости и безопасности. Liquid полагается на доверенных подписантов для хранения залоченного BTC. Если подписанты этого пожелают, они могут приостановить вывод средств или уйти с деньгами. Кроме того, нет никакого способа повлиять пользователям на подписантов, пользователи должны полностью доверять сети Liquid и ее базовой технологии.

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

Процесс создания 1 TBTC заключается в следующем:

  1. ECDSA keep делает запрос в сеть Keep на депозит 1 BTC.
  2. Формируется группа подписантов и закладывается залог в ETH в размере 150% от стоимости 1 BTC.
  3. Группа подписантов генерирует биткоин ключ(кошелек), используя протокол пороговой подписи ECDSA.
  4. Пользователь переводит 1 BTC на биткоин кошелек.
  5. Пользователь генерирует SPV доказательство своей транзакции и отправляет его в сеть Ethereum.
  6. Пользователь получает TBTC.

Обмен TBTC обратно на BTC аналогичен выше приведенному, но происходит в обратном направлении:

  1. Пользователь сжигает TBTC и указывает свой биткоин адрес.
  2. Группа подписантов генерирует и публикует подпись транзакции и отправляет BTC на указанный биткоин адрес.
  3. Пользователь отправляет в сеть эту транзакцию.

Подписанты генерируют SPV доказательство этой транзакции, публикуют его в сети Ethereum и получают обратно свои залоговые средства.

Три сущности вовлечены в эту операцию:

  1. Keep Network, которая предоставляет подписантов для хранения BTC.
  2. Определение стоимости BTC для вычисления объема залога в сети Ethereum.
  3. Биткоин ретранслятор, который проверяет транзакции по созданию и сжиганию TBTC.

Децентрализованная сеть подписантов

tBTC использует Keep Network для обеспечения децентрализованной сети подписантов, находящихся постоянно онлайн. Каждая группа подписантов, которая хранит биткоин-депозит, состоит из 3 нод. Эти ноды выбираются случайным образом из большого пула с помощью случайных маячков Keep. Любая возможность манипулировать набором подписантов нивелируется стекинг моделью KEEP, которая обеспечивает устойчивость к атакам Сивиллы.

Чтобы гарантировать пользователям компенсацию в случае мошенничества, подписанты обеспечивают залог в 150% от стоимости BTC депозита в ETH. tBTC отслеживает недобросовестное поведение подписантов, наказывая их, и полностью возмещая пользователю их TBTC, а также исключает подписавшего из пула подписантов.

Ошибка подписанта

Несвоевременное реагирование подписантов на запрос о погашении представляет собой ошибку подписанта. Ошибки подписантов могут включать в себя как неспособность предоставить подпись для погашения, так и неспособность предоставить SPV-доказательство включения в биткоин блок.

Все ошибки расцениваются как сбои в работе протокола и инициируют ликвидации. Средства подписанта конфискуются и выставляются на аукцион TBTC, чтобы пользователь мог получить возмещение за свои недоступные BTC, а половина от оставшихся средств (максимум 1/6 от первоначальной суммы) возвращается подписантам.

Чтобы возместить свои потери от ликвидации, группы подписантов могут восстановить BTC после отработки ошибки.

Мошенничество подписантов

Мошенничество подписантов - это единственное действие в системе tBTC, которое приводит к полному изъятию средств. Любой подписант, который пересылает биткоины без авторизации протоколом tBTC, подвергается слешингу всех своих средств.

Мошенничество доказывается путем представления неавторизованной ончейн подписи. Любой желающий может предъявить доказательство мошенничества и получить ETH, оставшийся после аукциона средств подписанта.

Мошенничество подписантов наказывается как протоколом tBTC, так и Keep ECDSA.

  1. В tBTC происходят ликвидации, и средства используются для покупки TBTC. Держателю TBTC Deposit Token(TDT) выплачивается компенсация в TBTC, за исключением случаев, когда депозит обеспечен циркулирующим TBTC. В этом случае TBTC сжигается для поддержания соотношения 1:1.
  2. В Keep подписант слешится, а его токены KEEP сжигаются, что потенциально удаляет его из пула кандидатов. Такие подписанты теряют не только свой капитал, но и возможность для получения комиссий.

Надежное определение цены

Подписанты совместно обеспечивают 150% стоимости BTC, который они хранят, стимулируя их честное поведение, как подробно описано выше. Эти средства хранятся в ETH, поэтому постоянно необходимо знать соотношение ETH/BTC. Таким образом, безопасность определения цены является неотъемлемой частью системы.

tBTC v1 использует безопасное определение цены ETH/BTC на основе участников экосистемы. Основным соотношением, управляемым MakerDAO, является средняя цена с бирж Binance, HitBTC, Coinbase, Poloniex, Huobi, и Bitfinex. Если основное определение цены перестает функционировать, система может перейти на вторичное.

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

Неисправный канал определения цен, которым манипулируют, со временем начинает угрожать системе. В таком случае рациональные пользователи должны погасить свои депозиты и выйти из системы. Примечательно, что неисправный канал не мешает погашению депозитов пользователей.

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

Отслеживание биткоин транзакций

Доказательство осуществления биткоин транзакции в сети Ethereum требует определенной формы кроссчейн взаимодействия. tBTC использует SPV доказательства для достижения этой цели, полагаясь на ретранслятор с открытым исходным кодом, разработанный компанией Summa. В то время как ретранслятор отслеживает состояние в сети биткоин, он также основывается на “SPV предположениях”.

Использование SPV доказательств гарантирует, что TBTC жестко привязан к реальному BTC - невозможно создать BTC из воздуха. Точно так же доказательства не основываются на честности, но состояние биткоин транзакции проверяются в самом смарт-контракте.

Управление

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

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

  1. Обновление комиссии подписанта. Привилегированный ключ может изменить размер комиссии подписанта на последующие депозиты. Это изменение затрагивает только новые депозиты, открытые после небольшой задержки. Максимальная комиссия, которую можно установить, составляет 10%, а минимальная - 0,05%, что предотвращает включение этой способности при непреднамеренном переключении.
  2. Поддержка дополнительных размеров лотов. Привилегированный ключ может изменять и добавлять доступные размеры лотов для новых депозитов. Это изменение влияет только на новые депозиты, открытые после небольшой задержки. Доступные размеры лота всегда должны включать в себя по крайней мере 1 BTC, а размеры лота не могут быть больше 10 BTC или меньше 0.0005 BTC (50,000 сатоши), предотвращая непреднамеренное переключение.
  3. Изменение размера обеспечения. Привилегированный ключ может регулировать три варианта обеспечения, используемые системой. Это изменение влияет только на новые депозиты, открытые после небольшой задержки, не позволяя принудительно ликвидировать существующие депозиты. Самый низкий порог обеспечения составляет 100%, а самый высокий - 300%, что предотвращает непреднамеренное переключение.
  4. Добавление резервного канала определения цены. Привилегированный ключ может добавлять новые адреса контрактов для определения цены в список запрашиваемых каналов. Поскольку каналы запрашиваются в том порядке, в котором они были добавлены, и используется первая корректно определенная цена. Эта привилегия может быть использована только для влияния на сообщаемую цену, если существующий канал определения цен не срабатывает. Это изменение не может отключить первичное определение цены без сговора операторов определения цен и активируется только после небольшой задержки.
  5. Приостановка новых депозитов. Привилегированный ключ может приостановить новые депозиты на 10 дней, единожды и без временной задержки. После того, как эта способность задействована, она не может быть использована снова. Этот подход был предпочтительнее kill-switch или другого механизма управления, дающего разработчикам возможность уведомлять пользователей в случае 0-day эксплойта, позволяя пользователям снимать свои депозиты в случае катастрофического сбоя. Как и все другие привилегированные возможности, это не влияет на открытые депозиты, которые можно продолжать погашать или использовать в обычном режиме.

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

Другие атаки

Опаснейшая атака на сайдчейн tBTC требует сговора трех сторон - оператора определения цен, большого числа подписантов и новых людей, делающих депозиты.

  • Во-первых, оператор определения цен манипулирует заявленной ценой таким образом, что ETH, например, на 100% переоценен по отношению к BTC. Эта манипуляция должна сохраняться в течение долгого времени.
  • Новые вкладчики теперь замечают, что любой BTC, который они депонируют, теперь будет иметь только 75% обеспечения в случае мошенничества и должны избегать системы. Сговорившись, вкладчики, однако, продолжают депозит в BTC.
  • Честные подписанты будут продолжать хранить BTC, независимо от недостаточного обеспечения. Теперь, если присутствует большое количество злонамеренных подписантов, то это дает возможность вступить в сговор и забрать BTC в необеспеченных депозитах. Эти подписанты будут ликвидированы, потеряв 75% от каждого украденного ими BTC, а также будут массово удалены из сети с невозможностью последующего подписания.
  • Для каждого 1 BTC, изъятого из системы, либо 75% от 1 BTC в ETH распродается, либо то же самое количество остается доступным для аукциона; Любой депозит, аукцион которого не был проведен, нарушает привязку предложения до тех пор, пока стоимость TBTC не будет равна выставленным на аукцион средствам.

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

Альтернативные модели (BTCB, RenBTC)

Существует множество альтернативных моделей привязанного BTC, каждая из которых имеет различные системы безопасности. Централизованные биржи, подобные Binance, предлагают простое решение BTCB. Они самостоятельно обрабатывают привязку BTC, но вы должны полностью доверять им, чтобы использовать это решение. Отдельные компании и ассоциации, такие как Liquid и Wrapped Bitcoin, представляют аналогичную модель.

Однако, публичные ассоциации лучше согласуются с децентрализованной природой биткойна; с этой целью некоторые проекты пошли на различные компромиссы в области безопасности.

Ren- это пример публичного проекта, реализующего привязанный BTC на основе собственного консенсуса. Модель Ren похожа на Keep - валидаторы в сети Ren стекают собственный токен REN, чтобы принять участие в протоколе. Однако Ren требует, чтобы валидаторы стекали фиксированную сумму REN только для того, чтобы хранить BTC, который не является обеспечением для вкладчиков в случае мошенничества. В отличие от этого, tBTC требует, чтобы подписанты имели излишнее обеспечение, как в ETH, так и в KEEP. Ren также использует отдельные подмножества валидаторов. tBTC назначает отдельную группу подписантов для каждого депозита, причем все подписанты должны авторизовать транзакции. Еще одним важным отличием является использование в tBTC SPV доказательств, требующих, чтобы tBTC следовал основной цепочке, и не позволял подписантам подвергать цензуре депозиты пользователей или основываться на форках. Ren не предоставляет таких гарантий. Наконец, модель безопасности Ren включает в себя дополнительные новые протоколы консенсуса и MPC, открывая новые вектора атак.

Вывод

Существует множество привязок BTC, и постоянно разрабатываются новые подходы. tBTC выделяется своей совместимостью с Ethereum, минимизацией доверия и моделью безопасности.

Будущие усовершенствования tBTC включают замену доверенного канала определения цен и сокращение требований к обеспечению в ETH.

tBTC был создан проектами Keep, Summa, и Cross Chain Group, и имеет полностью открытый код на GitHub..

Присоединяйтесь к каналу #tbtc Discord, чтобы задать интересующие вопросы и узнать больше о модели безопасности.