Interested Article - Мультиподпись
- 2021-08-06
- 2
Мультиподпись ( англ. multisignature ) — схема реализации электронной подписи , которая для своей достоверности требует T ключей из группы N членов ( T < N ). По своей сути является вариантом пороговой подписи , но реализована не как единый объект, а как проверка заданных условий, которую осуществляет базовая система скриптов криптовалюты .
Мультиподпись в Биткойне
Особенностью Биткойна и многих других криптовалют является необратимость транзакций — нет механизма отмены вошедшей в блокчейн транзакции, а также нет возможности иного действия, игнорирующего волю текущего владельца. Но Биткойн имеет встроенный скриптовый язык , позволяющий указывать разнообразные дополнительные условия для проведения транзакций. Одно из возможных условий, реализуемых через скрипты — создание биткойн-адреса, для управления которым требуется оговоренное количество подписей из заданного списка (принцип T -из- N ) .
Первым символом созданных с использованием мультиподписи биткойн-адресов является тройка (обычные биткойн-адреса начинаются с единицы).
В августе 2013 года компания первой реализовала интерфейс, в котором адреса с мультиподписью клиенты компании могли создавать и использовать без прямого обращения к скриптам .
Мультиподпись в биткойне является набором подписей различных пользователей, а не одним объектом. Мультиподпись реализована в других криптовалютах разными способами . Язык умных контрактов Эфириума обладает гораздо более широкими возможностями, чем скриптовый язык Биткойна.
Широкое распространение получили адреса, для операций с которыми нужны любые два ключа из оговоренных трёх. Чаще всего именно это и подразумевается под термином «Мультиподпись». Они позволяют реализовать обратимые транзакции .
Обратимые транзакции в Биткойне
Необратимость транзакций становится существенной проблемой, если стороны не очень доверяют друг другу или есть иная угроза неисполнения договорённости. Подобные ситуации часто возникают при покупках в интернет-магазинах . При неполучении товара или иных претензиях нет гарантий возврата средств. При оплате через VISA или MasterCard клиент может воспользоваться процедурой возвратного платёжа .
В системе Биткойн подобная процедура реализуется следующим образом.
Стороны договариваются об использовании мультиподписи с привлечением третьей стороны — арбитра. С использованием открытых ключей всех трёх сторон генерируется новый адрес, который связывается со скриптом условий , где прописывается, что для создания новой транзакции достаточно двух подписей. Правила (условия для скриптов) указываются при создании адреса, становятся его составной частью и не могут измениться без изменения самого адреса. Покупатель делает перевод на созданный адрес, который в полной мере не принадлежит ни одной из сторон и является транзитным. Продавец видит поступление, отправляет товар и создаёт транзакцию о переводе средств с транзитного адреса на свой. Но средства «повисают», так как ни одна из сторон, в том числе арбитр, не может распорядиться ими самостоятельно . Покупатель получает товар. Если всё в порядке, покупатель накладывает на транзакцию, сформированную продавцом, свою подпись, тем самым выполняя условия для отправки средств в адрес продавца. Если товар не дошёл или покупатель его вернул, то покупатель формирует новую транзакцию с транзитного адреса на свой, подписывает её и предлагает подписать продавцу. При согласии продавца средства вернутся покупателю. Если согласие не достигнуто, то последнее слово будет за арбитром. Рассмотрев ситуацию, арбитр принимает решение о передаче средств продавцу (и налагает свою подпись на транзакцию, подготовленную продавцом) или о возврате средств покупателю (и налагает свою подпись на транзакцию, подготовленную покупателем). Договор может предусматривать вознаграждение арбитру. Тогда арбитр создаёт ещё одну транзакцию с разделением платежа как в пользу одной из сторон, так и в свою собственную, а затем предлагает соответствующей стороне наложить свою подпись. Неподписанные «лишние» транзакции утратят свою актуальность после отправки средств и не приведут к двойной трате.
Иное применение мультиподписи
Принцип мультиподписи может использоваться для повышения уровня безопасности при платежах криптовалютой. Формула 2-из-3 позволяет создать корпоративный адрес на основе подписей владельца, директора и бухгалтера .
При мультиподписи, составленной из членов семьи с небольшим количеством обязательных подписей, утрата секретного ключа не становится катастрофической проблемой. Даже если ключ попадет в чужие руки, злоумышленник вряд ли сможет убедить родственников пострадавшего подписать транзакцию.
Мультиподпись, для которой требуется более половины членов попечительного совета некоего фонда, автоматически будет выполнять роль голосования при рассмотрении решений о направлениях использования средств. Оплачиваться будут только те проекты, которые получат большинство голосов в форме подписей под транзакцией.
Атака «дней рождения»
Мультиподписные адреса Биткойна используют P2SH и защищены с помощью HASH160 (160-битная хеш-функция ). Если злоумышленник владеет хотя бы 1 ключом из мультиподписного списка, то с учётом коллизии хеша для подделки чужой подписи он может снизить количество вариантов перебора до 2 80 , что уже осуществимо для современных вычислительных систем .
См. также
Примечания
- ↑ от 20 июня 2018 на Wayback Machine // coinspot.io 30.08.2016
- ↑ . Дата обращения: 30 ноября 2017. 4 марта 2014 года.
- . Дата обращения: 17 июля 2015. 26 июля 2015 года.
- . Coinbrief.com . Дата обращения: 16 сентября 2015. 28 февраля 2015 года.
- . Cointelegraph . Дата обращения: 30 ноября 2017. 20 сентября 2015 года.
- . Дата обращения: 30 ноября 2017. 7 февраля 2014 года.
- . Дата обращения: 26 декабря 2017. 26 апреля 2018 года.
- 2021-08-06
- 2