Возможно ли создать адрес биткойн-брутальной силы, чтобы украсть деньги?

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

Было бы возможно (и выгодно) кому-то найти столкновения в адресном пространстве биткойна, чтобы украсть деньги?

110 голосов | спросил nmat 31 AM00000010000005931 2011, 01:26:59

11 ответов


56

Это может быть «теоретически» возможно, но на самом деле это вряд ли будет достигнуто - как в подсчете количества атомов в офисном здании маловероятно.

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

Редактирование: на самом деле это RIPEMD-160 (SHA-256 (открытый ключ)), а не только SHA-256 (открытый ключ), как я уже упоминал ранее, поэтому это 160-битный хеш 256-битного хэш открытого ключа. Хотя целевое пространство ключей (160 бит) меньше этого последнего шага, это также дополнительный расчет, который должен сделать потенциальный хакер. В то время как дополнительная вычислительная сложность даже не приближается к устранению удаления 96 бит пространства ключей, следует отметить, что обнаружение столкновения в 160-битном пространстве ключей по-прежнему невероятно сложно и требует много времени. Что еще более важно, сложнее и трудоемко, чем на самом деле добывать такое же количество монет, что делает его крайне маловероятным, что кто-либо даже попытается совершить такую ​​атаку - даже если оборудование сделает такую ​​атаку правдоподобной в значительном малом диапазоне времени.

ответил David Perry 31 AM00000010000005931 2011, 01:32:59
92

Можно использовать некоторые биткойн-адреса, потому что некоторые люди генерируют свои секретные ключи в небезопасной манере. Любой (не нулевой) 32 байта может быть закрытым ключом. Таким образом, запуск sha256 над парольной фразой дает явно случайный, но грубый принудительный закрытый ключ.

Возьмите sha256 («колбаса»), например:

$ echo -n 'sausage' | sha256sum
30caae2fcb7c34ecadfddc45e0a27e9103bd7cfc87730d7818cc096b1266a683  -

Загрузите bitaddress и вставьте этот закрытый ключ на вкладку «Детали кошелька», чтобы получить соответствующий адрес биткойна, затем посмотрите его на blockexplorer :

$ GET http://blockexplorer.com/q/getreceivedbyaddress/1TnnhMEgic5g4ttrCQyDopwqTs4hheuNZ; echo
0.01000000

, и вы увидите, что в феврале 2012 года адрес занимал один биттив в течение 2 дней.

Смотрите также: «fuckyou», который провел 2,5 биткульта в течение 12 праздничных дней в конце прошлого года.

Таким образом, на практике возможно создание адреса биткойнов с использованием грубой силы, но только для плохо выбранных кодовых фраз. Вероятно, это были просто люди, которые играли вокруг с идеей «хранить биткойны в голове», поэтому они предназначены для таких небольших количеств и почему они долгое время не финансировались.

При составлении этого ответа не пострадали никакие адресные балансы.

ответил Chris Moore 15 MarpmThu, 15 Mar 2012 12:52:44 +04002012-03-15T12:52:44+04:0012 2012, 12:52:44
45

Чтобы тратить деньги на адрес Bitcoin, вам просто нужно найти открытый ключ ECDSA, который хэширует до того же 160-битного значения. Это займет в среднем 2 поколения ключей 160 .

Предположим, вы могли бы генерировать миллиард (2 30 ) в секунду, вам нужно 2 130 секунд.

Выполнение этого параллельно с использованием миллиарда машин требует только 2 100 секунд.

Получение миллиарда ваших самых богатых друзей, чтобы присоединиться к вам, доходит до 2 70 секунд.

В год имеется около 2 25 секунд, поэтому вам нужно 2 45 years.

Возраст Вселенной составляет около 2 34 лет до сих пор - лучше взломать!

ответил mckoss 17 MarpmSat, 17 Mar 2012 23:46:44 +04002012-03-17T23:46:44+04:0011 2012, 23:46:44
12

Нет, это невозможно, по двум причинам.

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

Во-вторых, как указано в других ответах, гораздо выгоднее генерировать биткойны, если у вас много вычислительной мощности.

ответил gavinandresen 31 AM00000020000000331 2011, 02:02:03
9

Если вы хотите увидеть некоторые доказательства, подтверждающие, что действительно невозможно создать известную пару ключей, вы можете проверить это самостоятельно, если хотите.

Pavol Rusnak создал coinkit, библиотеку python для взаимодействия с материалами, связанными с биткойнами. В нем есть пример того, как его использовать , который делает именно то, что вы спрашивают.

Что он делает, так это генерирует случайную ключевую пару и выполняет поиск blockchain.info для баланса.

Я позволил ему работать около месяца назад с небольшими изменениями примерно на 1mio-адресах и не нашел ни одного сталкивающегося.

ответил Dennis Decoene 22 +03002015-10-22T14:53:23+03:00312015bEurope/MoscowThu, 22 Oct 2015 14:53:23 +0300 2015, 14:53:23
2

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

ответил tysat 31 AM00000010000000331 2011, 01:34:03
2

Существует проект LBC (большой биткойн-коллайдер), который пытается это сделать. Согласно их веб-сайту, с октября 2017 года они создали более 8 000 триллионов ключей.

Согласно материнской плате статья от апреля 2017 года, LBC обнаружил более 30 личных ключей Bitcoin.

ответил Roman 11 62017vEurope/Moscow11bEurope/MoscowSat, 11 Nov 2017 22:42:30 +0300 2017, 22:42:30
1

Возможно: Да.

Вероятно: Нет.

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

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

Кроме того, биткойн-адрес не совпадает с закрытым ключом. Создание адреса биткойна позволит злоумышленнику отправить вам монеты, но это не позволит им подписывать транзакции с вашим личным ключом (т. Е. Удалять монеты из вашего кошелька).

ответил httpagent 31 AM00000010000002931 2011, 01:52:29
1

Если вы предпочитаете диаграммы: http://i.imgur.com/ag3KQ0L.png (в адресном пространстве больше адресов, чем zeptometres, 1/1 000 000 000 000 000 000 метров в ширине вселенной).

Если вы предпочитаете математику: http://download.wpsoftware.net/bitcoin-birthday. pdf ( Andrew Poelstra ) говорит (слегка отредактированный):

  

Используя [математику по дням рождения], мы вычислили [выше], что для вероятности столкновения на 0,1% нам понадобится 5,4 М-10 ^ 22 адресов. Для шанса 99,9999% нам понадобится 6,35 Ã-10 ^ 24 адресов.

     

Таким образом, даже если было создано 10 битбойных битконов, столкновения просто не произойдет. Но если бы было создано 10 ^ 25 адресов, столкновение было бы абсолютно.

     

Должны ли мы беспокоиться об этом? Нет, по этим независимым причинам:

     
  1. Вероятность получения определенного столкновения, скажем, столкновения с одним из ваших адресов, по-прежнему составляет 1 из 2 ^ 160 или 1 из 10 ^ 48. Поэтому, даже если у вас миллион миллионов адресов, никто не может столкнуться с вами.

  2.   
  3. На момент написания этой статьи в сети используется менее 10 ^ 7 адресов. Таким образом, каждый, у кого есть адреса 10 ^ 25, будет сталкиваться только с их собственными адресами.

  4.   
  5. Каждый адрес занимает около 100 байт для хранения. (На самом деле примерно половина этого, но мы только заботимся о порядках.) Таким образом, чтобы сеть поддерживала адреса 10 ^ 25, для их записи потребовалось бы 10 миллионов миллионов терабайт памяти. (И это даже не касается проблемы поиска такого огромного хранилища данных.

  6.   
  7. Согласно sipa, если текущая сеть добычи (которая находится на 25 THash и самая мощная вычислительная сеть в истории мира) была переключена на создание адресов, сеть могла бы генерировать 2,5 Ã-10 ^ 12 адресов в секунду (одно генерирование адреса, соответствующее примерно 10 хэшам). При таком расходе потребуется 127 000 лет, чтобы получить столько адресов. Это спорно ли гомо сапиенс ходил по земле так долго.

  8.   
  9. С 21 миллионом биткойнов, когда-либо имевшимся, и 8 десятичными знаками делимости, самое большее 2,1 Ã-10 ^ 14, возможно, могут иметь деньги на них сразу. Но в пространстве 10 ^ 24 адресов это означает, что только один из 10 ^ 12 адресов мог бы иметь деньги на них. Таким образом, атакующий, совершив физически невозможное 3 триллиона раз, имеет только один шанс триллиона, чтобы получить от него даже один сатоши.

  10.   
ответил ZakW 28 MaramFri, 28 Mar 2014 01:30:52 +04002014-03-28T01:30:52+04:0001 2014, 01:30:52
0

Да, следуя технологической прогрессии, когда доступно оборудование, которое может сделать 1Thash /sec и выше, становится возможным начать поиск столкновений с разумным коэффициентом успеха. Я бы оценил примерно через 2-3 года, что это будет жизнеспособно, так как кто-то, пытающийся это сделать, получить адрес, который имеет приличное количество BTC, связанного с ним, - это другое дело, и вопрос о том, будет ли он даже быть прибыльным, все еще остается.

Я уверен, что шансы намного меньше, чем основная математика. Если вы найдете совпадение, которое составляет около 20 символов, вероятность довольно велика, так как полный адрес будет соответствовать из-за процесса, связанного с генерируя пару ключей.

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

ответил extcoin 19 +04002013-10-19T02:53:21+04:00312013bEurope/MoscowSat, 19 Oct 2013 02:53:21 +0400 2013, 02:53:21
0

Я прочитал на bitcoin.org, что закрытый ключ $ d_A $ - любое целое число от $ 1 $ до $ n-1 $. Также $ n = FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE 0x00 = 18,446,744,073,709,551,615 0d00 $. Предполагая, что 100M разные адреса, что $ 5.42 e ^ {- 12} $ вероятность выбора используемого адреса. Если у нас есть $ x $ догадки, нам нужны $ x = $ frac {1} {5.42e ^ {- 12}} $ частные ключи, чтобы обеспечить их поиск. Это составляет $ 5.42 e ^ {12} $ генерации адресов, тогда для всех сгенерированных сгенерированных частных ключей с произвольным сгенерированным 5,42 триллиона вам нужно будет умножить $ G $ на каждый закрытый ключ $ d_n $ в эллиптическом поле, чтобы получить $ Q_n $, затем выполнить поиск биткойн-блок-цепочку для этого $ Q_n $. После 5,42 трлн из них вы почти наверняка найдете один и сможете украсть его btc.

Вы могли бы выработать компьютерную науку об этом, например, как долго умножать $ d_n \ times G $ и как долго искать цепочку блоков. Будучи, как почти все не будет в нем, это будет самый худший случай поиска.

ответил marshal craft 17 AM00000010000004331 2017, 01:07:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132