АпрельВ апреле Джеймс О'Бейрн предложил
AssumeUTXO, метод, позволяющий полным нодам откладывать проверку старой истории блокчейн путем загрузки и временного использования доверенной копии последнего набора UTXO. Это позволило бы кошелькам и другому программному обеспечению, использующему полную ноду, начать прием и отправку транзакций в течение нескольких минут после запуска ноды, вместо того, чтобы ждать несколько часов или дней, как это происходит сейчас для вновь запущенной ноды. AssumeUTXO предлагает ноде загружать и проверять старую историю блокчейн в фоновом режиме до тех пор, пока он в конечном итоге не проверит свое первоначальное состояние UTXO, что позволит ему в конечном итоге получить ту же самую надежную защиту, что и нода, которая не использует AssumeUTXO. О’Бейрн продолжал работу над проектом в течение года, постепенно добавляя новые функции и реорганизуя существующий код продвигаясь к цели окончательного добавления AssumeUTXO в Bitcoin Core.
Также в апреле
Пьер-Мари-Падиу предложил идею
trampoline payments (батутных платежей), метода, позволяющего облегченным LN нодам производить поиск путей к узким узлам маршрутизации. Облегченный узел, такой как мобильное приложение, может не отслеживать полный график маршрутизации LN, что делает невозможным поиск маршрутов к другим узлам. Предложение Падиу позволило бы облегченной ноде направить платеж в соседнюю ноду, а затем заставить эту ноду вычислить остальную часть пути. По сути, платеж будет отскакивать от батутного узла на пути к месту назначения. Чтобы обеспечить конфиденциальность, исходный отправитель может потребовать, чтобы платеж отскочил от нескольких батутных нод последовательно, чтобы никто из них не знал, направлял ли он платеж конечному получателю или просто другой батутной ноде.
В настоящее время открыты функции добавления
PR для батутных платежей в спецификацию LN, и реализация LN в Eclair обеспечила
экспериментальную поддержку для пересылки батутных платежей.
МайВ мае Питер Вулле предложил
Taproot soft fork, состоящий из bip-taproot и bip-tapscript (оба зависят от прошлогоднего предложения bip-schnorr). Если это изменение будет реализовано, то позволит single-sig (одиночная подпись), multisig (множественные подписи) и большинству контрактов использовать один и тот же стиль scriptPubKeys. Множество переводов из multisig и сложных контрактов будут выглядеть одинаково, аналогично single-sig переводу. Это может значительно улучшить конфиденциальность пользователя и удобство использования монет, а также уменьшить объем блокчейн-пространства , используемого в multisig и контрактах.
Даже в тех случаях, когда multisig и расходы по контракту не могут в полной мере воспользоваться преимуществами конфиденциальности и экономии пространства в Taproot, им все же может потребоваться разместить часть своего кода в блокчейне, что обеспечит им большую конфиденциальность и экономию пространства, чем они имеют сегодня. В дополнение к Taproot,
Tapscript вносит небольшие улучшения в возможности сценариев Биткоина, в основном за счет упрощения процедуры добавления новых кодов операций в будущем.
Эти предложения получили широкое обсуждение и подверглись анализу в течение следующих месяцев 2019 г., в том числе в рамках
серии групповых сессий, организованных Энтони Таунсом, в которых приняли участие более 150 человек, чтобы помочь в рассмотрении.
Также, в мае Таунс предложил использовать два новых хэша подписи в сочетании с Tapscript: SIGHASH_ANYPREVOUT и SIGHASH_ANYPREVOUTANYSCRIPT. Хэш подписи (sighash) - это хэш полей транзакции и связанных данных, к которым относится подпись. Различные Sighash в Биткоине фиксируют разные части транзакции, что позволяет подписывающим лицам по желанию давать возможность другим людям вносить определенные изменения в свои транзакции. Два новых предложенных Sighash функционируют аналогично
BIP118 -
SIGHASH_NOINPUT , преднамеренно не идентифицируя, какой UTXO они тратят, позволяя через подпись тратить любой UTXO, скрипт которого может выполнить (например, который использует тот же PubKey).
Основное рекомендуемое использование для noinput-style Sighashes - включение ранее предложенного уровня обновления
Eltoo для LN. Eltoo может упростить несколько аспектов построения канала и управления им; это особенно подходит для упрощения
каналов, в которых более двух участников, что может значительно снизить стоимость канала.
Третий программный форк, предложенный в этом месяце, исходит от
Джереми Рубина, который описал новый код операции, который теперь называется OP_CHECKTEMPLATEVERIFY (CTV). Это допускает ограниченную форму соглашения, когда для вывода одной транзакции требуется, чтобы последующая транзакция затрачивала на него определенные другие выходные данные. Для этого предлагается совершать будущие платежи, когда отправитель делает один маленький перевод, который может быть выполнен только с использованием транзакции (или дерева транзакций), которая в свою очередь переводит десяткам, сотням или даже тысячам различных получателей. Это может привести к появлению новых технологий для повышения конфиденциальности в стиле совместного объединения, поддержки хранилищ, повышающих безопасность, или управления затратами отправителей, когда транзакция приводит к скачкам.
Рубин продолжил работу над CTV до конца года, включая открытие PRs (
1,
2) для усовершенствования блоков Bitcoin Core, где оптимизации могут сделать развернутую версию CTV более эффективной.
2019 Итоги
Технические конференции и другие заметные события
- Стэнфордская блокчейн-конференция, январь, Стэнфордский университет
- MIT Биткоин Экспо, март, MIT
- Брифинг для руководителей Optech, май, Нью-Йорк
- Магические крипто друзья (технический трек), май, Нью-Йорк
- Взлом Биткоина, июнь, Амстердам
- Встреча разработчиков Bitcoin Core, июнь, Амстердам
- Edge Dev ++, сентябрь, Тель-Авив
- Масштабирование Биткоина, сентябрь, Тель-Авив
- Саммит по криптоэкономическим системам, октябрь, MIT
ИюньГлеб Науменко, Питер Вулле, Грегори Максвелл, Саша Федорова и Иван Бесчастных опубликовали статью об
Erlay, протоколе для передачи неподтвержденных сообщений о транзакциях между узлами, который использует согласование наборов на
основе Libminisketch для приблизительно 84% сокращения пропускной способности объявления.
В документе также показано, что Erlay сделает намного более практичным увеличение количества исходящих соединений по умолчанию, которые создают ноды. Это может повысить устойчивость каждой ноды к
eclipse attacks (атакам затмения), которые могут заставить принимать блоки, не входящие в цепочку блоков с наибольшим количеством proof-of-work (доказательства работы). Дополнительные исходящие соединения также повышают устойчивость ноды к другим атакам, которые можно использовать для отслеживания или задержки платежей, исходящих с ноды. Работа над Erlay будет продолжена в течение года с дополнительными исследованиями и предложением
BIP330 для установленного протокола сверки.
К другим улучшениям, сделанным в P2P relay в этом году, относятся повышение конфиденциальности Bitcoin Core для ретрансляции транзакций (устранение проблемы, описанной в
статье TxProbe автора Сержи Дельгадо-Сегура и др.) И добавление
двух дополнительных исходящих соединений, используемых только для ретрансляции новых блоков, повышение устойчивости к атакам затмения.
После значительного объема проделанной работы было достигнуто слияние «альтруистских»
LN Watchtowers в LND. Altruist Watchtowers (альтруистские сторожевые башни) не получают никакого вознаграждения по протоколу за помощь в защите каналов своих клиентов, поэтому пользователю необходимо запустить собственную Watchtower или он будет зависеть от благотворительности оператора Watchtower, но этого достаточно, чтобы продемонстрировать, что сторожевые башни могут надежно отправлять штрафные транзакции от имени других пользователей, гарантирующие, что пользователи, которые в течение значительного времени отключаются от сети, не теряют денег.
«Альтруистские сторожевые башни» будут реализованы в версии
LND 0.7.0-beta, и в течение оставшейся части года будут происходить дополнительные разработки, включая
предлагаемую спецификацию и обсуждение того, как их можно объединить с платежными каналами следующего поколения, такими как
Eltoo.
ИюльВ июле проект Bitcoin Core выполнил слияние (merge) c PR Carl Dong на github, добавив поддержку воспроизводимых сборок исполняемых файлов Bitcoin Core для Linux с использованием GNU Guix (произносится как «гики»). Хотя Bitcoin Core давно предоставляет поддержку воспроизводимых сборок с использованием системы
Gitian, его обычно сложно настроить, так как это зависит от безопасности нескольких сотен пакетов Ubuntu. Для сравнения, Guix может быть намного проще в установке и запуске, и сборки Bitcoin Core, использующие его, в настоящее время зависят от гораздо меньшего числа пакетов. В долгосрочной перспективе участники Guix также работают над устранением проблемы
trusting trust (доверительного доверия), чтобы пользователи могли легко проверить, что двоичные файлы, такие как Bitcoind, получены исключительно из проверяемого исходного кода.
В течение года продолжалась работа по поддержке сборки Guix, и некоторые сотрудники надеются, что Guix будет использоваться для первой основной версии Bitcoin Core, выпущенной в 2020 году (возможно, параллельно со старым механизмом на основе Gitian).
Независимо от этого, в этом году в репозиторий
C-Lightning и
LND была добавлена документация, описывающая, как создавать воспроизводимые сборки их программного обеспечения с использованием надежных компиляторов.
АвгустВ августе Брайан Бишоп описал метод реализации vaults on Bitcoin
without using covenants (сейф на Биткоинах без использования заветов). Vaults (сейф) - это термин, используемый для описания сценария, который ограничивает способность злоумышленника красть средства, даже если он получает обычный закрытый ключ пользователя. Covenant (завет) - это сценарий, который можно потратить только на некоторые другие сценарии. Не существует известного способа создания соглашений с использованием текущего языка Bitcoin Script, но оказывается, что они не нужны, если пользователи готовы запустить код, который выполняет несколько дополнительных шагов при внесении своих денег в сейф контракта .
Возможно, более важно то, что Бишоп описал новую уязвимость в предыдущих предложениях Vault, и для ее смягчения предложил ограничение максимального объема средств, которые злоумышленник мог бы украсть из Vault. Разработка Vault может быть полезна как для отдельных пользователей, так и для крупных организаций, таких как биржи.