Pieter Wuille, известный как sipa, — разработчик Bitcoin, автор или соавтор BIP 32, SegWit, Bech32, Bech32m и Schnorr/Taproot. BIP — публичное техническое предложение. Его вклад состоит в конкретных решениях, разработанных вместе с другими людьми, а не в праве решать за всю сеть.
Когда кошелёк предлагает новый адрес или готовит подпись платежа, за простой кнопкой стоит труд многих разработчиков. Один из них — Pieter Wuille. На GitHub он использует имя sipa; профиль связывает это имя с его работой. Но авторство конкретного изобретения устанавливают по истории и документации проекта, а не только по псевдониму. Следующие предложения показывают, какие задачи он помогал решать и с кем работал. [1]
Представьте магазин, которому нужен отдельный платёжный адрес для каждого заказа. BIP 32 Wuille описывает получение целого дерева ключей из seed — исходных секретных данных. Расширенный публичный ключ xpub позволяет получать новые публичные ключи соответствующей ветви без права тратить средства. Приватный ключ, напротив, позволяет подписывать. Есть важное исключение: сочетание xpub с утёкшим приватным ключом потомка, выведенным без шагов hardened, может раскрыть приватный ключ родителя. Усиленное выведение hardened прерывает этот путь. Xpub следует беречь ещё и потому, что он раскрывает связи между платежами. [2]
Последующие платежи могут зависеть от предыдущей транзакции, поэтому её идентификатор важен. BIP 141, авторами которого являются Eric Lombrozo, Johnson Lau и Pieter Wuille, отделяет проверочные данные witness, включая подписи, от части, определяющей исходный идентификатор txid. Новый идентификатор wtxid включает и witness. Поэтому изменение данных подписи не обязательно меняет txid, на который ссылается другая транзакция. Подписи по-прежнему проверяются: witness защищён криптографическим обязательством в coinbase-транзакции, первой транзакции блока. [3]
Переписывая адрес, легко ошибиться в одном символе. Wuille и Greg Maxwell описали Bech32 для нативных адресов SegWit в BIP 173. Контрольная сумма состоит из символов, помогающих обнаружить повреждённую запись. Но она проверяет кодирование, а не личность нужного получателя. Если кто-то подменит адрес другим корректным адресом, контрольная сумма не распознает подмену как мошенничество. [4]
Формат адреса тоже можно улучшать. BIP 350 Wuille меняет контрольную сумму, чтобы устранить конкретную слабость при добавлении или удалении символов. Результат называется Bech32m. Кошелёк должен проверять соответствие версии witness и кодирования: версия 0 по-прежнему использует Bech32, версии от 1 до 16 — Bech32m. Пользователю не нужно выбирать алгоритм вручную. Создание и проверка адресов — задача программы; принять любую корректную контрольную сумму недостаточно. [5]
Цифровая подпись позволяет проверить право на платёж, не раскрывая приватный ключ владельца. BIP 340 от Pieter Wuille, Jonas Nick и Tim Ruffing определяет Schnorr signatures: подпись занимает 64 байта, публичный ключ — 32 байта. Байт — единица размера данных. Математические свойства позволяют строить системы, где несколько людей создают совместную подпись. Но просто сложить ключи недостаточно: отдельный протокол должен безопасно координировать участников. [6]
У кошелька может быть обычный способ расходования и запасные условия. Pieter Wuille, Jonas Nick и Anthony Towns описали Taproot в BIP 341. Путь ключа, key path, позволяет обойтись подписью, не раскрывая даже существования альтернативных скриптов. Скрипт — программа, задающая условия расходования средств. Если нужен путь скрипта, script path, публикуются использованный скрипт и доказательство его включения; остальные варианты не требуется раскрывать целиком. Это экономит место и скрывает часть сведений об устройстве кошелька, но не делает автоматически все платежи анонимными. [7]
Эти изменения решают конкретные задачи и позволяют другим изучать замысел и код. Bitcoin.org объясняет, что BIP обсуждается публично, а принятие изменений зависит от участников сети. Узел — компьютер, проверяющий транзакции и блоки по правилам своего программного обеспечения. Авторство или сопровождение репозитория не дают права единолично менять правила консенсуса. Wuille важен благодаря своим работам и сотрудничеству, а не как начальник Bitcoin. [8]
Для полной картины прочитайте эту статью вместе с Craig Wright, Gregory Maxwell, Satoshi Nakamoto. На эту статью также ссылаются Craig Wright, Gregory Maxwell.