В понедельник разработчики из компании Blockstream представили новую схему подписи для биткоина под названием MuSig, а также добавили код в свою тестовую криптографическую библиотеку, которая открыта для публичного тестирования на GitHub. Предлагаемая схема цифровой подписи может улучшить конфиденциальность и масштабируемость биткоина. Математик из Blockstream Эндрю Поэльстра в блоге компании пишет:
Мы превратили MuSig из академической работы в пригодный для использования код, и на этой неделе мы интегрировали этот код в secp256k1-zkp, форк secp256k1, надёжную криптографическую библиотеку, которая используется bitcoin core… Поскольку биткоин-сообщество изучает использование подписей Шнорра в биткоине, мы надеемся, что наш код в конечном итоге будет объединен с библиотекой secp256k1.
Сегодня биткоин использует алгоритм подписи ECDSA для проверки владения и передачи монет. Это техническое решение, вероятно, было принято в 2008 году на основе широко используемых тогда систем цифровой подписи. Однако ECDSA имеет ряд серьёзных технических ограничений. В частности, мультиподписи — подписи, сделанные кворумом независимых сторон, а не одним человеком, — трудно применять через ECDSA. Подписи ECDSA имеют сложную алгебраическую структуру, что делает их негибкими для практического использования, вынуждая разработчиков использовать Bitcoin Script для атомарных свопов или lightning, которые могут быть реализованы более компактно и анонимно с помощью более гибкой схемы подписи.
Тем не менее, хотя с 2008 года в области цифровых подписей есть значительные улучшения, альтернативные схемы игнорируют многие требования для их практического использования в биткоине. В частности, они часто предполагают, что пользователи имеют полный контроль над тем, как и когда генерируются их ключи, имеет доступ к «идеальной случайности» при постоянной, надёжной и безопасной памяти. На практике пользователи биткоина часто имеют ограниченный доступ к своим ключам и не контролируют механизм их генерации. Чтобы решить эти проблемы, команда Blockstream стала инициатором разработки новой схемы подписи, которая и получила название MuSig.
Кроме того, по словам разработчиков, для биткоина было два требования, которые не выполнялись ни в одной из существующих схем. Во-первых, подписи должны быть постоянного размера, чтобы быть одинаковыми для верификатора независимо от состава подписантов. В блокчейне эффективность проверки является наиболее важным фактором, и нет смысла загружать сведения о составе подписантов (в качестве дополнительного преимущества MuSig улучшает конфиденциальность). Во-вторых, нужно было обеспечить безопасность в простой модели открытого ключа. Это значит, что подписанты обладают полной гибкостью в мультиподписи, используя обычные пары ключей без предоставления какой-либо дополнительной информации о конкретном способе управления этими ключами.
Кроме того, разработчики узнали, что многие опубликованные схемы подписи (включая ранее неопубликованную версию MuSig) на самом деле небезопасны.
Реализация MuSig также предусматривает пороговые подписи — концепцию, в которой обусловленное количество подписантов может создать подпись без участия всей группы.