Post
Topic
Board Кодеры
Re: Асикостойкий алгоритм PoW
by
amaclin1
on 13/08/2018, 04:18:07 UTC
Вот майнер решил блок найти, берет транзакции из мемпула, вычисляет для них дерево, далее с использованием этого дерева перебирает параметр nonce (выполняет POW) как я понял вы утверждаете, что дерево (либо производный от него набор данных) присутствует в каждом акте перебора, или я не прав?

a) Есть в мемпуле транзакции T1, T2, ... Tn
б) Считаем от них хэш. Повторю, можно считать хэш любым криптографически-строгим способом,
но очень удобно считать как Merkle-hash
в) Получили некие 32 байта, записали их в 80-байтный заголовок блока наряду с другими
данными хранящимися там.
г) там в заголовке остались еще 4 байта свободных, которые могут быть любыми (nonce)
д) перебираем от 0 до FFFFFFFF эти 4 байта (это можно как раз делать параллельно на чипах)
и хэшируем. Если получили хэш заголовка блока с ноликами в начале - вуаля. Если нет -
переходим к пункту (б), поменяв еще что-то в coinbase-транзакции (extra-nonce)

Quote
Нельзя ли осуществлять перебор nonce без участия дерева и транзакций, а добавить их после перебора nonce (перелопачивания доказательства работы), а дерево припаять к этому доказательству путем какого-нибудь хитрого шифрования.
А кто тогда обеспечит иммутабельность? Я не понимаю вашу идею.

Тут смысл-то вот в чем. Майнеры в пул объединяются не просто так. А потому что им выгодно,
чтобы нода занимающаяся транзакциями и блоками была одна, а не держать 10 нод по одной у каждого.
А остальная черновая работа по хэшированию распараллеливается на 10 владельцев асиков,
а внутри каждого асика распараллеливается на 100 чипов.