2 октября 2012, 8:58:00 PM   # 1
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: Как хэш Midstate?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru

Это мой первый пост, поэтому, пожалуйста, идти просто на меня.
Во-первых, я сделал мой должной осмотрительности. Я искал этот форум и изучил документацию как на Bitcoin и SHA256. Тем не менее, с SHA256, я еще немного запутался.
Я хотел бы узнать, как Bitcoin и Arduino, так что я начал строить шахтера. Теперь, прежде чем кто-то говорит, что это глупая идея, я знаю, что это. Я просто делаю это для развлечения и обучения. И по большей части, это было весело, пока я ударил контрольно-пропускной пункт.
Я могу получить Midstate, выполнив 256 хэша первой половины данных, которые я получить от "getwork" вызов. Он отлично сочетается "Midstate" который пришел с "getwork" вызов. Из-за того, что я достаточно уверен, что я получаю обратный порядок байт в правильном порядке, и что моя 256 библиотеки функциональна. 256 библиотека, я использую: https:? //code.google.com/p/cryptosuite/source/browse/Sha/sha256.h г = ba70bfce07af76ff141c53833b8c1d15e3d7d368
чтобы получить Midstate я делаю это:

Код:

Sha256.init ();
для (INT I = 0; я < 64; ++ я)
{
       Sha256.write (midstateByte [I]);
}

и он работает как чавканье, без каких-либо проблем. Моя проблема в том, что я отчаянно нужна помощь в том, как сделать второй и окончательный хэш. Я знаю, что одноразовое значение во второй половине блока данных. Вы увеличиваете временное значения, а затем сделать хэш на втором блоке. Что я могу по той же методике, что я сделал с первой половиной, чтобы получить Midstate. Как объединить Midstate и первый хэш вместе? в этой должности по адресу: пользователь говорит

котировка
Это также выход 8 32bit числа. Каждое число от второго "ломоть" добавляют к первому, с соответствующим номером из первого куска. Это добавление осуществляется по модулю 2 ^ 32 для каждого номера, так что нет переполнения или переноски.

Я не понимаю, что он говорит здесь. Так или иначе, я должен добавить массив 32 байт (Midstate) в результат первого хэша на второй половине данных, другой массив 32 байт, и получить 64 байт массивов положить через SHA256 для окончательного хэша.

Если кто-нибудь может объяснить, как это сделать, что я был бы очень благодарен. Кроме того, я знаю, что вы можете просто хэш всех данных, не нарушая его, но, к сожалению, я удар Arduino пределы стека. Я также знаю, что большинство надежных библиотек SHA256 имеет возможность сделать это, но не мой, и я не могу использовать другой.

Пожалуйста, включите адрес для кончиков, потому что я в отчаянии! Еще раз спасибо!
king44444 сейчас офлайн Пожаловаться на king44444   Ответить с цитированием Мультицитирование сообщения от king44444 Быстрый ответ на сообщение king44444


Как заработать Биткоины?
Без вложений. Не майнинг.


9 октября 2012, 10:00:12 PM   # 2
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: Как хэш Midstate?

Получил 1806 Биткоинов
Реальная история.





Я понял это, я был смущен о том, как Midstate работ. Для любого, кто ухаживает, скорость хэш из Arduino UNO составляет около 36 хешей в секунду.
king44444 сейчас офлайн Пожаловаться на king44444   Ответить с цитированием Мультицитирование сообщения от king44444 Быстрый ответ на сообщение king44444

10 октября 2012, 1:21:14 AM   # 3
 
 
Сообщения: 714
Цитировать по имени
цитировать ответ
по умолчанию Re: Как хэш Midstate?


спасибо за размещение обратно. хорошие манеры:)
Хамди сейчас офлайн Пожаловаться на Хамди   Ответить с цитированием Мультицитирование сообщения от Хамди Быстрый ответ на сообщение Хамди

23 марта 2013, 12:05:39 PM   # 4
 
 
Сообщений: 16
Цитировать по имени
цитировать ответ
по умолчанию Re: Как хэш Midstate?


Я пишу аппаратную Bitcoin кошелька с помощью Arduino. Я взял объезд и подключил его к майнингу. Это был еще сумасшедший медленно, но значительно быстрее, чем Uno. Это было около 1600 хэшей в секунду. Я думаю, что в основном это было просто интересно посмотреть 5v Arduino хэша.

Видео этого хэширования.
https://www.youtube.com/watch?v=UvSVxC7dy9c
king44444 сейчас офлайн Пожаловаться на king44444   Ответить с цитированием Мультицитирование сообщения от king44444 Быстрый ответ на сообщение king44444

5 июня 2015, 11:42:41 PM   # 5
 
 
Сообщения: 1
Цитировать по имени
цитировать ответ
по умолчанию Re: Как хэш Midstate?

Оказывается, что король изменил строку данных в массив байтов где-нибудь еще в своей программе перед подачей его в команду Sha256.write, но я никогда не понял, как сделать это преобразование. С помощью команды Sha256.print взять строку непосредственно не похоже на работу. Какие-либо предложения? Часть моего кода, относящегося к Midstate известково ниже. С другой стороны, указывая мне на пример коды, который правильно делает байтовый массив из строки данных getwork без использования кучи библиотек, которые не работают в Arduino IDE помогут многому. 

Как с Кингом, просто делаю это для развлечения и обучения, не dillusions что Arduino не является эффективной добычей оборудованием.

Благодарю.

Код:
#включают "sha256.h"

недействительные установки () {
    Serial.begin (57600);
}

недействительным цикл () {
    Строка данных = "00000001c570c4764aadb3f09895619f549000b8b51a789e7f58ea750000709700000000103ca064f8c76c390683f8203043e91466a7fcc40e6ebc428fbcc2d89b574a864db8345b1b00b5ac00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000";  
    Данные = RemovePadding (данные);
    данных = EndianFlip32BitChunks (данные); // переворачивается от маленького до большого Endian Endian

    Sha256.init ();
    Sha256.print (data.substring (0,80)); // хэш первой половины сделать Midstate
    uint8_t * midstatearray = Sha256.result ();
    Serial.println (F ("Calc Midstate является:"));
    printHash (midstatearray);
    Serial.println (F ("Ожидаемое:"));
    Serial.println (F ("e772fc6964e7b06d8f855a6166353e48b2562de4ad037abc889294cea8ed1070"));
}

аннулированию printHash (uint8_t * хэш) {
  Int я;
  для (я = 0; я<32; ++ я) {
    Serial.print ("0123456789abcdef"[Хэш [я]>>4]);
    Serial.print ("0123456789abcdef"[Хэш [я]&0xf]);
  }
  Serial.println ();
}

статическая Строка EndianFlip32BitChunks (строка ввод)
        {
            // 32 бита = 4 * 4 байта = 4 * 4 * 2 символа
            Результат String = "";
            для (INT I = 0; я < input.length (); I + = 8)
                для (Int J = 0; J < 8; J + = 2)
                {
                    // добавить байт (2 символа)
                    Результат + = вход [я - J + 6];
                    Результат + = вход [я - J + 7];
                }
            возвращать результат;        
        }
        
 статическая строка RemovePadding (строка ввода)
        {
            // Длина полезной нагрузки: окончательный 64 бит в обратном порядке байт - 0x0000000000000280 = 640 бит = 80 байт = 160 сов
            вернуть input.substring (0, 160);
        }
duino11 сейчас офлайн Пожаловаться на duino11   Ответить с цитированием Мультицитирование сообщения от duino11 Быстрый ответ на сообщение duino11



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW