Средний Урок 5 4 мин чтения

Мультиподпись: когда одного ключа недостаточно

Две из трех, три из пяти. Распределение авторизации между ключами заменяет единую точку сбоя на процедуру.

В европейских церквях Средневековья деньги от десятины хранились в сундуке с тремя разными замками. У священника был один ключ, у казначея прихода другой, а у представителя жителей третий. Никто из троих не мог открыть сундук в одиночку, и никто не должен был доверять другим двоим: такая система делала тихую кражу невозможной, не делая деньги недоступными.

Три замка, три ключника. Никто не открывает сундук в одиночку.

Multisig — это такой сундук. Вместо одного выхода, требующего подписи, создается выход, требующий двух подписей из трех возможных ключей, или трех из пяти, или любой другой комбинации, необходимой в конкретном случае. Правила записываются в самом замке монеты, проверяются каждым узлом сети, без посредников и без подписания контракта в нотариальной конторе.

Преимущество заключается не в удвоении безопасности, а в разделении уязвимостей. В обычном кошельке одна единственная неприятность — сгоревшая бумага, скопированный ключ, украденное устройство — решает исход. В системе "два из трех" потеря одного ключа ничего не стоит, потому что оставшиеся два все еще достаточны, и вор, который завладеет одним ключом, не сможет переместить ни одного сатоши. Две худшие истории курса, полная потеря и полное ограбление, перестают зависеть от одного объекта.

Система "два из трех" наиболее популярна именно потому, что она уравновешивает обе стороны. Один ключ остается у вас, другой хранится в географически удаленном месте, а третий у доверенного лица или сервиса, который подписывает вместе с вами, но никогда не имеет возможности потратить деньги в одиночку. Компании используют тот же принцип, чтобы требовать подписи двух директоров для каждого платежа, а семьи используют его для планирования наследства без передачи денег при жизни.

Все это не бесплатно. Транзакция multisig больше, а больше значит более высокая комиссия за каждую вашу оплату. Настройка включает несколько кошельков, которые должны взаимодействовать друг с другом. И существует специфическая ловушка, ответственная за реальные потери: хранение семян и забывание плана. Для восстановления кошелька multisig недостаточно только приватных ключей — необходимо знать политику подписей и расширенные публичные ключи всех участников, что кошельки называют дескриптором. Тот, кто хранит три фразы в сейфе и ничего больше, имеет три части сейфа, который никто не знает, как собрать.

Три ключа недостаточно. Без плана никто не соберет сейф.

Стоит отличать multisig от похожей идеи, решающей другую проблему. Существует метод, схема Шамира, который разрезает семя на части и требует некоторые из них для восстановления. Это изобретательно, но обратите внимание на то, что происходит в конце: части собираются в одном компьютере, и в этот момент целое семя существует, собрано, в одном месте. Multisig никогда этого не делает. Каждый ключ подписывает там, где он находится, и полный ключ кошелька никогда не существует нигде.

Собрать части в одном месте создает момент, когда все становится уязвимым.

Существует риск, что сложность станет самой угрозой. Система, которую вы понимаете, протестировали и можете объяснить на одной странице, защищает ваши деньги. Система с пятью ключами, разбросанными по трем странам, собранная за один день и никогда не восстановленная, — это сложный способ потерять все с большим трудом. Честный вопрос не в том, сколько ключей, а в том, сможет ли кто-то — включая вас через десять лет — выполнить восстановление, читая только то, что написано.

Поэтому практическое правило скучное, но хорошее: multisig начинает оправдывать себя, когда хранимая сумма оправдывает процедуру, и только после тестового восстановления, выполненного от начала до конца, с небольшими деньгами, прежде чем что-то серьезное будет вложено.

Ключи, слова, пароль и дескриптор имеют одно и то же конечное назначение: стать записью, которая должна пережить пожары, переезды, забывчивость и ваши собственные похороны. В следующем уроке — резервное копирование, которое длится.