Pages:
Author

Topic: Асикостойкий алгоритм PoW - page 8. (Read 6270 times)

sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Майнеры в пул объединяются не просто так. А потому что им выгодно,
чтобы нода занимающаяся транзакциями и блоками была одна, а не держать 10 нод по одной у каждого.
А остальная черновая работа по хэшированию распараллеливается на 10 владельцев асиков,
а внутри каждого асика распараллеливается на 100 чипов.

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

Все-таки для поддержки майнинговой ноды нужен более-менее приличный компьютер,
с широким и надежным каналом, который должен работать 24/7 без перерывов.

До тех пор пока это не бизнес и ставка низкая никаких особенных условий не нужно.

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

Кража решения тривиальна, оно содержится в блоке. Это позволяет практически даром плодить орфанов в неограниченном количестве. Чтобы тебе было понятнее, представь, ты выиграл в лотерею, но получение тобой выигрыша зависит от того признает тебя победителем следующий победитель или нет, а победителями себя вместе с тобой объявили голодранцы усiх краiн. Технически это полный треш и судя по всему желающих быть обворованными практически нет. В битке, не смотря на то что тоже требуется подтверждение следующего победителя, создание орфана стоит уйму лепездричества. Поэтому данная монета хоть и "жива", но непопулярна. Закапывай стюардессу.
full member
Activity: 411
Merit: 139
member
Activity: 60
Merit: 10
sr. member
Activity: 770
Merit: 305
Кстати еще вопрос, а какова суммарная выгода 10 майнеров в пуле против 10
соломайнеров именно за счет сокращения издержек. Это кем то посчитано?

Только эмпирически можно предположить.
Все-таки для поддержки майнинговой ноды нужен более-менее приличный компьютер,
с широким и надежным каналом, который должен работать 24/7 без перерывов.
Ну то есть в гараж такое я бы не поставил. Не думайте, что домашний комп с таким
справится, пока вы в контру будете гамать. Идея Сатоши была в том, что в пересчете
на фиатные бабки - майнинг убыточный и им занимаются из любви к искусству, и ради
всеобщего счастья. Нашел блок - хорошо. Словил орфана - не расстраиваешься.

Так вот. Про какую выгоду вы спрашиваете? Про выгоду в пересчете на фиат?
В существующем биткойне я бы для владельца 1-5-20 асиков оценил бы это в 15-50%
навскидку. Кроме того, пул обеспечивает некую равномерность выплат, уменьшая как
её там... не помню... дисперсию? Не помню как этот термин правильно называется.

Для других валют - цифры могут получиться другие. По факту никто по сути
дела сейчас не майнит соло - даже самые "солисты" ставят себе пул для самого
себя, ибо уже софтина так разрабатывается, что так проще и выгоднее.

У профессиональных пулов есть даже свои "хитрости". Например, они цепляют
часть мощностей к конкурентам, чтобы о новом блоке узнавать не из сети,
а по стратум-протоколу. Это чит, но тоже позволяет выиграть несколько процентов удачи
member
Activity: 60
Merit: 10
sr. member
Activity: 770
Merit: 305
full member
Activity: 411
Merit: 139
member
Activity: 60
Merit: 10
Потому что решение может спиздить любой мимокрокодил.
А вы можете продемострировать кражу этого решения на примере спредкоина?
И почему до сих пор эта монета не померла чисто технически от таких краж?

a) Есть в мемпуле транзакции...
....
А кто тогда обеспечит иммутабельность? Я не понимаю вашу идею.
Я попытаюсь изложить в в терминах 5-летнего ребенка то, что я понял. А вы меня поправьте если я ошибся.

Классическую систему я понимаю так:

Блокчейн это бухгалтерская тетрадка, каждые десять минут создается новый листочек (блок).
Очередной Майнер Вова хочет создать блок, берет чистый листочек бумаги и пишет письмо с тремя записями:
1)В пользу Вовы создать 50 монет потому что он майнер и создал блок.
2)От Машы передать Пете 10 монет (включить в блок транзакцию Маши).
3)Хеш предыдущего блока (чтобы была связь с остальными листами тетерадки)

Далее Вова пересчитывает Хеши (опустим нюансы про дерево меркла), так чтобы в результате перебора хешей получился красивый хеш -содержащий вышеуказанный текст из трех пунктов.
Когда Вова получает решение он его пишет в заголовке листочка и публикует этот листочек вместе с вышеуказанным текстом из 3 пунктов, и таким образом доказывает что затратил работу на создание именно такого листочка тетрадки.

Соответственно предполагаемая мною система обхода пула (со справедливо названными Вами проблемами иммутабельности - изменяемости) заключается в том что:

Вова вычисляет какую нибудь фигню, которая вообще не связана с блоком который он пытается добыть, главное чтобы Вова пыхтел и доказал всем что пыхтит.
Например в качестве пыхтения он может подгонять под красивый хеш (совершать вышеуказанные действия) с блоком предыдущим тому, который он намеревается создать.
Получив доказательство работы (в отношении предыдущего блока), Вова публикует это доказательство, а также публикует вновь создаваемый им блок состоящий из вышеуказанных 3 пунктов, просто нарисовав его от руки, и не подогнав под него никакой хеш, далее он подписывает все это своей подписью, и вся аудитория просто верит ему как авторитету потому что он пропыхтел над предыдущей страничкой.

Проблемы такого подхода заключаются в том, что Вова не пыхтит над непосредственно добываемым блоком, то есть он может туда добавить хреноту, не вложив в эту хреноту вычислительных мощностей, но аудитория проверит и отвергнет такой блок если он с ошибками (например транзакция Маши не соответствует ею подписанному варианту)
Вторая проблема в том, что злонамеренные ноды могут пытатся публиковать искаженный вышеуказанный текст из трех строк, но как я понимаю, аудитория его тоже проверяет на ошибки и отвергает в случае чего.
Насколько я понял послабления по части безопасности допускаются незначительные.
И чтобы хакнуть эту систему нужно точно также иметь более 51 процента злонамеренных нод, и тогда цепь просто разделится на злонамеренных и правдивых.
И даже если правдивых останется 10 процентов, то они будут только себя считать истинными, потому что не верят в то, что 2+2=5.
То есть угрозы такие же как и в классическом варианте. Только сеть более децентрализована.

Поправьте меня если я не прав.

Тут смысл-то вот в чем. Майнеры в пул объединяются не просто так. А потому что им выгодно,
чтобы нода занимающаяся транзакциями и блоками была одна, а не держать 10 нод по одной у каждого.
А остальная черновая работа по хэшированию распараллеливается на 10 владельцев асиков,
а внутри каждого асика распараллеливается на 100 чипов.
Абсолютно правильно, им выгодно используя пул, устранять дублирование издержек.
Цель анти-пул алгоритма как раз в том, чтобы создать ситуацию при которой объединяться в пул им будет НЕвыгодно, потому что их ущерб от кидалова друг другом, в ситуации когда они друг другу не доверяют, будет превосходить стоимость любых издержек по поддержанию ноды и перебору одинакового отсева (отвала породы) в майнинге. И они вынуждены будут нести издержки ради всеобщего блага- децентрализации.
full member
Activity: 411
Merit: 139
Всем привет.

Хорошая тема про пулы и антипулы. Борьба с пулами нужна для повышения децентрализованности монеты. Это то к чему должно стремиться наше общество. Это понятно всем.
Но надо признать, что создание алгоритма противодействия пулам на уровне внутреннего алгоритма невозможно. Но можно есть решение на уровне организации сети. Есть такое правило, если мы не можем остановить процесс, то нужно его возглавить Smiley

Идея в том, чтобы создать децентрализованные пулы. Т.е. все полные ноды будут иметь возможность подключения к ним клиентов для майнинга. Клиенты автоматически выбирают тот пул, который выдает самый интересный процент на данный момент, процесс выбора должен происходить автоматически. Таким образом это будет сеть поверх сети протокола блокчейна и мы добьемся эффективного противодействия
централизованности пулов.

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

P.S.
Скоро этот принцип будет реализован в Тере.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Отсутствие консенсуса - сущий пустяк, главное что пулов нет. Тебе работающий анти-пул алгоритм нужен или дальше будешь сиськи мять? Grin
А почему Вы полагаете что отсутствует консенсус в спредкоине?


Потому что решение может спиздить любой мимокрокодил.
sr. member
Activity: 770
Merit: 305
Вот майнер решил блок найти, берет транзакции из мемпула, вычисляет для них дерево, далее с использованием этого дерева перебирает параметр nonce (выполняет POW) как я понял вы утверждаете, что дерево (либо производный от него набор данных) присутствует в каждом акте перебора, или я не прав?

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

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

Тут смысл-то вот в чем. Майнеры в пул объединяются не просто так. А потому что им выгодно,
чтобы нода занимающаяся транзакциями и блоками была одна, а не держать 10 нод по одной у каждого.
А остальная черновая работа по хэшированию распараллеливается на 10 владельцев асиков,
а внутри каждого асика распараллеливается на 100 чипов.
member
Activity: 60
Merit: 10
поле merkle-hash вычисленное от транзакций в блоке.
Вот майнер решил блок найти, берет транзакции из мемпула, вычисляет для них дерево, далее с использованием этого дерева перебирает параметр nonce (выполняет POW) как я понял вы утверждаете, что дерево (либо производный от него набор данных) присутствует в каждом акте перебора, или я не прав?
Нельзя ли осуществлять перебор nonce без участия дерева и транзакций, а добавить их после перебора nonce (перелопачивания доказательства работы), а дерево припаять к этому доказательству путем какого-нибудь хитрого шифрования.


sr. member
Activity: 770
Merit: 305
А нельзя ли изменить порядок вставки дерева меркл, так чтобы оно помещалось уже после
осуществления перебора параметра nonce, но до шифро-подписи и публикации майнером блока.
Я не понимаю что такое "вставка дерева меркл".

В заголовке биткойн-блока есть 256-битное поле merkle-hash вычисленное от транзакций в блоке.
При убирании, добавлении и даже изменении порядка транзакций hash изменится и
блок перестанет быть валидным. Merkle-hash - это по большому счету хэш-функция,
предназначенная для хэширования некоторого "множества" бинарных данных, а не просто
"файла". Ну и там есть интересные следствия. Но в целом - этот хэш как раз и обеспечивает
иммутабельность блока.

Я предлагаю вам формулировать алгоритм, хоть как-то. А я буду его сразу критиковать.
Поверьте, если вы действительно заинтересованы не в хайпе/пампе/скаме - то критик
для вас нужен не меньше чем сторонники.

Quote
То есть чтобы майнер мог проигнорировать дерево меркл, и любые иные сковывающие его
параметры и заменить их своими, в том числе своим деревом со своими транзакциями.

Не, ну можно всё. Регистрируешься на каком-нибудь пуле типа (я сейчас говорю о биткойн-пулах)
F2Pool, получаешь от пула данные, выкидываешь их, меняешь данные на полученные от своей
локальной ноды и майнишь себе блок в соло. Непонятно только - нахера тебе F2Pool был нужен
в таком раскладе?
member
Activity: 60
Merit: 10
Отсутствие консенсуса - сущий пустяк, главное что пулов нет. Тебе работающий анти-пул алгоритм нужен или дальше будешь сиськи мять? Grin
А почему Вы полагаете что отсутствует консенсус в спредкоине?

Только участники кооператива друг другу не доверяют, потому что любой из 10 может кинуть остальных девятерых.
Пул может майнеру давать неполную информацию.
То есть меркль-дерево транзакций пул передает, а сами транзакции - нет.
А нельзя ли изменить порядок вставки дерева меркл, так чтобы оно помещалось уже после осуществления перебора параметра nonce, но до шифро-подписи и публикации майнером блока. То есть чтобы майнер мог проигнорировать дерево меркл, и любые иные сковывающие его параметры и заменить их своими, в том числе своим деревом со своими транзакциями. И случайно на спредкоине не реализовалили ли разработчики уже такой механизм? Потому что вопрос который вы задали логичный и опытному разработчику должен быть виден сразу.
Я в коде не копался еще. Я вообще начал с изучения гайдов по структуре блокчейна, доказательства работы и транзакций биткоина и наткнулся на спредкоин вчера вечером. Если я путаю какие-то технические термины прошу меня поправить.

Единственную стратегию пулинга здесь я вижу такую - раздать майнерам уже скомпилированный экзешник майнера, без публикации кода и ждать, что никто из них не попытается ковырять его всякими HEX редакторами и написать к нему костыли выцепляющие доказательство работы. Я понял из обсуждений что так супрнова и сделала в вышеуказанном примере, но и это не прокатило.
https://forum.bits.media/index.php?/topic/11320-spr-spreadcoin-%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%B0%D1%8F-%D0%B4%D0%B5%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B1%D0%B5%D0%B7-%D0%BF%D1%83%D0%BB%D0%BE%D0%B2/&
sr. member
Activity: 770
Merit: 305
Только участники кооператива друг другу не доверяют, потому что любой из 10 может кинуть остальных девятерых.

Пул может майнеру давать неполную информацию.
То есть меркль-дерево транзакций пул передает, а сами транзакции - нет.
Собственно, так же работает стратум-протокол - на асик от пула поступает только
коротенькая посылка данных, не содержащая самих транзакций. Асик что-то
ищет и все решения (в том числе и частичные для подсчета работы) отправляет
на пул. Броадкастить в сеть решение майнер не может - у него нет полного
множества транзакций для формирования блока.

О том что 9 человек доверяют одному десятому мы говорили. Это им выгодно в конечном
счете не ебать себе голову с фуллнодой.

Quote
В теории наверное возможно, но это дорогостоящее решение, под него инфраструктуру необычную нужно создать.
Да что там дорогостоящего?
Человек разбирающийся в подобных протоколах напишет такое за несколько месяцев
с нуля или возьмет сорцы другого алгоритма и перелопатит их под новый концепт за неделю.
Я лично представляю как все это работает, даже время есть, просто ну на фига мне это?
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Неправильно интерпретировал это момент, признаю. Но разве суть это меняет?

Отсутствие консенсуса - сущий пустяк, главное что пулов нет. Тебе работающий анти-пул алгоритм нужен или дальше будешь сиськи мять? Grin
member
Activity: 60
Merit: 10
На первый взгляд, концепция имеет право на существование. Но и здесь кооперация
10 человек в пул даст значительный профит по сравнению с 10 человеками, которые
будут майнить в соло.
Только участники кооператива друг другу не доверяют, потому что любой из 10 может кинуть остальных девятерых.
Супернова якобы пыталась под эту монету пул создать и даже его запускала, но он не поехал.
Со второй страницы можно прочитать вот это:
https://forum.bits.media/index.php?/topic/11320-spr-spreadcoin-%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%BD%D0%B0%D1%8F-%D0%B4%D0%B5%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B1%D0%B5%D0%B7-%D0%BF%D1%83%D0%BB%D0%BE%D0%B2/&

Алгоритм я понял примерно так как вы и описали.

ЗЫ. Я не считаю что правильно и полностью понял идею. Скорее всего неправильно,
потому что конкретно эта идея может быть "инвертирована" - то есть пул сперва
"загадывает" приватный ключ, а потом майнеры перетасовкой транзакций в блоке формируют
заголовок подходящий для этого ключа/адреса.
В теории наверное возможно, но это дорогостоящее решение, под него инфраструктуру необычную нужно создать.

Суть механизма в том что вместо традиционного поиска красивого хеша и его публикации,
ищется путем перебора приватный ключ от заголовка блока
Что такое "приватный ключ от заголовка блока"?

Да нет в вайтпейпере этого Спредкойна никакого приватного ключа от заголовка блока. Это 1mk3r выдумал.

В заголовке блока есть поле MinerSignature, в которое помещается подпись некоторых полей заголовка блока, сделанная приватным ключом майнера.
Неправильно интерпретировал этот момент, признаю. Но разве суть это меняет?

Перебираемый материал приватизируется уже после перебора, а не с каждым актом перебора. Ведь такHuh


legendary
Activity: 2317
Merit: 2318
Суть механизма в том что вместо традиционного поиска красивого хеша и его публикации,
ищется путем перебора приватный ключ от заголовка блока
Что такое "приватный ключ от заголовка блока"?

Да нет в вайтпейпере этого Спредкойна никакого приватного ключа от заголовка блока. Это 1mk3r выдумал.

В заголовке блока есть поле MinerSignature, в которое помещается подпись некоторых полей заголовка блока, сделанная приватным ключом майнера.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
sr. member
Activity: 770
Merit: 305
Суть механизма в том что вместо традиционного поиска красивого хеша и его публикации,
ищется путем перебора приватный ключ от заголовка блока

Что такое "приватный ключ от заголовка блока"?
Пожалуйста, без маркетингового буллшита. Чисто технически на пальцах объясните.
Допустим, блок формируется так же, как в биткойне, но при построении merkle-hash
coinbase-транзакция не учитывается (ну или учитывается без учета адреса для награды за блок).
Получился hash, начинающийся или заканчивающийся, предположим, на 58abc43.
И мы начинаем поиск  приватного ключа, такого, что адрес его тоже в 16-ричном
представлении заканчивается на 58abc43. Как только нашли - блок типа сформирован
(надо еще этим ключом что-то подписать) и блок можно отправлять в сеть. Злоумышленник
может попробовать тоже найти второй такой ключ и адрес, но не имея 51% мощностей сети
не сможет провести атаку.

Так?
На первый взгляд, концепция имеет право на существование. Но и здесь кооперация
10 человек в пул даст значительный профит по сравнению с 10 человеками, которые
будут майнить в соло.

Если, конечно, считать профит по намайненным койнам. Сатоши под понятием "профит"
имел в первую очередь интересы добронамеренного общества.

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

ЗЫ. Я не считаю что правильно и полностью понял идею. Скорее всего неправильно,
потому что конкретно эта идея может быть "инвертирована" - то есть пул сперва
"загадывает" приватный ключ, а потом майнеры перетасовкой транзакций в блоке формируют
заголовок подходящий для этого ключа/адреса.
Pages:
Jump to: