Post
Topic
Board Oбcyждeниe Bitcoin
Merits 8 from 1 user
Re: Информационный бюллетень Bitcoin Optech #78
by
Bagiira
on 13/01/2020, 07:05:31 UTC
⭐ Merited by xandry (8)
2019 Итоги
Биткоин Optech

В течение второго года работы Optech, мы зарегистрировали шесть новых компаний-членов, провели брифинг для руководителей в Нью-Йорке на «недели блокчейна», опубликовали 24-недельный цикл, посвященный продвижению поддержки отправки bech32, добавили матрицу совместимости кошельков и услуг на наш веб-сайт, опубликовали 51 еженедельную рассылку, выпустили несколько наших новостных рассылок и постов в блогах, переведенных на японский и испанский, создали индекс тем, добавили главу в нашу Scalability Workbook (книга по масштабируемости), провели два семинара по schnorr / taproot  с jupyter notebooks ( блокнотами jupyter), которые есть в свободном доступе, и опубликовали отчеты от BTSE и BRD.

У нас большие планы на 2020 год, поэтому мы надеемся, что вы продолжите просматривать наш Twitter, подписываться на нашу еженедельную рассылку или отслеживать нашу RSS-ленту.



Сентябрь

Адам Гибсон предложил новую форму не интерактивного Coinjoin для существующей системы Биткоин. Протокол, называемый SNICKER, затрагивает пользователя, выбирающего один из своих UTXO и случайно выбранный UTXO из глобального UTXO, установленный на тот и другой, будет потрачен в одной и той же транзакции. Предлагающий пользователь подписывает свою часть этой транзакции и выгружает ее в формате частично подписанной Биткоин транзакции (PSBT) на общедоступный сервер. Если другой пользователь проверив сервер увидит PSBT, он может загрузить его, подписать и передать в эфир - завершая coinjoin при этом оба пользователя не должны быть онлайн одновременно. Предлагающий пользователь может создавать и загружать столько PSBT, сколько он хочет, используя свой UTXO, пока какой-либо другой пользователь не примет участие в соревновании.

Основными преимуществами SNICKER по сравнению с другими подходами CoinJoin является то, что он не требует одновременного подключения пользователей к сети, а значит легко добавить поддержку для него в любой кошелек, который уже имеет поддержку BIP174 PSBT, что увеличивает число кошельков.

Также в сентябре разработчики C-Lightning, Eclair и LND сообщили об уязвимости, которая затронула предыдущие версии их программного обеспечения. Оказалось, что в некоторых случаях каждая из реализаций не могла подтвердить, что канал финансирования транзакции выполнил правильный скрипт и отправил верную сумму. На практике это может привести к тому, что платежи по каналам не подтвердятся в блокчейне, что приведет к потери денег в нодах, при передачи платежей из недействительного канала в действительный. Optech не известно ни об одном пользователе, который потерял бы деньги до момента первых публичных объявлений об этой уязвимости. Спецификация LN была обновлена, чтобы помочь будущим разработчикам избежать этой проблемы, и ожидается, что другие заявленные изменения протокола связи LN помогут избежать других сбоев этого типа.


Октябрь

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

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

В прошлом году Мэтт Коралло предложил сделать специальное исключение из части политики ретрансляции транзакций в Bitcoin Core, связанной с повышением платы Child-Pays-For-Parent (CPFP). Это исключение гарантирует, что двусторонние контрактные протоколы (такие как LN текущего поколения) могут гарантировать каждой стороне возможность создавать свои собственные комиссионные. Идея Коралло получила название CPFP carve-out, и его реализация была реализована в составе Bitcoin Core 0.19. Еще до этого релиза другие разработчики LN работали над пересмотром сценариев LN и сообщений протокола, необходимых для внесения изменений. На момент написания статьи эти изменения спецификации ожидают окончательной реализации и принятия, перед развертыванием в сети.


2019 Итоги
Новые Open Source инфраструктурные решения

  • Proof of reserves tool (Инструмент подтверждения резервов), выпущенный в феврале, позволяет биржам и другим кастодианам Биткоинов доказать, что они контролируют определенный набор UTXO, используя BIP127 доказательства резервов.
  • Hardware Wallet Interface (Аппаратный интерфейс кошелька), выпущенный в марте, позволяет кошельку, уже совместимому с частично подписанными транзакциями Биткоинов (PSBTs) и output script descriptors (дескрипторами выходных скриптов), использовать несколько различных моделей аппаратных кошельков для безопасного хранения и подписи ключей.
  • Lightning Loop, выпущенный в марте (с поддержкой loop-in, добавленной в июне), предоставляет услугу, не связанную с хранением, которая позволяет пользователям добавлять или удалять средства из своих каналов LN, не закрывая существующие каналы и не открывая новые каналы.



Ноябрь

Дискуссия в ноябре об использовании адресов bech32 для Taproot платежей привлекла дополнительное внимание к проблеме, обнаруженной в мае. Согласно BIP173, ошибочно скопированные строки bech32 должны иметь максимальный уровень отказов около 1 на миллиард. Однако было обнаружено, что строки bech32, оканчивающиеся на p, могут иметь любое количество предшествующих q символов. Это практически не влияет на адреса bech32 для адресов segwit P2WPKH или P2WSH, поскольку для преобразования одного типа адреса в другой потребуется добавить или удалить не менее 19 последовательных q символов, а любое другое изменение длины для адресов v0 segwit  недопустимо.

Но это не относится к адресам v1 + segwit, таким как адреса, предложенные для Taproot, когда один добавленный или удаленный символ q в уязвимом адресе может привести к потере средств. Соавтор BIP173 Питер Вулле (Pieter Wuille) провел дополнительный анализ и обнаружил, что это было единственным отклонением от ожидаемой способности bech32 по исправлению ошибок, поэтому он предложил ограничить использование адресов BIP173 в Биткоинах только 20-байтовыми или 32-байтовыми Witness программами . Это гарантирует, что версии v1 и последующие версии адресов segwit обеспечивают такое же надежное исправление ошибок, что и адреса segwit v0. Он также описал небольшую настройку алгоритма bech32, которая позволит другим приложениям, использующим bech32, а также форматам адресов Биткоинов следующего поколения, использовать обнаружение ошибок BCH без этой проблемы.

Также в ноябре в Bitcoin Core удалили зависимость от OpenSSL, которая была частью его кодовой базы с момента первоначального выпуска Bitcoin 0.1 в 2009 году. OpenSSL стал причиной консенсусных уязвимостей, утечек в удаленной памяти (потенциальных утечек личного ключа), других ошибок и низкой производительности. Есть надежда, что его устранение снизит частоту будущих уязвимостей.

В результате удаления  OpenSSL, Bitcoin Core перестал поддерживать протокол платежей BIP70 в версии 0.18, а позже была отключена поддержка по умолчанию в версии 0.19. Это решение было одобрено генеральным директором одной из немногих компаний, которые продолжали использовать BIP70 в 2019 году.


Декабрь

В декабре разработчики LN достигли одной из своих главных целей на прошлогоднем совещании по планированию: внедрение базовых multipath  платежей. Это платежи, которые можно разделить на несколько частей, каждая из которых направляется отдельно по разным каналам. Это позволяет пользователям тратить или получать деньги, используя более чем один из своих каналов одновременно, что позволяет тратить их полный off-chain баланс или пополнять их все за один платеж (в пределах определенных безопасных ограничений). Ожидается, что это сделает LN значительно более удобным для пользователя за счет устранения необходимости беспокоиться о балансировке отдельных каналов.


Заключение

В приведенном выше резюме мы не видим никаких революционных предложений или улучшений. Вместо этого мы находим множество постепенных решений, применение которых в Биткоин и LN приводят к заметному улучшению всей системы. Мы видим, что разработчики работают над тем, чтобы сделать аппаратные кошельки более доступными (HWI), обеспечить общее взаимодействие между  multisig кошельками и контрактами (descriptors, PSBTs, miniscript), укрепить консенсусную безопасность (очистка софтфорк), упростить тестирование (signet), устранить ненужное хранение (loop), упростить запуск ноды (assumeutxo), улучшить конфиденциальность и сэкономить пространство блока (taproot), упростить принудительное использование LN (anyprevout), улучшить управление пиковыми нагрузками (CTV), уменьшить пропускную способность ноды (erlay), сохранять безопасность пользователей LN, когда они находятся в автономном режиме (watchtowers), уменьшить потребность в доверии (reproducible builds), предотвратить кражи (vaults), сделать конфиденциальность более доступной (SNICKER), улучшить управление onchain комиссией для пользователей LN (anchor outputs) и автоматизировать большую часть платежей LN (multipath payments).

(И это только основные моменты года!)

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


Начиная с  8 января, информационный бюллетень Optech будет выходить по обычному расписанию.