Author

Topic: Генерация хеша (Read 6559 times)

legendary
Activity: 2142
Merit: 1010
Newbie
April 02, 2013, 02:14:17 AM
#41
Quote
В свете существования Keccak
А биткоин тут каким боком? Roll Eyes

А... Не понял тебя просто.
legendary
Activity: 3108
Merit: 1359
April 01, 2013, 05:25:40 PM
#40
Quote
В свете существования Keccak
А биткоин тут каким боком? Roll Eyes
legendary
Activity: 2142
Merit: 1010
Newbie
April 01, 2013, 02:48:13 PM
#39
На самом деле, dblsha256 ASIC'и дают много перспектив. Майнящие ручки-флэшки и не только. Если это направление достаточно разовьется, то завалить сеть станет очень дорогим удовольствием.

В свете существования Keccak сомнительно что будет много ручек-флешек майнящих dblsha256.
legendary
Activity: 3108
Merit: 1359
April 01, 2013, 02:36:35 PM
#38
На самом деле, dblsha256 ASIC'и дают много перспектив. Майнящие ручки-флэшки и не только. Если это направление достаточно разовьется, то завалить сеть станет очень дорогим удовольствием.
member
Activity: 112
Merit: 10
April 01, 2013, 09:28:06 AM
#37
Ну спорное утверждение. В интерпритации на разговорный - человеки с видюхами/фермами из видюх были стадом, кучкующимися в паре-тройке мест. Приходящие им на смену асик-майнеры (числом меньшие минимум на порядок, а то и два) самоорганизуются, в более распределённое сообщество.


Хотя может мысль и здравая. Асик-майнинг - чистый бизнес, и ничего идеалистического/любознательного. И с точки зрения доходов, имея машинку ограничено, но стабильно печатающую валюту, любой бизнесмен будет в силу своих возможностей стараться не допустить дискредитации этой валюты.
hero member
Activity: 616
Merit: 502
April 01, 2013, 08:59:12 AM
#36
Странно тогда, почему при разговорах о появлении асиков не начались разговоры о смене sha-256; и соответсвенно при появлении их в железе хеш-функцию не заменили.

Или текущим программистам проекта уже наплевать на децентрализацию, а больше беспокоит то - за сколько можно спихнуть свои BTC, когда-то намайненные "за идею", и вдруг ставшие пусть мелким, но состоянием?
В идеале, асики не вызывут централизацию, наоборот, продавая устройства 50...200гх частным покупателям они распределяют мощность (пулы утрачивают свою централизацию, т.к. человек человеку рознь, один в гильдию подключит, другой в итзод, третий в п2пул, если доделают его под асик, а не все будут на 50бтц сидеть и на дипбите..)
member
Activity: 112
Merit: 10
April 01, 2013, 08:47:47 AM
#35
Странно тогда, почему при разговорах о появлении асиков не начались разговоры о смене sha-256; и соответсвенно при появлении их в железе хеш-функцию не заменили.

Или текущим программистам проекта уже наплевать на децентрализацию, а больше беспокоит то - за сколько можно спихнуть свои BTC, когда-то намайненные "за идею", и вдруг ставшие пусть мелким, но состоянием?
legendary
Activity: 1120
Merit: 1069
April 01, 2013, 01:54:18 AM
#34
Абсолютно нет никаких ограничений к этому. Кажется в каких то форках это даже было сделано неоднократно.
В коде bitcoin уже несколько раз были такие точки (после блока такого-то использовать такой то алгоритм)
member
Activity: 112
Merit: 10
March 31, 2013, 04:04:42 PM
#33
Вроде с предыдущим попросом разобрались.

Знатоки, ответьте на такой:
Предусматривает ли Bitcoin, хотя бы в теории, возможную замену у будущих блоков алгоритма подсчёта хеша?

Ну как пример: в версии 0.9 официального (ну и в альтернативных тоже) вводится условие: с блока 333333 начинаем считать/проверять не ша-2(ша-2(что-то_там_из_блока)), а ша-2(ша-3(что-то_там_из_блока)).

То есть дважды ша-2, это зашито в спецификации и аксиома, или просто традиция, которую даже с приходом asic не хотят нарушать?
legendary
Activity: 2142
Merit: 1010
Newbie
March 31, 2013, 07:27:35 AM
#32
Вы меня совсем запутали  Cheesy Так свое системное время майнер, нашедший блок вставляет или нет? Или вставляет после "одобрения" сетью (какой либо алгоритм % отклонения)??

Вставляет, но ДО ТОГО как начнет искать нонс. Одобрения он не спрашивает, там вполне достаточный люфт.
hero member
Activity: 616
Merit: 502
March 31, 2013, 06:47:52 AM
#31
Вы меня совсем запутали  Cheesy Так свое системное время майнер, нашедший блок вставляет или нет? Или вставляет после "одобрения" сетью (какой либо алгоритм % отклонения)??
member
Activity: 112
Merit: 10
March 31, 2013, 05:17:29 AM
#30
Вообще-то влияет. По этой причине нельзя точно сказать дату создания блока, потому что прописанная на момент создания блока уже в прошлом.
тогда как все остальные проверяют блок, если они не знают время при котором сгенерировался искомый хеш? им что. получается для проверки время нужно подбиратьHuh)))) думаю нет, следовательно время при котором сгенерировался нужный хеш и печатается в блок, так?


Думаю тут имелось в виду, что в блоке указан timestamp полученный при его формировании. А по факту для сети блок появляется только в момент когда майнер подбирает нужный nonce.
legendary
Activity: 2142
Merit: 1010
Newbie
March 31, 2013, 03:09:50 AM
#29
Вообще-то влияет. По этой причине нельзя точно сказать дату создания блока, потому что прописанная на момент создания блока уже в прошлом.
тогда как все остальные проверяют блок, если они не знают время при котором сгенерировался искомый хеш? им что. получается для проверки время нужно подбиратьHuh)))) думаю нет, следовательно время при котором сгенерировался нужный хеш и печатается в блок, так?

Нет. Если поменять время, то поменяется хэш и найденный нонс не подойдет.
legendary
Activity: 2893
Merit: 1158
March 31, 2013, 03:06:54 AM
#28
Вообще-то влияет. По этой причине нельзя точно сказать дату создания блока, потому что прописанная на момент создания блока уже в прошлом.
тогда как все остальные проверяют блок, если они не знают время при котором сгенерировался искомый хеш? им что. получается для проверки время нужно подбиратьHuh)))) думаю нет, следовательно время при котором сгенерировался нужный хеш и печатается в блок, так?

Теперь объясните откуда берется комиссия? Раньше я при отправке на сатошидайс всегда платили 0.0005 биткоина теперь же удача чтобы такую маленькую комиссию запрашивала. Я не пойму механизма как он высчитывает комиссию?
теперь давайте создайте тему там где нужно, и не засоряйте мою ненужными вещами не по теме
legendary
Activity: 1357
Merit: 1004
March 30, 2013, 10:57:31 PM
#27
Теперь объясните откуда берется комиссия? Раньше я при отправке на сатошидайс всегда платили 0.0005 биткоина теперь же удача чтобы такую маленькую комиссию запрашивала. Я не пойму механизма как он высчитывает комиссию?
legendary
Activity: 2142
Merit: 1010
Newbie
March 30, 2013, 01:20:35 PM
#26
остался лишь маленький вопрос, откуда берется time???
в пояснении написано: Current timestamp as seconds since 1970-01-01T00:00 UTC
т.е. получается что, при генерации блока таймстемп меняется одновременно с нонс? т.е. в генерации у нас участвует не 1, а две переменныеHuh

Нет. Можно задать дату один раз и не менять пока не пробежишь все 4 миллиарда вариантов нонса.
legendary
Activity: 3108
Merit: 1359
March 30, 2013, 11:24:14 AM
#25
Вообще-то влияет. По этой причине нельзя точно сказать дату создания блока, потому что прописанная на момент создания блока уже в прошлом.
sr. member
Activity: 414
Merit: 250
BFL asiс-лохотрон(личное мнение)
March 30, 2013, 11:10:32 AM
#24
Дата не влияет на искомый хеш. Она просто запечатывается в блок.
legendary
Activity: 2893
Merit: 1158
March 30, 2013, 10:38:46 AM
#23
остался лишь маленький вопрос, откуда берется time???
в пояснении написано: Current timestamp as seconds since 1970-01-01T00:00 UTC
т.е. получается что, при генерации блока таймстемп меняется одновременно с нонс? т.е. в генерации у нас участвует не 1, а две переменныеHuh
legendary
Activity: 2893
Merit: 1158
March 29, 2013, 04:29:10 PM
#22
https://en.bitcoin.it/wiki/Block_hashing_algorithm

Bitcoin uses: SHA256(SHA256(Block_Header)) but you have to be careful about byte-order.
спасибо большое, наконецто разобрался
legendary
Activity: 1302
Merit: 1008
March 29, 2013, 04:17:07 PM
#21
https://en.bitcoin.it/wiki/Block_hashing_algorithm

Bitcoin uses: SHA256(SHA256(Block_Header)) but you have to be careful about byte-order.
legendary
Activity: 2893
Merit: 1158
March 29, 2013, 04:13:11 PM
#20
интересует вопрос, есть блок https://blockchain.info/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048, если взять, предыдущий хеш, взять нонсе(перевести её в 16 систему), приплюсовать их, потом взять два раза sha 256, нифига не получается следующий хеш. Кто нибудь объяснит мне, откуда что берется?
legendary
Activity: 1834
Merit: 1001
March 29, 2013, 04:05:42 PM
#19
De-decentralization of Bitcoin
The Bitcoin Confiscation Of April 5, 2013

Интересны ссылки у вас в подписи Smiley

А если подумать головой и поискать что это был за закон,то все фантазии сразу отпадут  Undecided

п.с. когда обороты битков достигнут Х,то он может и останется децентрализованным,в чем я сомневаюсь на 99%,частично будет анонимным,
но будет подконтролен "уолл-стрит",никаких очередных теорий заговора,просто бизнес.
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 03:58:37 PM
#18
Ё-мое, как можно не понимать таких вещей)
Я вот подумал гипотетически если все ноды ускорят время одновременно в 10 раз(не переведут стрелки а именно ускорят), то мы будем иметь в 10 раз снижение сложности?

Тогда им проще договориться, что сложность просто надо считать опять равной 1.
hero member
Activity: 616
Merit: 502
March 29, 2013, 03:56:36 PM
#17
Ё-мое, как можно не понимать таких вещей)
Я вот подумал гипотетически если все ноды ускорят время одновременно в 10 раз(не переведут стрелки а именно ускорят), то мы будем иметь в 10 раз снижение сложности?
sr. member
Activity: 432
Merit: 254
March 29, 2013, 03:12:42 PM
#16
De-decentralization of Bitcoin
The Bitcoin Confiscation Of April 5, 2013

Интересны ссылки у вас в подписи Smiley
legendary
Activity: 3108
Merit: 1359
March 29, 2013, 03:06:45 PM
#15
Ё-мое, как можно не понимать таких вещей)

В качестве времени в сети используется значение, расчитываемое на базе локальногомвремени нод с отбросом неправдоподобно расходящихся значений. От него и должны плясать таймстампы, если сильно отличается (в биткоине "сильно" это 7200 секунд), то блок отклоняется.
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 02:03:56 PM
#14
Что есть "реальным"? Статистика (среднее) по всем майнерам?
Иными словами Вы хотите сказать что у нас полная привязка к системной дате юзеров майнеров (хоть и распределенная) ?

Реальное для каждого майнера свое. То, которые выставлено на компе.
hero member
Activity: 616
Merit: 502
March 29, 2013, 02:02:00 PM
#13
Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
А там откуда берется?

Записывает майнер. Особо не помухлюет, потому что блоки с очень большим расхождением между реальным временем и заявленным игнорируются.
Что есть "реальным"? Статистика (среднее) по всем майнерам?
Иными словами Вы хотите сказать что у нас полная привязка к системной дате юзеров майнеров (хоть и распределенная) ?
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 01:59:45 PM
#12
Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
А там откуда берется?

Записывает майнер. Особо не помухлюет, потому что блоки с очень большим расхождением между реальным временем и заявленным игнорируются.
legendary
Activity: 2893
Merit: 1158
March 29, 2013, 01:59:28 PM
#11
[ПредыдущийХэш]+[Нонс] по сути записываем в строку. Хотя там не только эти 2 значения.
не путайте меня и людей, это операция сложения
hero member
Activity: 616
Merit: 502
March 29, 2013, 01:55:59 PM
#10
Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
А там откуда берется?
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 01:52:57 PM
#9
Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
hero member
Activity: 616
Merit: 502
March 29, 2013, 01:48:29 PM
#8
Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 01:43:00 PM
#7

Сложность считается так - берем среднее значение времени, за которое были найдены нонсы последних блоков. Предположим, получили 5 минут. Значит сложность надо увеличить в 2 раза.
А если время ускорилось?  Roll Eyes

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
hero member
Activity: 616
Merit: 502
March 29, 2013, 01:37:36 PM
#6

Сложность считается так - берем среднее значение времени, за которое были найдены нонсы последних блоков. Предположим, получили 5 минут. Значит сложность надо увеличить в 2 раза.
А если время ускорилось?  Roll Eyes
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 01:31:52 PM
#5
legendary
Activity: 2893
Merit: 1158
March 29, 2013, 01:06:30 PM
#4
legendary
Activity: 2142
Merit: 1010
Newbie
March 29, 2013, 12:53:50 PM
#3
не совсем допонимаю, как же все таки этот хеш мы высчитываем, и как высчитывается сложность?

По хэшу:
Берем [ПредыдущийХэш]+[Нонс].
Хэшируем с помощью SHA256 2 раза: SHA256(SHA256([ПредыдущийХэш]+[Нонс])).
Считаем сколько ноликов впереди.
Если ноликов достаточно много, то мы нашли нужный Нонс, иначе подставляем другой Нонс (обычно предыдущий увеличиваем на 1).

По сложности:
Смотрим за сколько минут в среднем находится Нонс.
Меняем требование на число ноликов так, чтобы в среднем было 10 минут.
hero member
Activity: 798
Merit: 1000
March 29, 2013, 12:43:40 PM
#2
Насчет хеша: http://ru.wikipedia.org/wiki/SHA-2
legendary
Activity: 2893
Merit: 1158
March 29, 2013, 12:40:44 PM
#1
Люди, кому не лень, объясните пожалуйста, желательно на пальцах, каким образом происходит генерация хеша?
из литературы
Quote
Созданный блок будет принят остальными пользователями только в том случае, если SHA-256 хэш заголовка равен или ниже определенной цели, которая вычисляется из параметра bits. Например, если значение bits 0x1a0115cb, то целью является 0x0115cb * 2**(8*(0x1a - 3)) = 0x0000000000000115cb0000000000000000000000000000000000000000000000. Максимально возможная цель (то есть минимальная сложность) определяется значением bits 0x1d00ffff.
Quote
Как система проверки правильности решения (правильности найденного блока) помогает безопасности Bitcoin?

Чтоб понять идею процесса майнинга, давайте рассмотрим вот это:

 полезная нагрузка = <некоторые данные, касательно событий происходящих в Bitcoin сети>
 nonce = 1
 hash = SHA2( SHA2( полезная нагрузка + nonce ) )

Работа, производимая майнером (добытчиком) заключается в постоянном увеличении значения "nonce" до тех пор пока хэш-функция не выдаст значение, которое обладает очень редким свойством: оно должно быть меньше чем определённое пороговое значение. (Другими словами: Хэш значение должно "начинаться с определённого количества нулей", если вы рассматриваете хэш в представлении с фиксированной длиной то именно так это формулируется)

Как можно увидеть, в результате майнинга мы ничего такого особенного не вычисляем. Мы просто пытаемся найти число (называемое "nonce") которое, будучи добавленным к полезной нагрузке даст в результате вычисления хэш функции результат с определёнными свойствами.
не совсем допонимаю, как же все таки этот хеш мы высчитываем, и как высчитывается сложность?
Jump to: