Введение в технологию Блокчейн. Тимур Сергеевич Машнин
предотвратить одну точку отказа при хранении ключей.
И все равно есть проблема с делением секрета: если мы возьмем ключ, и разделим его.
Когда мы захотим использовать ключ для подписи, нам все равно нужно объединить части и пересчитать первоначальный секрет, чтобы иметь возможность подписать с этим ключом.
Точка, в которой мы объединяем все части, по-прежнему остается одной уязвимой точкой, где злоумышленник может украсть ключ.
Криптография также может решить и эту проблему: если части хранятся на разных устройствах, есть способ генерировать подписи Bitcoin децентрализованным способом, не восстанавливая при этом приватный ключ на каком-то одном устройстве.
Это называется «пороговой подписью».
Здесь наилучшим вариантом использования является кошелек с двухфакторной защитой, который соответствует случаю N = 2 и K = 2.
Скажем, вы настроили свой кошелек на разделение ключей между вашим настольным компьютером и телефоном.
Затем вы можете инициировать оплату на своем настольном компьютере, который создаст частичную подпись и отправит ее на ваш телефон.
После этого ваш телефон уведомит вас о платежных реквизитах – получателе, сумме и т. д. – и запросит подтверждение.
Если вы подтвердите данные, ваш телефон завершит подпись, используя свою долю закрытого ключа и передаст транзакцию в цепочку блоков.
Если на вашем компьютере был вирус, который пытался украсть ваши биткойны, он может инициировать транзакцию, которая отправляет деньги на адрес хакера, но затем вы получите уведомление на своем телефоне для транзакции, которую вы не разрешали, и вы не станете ее подтверждать.
Также существует совершенно другой вариант, позволяющий избежать единственной точки отказа: это мульти подпись, про которую мы говорили раньше.
Вместо того, чтобы брать один ключ и разделять его, сценарий Bitcoin напрямую позволяет вам определить, что контроль над адресом должен быть разделен между разные ключи.
Эти ключи затем могут храниться в разных местах, а подписи производятся отдельно.
Конечно, завершенная подписанная транзакция будет создана в конечном итоге на каком-то устройстве, но даже если злоумышленник будет контролировать это устройство, все, что он сможет сделать, это предотвратить трансляцию транзакции в сеть.
Он не сможет создавать валидные мульти подписи транзакций без участия других устройств.
В качестве примера предположим, что Эндрю, Том, Эд, Джозеф и Стивен, являются соучредителями компании.
И компания имеет много биткойнов.
Мы могли бы использовать мульти подпись для защиты нашего большого хранилища биткойнов.
Каждый из нас сгенерирует пару ключей, и мы будем защищать наше холодное хранилище с помощью 3-из-5 мульти-подписи, что означает, что трое из нас должны подписать, чтобы создать действительную транзакцию.
В результате мы знаем, у нас относительно обеспечена безопасность, при условии, что пятеро из нас хранят ключи отдельно и защищают их по-разному.
Злоумышленнику