amaclin1 (OP)
|
|
November 21, 2018, 06:08:28 PM |
|
DAO и всё эфирное мне как-то не вштыривает. Хотя там сокровищ небось рассыпано мама не горюй. Но декомпилировать байт-код в solidity - я теоретически могу попробовать, но практически понимаю, что это адский труд с результатом, который может не окупить затраты. Еще есть вот - биткойн паззл в котором лежит ~31 битка (часть уже забрали, но значительная часть еще лежит) тьмущая битков которые ищут всем коллайдером - https://bitcointalk.org/index.php?topic=1306983.0 - сейчас консенсус в том, что ключи сгенерены рандомно в растущем "рендже", и если это так то дальше пытаться их искать практически бесполезно. Ну блин, вы про паззл вспомнили. Я текст про эту транзакцию опубликовал почти сразу же после того, как эта транзакция появилась в блокчейне. https://bitcointalk.org/index.php?topic=932434.0Причем сразу предположил, что там рандомы, народ потом еще долго пытался найти функцию, а потом и LBC организовали. Там интересная математика говорящая о том, что если в приватном ключе известно какое-то количество начальных битов, то найти его (зная публичный ключ) можно быстрее, чем брутфорсом. Но я уже этой математикой не владею. А учиться поздно. Но почти все, что написано в статье, кроме Sha256('password') x 1975 (This one's my favorite, someone's birth year?) - я нашел, разумеется с нулевыми балансами. Меня в принципе интересуют приватные ключи, которые были использованы в блокчейне, пусть даже сегодня там пусто. Чисто для коллекции, неважно - это брейнваллеты или просто вы мне свой старый wallet.dat подарите, которым когда-то пользовались. Платить за это я не готов, а в дар приму с удовольствием.
|
|
|
|
Destrodream
Member
Offline
Activity: 70
Merit: 12
|
|
November 21, 2018, 06:34:45 PM Last edit: November 21, 2018, 06:52:05 PM by Destrodream |
|
DAO и всё эфирное мне как-то не вштыривает. Хотя там сокровищ небось рассыпано мама не горюй. Но декомпилировать байт-код в solidity - я теоретически могу попробовать, но практически понимаю, что это адский труд с результатом, который может не окупить затраты. А вот и нет! Вся прелесть в том, что если у контракта закрытый код - его никто никогда не будет использовать. Все контракты, которые чего-то стоят имеют не только открытый, но и верифицированный код. На etherscan.io есть верификатор, который компилит код и сверяет его с "бинарником" - и ставит на контракте галочку. Если галочки такой не будет, ни одна биржа и ни один толковый сервис контракт не залистит, и в итоге все что надо - изучить солидити - весь жир опенсорс. Ну блин, вы про паззл вспомнили. Я текст про эту транзакцию опубликовал почти сразу же после того, как эта транзакция появилась в блокчейне. https://bitcointalk.org/index.php?topic=932434.0Причем сразу предположил, что там рандомы, народ потом еще долго пытался найти функцию, а потом и LBC организовали. Там интересная математика говорящая о том, что если в приватном ключе известно какое-то количество начальных битов, то найти его (зная публичный ключ) можно быстрее, чем брутфорсом. Но я уже этой математикой не владею. А учиться поздно. Ну простите, великодушно, но это крайне любопытная и захватывающая тема (ну мне она, по крайней мере, такой показалась), хоть и старая. Чисто для коллекции, неважно - это брейнваллеты или просто вы мне свой старый wallet.dat подарите, которым когда-то пользовались. Платить за это я не готов, а в дар приму с удовольствием.
Фишка в том, что проверяя транзакции я генерил приватные ключи миллиардами и не использовал для этого стандартный кошелек битка (тем более что гребаный беркли дб это какой-то кромешный ад), а при попытке вгрузить в биткойнд много ключей - он умирает достаточно быстро. Я делал примерно так - распарсил ВСЕ адреса битка, которые участвовали в любых транзакциях и повесил их в хэштаблицу в качестве ключей в память. Потом выпарсил из блокчейна все Txid, все номера блоков, заголовки блоков - и еще что в голову пришло, сделал из того что по длине подходило приватные ключи (если что-то не проходило по длине - хэшировал один-два раза и делал ключ из хэша). Потом из всей этой невмерущей базы ключей я делал адреса и каждый адрес прогонял на предмет совпадения с теми, что у меня лежали в памяти - если ключ существует - ура, я угадал чейто приватник, можно пробовать слазить в блокчейн и посмотреть на нулевой баланс Я нашел десятки и сотни чужих ключей, но увы - все балансы обнулены. Я конечно не перебрал и малой доли того, что планировал - для грамотного построения системы нужно два здоровущих "сервака" - в одном постоянно пополняющаяся база актуальных адресов, на другом (с в разы большей памятью - база адресов, от которых у меня есть ключи) и постоянно бегающий по ним скрипт, который делает лукапы между базами в надежде что свежак какой-то появился. Короче практически для этого надо превратить блокчейн в key-value, которое обновляется в реальном времени и долбится милионами запросов в секунду. Такую штуку можно оптимизировать и пытаться параллелить до бесконечности - но в итоге все упирается в то, найдется ли что-нибудь? Ответ нет - значительно вероятнее, чем да и не перевешивает тьму времени и денег которые надо вложить чтобы это реализовать не колхозно. По хорошему до тех пор как адресов в битке меньше лярда, можно на приличном железе успевать делать хоть триллион лукапов (то есть лукапов конечно будет столько сколько адресов, но сопоставляться они будут с базой в произвольное кол-во адресов с известными ключами) за время генерации блока - лишь бы памяти хватило на базу приватников. Но потом уже дело табак будет. Как-то так.
|
|
|
|
amaclin1 (OP)
|
|
November 21, 2018, 06:59:37 PM |
|
А вот и нет! Вся прелесть в том, что если у контракта закрытый код - его никто никогда не будет использовать.
А если найду? Фишка в том, что проверяя транзакции я генерил приватные ключи миллиардами и не использовал для этого стандартный кошелек битка (тем более что гребаный беркли дб это какой-то кромешный ад), а при попытке вгрузить в биткойнд много ключей - он умирает достаточно быстро. Это понятно. Меня не интересуют миллиарды приватных ключей. Я тоже умею запускать генератор брейн-валлетов, знаю что такое хэш-таблицы и тоже проверил несколько миллиардов вариантов. Я говорил о тех адресах, что были использованы в блокчейне, то есть были транзакции на адресе. Может быть остался список. Я б взял для коллекции. Как любой коллекционер я мечтаю о том, чтобы моя коллекция была бы самой полной.
|
|
|
|
Avraham Terra
Newbie
Offline
Activity: 6
Merit: 0
|
|
November 21, 2018, 07:03:40 PM |
|
Я тему про пазл давно видел, но тогда она меня не заинтересовала. Там абсолютно у всех WIF ключей большая часть совпадает?
|
|
|
|
amaclin1 (OP)
|
|
November 21, 2018, 07:21:25 PM |
|
Я тему про пазл давно видел, но тогда она меня не заинтересовала. Там абсолютно у всех WIF ключей большая часть совпадает? Ну чисто по способу их генерации. У первого ключа 255 ноликов в начале, у второго ключа 254 нолика, у третьего 253 нолика... Не "совпадает", а "известна". Плюс к этому известны публичные ключи - ведь автор этого паззла понял, что для перебора не надо проверять 256 бит, а достаточно перебрать 160 бит и перераспределил призовой фонд, тем самым показав народу публичные ключи.
|
|
|
|
Destrodream
Member
Offline
Activity: 70
Merit: 12
|
|
November 21, 2018, 07:46:07 PM |
|
Ну посуди сам - ты бы залистил на биржу контракт, который не понятно что делает? И даже будь ты полный хомяк, стал бы ты инвестировать в контракт, корый не понятно как работает. Я осознаю что мало кто читает код до того, как отправить свои денежки, но нормальное бабло на контракт начинают сыпать только тогда, когда за него впишется кто-то кто шарит (например биржа, в случае токенов). Контракты с закрытым кодом не собирают больших денег больших дураков. Это понятно. Меня не интересуют миллиарды приватных ключей. Я тоже умею запускать генератор брейн-валлетов Что-что а брейн воллетами я не увлекался никогда. Была мысль попробовать написать брутфорсилку брейнволлета, который бы искал ключ, если знаешь, например, слова, но не их порядок или не все слова, но потом передумал - гемора много, а слова обычно все лежат в одном месте. Практического применения нет у этой темы. Адреса я генерил именно как дедушка завещал - из двоичного инта, причем двумя способами - пакованый и непакованный. Просто ключи генерил не рандомно а из даннах которые уже в блокчейне есть в каком-то виде (например Txid - это готовый приватный ключ - и удивительно много адресов на которых были баллансы сделаны из Txid). Я говорил о тех адресах, что были использованы в блокчейне, то есть были транзакции на адресе. Может быть остался список. Я б взял для коллекции. Как любой коллекционер я мечтаю о том, чтобы моя коллекция была бы самой полной. Я гляну - вроде где-то сохранял список, но ничего не обещаю. Как любой коллекционер я мечтаю о том, чтобы моя коллекция была бы самой полной. Ну тут тебе повезло - просто начни с ключа: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 и прибавляй по единичке до 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 и все будут твои, даже этот: 0000000000000000000000000111111010001010111011101001101011011010001010011000100111001101011110111110011111011101111110011101001001101011001000001101011111011110101111011101101101101101001101001001101011001000001101011111011110101111011101101101101101001101
|
|
|
|
amaclin1 (OP)
|
|
November 21, 2018, 08:12:09 PM |
|
Ну посуди сам - ты бы залистил на биржу контракт, который не понятно что делает? А зачем его листить на биржу. Написал контракт, отправил на него какую-то сумму, а потом забыл про него, отформатировал винчестер и умер от удара скалкой, когда жена узнала какой херней муж занимается. И бабки на контракте лежат себе, ждут. И даже будь ты полный хомяк, стал бы ты инвестировать в контракт, который не понятно как работает. 99.9% криптоманов не понимают как работают криптовалюты. Я осознаю что мало кто читает код до того, как отправить свои денежки, но нормальное бабло на контракт начинают сыпать только тогда, когда за него впишется кто-то кто шарит (например биржа, в случае токенов). Контракты с закрытым кодом не собирают больших денег больших дураков. Ну, я не претендую на миллионы. Я лишь утверждаю, что найти можно. Надо лишь уметь искать. Я пока не умею. Но в отличие от многих других у меня есть опыт изучения предметной области. Просто ключи генерил не рандомно а из даннах которые уже в блокчейне есть в каком-то виде (например Txid - это готовый приватный ключ - и удивительно много адресов на которых были баллансы сделаны из Txid). Это подтверждает, что долбоёбов в мире всё ещё больше, чем нам кажется в наших самых смелых предположениях. и все будут твои, даже этот: 0000000000000000000000000111111010001010111011101001101011011010001010011000100111001101011110111110011111011101111110011101001001101011001000001101011111011110101111011101101101101101001101001001101011001000001101011111011110101111011101101101101101001101 Да, надо как-нибудь поставить телепортом скачиваться сайт directory.io За неделю, я так думаю, я его полностью себе на комп скачаю (у меня канал связи не очень широкий), а потом уже локально на машине буду обрабатывать результаты. ( Да, я тоже умею глумиться)
|
|
|
|
Destrodream
Member
Offline
Activity: 70
Merit: 12
|
|
November 21, 2018, 08:42:41 PM |
|
А зачем его листить на биржу. Написал контракт, отправил на него какую-то сумму, а потом забыл про него, отформатировал винчестер и умер от удара скалкой, когда жена узнала какой херней муж занимается. И бабки на контракте лежат себе, ждут.
Биржа это доступ к баблу юзеров. Если речь идет о токене - то дорога к баблу только одна - через биржу. 99.9% криптоманов не понимают как работают криптовалюты. Именно так, поэтому юзер пологается не на себя, а на авторитет, который скажет "норм, можно вливать" - но большая часть авторитетов не далеко ушла от юзеров (зачастую не по глупости, а просто времени мало прошло). А авторитет никогда не впишется не глянув в сорс. Ну, я не претендую на миллионы. Я лишь утверждаю, что найти можно. Надо лишь уметь искать. Я пока не умею. Но в отличие от многих других у меня есть опыт изучения предметной области.
Ну конечно, просто искать рыбу в прозрачном пруду, по моему, несколько проще чем в мутном болоте. Я уверен что на контрактах с открытым кодом куда больше денег чем на прочих. Просто ключи генерил не рандомно а из даннах которые уже в блокчейне есть в каком-то виде (например Txid - это готовый приватный ключ - и удивительно много адресов на которых были баллансы сделаны из Txid). Это подтверждает, что долбоёбов в мире всё ещё больше, чем нам кажется в наших самых смелых предположениях. Значительно больше. Хэш слова password - приватный ключ на котором был баланс. и все будут твои, даже этот: 0000000000000000000000000111111010001010111011101001101011011010001010011000100111001101011110111110011111011101111110011101001001101011001000001101011111011110101111011101101101101101001101001001101011001000001101011111011110101111011101101101101101001101 Да, надо как-нибудь поставить телепортом скачиваться сайт directory.io За неделю, я так думаю, я его полностью себе на комп скачаю (у меня канал связи не очень широкий), а потом уже локально на машине буду обрабатывать результаты. (Да, я тоже умею глумиться)
directory.io сдох - видать не вынес нагрузки твоего канала ) Только ты не понял - глум не в переборе - а в ключике.
|
|
|
|
croco8
Newbie
Offline
Activity: 56
Merit: 0
|
|
November 22, 2018, 11:27:34 AM Last edit: November 22, 2018, 11:50:34 AM by croco8 |
|
класс! как в Китае побывал, спасибо! ни хера из текста многоуважаемых гуру не понял, кроме того, что бабок не удалось срубить , но сюжет достоин сериала!)
|
|
|
|
amaclin1 (OP)
|
|
November 22, 2018, 11:59:27 AM |
|
класс! как в Китае побывал, спасибо! ни хера из текста многоуважаемых гуру не понял, кроме того, что бабок не удалось срубить , но сюжет достоин сериала!) Ну почему не удалось? Плохо ты читал Про таких говорят: смотришь в книгу - видишь фигу
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
November 22, 2018, 12:39:54 PM |
|
Там интересная математика говорящая о том, что если в приватном ключе известно какое-то количество начальных битов, то найти его (зная публичный ключ) можно быстрее, чем брутфорсом. Но я уже этой математикой не владею. А учиться поздно. Ничего там сложного нет, просто это две немного разные субстанции: известные начальные биты ограничивают диапазон перебора, а известный публичный ключ даёт стартовую точку (на EC) от которой можно делать baby step / giant step. Плюс к этому известны публичные ключи - ведь автор этого паззла понял, что для перебора не надо проверять 256 бит, а достаточно перебрать 160 бит и перераспределил призовой фонд, тем самым показав народу публичные ключи. Ключи известны только те, с которых автор убрал койны (т.е., выше 160 бит).
|
|
|
|
amaclin1 (OP)
|
|
November 22, 2018, 12:48:18 PM |
|
Ничего там сложного нет, просто это две немного разные субстанции: известные начальные биты ограничивают диапазон перебора, а известный публичный ключ даёт стартовую точку (на EC) от которой можно делать baby step / giant step. Все равно я это в гимназии не проходил. А на пятом десятке лет трудно уже мозги заставить работать. Ключи известны только те, с которых автор убрал койны (т.е., выше 160 бит). Ой, верно. Я плохо посмотрел.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
November 22, 2018, 02:10:04 PM |
|
Все равно я это в гимназии не проходил. А на пятом десятке лет трудно уже мозги заставить работать. Да там не над чем мозги напрягать: тот же линейный перебор. К известной точке на эллиптической кривой (публичный ключ) последовательно прибавляются точки +1, +2, ... (т.е., вычисленные из приватного ключа 1, 2, ...). И так пока не упрёмся в одну из предвычисленных точек. Проблема там только в изобретении более нового (быстрого) алгоритма сложения, либо какой-нибудь сверхбыстрой реализации существующих - так-то с текущими там ловить уже особо и нечего.
|
|
|
|
amaclin1 (OP)
|
|
November 22, 2018, 02:51:12 PM |
|
К известной точке на эллиптической кривой (публичный ключ) последовательно прибавляются точки +1, +2, ... (т.е., вычисленные из приватного ключа 1, 2, ...). И так пока не упрёмся в одну из предвычисленных точек. Вот блин. Век живи, век учись. Ясен плинтус, что складывать два предвычисленных значения всяко проще, чем умножать p на G. Спасибо. Понятно объяснил. Еще бы кто так же понятно объяснил операции на эллиптической кривой. Я пытался понять, но так и не сумел, бросил. То есть в принципе понимаю что там они что-то крутят-вертят с вектором. Все-таки теорию групп/колец/полей я еще не совсем забыл из школьного курса. Но экзамен по операциям не сдал бы точно.
|
|
|
|
croco8
Newbie
Offline
Activity: 56
Merit: 0
|
|
November 22, 2018, 03:39:08 PM Last edit: November 22, 2018, 04:21:12 PM by croco8 |
|
класс! как в Китае побывал, спасибо! ни хера из текста многоуважаемых гуру не понял, кроме того, что бабок не удалось срубить , но сюжет достоин сериала!) Ну почему не удалось? Плохо ты читал Про таких говорят: смотришь в книгу - видишь фигу Да? Странно Наверное какую-то серию пропустил. Чесслово у меня сложилось впечатление, что не вы, а другие люди увели бабосы на 3+ BCH Ну, раз не так, то тем более все супер, раз еще и хеппиэнд!
|
|
|
|
n00by
Member
Offline
Activity: 172
Merit: 11
|
|
November 22, 2018, 08:31:24 PM |
|
...складывать два предвычисленных значения всяко проще, чем умножать p на G.
там хитрое сложение. Суть ниже Еще бы кто так же понятно объяснил операции на эллиптической кривой.
Порядок вычисления публичного ключа (координаты точки на эл.кривой): 1. Берем двоичную форму любого задуманного нами числа (32 бит) - приватный ключ. Публичный ключ = x(G) в этом моменте (пабкей) 2. Начиная с младших разрядов, используя технику умножения-сложения делаем следующее... Точка в бесконечности G (ее координаты) на каждом такте цикла складываются сами с собой (аккумулятор). Сложение точек на эл.кривой несложная мат.операция. При обходе битов приватного ключа в случае, если бит=1 складываем с (пабкей) результат акуммулятора. Итого: 255 операций тактов цикла внутри которого несколько операций сложения. В целом все бы ничего, но перебор очень затрудняют 2 операции: hash160 и sha256
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1287
OpenTrade - Open Source Cryptocurrency Exchange
|
|
November 23, 2018, 03:34:54 AM |
|
Приватный ключ = 1 сообщение = 2
Кто-нибудь может пошагово описать: как с помощью тетрадки и карандаша получить 1. публичный биткоин ключ 2. подпись сообщения ну и как проверить подпись тоже?
|
|
|
|
amaclin1 (OP)
|
|
November 23, 2018, 04:13:02 AM Last edit: November 29, 2021, 07:10:30 AM by xandry |
|
там хитрое сложение. Суть ниже Я знаю, что такое теория групп. И то, что сложение хитрое - знаю тоже. Сам пытался разобраться как оно работает. Но опять же - знаю это приблизительно. Ну какую отметку получит школьник по географии, если на вопрос "где находится америка?" ответит: "не знаю где, вроде где-то на карте видел и в книжке про нее читал, то есть то что она есть - я зуб даю, а вот показать указкой на карте - тут я точно щас обосрусь" Приватный ключ = 1 сообщение = 2 Подписывается не само сообщение, а его дайджест, то есть сперва мы "Войну и Мир" хэшируем каким-либо способом (в биткойне sha256d но можно и любым другим) до 256 бит, а потом уже скармливаем алгоритму подписи. Кто-нибудь может пошагово описать: как с помощью тетрадки и карандаша получить 1. публичный биткоин ключ 2. подпись сообщения ну и как проверить подпись тоже? Практически нереально, если рассматривать 256-битные числа. Но можно взять G=11 или G=13 и по идее сделать то же самое.
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
November 23, 2018, 10:38:02 AM Last edit: November 29, 2021, 07:09:35 AM by xandry |
|
Еще бы кто так же понятно объяснил операции на эллиптической кривой. Ну там, если в дебри теории групп не лезть, тоже всё не особо сложно. Определили некоторое множество целых чисел (координата X, в первом приближении - приватный ключ), которые обозвали полем. Над этим множеством определили одну единственную операцию - где-то её называют умножением, где-то сложением, академическое название - групповой закон. (Отсюда из-за этих разных названий и возникает как правило путаница и непонятки.) Обозначается плюсиком в кружочке, я такого знака в таблице символов не нашёл - поэтому ниже буду писать просто +. (На самом деле, для вычисления этого "сложения"/"умножения" применяется целая формула.) Для ЕС есть ещё хитрушка: если две точки A == B, то A + B считается как правило несколько по иной формуле, чем если эти точки не равны (называется удвоение). Плюс ещё ввели некоторые сущности: точка в бесконечности O и обратный элемент, такой, что A + (- A) = 0. Все операции делаются по модулю, что дополнительно осложняет. Вкратце, это всё насчёт операций. Для криптографии на этой кривой выбирают точку-генератор G - её как-то там специально вычисляют, но в принципе, это просто любая точка на ЕС. Соответственно, все операции - т.е., вычисление публичных ключей из приватных 1, 2, 3, ... производят начиная от этой точки: G+1, G+2, G+3 ... Вот, как-то так. Кто-нибудь может пошагово описать: как с помощью тетрадки и карандаша получить 1. публичный биткоин ключ 2. подпись сообщения ну и как проверить подпись тоже? Практически нереально, если рассматривать 256-битные числа. Но можно взять G=11 или G=13 и по идее сделать то же самое. Формула подписи там несложная (сожнее вычислить публичный ключ) - но да, если возиться с 256-битными числами, да ещё по модулю, с тетрадкой и карандашом как-то совсем грустно.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1287
OpenTrade - Open Source Cryptocurrency Exchange
|
|
November 24, 2018, 10:03:57 AM |
|
Кто-нибудь может пошагово описать: как с помощью тетрадки и карандаша получить 1. публичный биткоин ключ 2. подпись сообщения ну и как проверить подпись тоже? Практически нереально, если рассматривать 256-битные числа. Но можно взять G=11 или G=13 и по идее сделать то же самое. Формула подписи там несложная (сожнее вычислить публичный ключ) - но да, если возиться с 256-битными числами, да ещё по модулю, с тетрадкой и карандашом как-то совсем грустно. Ну допустим я могу в уме хэшировать, складывать, делить и умножать 255-битные числа. Как тогда в тетрадке карандашем мне из приватного ключа "1" получить 1. публичный биткоин-ключ, 2. цифровую подпись к числу "2" 3. проверить цифроыую подпись ?
|
|
|
|
|