Сиг (от англ. Signature) – значит «подпись». Single-signature (single-sig, сингл-сиг) – «одна подпись». По сути, single-sig значит, что для того чтобы отправить некое количество биткойна, пользователю нужен только один приватный ключ (XPRIV). Технология «мультисиг» же подразумевает, что для отправки биткойнов требуется более чем один приватный ключ.
Мульти-сиг – это уникальный способ, помогающий обеспечить дополнительную безопасность ваших биткойнов. Когда вы используете сингл-сиг, у вас есть только один прибор (горячий или холодный кошелек) как единственный источник «подписи», одобряющей переход биткойна с адреса данного кошелька на другой. С такой системой, если кто-то завладеет вашим единственным приватным ключом, ваши биткойны окажутся под угрозой. Как раз для того, чтобы этого избежать, и существует метод «мультисиг». Мультисиг – это система, которая включает в себя несколько различных приборов, которые работают вместе, чтобы сделать один кошелёк, защищенный несколькими приватными ключами. Для отправки биткойнов из такого кошелька, пользователю необходимо иметь и знать большинство ключей (два ключа из трех, три из пяти, четыре из шести, и т. д.), защищающих доступ к кошельку. Это в разы усиливает безопасность ваших биткойнов, потому что нет единственной точки, от успешной работы которой зависит безопасность всей системы — вместо этого, таких точек несколько.
Давайте рассмотрим более привычный нам пример. Если ваша квартира заперта только одним замком, то человек, завладевший ключом от него, сможет легко в нее проникнуть, но если замков несколько и ключи спрятаны в разных местах, то злоумышленник не сможет реализовать свой коварный план, даже если он получит доступ к одному из ключей. С мультисиг-системой все так же: если бы кто-то нашел только один из ваших нескольких приватных ключей, он не смог бы украсть ваши биткойны — особенно если вы спрячете все ключи в разных местах, так как хранение всех ключей в одном месте делает весь этот подход бессмысленным.
Стоит заметить, однако, что мультисиг также затрудняет и восстановление доступа к своим биткойнам для владельца, потому что ему нужно иметь не только большинство приватных ключей, но и все (а не только большинство) xpubs (словарь). Например, для восстановления доступа к кошельку с тремя подписями нужно иметь два из трех приватных ключей, но все три из трех xpubs. Если одно из этих условий не выполнено, то получить доступ к средствам становится невозможным. Это, например, может усложнить наследование биткойнов (если с вами что-то произойдет, то ваши ближайшие родственники и наследники должны иметь всю необходимую информацию для доступа). Из-за этого каждый пользователь сети биткойна вынужден выбирать между безопасностью и простотой.
Итак, чтобы отправить биткойн с вашего мульти-сиг кошелька, вы должны обладать большинством приватных ключей к нему (xprivs) и ВСЕМИ открытыми ключами (xpubs – о них можно подробнее прочитать в статье о кошельках). Если не хватает хотя бы одного из этих элементов, весь кошелек будет недоступен. Так какой же способ хранения приватных и открытых ключей самый надежный? Я рекомендую хранить их в разных местах следующим способом:
Место 1: xpriv-1 и xpub-2
Место 2: xpriv-2 и xpub-3
Место 3: xpriv-3 и xpub-1
Почему именно такие комбинации для хранения ключей? Напоминаю: xpub (главный открытый ключ) происходит от соответствующего xpriv (главного приватного ключа), но не наоборот. Это значит, что если у вас есть доступ к xpriv, то программа может найти соответствующий ему xpub, но если у вас на руках есть только xpub, то программа не сможет найти соответвующий ему xpriv. Благодаря этому система хранения, описанная мной выше, позволяет вам получить доступ к третьему xpub, если у вас есть доступ к первому и второму xpriv-ам. Например, если у вас есть доступ к xpriv-1 и xpriv-2, у вас также будет доступ к xpub-2 и xpub-3 – казалось бы, доступа к третьему xpub-1 нет. Но благодаря тому, что у вас есть на руках xpriv-1, программа сможет найти xpub-1, и в итоге у вас на руках будут все три xpub и два из трех xpriv – все условия для того, чтобы получить доступ к вашему кошельку.
У такой системы хранения ключей есть еще одно преимущество. Как мы помним из статьи про кошельки, для того, чтобы увидеть, сколько на кошельке лежит биткойна, достаточно иметь на руках все xpubs этого кошелька — даже при условии отсутствия на руках xprivs. С такой системой хранения даже если кто-то обнаружит один из ваших тайников и завладеет одной из комбинаций xpriv и xpub, то при отсутствии доступа к большинству комбинаций они не только не смогут завладеть вашим биткойном, но и даже не смогут узнать, сколько на этом кошельке биткойнов, и есть ли они там вообще.
Еще раз для закрепления: для того, чтобы отправить биткойн с мульти-сиг кошелька, необходимо иметь на руках ВСЕ xpubs и большинство xprivs.