Вернуться   Биткоин Форум > Аппаратные средства
5 апреля 2012, 10:10:54 PM   # 1
 
 
Сообщения: 225
Цитировать по имени
цитировать ответ
по умолчанию Re: sha256_top условие остановки

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я играл с открытыми реализациями источника Verilog из Bitcoin шахтеров. Я вижу, что Икар повторно использовать совсем немного кода от ztex. В sha256 модули, в частности.

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

"Двойной sHA256" используется, т.е. ша (ша (х)). И основная идея заключается в изменение небольшой постион х (нонс), пока мы не найдем окончательный хэш, который меньше определенного уровня (т.е. есть определенное количество ведущих нулей).

Так что, я искал какое-то остановку состояния, которое напоминает, что, но ничего не нашел. Вместо этого Голдер Nonce считаются найдено, когда часть второго хэша равна 0xa41f32e7. Я чую ярлык, но не могу получить мою голову вокруг, как это работает. Кроме того, второй ша-блок использует только 61 раундов, а не полные 64.

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

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

Любой здесь, как получил в свои руки грязные?

Возможно, некоторые указатели на другие потоки / веб-страниц, где блок хэширования оптимизаций descussed?

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


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


5 апреля 2012, 10:50:15 PM   # 2
 
 
Сообщения: 560
Цитировать по имени
цитировать ответ
по умолчанию Re: sha256_top условие остановки

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





Здравствуй,

Я поддерживать Open Source FPGA Bitcoin Miner, так что может быть в состоянии помочь. Не стесняйтесь задавать вопросы, и я буду держать глаз на эту тему.

котировка
Я вижу, как можно было бы определить состояние остановки перед тем, весь вычисляется хэш. Но это не очевидно.
Есть нет "остановить условия" с SHA-256 (1). Вы должны вычислить все это, иначе хэш является неполным. Как вы уже нашли, однако, есть небольшой ярлык из-за способа горных работ.

котировка
И основная идея заключается в изменение небольшой постион х (нонс), пока мы не найдем окончательный хэш, который меньше определенного уровня (т.е. есть определенное количество ведущих нулей).
Для большинства шахтеров, все, что вы заботитесь о поиске, что называется трудность 1 часть (2). Это означает, что есть 32 бит ведущих нулей. Таким образом, для оптимизации добычи коды мы только заботиться о том, что последний 32 бит конечного хэша равен 0. Как вы видели, этот последние 32 бит фактически рассчитывается в первом раунде 61, и сдвигаются 3 раза в раундах 62, 63 и 64. Мы не заботятся ни о чем, вычисленной в этих последних трех раундах. Таким образом, оптимизация, чтобы пропустить их, и проверьте, 5-й 32-битное слово хэша, полученного после 61-го раунда.

Вы можете видеть, что в код здесь. Для второго прогона SHA-256 использует только 61 раундов, и считывает 5-е слово из выходного сигнала (код использует IDX (4), так как индекс начинается с 0).

котировка
Вместо этого Голдер Nonce считаются найдено, когда часть второго хэша равна 0xa41f32e7.
Существует еще один ярлык здесь. В SHA-256, после того, как все 64 раундов были вычислены, одна последняя операция выполняется. Отдельные 32-битные слова состояния ввода добавляются в отдельных 32-битных слова выхода последнего раунда. Вы можете видеть, что в SHA2 википедии статья, где он говорит, "Добавить хэш этого блока, чтобы привести до сих пор."

Теперь мы смотрим, чтобы увидеть, если последнее слово равно нулю:

Код:
из [ `IDX (7)] + input_state [` IDX (7)] == 0x00000000 ???

Входное состояние на второй пробег SHA-256 является известной величиной. Восьмое слово которого 0x5be0cd19, так что ...

Код:
из [ `IDX (7)] + 0x5be0cd19 == 0x00000000 ???

Что эквивалентно:

Код:
из [ `IDX (7)] == 0x00000000 - 0x5be0cd19 ???

Что эквивалентно:

Код:
из [ `IDX (7)] == 0xa41f32e7 ???

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


ЗАМЕТКИ
(1) Я не уверен, что коннотация вы даете "остановить условия," поэтому я объясню немного дальше, чтобы помочь очистить путаницы. При добыче, вы получаете набор данных для выполнения хэш на. Как уже отмечалось, это делается путем манипулирования и временное значение хэширования каждый раз, когда изменения Нонс. То, что вы действительно хотите сделать, это проверить все возможные одноразовые. Даже если вы уже нашли "золотой нонс" (Один, который дает вам хэш, начиная с 32 нулями), вам нужно продолжать поиск более. Там может быть где угодно между 0 и 2 ^ 32 решения данного блока работы, так что это в ваших интересах, чтобы продолжать поиски более. Следовательно, нет никаких условий остановки в смысле, когда перестают работать ваш алгоритм, кроме исчерпав все возможные одноразовые номера (в этот момент, вы получите больше работы).

(2) Это потому, что большинство шахтеров подключены к серверу пула, который принимает любой хэш-совещание по крайней мере, сложности 1 (32 ведущих нулей). Следует, однако, отметить, что программное обеспечение, разработанное вокруг этой оптимизации будет по-прежнему работать для сольнога добычи непосредственно против bitcoind, потому что bitcoind будет просто отказаться от доли, которая не отвечает блочной трудности (и все сложности 1 акцию имеет возможность сделать это ). Кроме того, большинство FPGA или GPU шахтеры имеют некоторые высокого уровня контрольного программного обеспечения (написанный на Python или C), который может выполнить реальную проверку сложности при необходимости. Имея проверку аппаратного обеспечения для акций действительно просто способ снижения пропускной способности от аппаратных средств к управляющему программному обеспечению.
fpgaminer сейчас офлайн Пожаловаться на fpgaminer   Ответить с цитированием Мультицитирование сообщения от fpgaminer Быстрый ответ на сообщение fpgaminer

5 апреля 2012, 11:14:40 PM   # 3
 
 
Сообщения: 560
Цитировать по имени
цитировать ответ
по умолчанию Re: sha256_top условие остановки

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

https://github.com/progranism/Open-Source-FPGA-Bitcoin-Miner/blob/master/src/fpgaminer_top.v
https://github.com/progranism/Open-Source-FPGA-Bitcoin-Miner/blob/master/src/sha256_transform.v
https://github.com/progranism/Open-Source-FPGA-Bitcoin-Miner/tree/master/projects/DE2_115_Unoptimized_Pipelined
https://github.com/progranism/Open-Source-FPGA-Bitcoin-Miner/tree/master/projects/DE2_115_makomk_mod
fpgaminer сейчас офлайн Пожаловаться на fpgaminer   Ответить с цитированием Мультицитирование сообщения от fpgaminer Быстрый ответ на сообщение fpgaminer

6 апреля 2012, 7:23:18 AM   # 4
 
 
Сообщения: 225
Цитировать по имени
цитировать ответ
по умолчанию Re: sha256_top условие остановки

OMG, я полностью пропустил свой проект. Я так взволнован, когда я нашел Икар и ZTEX источников. Не обижайтесь на них, но мне пришлось потратить некоторое время поедания их код для моих глаз, чтобы не повредить. Эта. Это что-то другое! Хорошая работа! 

Пятно на ответы на мои вопросы, а также.

Так одна из моих ошибок, что я забыл о объединенной добыче. Очевидно, что бассейны крошить задачу. Я все время думал, что FPGA должен решить "полная задача" а не просто "часть его", Таким образом, FPGA (и OpenCL ядра) решают "Сложность 1 блоков", Каждое такое решение также имеет возможность решения полной проблемы. Бассейн вознаградит вас в зависимости от того, сколько сложности 1 решения, которые вы представили.
И, как вы говорите, может быть несколько решений (нонс-х) для каждого рабочего блока, так что вы продолжать работать. Следовательно, нет "остановка состояние", Если бы вы были соло-шахтер, решая реальные проблемы, это действительно будет стоп-состояние.
Спасибо за напоминание о объединенной добыче!

И последняя операция ша. Моя голова была все еще внутри раундов, так что я пропустил. Нет необходимости, чтобы вычислить его. Ницца.

Agh. Таким образом, у вас уже есть параметризированное ядро, которое я могу сложить к моей маленькой плате DE1. Будь ты проклят, ты не оставляешь никакой работы для меня! 

Во всяком случае, я постараюсь ваш код. Держу пари, будет вопрос или два. Но я надеюсь, что смогу достичь точки, где я мог бы на самом деле вклад некоторых. Описана установка проекта на плате DE1, если ничего другого.

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

6 апреля 2012, 8:29:37 AM   # 5
 
 
Сообщения: 560
Цитировать по имени
цитировать ответ
по умолчанию Re: sha256_top условие остановки

котировка
Эта. Это что-то другое! Хорошая работа!
Спасибо за добрые слова. Я рад, что мое объяснение, и проект на GitHub, был в состоянии помочь вам

котировка
Следовательно, нет "остановка состояние", Если бы вы были соло-шахтер, решая реальные проблемы, это действительно будет стоп-состояние.
Ах, теперь я понимаю, что вы имели в виду условие остановки. Да, действительно, если полная трудность хэш обнаруживается, что будет условие остановки, потому что блок теперь будет полностью измениться.

Для объединенной добычи, вы могли бы также рассмотреть вопрос о исчерпывают все возможные одноразовые номера в качестве условия остановки, так как шахтер должен теперь просить (или должен был спросить превентивно) для новой работы. Никто, кроме моей последней прошивки не подчиняется эта остановка условия, хотя, только для простоты. Вот где последний код удовлетворяет условие остановки: Linky. Это помогает экономить энергию, когда FPGA получает голодали работы.

котировка
Во всяком случае, я постараюсь ваш код. Держу пари, будет вопрос или два.
Не стесняйтесь задавать прочь! Я буду стараться держать глаз на эту тему, но вы также можете связаться со мной через личку, или GitHub или IRC или то, что я ценю вопросы, так как они поддаются, чтобы помочь мне (в конце концов) написать документацию по всему этому шероховатому подробности , Я начинаю делать шаги в этом направлении здесь, на GitHub, но ... это немного растрепались на данный момент
fpgaminer сейчас офлайн Пожаловаться на fpgaminer   Ответить с цитированием Мультицитирование сообщения от fpgaminer Быстрый ответ на сообщение fpgaminer



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW