395 / 736CORALLO

Matt Corallo

Разработчик, известный как TheBlueMatt

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

Matt Corallo, известный как TheBlueMatt, — разработчик Bitcoin, связанный с Compact Block Relay, сетью передачи FIBRE и rust-lightning. Эти работы объединяет практический вопрос: как улучшить сети и приложения, не путая скорость с уверенностью в том, что всё правильно?

На GitHub Matt Corallo использует имя TheBlueMatt. Его профиль сообщает о переносе многих репозиториев на git.bitcoin.ninja. Репозиторий хранит исходный код и историю изменений, поэтому пустое старое место не обязательно означает заброшенный проект. Чтобы выяснить, кто что сделал, стоит изучать эту историю, предложения и их авторов. В случае Corallo этот путь ведёт от более экономной передачи блоков к инструментам для Lightning. [1]

Компьютеры, проверяющие Bitcoin, постоянно обмениваются неподтверждёнными транзакциями. К приходу нового блока они могут уже знать значительную часть его содержимого. Compact Block Relay использует это обстоятельство. Открытая техническая спецификация BIP 152 называет Corallo автором и благодарит Gregory Maxwell за первоначальную идею, проектирование и тестирование. Главная цель — сократить объём передаваемых данных. Передача может также ускориться, но правила действительности блоков не меняются. [2]

Представьте общий список документов: большинство у вас уже есть, нужно лишь узнать, какие входят в новый набор. BIP 152 похожим образом использует короткие идентификаторы транзакций и mempool — локальное хранилище неподтверждённых транзакций. Недостающие данные получатель запрашивает сообщением getblocktxn. Идентификаторы могут совпасть у разных транзакций; это называется коллизией. Экономия трафика не отменяет необходимости получить настоящие данные и проверить, правильно ли восстановлен блок. [2]

При определённых условиях BIP 152 позволяет отправить компактное объявление до полной проверки отправителем всех транзакций. Это не разрешение пересылать что угодно: нужно проверить заголовок, его связь с проверенной цепью, доказательство работы и привязку к включённым транзакциям. После восстановления блок обрабатывается обычным образом. Получатель по-прежнему проверяет, расходуются ли существующие средства по правилам. «Блок пришёл» и «блок действителен» — разные утверждения. [2]

Интернет передаёт данные небольшими частями — пакетами. Если один пропал, ожидание повторной отправки добавляет задержку. 7 июля 2016 года Corallo описал FIBRE: сочетание компактных блоков с UDP, транспортом без автоматической повторной отправки потерянных пакетов, и FEC, кодированием для восстановления недостающих частей. Избыточные данные позволяют восстановить содержимое без нового запроса. За это приходится передавать больше информации; безошибочная передача при любых условиях не гарантируется. [3]

FIBRE может передавать отдельные пакеты дальше ещё до проверки. Это экономит время, но требует сильного внутреннего доверия между узлами сети. Речь не о произвольных непроверенных подключениях. Открытый код позволяет создавать другие сети, однако оператор конкретной сети всё равно может выбирать партнёров. Согласно FAQ, в 2025 году сопровождение перешло к w0xlt и Justin из Localhost Research при консультативном участии Corallo и Maxwell. Историю проекта продолжают другие люди. [4]

Другая часть работы Corallo касается Lightning — сети платежей через каналы поверх Bitcoin. Манифест, то есть описание пакета lightning в rust-lightning, указывает автора Matt Corallo. Библиотека написана на Rust и предоставляет основные функции Lightning. Приложение может само выбрать работу с кошельком, блокчейном, хранилищем и сетью. Эта запись не означает, что один человек написал каждое последующее изменение или что сама библиотека уже представляет собой готовый кошелёк. [5]

LDK встраивается в приложение как SDK — набор инструментов для разработчиков. Нужно подключить хранение данных и другие необходимые компоненты. Результат платежа не обязан появиться в момент запуска: LDK сообщает об успехе или неудаче позже через событие, которое обрабатывает приложение. Сам запуск ещё не подтверждает успех. Для человека с кошельком это означает простое требование: экран должен отличать платёж в процессе от завершённого. [6]

Для полной картины прочитайте эту статью вместе с Gregory Maxwell, Luke Dashjr, Satoshi Nakamoto. На эту статью также ссылаются Stratum V2, Gregory Maxwell, Luke Dashjr.

DOC · 001GitHub — Matt CoralloДокументация DOC · 002BIP 152 — Compact Block RelayДокументация DOC · 003Matt Corallo — The Future of The Bitcoin Relay NetworksДокументация DOC · 004FIBRE — FAQДокументация DOC · 005rust-lightning — package manifestДокументация DOC · 006LDK — ArchitectureДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией