Вернуться   Биткоин Форум > - Помощь начинающим
8 июня 2013, 2:08:08 PM   # 1
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Понимание открытого исходного кода FPGA шахтерского Verilog файлов

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Привет, народ,
            Я иду через открытый исходный код, FPGA шахтер (https://github.com/progranism/Open-Source-FPGA-Bitcoin-Miner/tree/master/projects) Источник, и я имел сомнения.

Код:
данные <= {384'h000002800000000000000000000000000000000000000000000000000000000000000000000000000000000080000000, nonce_next, data_buf [95: 0]};

Приведенные выше данные затем передаются в модуль хэша SHA256, который затем переходит вычислить хэш. Я просто не понимаю, почему мы должны удвоить окрошка вышеуказанные данные. Согласно https://en.bitcoin.it/wiki/Block_hashing_algorithm нам нужно преобразовать весь 32 битный кусок от маленького до большого Endian Endian, а затем вычислить хеш этой функции. В приведенном выше примере data_buf является 256-битным регистром, который имеет 256 бит данных возвращаются из getwork. Если мы говорим, что первая версия немного получила от getwork является 1, то вдоль этих линий data_buf хранит значение бита 129-192, который был обратным порядком байт сдвинут для каждого 32 битного фрагмента. Но я до сих пор не понимаю, почему мы должны вычислить хэш, как показано выше в коде. Кто-то знает, почему хэш рассчитывается таким образом?
Молоток сейчас офлайн Пожаловаться на Маллет   Ответить с цитированием Мультицитирование сообщения от Маллет Быстрый ответ на сообщение Маллет


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


8 июня 2013, 2:46:44 PM   # 2
 
 
Сообщения: 196
Цитировать по имени
цитировать ответ
по умолчанию Re: Понимание открытого исходного кода FPGA шахтерского Verilog файлов

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





Я возьму Пунт на это (просто чтобы увидеть, если я могу это объяснить, эксперты, пожалуйста, шаг, чтобы исправить меня) ...

Ваш 32 бит кусок неверен (Прости). Алгоритм работает на пакетах сообщений 64 байт, а окончательный хэш составляет 32 байт.

Заголовок блока составляет 80 байт данных. Это дополняется нулями до следующего 64 байт bundary (128 байт, следовательно, всего). плюс немного уборка (задний 1 и длину, которая является постоянной по отношению 640 для 80 байт, как подсчет битов).

Первые 64 байт этого 128 байт "сообщение" предварительно хэшированный сервер getwork (bitcoind или сервер пула) giviing 32 байт SHA256-хэш двойного государство стоимость и поставляется в виде "Midstate",

Работа ПЛИСА принять эту Midstate, и использовать его для выполнения хэша на втором 64 байт этого оригинальных 128 байт сообщения. Однако большая часть этих данных является постоянным (1, с последующим кучей нулей, то длина константа), плюс 32 бит одноразового номера, который генерируется на борту ПЛИС. Эти константа данные представлены, что 384-битового значение (это выглядит странно из-за большой против маленького представления Endian).

Во всяком случае, пара sha256_transform модулей просто вычислить SHA256 двойной хэш (следовательно, пару из них). Верхний 32 бит затем сравнивается 32'h00000000 (или эквивалентный постоянная, если применяются ярлыки). Это представляет собой долю дифференциала 1, и при обнаружении сообщается обратно в бассейн с использованием выходного golden_nonce.

Возможно, ключ к вашему вопросу, что Bitcoin использует двойной SHA256 хэш. Поэтому нам нужен двойной хэш в ПЛИС. Его просто некая магическая математика материал, который позволяет заранее рассчитать Midstate на сервере getwork, тем самым экономя 50% работы (помните его сообщение на 128 байт, которые должны были бы четыре хэш операции, если мы сделали двойной хэш в соответствии со спецификацией).

Надеюсь, что имеет какой-то смысл.

[Редактировать]
Другая возможная путаница в том, что "данные" подается на FPGA (вторые 64 байта), в основном, отбрасывают, по отношению только data_buf [95: 0] используется. Это происходит потому, остальное уже известно (его то 384 бит константы), поэтому мы можем сохранить количество consideralbe логики, используя константу вместо того, чтобы обрабатывать переменное значение из данных [255: 96].

Также поставляет полные 256 бит достаточно неэффективное использование канала порта связи (компилятор будет оптимизировать на некоторые или все неиспользованного логики, так что, возможно, не влияет на использование LE, но я не проверял это в деталях), и некоторые из реализаций просто поставить 96 бит через канал порта связи, а не полные 512 бит для передачи данных.
J35st3r сейчас офлайн Пожаловаться на J35st3r   Ответить с цитированием Мультицитирование сообщения от J35st3r Быстрый ответ на сообщение J35st3r

8 июня 2013, 4:21:30 PM   # 3
 
 
Сообщений: 28
Цитировать по имени
цитировать ответ
по умолчанию Re: Понимание открытого исходного кода FPGA шахтерского Verilog файлов

Благодаря этой теме помогло
Eva Braun сейчас офлайн Пожаловаться на Eva Braun   Ответить с цитированием Мультицитирование сообщения от Eva Braun Быстрый ответ на сообщение Eva Braun

9 июня 2013, 11:27:34 AM   # 4
 
 
Сообщений: 10
Цитировать по имени
цитировать ответ
по умолчанию Re: Понимание открытого исходного кода FPGA шахтерского Verilog файлов

Спасибо за ответ. Это помогло мне понять код лучше.

Молоток сейчас офлайн Пожаловаться на Маллет   Ответить с цитированием Мультицитирование сообщения от Маллет Быстрый ответ на сообщение Маллет



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW