Gregory Maxwell, также известный как Greg Maxwell или gmaxwell, — разработчик Bitcoin и сооснователь Blockstream. Он внёс вклад в CoinJoin, Confidential Transactions и Taproot и является соавтором Bech32. Это разные методы, а не набор функций, доступный в любом кошельке Bitcoin.
Работа Maxwell связывает развитие Bitcoin с приватностью и безопасностью. Он был сооснователем Blockstream и занимал должность CTO, то есть технического директора. 19 января 2018 компания сообщила, что он уже оставил эту должность, чтобы сосредоточиться на Bitcoin. Это дата объявления, а не доказательство точного дня ухода. Сообщение также не определяет его нынешнее место работы. Здесь важнее конкретные задачи, которыми он занимался, чем название должности. [1]
Представьте несколько людей, объединивших платежи в одну транзакцию. Каждый добавляет свои входы — ранее полученные монеты, которые теперь тратит, — и подписывает разрешение на их использование. Поэтому наблюдатель не может лишь из совместной транзакции уверенно заключить, что всё принадлежит одному человеку. Под именем gmaxwell Maxwell описал CoinJoin 22 августа 2013. Он прямо отметил более раннее ограниченное использование; метод не требовал изменения правил протокола Bitcoin. [2]
Как участники договариваются о том, что подписать? Простой CoinJoin может собрать координатор, но каждый сначала проверяет свой выход: куда переходят его средства и в каком размере. Только затем он подписывает свои входы. Это не позволяет координатору тратить монеты по своему усмотрению. При этом в простой реализации он может знать связи между входами и выходами. Участник, отказавшийся подписывать, способен остановить весь раунд. Защита от кражи, доступность и приватность — разные свойства. [2]
Обычные транзакции Bitcoin публикуют суммы. Confidential Transactions решают другую задачу, чем объединение платежей: прячут суммы в криптографических обязательствах. Те фиксируют значение без его раскрытия и позволяют проверять итог. Объяснение Maxwell в Elements развивает предложение Adam Back из 2013. Применение в Elements не означает внедрения этой функции в базовой сети Bitcoin. Скрытые суммы также сами по себе не прячут весь граф транзакций, то есть связи между платежами. [3]
Арифметически 10 = 11 + (-1). Как модель перевода без комиссий это показывает проблему: итог сходится, но положительный выход превышает исходную стоимость, уравновешенный бессмысленным отрицательным выходом. В Confidential Transactions похожий эффект может вызвать модульное переполнение, когда вычисление возвращается к началу числовой системы после пересечения границы. Поэтому нужно доказательство диапазона: оно подтверждает, что скрытая сумма находится в разрешённом интервале, не раскрывая точного значения. Приватность не должна позволять создавать лишние деньги. [3]
Зачем публиковать запасные условия расходования, если все договорились и эти условия не понадобились? Предложение Taproot от Maxwell, датированное 23 января 2018, показывало, как совместная подпись может скрыть существование других условий. При сотрудничестве сторон сложная договорённость может выглядеть как обычный платёж, разрешённый ключом. Но дата сообщения — не дата активации в сети. Между идеей и принятием остаются обсуждение, точные правила и их одобрение участниками. [4]
Окончательная спецификация BIP 341, публичный технический документ с правилами Taproot, называет авторами Pieter Wuille, Jonas Nick и Anthony Towns. Путь ключа может использовать подпись, не раскрывая наличия альтернативного скрипта. Скрипт — программа с условиями расходования; при использовании этого пути раскрываются выбранная программа и доказательство её включения. Это не умаляет первоначальную идею Maxwell, но не позволяет приписать ему единоличное авторство окончательных правил. [5]
Для отправки денег важен и правильно записанный адрес. Pieter Wuille и Greg Maxwell — авторы BIP 173, описывающего Bech32 для нативных адресов SegWit. Контрольная сумма состоит из символов, помогающих обнаружить ошибку кодирования. Она не проверяет личность получателя или того, кто владеет приватным ключом. Корректный, но подменённый адрес может пройти проверку. Поэтому Bech32 решает иную задачу, чем CoinJoin или скрытые суммы; их преимущества не следует смешивать. [6]
Для полной картины прочитайте эту статью вместе с Pieter Wuille, Matt Corallo, Satoshi Nakamoto. На эту статью также ссылаются Pieter Wuille, Matt Corallo.