Это смысловой перевод статьи
https://bitcoinmagazine.com/articles/revamped-idea-bitcoin-vaults-may-end-exchange-hacks-goodАвтор: Aaron van Wirdum
7 августа 2019 г
Новая идея по защите биткоин кошельков от взломакартинка заимствована с
https://jur24pro.ruБезопасное хранение закрытых ключей может быть сложной задачей. Это, конечно, актуально для обычных пользователей, но также актуально для крупных кошельков: тысячи биткойнов, хранившихся на биржах, представляют собой сочную добычу для хакеров, а кажущийся бесконечным список многомиллионных краж - болезненное свидетельство, которое требует решения.
Но техническая мера противодействия взломам может быть уже на подходе. Сегодня основной вкладчик Bitcoin Брайан Бишоп опубликовал обновленное предложение для «Биткойн-кошельков», идея, впервые предложенная в 2016 году. Благодаря умной настройке смарт-контракта пользователи Vault могут вернуть средства, надеясь, что в первую очередь это не приведет к краже. Более того: ничего из этого не требует каких-либо изменений в протоколе Биткойн.
https://www.mail-archive.com/[email protected]/msg08267.html“Что меня волнует в этом — и нам все еще нужно оценить это и проверить - что это может быть надежным способом ограничить потери от кражи”, - сказал Бишоп журналу Bitcoin. “Я думаю, что это может иметь большое значение для Биткойна для защиты от обменных обманов и личного хранения биткойнов.”
История биткойн-хранилищКонцепция Bitcoin Vaults восходит по крайней мере к 2016 году, когда исследователи из Университета Мюнстера (Malte Möser) и Университета Корнелла (Ittay Eyal и Emin Gün Sirer) предложили решение для блокировки монет таким образом, чтобы кража могла временно отменена.
Проще говоря, хранилища биткойнов Möser, Eyal и Sirer были спроектированы со специальными адресами биткойнов, которым будут присвоены два закрытых ключа: один «Ключ хранилища» и один «Ключ восстановления». Ключ хранилища будет использоваться для расходования монет, а Ключ восстановления можно использовать для отмены транзакции в течение определенного периода времени.
Если злоумышленник похитит Ключ Хранилища, он не сможет исчезнуть с деньгами. Предполагая, что создатель Хранилища все еще имеет доступ к (копии) Ключа Восстановления, у него, скажем, будет день, чтобы вернуть средства на специальный адрес Биткойн после того, как атакующий попытается переместить монеты.
Даже в наихудшем сценарии, когда злоумышленник крадет и Ключ Хранилища, и Ключ Восстановления, он не сможет украсть средства: их можно вернуть и через поздний срок. К сожалению, в этом случае создатель Vault также не сможет вытащить монеты из Vault, поскольку атакующий тоже может это заблокировать. Никто не получит средства.
Тем не менее, неспособность злоумышленника уйти с украденным будет для них сильным препятствием пытаться украсть монеты, утверждали Мезер, Эяль и Сирер.
«Злоумышленник, который знает, что ему не удастся украсть, с меньшей вероятностью будет атаковать вас в первую очередь по сравнению с другими целями, на которых украденные средства не будут возвращены», - написали они.
Однако у решений Möser, Eyal и Sirer был большой недостаток: требовались изменения в протоколе Биткойн. Их хранилища были спроектированы вокруг «соглашений», предлагаемого обновления кода Биткойна, которое позволило бы вернуть средства. Трудно получить такие апгрейды на уровне консенсуса - и пока этого не было.
Bishop’s хранилище: пошаговое объяснениеИдея решения Bishop’s от Vault имеет функциональное сходство с более ранним предложением Vault, но важно, что оно не требует каких-либо изменений в протоколе Биткойн.
Чтобы понять, как это работает, лучше всего посмотреть, как решение Bishop Vault настроено в три этапа.
В качестве первого шага создаются как минимум три транзакции, но еще не транслируются в сеть Биткойн.
Первая транзакция называется «Транзакция Vault». Транзакция Vault «заблокирует» монеты таким образом, что ее можно будет «разблокировать» только с помощью специального закрытого ключа.
Этот конкретный закрытый ключ затем немедленно используется для создания и подписания второй транзакции, которая называется «Транзакция с задержкой». Существует несколько стратегий построения этой Транзакции с задержкой. Но в качестве общего примера, это позволило бы тратить монеты двумя способами. Во-первых, монеты можно было потратить с «обычным» закрытым ключом, но только после, скажем, 1 дня . Этот обычный закрытый ключ контролируется создателем Vault в их «горячем» (не особо безопасном, но практичном) кошельке. Или монеты можно было потратить немедленно, но только с другим закрытым ключом.
Этот другой закрытый ключ, в свою очередь, сразу же используется для создания и подписания третьей транзакции, которая называется «Транзакция пересылки». Транзакция пересылки отправляет монеты на резервный адрес или в новое хранилище.
Резервный адрес также может быть настроен несколькими способами, но он предпочтительно является более безопасным, даже если это означает, что его использование менее практично. Например, его закрытый ключ может быть сгенерирован на другом компьютере и где-то сохранен в физическом сейфе. Это также может быть адрес с несколькими подписями, ключи которого распределены по разным местам или, возможно, разделены между несколькими людьми, которым доверяет создатель Vault.
Какую бы установку вы ни выбрали, она также может быть построена как новое (потенциально более сложное) хранилище. А это новое хранилище, в свою очередь, также может иметь «запасной выход» через новое хранилище. И так далее.
На втором этапе процесса установки закрытые ключи, используемые для создания транзакции с задержкой и транзакции с повторным отправлением, полностью удаляются. Это означает, что закрытые ключи больше не могут быть украдены - даже самым искушенным хакером: их больше не существует. В результате монеты в транзакции хранилища могут быть разблокированы только с помощью транзакции с задержкой. В свою очередь, монеты в Транзакции с задержкой могут быть разблокированы только обычным закрытым ключом через день или с помощью Транзакции с пересылкой, отправив ее на резервный адрес или новое хранилище.
На третьем и последнем этапе настройки транзакция Vault транслируется в сеть Биткойн. Монеты теперь находятся в Хранилище, и создатель Хранилища должен охранять его Транзакцию с отложенным расходом и Транзакцию, как будто это были закрытые ключи.
Если создатель хранилища хочет потратить монеты, ему необходимо передать транзакцию с задержкой. Затем ему просто нужно подождать день, прежде чем он сможет потратить средства со своим обычным закрытым ключом в своем горячем кошельке.
«В моем предложении пользователь должен хранить больше данных и убедиться, что он сохранит эти данные в долгосрочной перспективе, в противном случае он теряет доступ к своему хранилищу», - сказал Бишоп. «Но это похоже на то, что« если вы потеряете свой ключ, вы потеряете свои монеты »в любом случае».
АтакиСоздатель Vault все еще имеет конфиденциальные данные, которые потенциально могут быть украдены. Это включает в себя его обычный закрытый ключ, а также транзакцию с отложенным расходом и транзакцию возврата. Тем не менее, даже если хакер получит все это в свои руки, он не сможет потратить средства.
Посмотрим почему.
Если злоумышленник крадет только обычный закрытый ключ, он не сможет получить доступ к монетам, поскольку они все еще заблокированы в транзакции хранилища. Для получения монет из транзакции хранилища требуется транзакция с задержкой.
Но даже если злоумышленнику удастся заполучить как обычный закрытый ключ, так и транзакцию с задержкой, он не сможет украсть монеты - при условии, что создатель Убежища обращает на это внимание. (Создатель Vault также мог бы использовать службу «Сторожевая башня», которая обращает на них внимание.) Если злоумышленник транслирует транзакцию с задержкой, ему придется подождать день, чтобы потратить монеты с обычным закрытым ключом.
Тем временем создатель Vault может транслировать транзакцию Re-Vaulting, которая отправит монеты на резервный адрес или в новое хранилище. Если злоумышленник также не скомпрометировал ключи к резервному адресу или новому хранилищу, средства снова будут в безопасности - хотя, возможно, теперь они хранятся в менее удобном виде (например, многозначный адрес).
Даже если злоумышленник также скомпрометирует потенциальное новое Убежище, ему это мало поможет. Те же события будут разыгрываться, и создатель Vault снова отправит монеты на их резервный адрес или в новое Vault. Последовательность резервных хранилищ может быть такой, как этого хочет создатель хранилища, со всеми типами сложных настроек, чтобы не дать злоумышленнику скомпрометировать их все.
Если злоумышленник должен был украсть Транзакцию Re-Vaulting - либо в сочетании с обычным закрытым ключом и Транзакцией с задержкой, либо нет - он также не сможет украсть средства. Транзакция Re-Vaulting может быть использована только для блокировки снятия средств. Однако, в зависимости от настроек, злоумышленник может в этом случае иногда не дать создателю Vault также потратить средства.
В некоторых наихудших сценариях, когда все конфиденциальные данные создателя Vault были украдены, создатель Vault и злоумышленник могут оказаться в цикле, когда они продолжают пытаться блокировать попытки вывода друг друга. (Это можно решить с помощью функции «самоуничтожения», подробнее об этом ниже.)