Надежный сейф для биткойнов

vault2

Как вы храните свои биткойны? Да, монеты зарегистрированы в блокчейне, но как вы храните приватные ключи, которыми заперты ваши сбережения? Если у вас пока нет биткойнов, как бы вы хранили свои приватные ключи, маленькие файлы, имеющие непосредственную денежную ценность, чтобы обезопасить их от потери и хакеров? С учетом того, что проблема безопасного хранения ключей – одно из основных препятствий для массового принятия криптовалют, и каждая удачная кража бросает тень на все криптовалютное сообщество, многое зависит от ответов на эти вопросы.
Спросите любого бывалого криптовалютчика, и он вам расскажет, что нужно создавать ключи при помощи хорошо написанного ПО с использованием источника по-настоящему случайных чисел. И он посоветует использовать мультиподписи, чтобы разделить ключи так, что хакерам придется вскрывать не одну, а несколько машин, чтобы получить доступ к вашим деньгам. И довольно сложно обеспечить такую защиту. Следуйте 37-страничному руководству по безопасному обращению с ключами, которое предусматривает физическую изоляцию, выделенные лэптопы и залитые эпоксидкой порты. Но что это за “интернет-валюта”, которую нужно хранить на физически изолированном выделенном лэптопе, в пирамиде с ложными погребальными камерами? Неудивительно, что простые смертные не хотят этим заниматься и доверяют хранение своих монет какой-нибудь крупной бирже. Разумеется, теперь та же самая проблема возникает у биржи, только с гораздо (гораздо!) более высокими ставками.

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

В результате, летопись криптовалют хранит множество печальных историй о том, как монеты или были утрачены по ошибке, или хакерам удалось украсть приватные ключи и скрыться с крупной добычей. С искушенными пользователями такое тоже происходит. Мой коллега, выпускник факультета компьютерных наук, один из первых биткойн-майнеров потерял около 10 000 монет. Другой приятель выбрал очень, очень хороший пароль. Настолько хороший, что через несколько лет он не смог его вспомнить даже при помощи гипноза и попыток перебрать все возможные пароли, подходящие под стратегию, которую он использовал.

В целом, наша компьютерная инфраструктура даже близко не годится для безопасного хранения ценных активов. Биткойн стал универсальным объектом наживы – хакеры вскрывают машины и немедленно получают денежное вознаграждение. Нам нужен способ запереть монеты так, чтобы они стали недоступны для хакеров и воров.

Сейф для биткойна

На биткойн-семинаре на Барбадосе Мальте Мёзер (Malte Möser) представил наше решение задачи управления приватными ключами для биткойна. Так, в нашей статье описывается метод создания сейфов – особых счетов, ключи от которых могут быть нейтрализованы, если попадают в руки злоумышленников. Сейф – это децентрализованная биткойн-версия вашего звонка в банк с сообщением об украденной кредитной карте – он делает все транзакции злоумышленника недействительными. И здесь есть интересный момент: тем самым сейф изначально лишает вора стимулов. Преступник, который знает, что не сможет уйти с добычей, с меньшей вероятностью решится на атаку, по сравнению с нынешними биткойн-домушниками, которые могут быть уверены, что их усилия по взлому будут в какой-то степени вознаграждены.

С точки зрения пользователя, идея проста. Вы отправляете свои деньги на адрес созданного вами сейфа. У каждого сейфа есть ключ от сейфа и ключ для восстановления. Чтобы потратить деньги с адреса сейфа при помощи соответствующего ему ключа от сейфа, нужно выждать определенное время (называемое “периодом изъятия”), которое вы задаете в момент создания сейфа – скажем, 24 часа. Если все идет хорошо, деньги из вашего сейфа по истечении периода изъятия разблокируются и вы можете переместить их на обычный адрес и затем потратить любым способом. Теперь, если хакеру Харитону удастся добыть ваш ключ от сейфа, у вас будет 24 часа для того, чтобы обратить любую проведенную Харитоном транзакцию при помощи ключа для восстановления. По сути, кража отменяется и деньги в одностороннем порядке возвращаются их законному владельцу. Это та же “возможность отмены платежа”, на которую полагается современная банковская система, только для биткойна.

Теперь проницательный читатель спросит, что произойдет, если Харитон окажется способным парнем и устроит засаду, чтобы добыть не только ваш ключ от сейфа, но и ключ для восстановления. Другими словами, он вас тщательно изучил и теперь, с точки зрения сети, неотличим от вас. Сейф защищает вас даже в этом случае. У ключей для восстановления есть аналогичный период блокировки, позволяющий вам до бесконечности отменять все транзакции Харитона. К сожалению, к этому моменту Харитон может делать то же самое – отменять каждую вашу транзакцию. Чтобы разорвать замкнутый круг, с помощью ключа для восстановления можно сжечь деньги – тогда они не достанутся никому. В конечном итоге, Харитон не сможет добыть ни копейки благодаря своей краже. А это, в свою очередь, означает, что сейфы вряд ли станут его мишенью, потому что ни в одном из исходов ему не удастся унести награбленное.

Построение сейфов на биткойн-ковенантах

Реализация механизма сейфов на биткойне далеко не тривиальна. Можно создать специализированную подсистему специально для сейфов – выделенное семейство адресов, множество новых кодов операций и тому подобное – но мы уверены, что архитектурные изменения должны быть минимальными и, в то же время, универсальными. Поэтому мы предлагаем простое изменение в биткойн, называемое биткойн-ковенантами. Как и в случае правовых ковенантов, биткойн-ковенант проверяет условие при расходовании транзакции. По сути, ковенант – это ограничение, накладываемое на форму будущей транзакции. Поскольку ковенанты могут быть рекурсивными, они могут самоподдерживаться, или могут быть ограничены во времени, позволяя реализовывать богатую семантику в широких пределах.

Идея расширить возможности скриптового языка не нова. На деле, мы позаимствовали термин “ковенант” из старого ироничного поста Грега Максвелла (Greg Maxwell), который предложил неправдоподобный механизм и спросил, какие могут быть экстравагантные варианты его использования. Рекомендуется к прочтению.

Однородность не затронута

Крайне важно отметить, что сейфы на затрагивают никоим образом ни однородность монет, ни неотменяемость обычных транзакций. Сейфы – это личный защитный механизм: вы берете деньги, которые хотите надежно сохранить, и помещаете их на адрес сейфа, который сами создали (назовем его V). Сделав это, вы жертвуете возможностью быстро их потратить в обмен на защиту от кражи. Когда вы хотите потратить монеты, вы извлекаете их из V в свой горячий кошелек W и платите торговцу M из W. Только деньги, находящиеся в вашем владении, могут быть положены в сейф, и их можно лишь переместить обратно в ваше владение. Нельзя обмануть кого-то, расплатившись с ним напрямую из сейфа, а потом забрать монеты назад. Весь дизайн построен вокруг защиты по вашему выбору части из тех монет, которыми вы владеете, и не затрагивает остальных свойств биткойна.

В общем, наше предложение – это простое, но мощное дополнение к скриптовому языку (которое легко обосновать), открывающее дорогу к разнообразным построениям на его основе.

Сейфы – это одно из первых применений ковенантов, решение проблемы, которая непрерывно отравляла жизнь каждому пользователю биткойна с момента запуска системы. Мы надеемся, что сейфы упростят пользователям задачу сохранения их накоплений в онлайне, если пользователи будут знать, что всегда смогут отменить кражу. И, что еще важнее, заранее отпугнуть воров.

Читайте также

Оригинал статьи: http://hackingdistributed.com/2016/02/26/how-to-implement-secure-bitcoin-vaults/



Categories: Безопасность, Криптография, Приложения, Технологии

15 replies

  1. Юзаю, SSD на 120 гиг – холодное хранение (просинхронил, отключил), туда залил весь софт BitcoinCore, написал скриптец который сразу на этот диск и делает синхронизацию, покупал SSD два года назад с момента последней синхронизации 14.03.16 файлы подросли до 72 гигтар, уже в скором времени будет нехватка. И кошель.дат конечно нужно дублировать.

  2. Все давно придумано
    Аппаратный кошелек Bitcoin Trezor + несколько паролей как 25ое слово сида = надежный сейф. Один пароль для кошелька, который отдадите под пытками преступникам, другой – рабочий. А для работы – mytrezor.com сайт, или Electrum, или Mycelium на Андроид. Получаете кошелёк со стойкостью холодного хранилища, с которого можно в любое время отсылать свои транзакции. Всё уже давно работает, и доступно новичкам. Стоимость решения – 100 долларов

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

  4. А биток это технология не для дураков, не умеешь пользоваться высокотехнологичным оборудованием – сначала учись…

    • спорно. если стремимся к пользованию в рамках нашего муравейника – идём в тупик и рискуем скатиться к обществу анонимных владельцев битков.

  5. Я бы наверное никогда не сжег для меня значительную сумму из моего сейфа, если бы узнал, что туда залез вор. Так бы мы оба и отменяли бы транзакции друг друга до посинения.
    И здесь у вора возникает хороший шанс для требования выкупа.

    • Вот честно, бред бредом. Какой сейф????? Самый простой и надёжный способ хранения, это холодное хранение, через Core. Покупаете отдельный комп, ставите туда любую операционку, драйвера, и больше ничего. К интернету его не подключаете. Ставите туда Core, создаете кошелёк, шифруете его надёжным паролем, создаете адреса, записываете их в txt файл и на флешку, и переносите их на комп с нетом, от куда отправите BTC на свои адреса. Wallet.dat сохраняете в 10 флешек или других разных носителей. Пароль распечатайте или запомните. Поступления средств на свои адреса контролируйте через публичный блокчейн. Wallet.dat переносите на комп с нетом только тогда, когда нужно будет разморозить средства. Такой способ хранения подходит на срок до 10 лет. Это самый простой и безопасный способ хранения на мой взгляд.

      • А теперь представьте себе простого пользователя, который все это проделывает.

      • Ты слышал о BIP32 который дает возможность создавать иерархический кошелек? А о мнемонике на основе BIP39? Знаком ли ты с возможностями P2SH, технология позволяющая проводить транзакцию только в случае получения нескольких подписей? Все это дает высочайший уровень защиты и простоты использования. Если в двух словах, то тебе достаточно выучить 24 слова, по 12 на кошелек, и это все. Твои сокровища всегда будут тебе доступны, главное гаджет с выходом в сеть. Такой способ хранения и использования подходит на неограниченный срок…

        • … и главное, чтоб эти БИПы и мультиподписи сработали через 10-20 лет, и чтоб алгоритм даже на чуть не изменился. И чтоб твоя 128 или 256-битная операционка поняла старое 32-битное приложение.
          К примеру, сейчас проги, которые были 20 лет назад хрен где найдёшь и половина из них криво работает.

          • Такое замечание справедливо вообще ко всему софту, wallet.dat здесь не исключение. Суть ведь в другом.

      • А почему именно 10 лет?

Trackbacks

  1. Безопасность Биткойн-бирж или почему не всё потеряно – Bit•Новости
  2. Кражи биткойнов? В сайдчейнах тестируют функционал против воровства – Bit•Новости
  3. Хочешь стать миллионером? Два основных правила инвестирования в биткойн – Bit•Новости

Поделитесь своими мыслями

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s