kcaterpillar (OP)
|
|
August 06, 2013, 12:49:26 AM |
|
Привет всем! Сейчас частенько указывают производительность систем и оборудования в гигахэшах/сек и даже в терахэшах/сек. Т.е. значительные мощности. Для перебора всего NONCE в подписи блока требуется 2^32 вычислений SHA256, а значит при вычислитеьной мощности системы в 4.2 гигахэш/c весь NONCE можно будет перебрать за одну секунду. Нередко заявляют о наличии и более мощных систем, например в пулах. Получается, что на полный перебор требуется доли секунды, а откуда тогда берется сложность вычисления при таких мощностях? Почему тогда среднее время нахождения блока 10 минут?
Возможно, перебора только одного НОНСа недостаточно, идёт перебор еще каких-то входящих данных? Но об этом нигде ничего не говорят, наоборот, везде указывают, что происходит перебор именно NONCE, 32 бита, но это 4.2 гигахэша. Где же сложность, где proof-of-work?
Проясните ситуацию плиз, кто в курсе. Спасибо.
|
|
|
|
awoland
Legendary
Offline
Activity: 1498
Merit: 1021
Was mich nicht umbringt macht mich stärker [F.N.]
|
|
August 06, 2013, 03:38:12 AM |
|
А самому открыть исходники и посмотреть не судьба?
|
Was mich nicht umbringt macht mich stärker [F.N.]
|
|
|
kcaterpillar (OP)
|
|
August 06, 2013, 04:38:14 AM |
|
К изучению исходников приступаю, я новичок и всё сразу не объять. Но дело не во мне. Во всех официальных и популярных источниках ни слова об этом - только перебираем НОНС и всё. Думаю это не правильно, информация выглядит искажённой, что для такого проекта несолидно. Вот, например, перерыл весь форум по теме - тоже самое - перебираем НОНС. Понимаю, что не всё так просто, вот и выясняю.
А что касается вопроса, думаю форум для того и существует, чтобы гуру просто и доходчиво рассказали новичкам, а дальше и в исходниках будет веселее в тонкости входить. Тема то интересная многим думаю.
|
|
|
|
awoland
Legendary
Offline
Activity: 1498
Merit: 1021
Was mich nicht umbringt macht mich stärker [F.N.]
|
|
August 06, 2013, 04:54:17 AM |
|
"Перебираем nonce" - упрощённая информация о сути процесса генерации. Естественно при этом не просто 32-битное число пребирается, а перебираются sha256-хэши заголовка структуры блока с заполненными полями, одним из которых является nonce. Кроме nonce туда ещё много чего входит... Если нужны подробности - исходники открыты.
|
Was mich nicht umbringt macht mich stärker [F.N.]
|
|
|
mnyonpa
|
|
August 06, 2013, 05:33:29 AM |
|
"Перебираем nonce" - упрощённая информация о сути процесса генерации. Естественно при этом не просто 32-битное число пребирается, а перебираются sha256-хэши заголовка структуры блока с заполненными полями, одним из которых является nonce. Кроме nonce туда ещё много чего входит... Если нужны подробности - исходники открыты.
А какие ещё поля меняются при переборе кроме nonce?
|
BTC address for donations: 1EEjkAqLXTxscD24D1S6aXWtxPUWxSkHcd
|
|
|
t309
Legendary
Offline
Activity: 1946
Merit: 1000
|
|
August 06, 2013, 07:24:04 AM |
|
ну как минимум еще время
|
|
|
|
kcaterpillar (OP)
|
|
August 06, 2013, 08:01:24 AM |
|
Перебирать время? Это было бы совсем некорректно, полагаю. Время меняется, но согласно часам, а не перебором. У майнера конечно есть возможность изменить поле время в каких-то пределах, но перебирать его, это уж слишком. Поле время - важная характеристика при генерации блока, оно должно соответствовать своему назначению.
Тогда уж предлагаю при майнинге перебирать сумму перевода в транзакциях и адрес получателя:-)
|
|
|
|
mnyonpa
|
|
August 06, 2013, 08:50:27 AM |
|
Перебирать время? Это было бы совсем некорректно, полагаю. Время меняется, но согласно часам, а не перебором. У майнера конечно есть возможность изменить поле время в каких-то пределах, но перебирать его, это уж слишком. Поле время - важная характеристика при генерации блока, оно должно соответствовать своему назначению.
Тогда уж предлагаю при майнинге перебирать сумму перевода в транзакциях и адрес получателя:-)
Нет, идея наверное в том, что если перебрано 4 млрд. нонсов и решение блока всё ещё не найдено, то майнер может обновить поле времени и нонсы можно перебирать заново.
|
BTC address for donations: 1EEjkAqLXTxscD24D1S6aXWtxPUWxSkHcd
|
|
|
RoadTrain
Legendary
Offline
Activity: 1386
Merit: 1009
|
|
August 06, 2013, 09:23:53 AM |
|
Перебирать время? Это было бы совсем некорректно, полагаю. Время меняется, но согласно часам, а не перебором. У майнера конечно есть возможность изменить поле время в каких-то пределах, но перебирать его, это уж слишком. Поле время - важная характеристика при генерации блока, оно должно соответствовать своему назначению.
Тогда уж предлагаю при майнинге перебирать сумму перевода в транзакциях и адрес получателя:-)
Есть ещё nonce в coinbase-транзакции, который тоже можно перебирать, насколько мне известно.
|
|
|
|
dbitcoin
|
|
August 06, 2013, 11:43:00 AM |
|
Перебирать время? Это было бы совсем некорректно, полагаю. Время меняется, но согласно часам, а не перебором. У майнера конечно есть возможность изменить поле время в каких-то пределах, но перебирать его, это уж слишком. Поле время - важная характеристика при генерации блока, оно должно соответствовать своему назначению.
Тогда уж предлагаю при майнинге перебирать сумму перевода в транзакциях и адрес получателя:-)
60 секунд задание не меняется, эти 60 сек можно перебирать. Потом пул обновляет задание (уже с новыми транзакциями).
|
|
|
|
Alex AXe
Legendary
Offline
Activity: 1218
Merit: 1019
|
|
August 06, 2013, 04:53:15 PM |
|
А вопрос ведь интересный! Действительно - кто не ленивый и посмотрел исходники? Что там перебирается?
|
|
|
|
rPman
Legendary
Offline
Activity: 1120
Merit: 1069
|
|
August 06, 2013, 05:32:39 PM |
|
При использовании старого протокола getwork перебирается nonce, и да, ограниченный размер числа порождает проблему его неэффективого использования для мощных майнеров. Если за время, пока перебирается все 2^32 значений не будет изменено задание (не изменится время, не изменится список транзакций,..) то майнер получит ту же саму работу и будет ее считать заново.
p.s. Кстати, в этом случае существует не нулевая вероятность, что решения на таком коротком интервале даже не может быть найдено (т.е. для определенных комбинаций транзакций и времени решения блока может вообще не существовать!), но эта проблема не заметна, так как текущий блок очень быстро меняется (появляются новые транзакции в течении секунды и быстрее).
Эта проблема сначала частично решалась перебором времени, но для слишком высоких мощностей и этого недостаточно, так как время можно менять ограниченном интервале (считанные сотни секунд), т.е. проблема всплывала не при 4GH/s а при 1000GH/s.
Был предложен новый протокол - getworktemplate (уже давно работает, с 0.7 версии), который добавляет в первую транзакцию максимум 100-байтовое число extraNonce (2^800 значений) и майнеры уже перебирают и его... думаю из-за этого ограничения проблему слишком быстрого перебора все доступных значений можно еще долго не увидеть.
|
|
|
|
Alex AXe
Legendary
Offline
Activity: 1218
Merit: 1019
|
|
August 06, 2013, 05:38:43 PM |
|
Перебирается nonce, Если все значения перебрали - обновляется время и снова перебирается nonce, Через 60 секунд (минимум) обновляется транзакция - это значит что у нас новое значение merkle root.
Т.е. за 10 минут переберем 2,5 триллиона вариантов. Если нет транзакций в сети - то жоппа. Был предложен новый протокол - getworktemplate (уже давно работает, с 0.7 версии), который добавляет в первую транзакцию максимум 100-байтовое число extraNonce (2^800 значений) и майнеры уже перебирают и его... думаю из-за этого ограничения проблему слишком быстрого перебора все доступных значений можно еще долго не увидеть.
А ну вот и ответ. Все в порядке, значит.
|
|
|
|
Alex AXe
Legendary
Offline
Activity: 1218
Merit: 1019
|
|
August 06, 2013, 08:45:10 PM |
|
Да и без этого можно было прожить: меняем кошелек - меняется сигнатура, транзакция, и, соответственно, merkle root. Можно снова задавать старые значения времени и перебирать nonce. Правда из-за асиков пришлось бы много кошельков на лету генерировать и все это обсчитывать, а это сильно больше затрат выч. ресурсов чем текущая схема реализованная через мутацию транзакции в getworktemplate. Но ведь вполне можно было бы и без этого "костыля" обойтись. Не обязательно генерировать на лету. Можно было сгенерировать заранее миллион (или сколько нужно) кошельков и перебирать и их.
|
|
|
|
mnyonpa
|
|
August 07, 2013, 12:53:20 AM |
|
rPman, спасибо за объяснение!
|
BTC address for donations: 1EEjkAqLXTxscD24D1S6aXWtxPUWxSkHcd
|
|
|
dbitcoin
|
|
August 07, 2013, 04:56:34 AM |
|
Не обязательно генерировать на лету. Можно было сгенерировать заранее миллион (или сколько нужно) кошельков и перебирать и их.
Это обсуждалось, но решили что содержать этот миллион кошельков неудобно/криво, и лучше переложить работу на майнеров.
|
|
|
|
Wizet
|
|
August 07, 2013, 08:33:04 AM |
|
Не обязательно генерировать на лету. Можно было сгенерировать заранее миллион (или сколько нужно) кошельков и перебирать и их.
Это обсуждалось, но решили что содержать этот миллион кошельков неудобно/криво, и лучше переложить работу на майнеров. В общем случае на пул, разработчики учли реалиии, ибо соло-майнинг нынче не в моде.
|
Everyone lies, but always in his own
|
|
|
|