Pages:
Author

Topic: Анти ASIC/GPU/FPGA POW-алгоритм - page 4. (Read 1620 times)

member
Activity: 264
Merit: 13
December 09, 2019, 11:44:21 AM
#30
Есть нода B, которая имеет непосредственное соединение с нодой A, но не имеет соединения с нодой M. Нода A ретранслирует ноде B блок, сгенерированный нодой M, но нода B не знает что нода M имеет IP 1.1.1.1, и, следовательно, валидировать блок, сгенерированный нодой M она не сможет. Проблема?
Нет, не проблема, если выбрать другую архитектуру решения. Должна быть глобальная распределенная БД, в которой каждому кошельку будет соответствовать отдельный IP. Так же как и Блокчейн, только отдельная БД, которая будет отвечать за эти связки. Вот и все дела. Вполне реализуемо.
legendary
Activity: 2317
Merit: 2318
December 09, 2019, 10:55:33 AM
#29
Ну, здесь не совсем понятно, потому что сеть на этот IP будет отсылать запросы и принимать с него данные, так что не совсем понятно, что Вы имеете ввиду под "левым" IP.

Вот есть, например, нода М с IP 1.1.1.1, которая смайнила блок и отправила его ноде A.
Нода А имеет непосредственное соединение с нодой M, и поэтому она знает, что нода М имеет IP 1.1.1.1, и, следовательно, нода  A может проверить валидность блока, сгенерированного нодой M.

Есть нода B, которая имеет непосредственное соединение с нодой A, но не имеет соединения с нодой M. Нода A ретранслирует ноде B блок, сгенерированный нодой M, но нода B не знает что нода M имеет IP 1.1.1.1, и, следовательно, валидировать блок, сгенерированный нодой M она не сможет. Проблема?
legendary
Activity: 2646
Merit: 1141
December 09, 2019, 10:12:08 AM
#28
member
Activity: 264
Merit: 13
December 09, 2019, 09:59:01 AM
#27
Это работает немножко не так...
В вашей схеме распределения, вероятность хоть что-то получить за потраченную электроэнергию, у пользователя пула = 10%, а у соломайнера = 0.1%.
Поэтому когда в сеть придут еще 1000 майнеров, то 900 из них будут майнить на моем пуле, а потом и все остальные туда подтянутся ))
Боюсь, что Вы ошибаетесь ИМЕННО в силу того, что не понимаете сути моего алгоритма.

Смотрите по какой схеме работает обычный пул:



Здесь обычные пользователи вынуждены искать Хэш во ВСЕЙ области значений nonce. А пользователи, которые подключены к пулу, ищут только в выделенном сегменте. Отсюда и происходит выигрыш в скорости нахождения подходящего хэша и большем суммарном вознаграждении.

А теперь смотрите как будет работать пул, если POW-алгоритм будет основан на моем алгоритме:



Видите? Обычные пользователи ищут ТОЧНО в таком же спектре значений, как и пользователи, которые подключены к пулу.
Так что - никакого выигрыша не будет.

Что мне помешает скормить алгоритму майнинга левый ип адрес?
Ну, здесь не совсем понятно, потому что сеть на этот IP будет отсылать запросы и принимать с него данные, так что не совсем понятно, что Вы имеете ввиду под "левым" IP. Если речь идет об анонимизации, то это отдельная большая тема и в данном случае она не рассматривается. У меня есть наработки по этим вопросам, но они в данный проект не входят.

я чет не понимаю,.. как мне быть например, у меня мегафоновский модем, он автоматом 2 раза в сутки (при смене тарифа) и при каждой перезагрузки меняет ip?
По этому поводу не переживайте, это банальная техническая загвоздка, которая называется "динамическое выделение IP адресов". Оно вполне решаемо. Единственное, что Вы потеряете, так это то, что в моменты смены Ваших IP адресов Вашему майнеру придется заново переподключаться к сети и связывать Ваш адрес кошелька с Вашим новым IP. Это решается. Не велика проблема.

Т.е. пул будет просто генерить связки: адрес - IP для каждого майнера?
Это будет несколько напряжно, я думаю. Навряд ли это будут делать для неизвестной валюты. Возможно потом, если будет экономический смысл.
Это будет делать не пул. Но не важно. Да, связка кошелек-IP. Технически этого можно и не делать. Но это хорошая защита против бот-нетов. То есть тут вопрос стоит так - хотим защиту от ботов? Тогда делаем этот алгоритм. Не хотим? Тогда не делаем.
Технически это можно организовать опционально.
Ну а что касается "напрягов", то это зависит от того - что Вы имеете ввиду. Если то, что компьютеру придется хранить немного лишней информации - то Вы этого не заметите. А если речь идет об анонимизации, то, как я уже говорил, это другой отдельный вопрос и в рамках этого проекта я его рассматриваю.
legendary
Activity: 2646
Merit: 1141
December 09, 2019, 06:55:33 AM
#26

Что мне помешает скормить алгоритму майнинга левый ип адрес?

Т.е. пул будет просто генерить связки: адрес - IP для каждого майнера?
Это будет несколько напряжно, я думаю. Навряд ли это будут делать для неизвестной валюты. Возможно потом, если будет экономический смысл.
sr. member
Activity: 1330
Merit: 251
December 09, 2019, 06:13:57 AM
#25
Кстити, а как вы собрались привязывать кошельки к ип адресу? Формулу для приватного ключа в вашем алгоритме покажите пожалуйста?
А какая проблема сделать хэш от приватного ключа + IP и проверять его при генерации каждого блока? Для этого что - нужна специальная формула? Smiley


 я чет не понимаю,.. как мне быть например, у меня мегафоновский модем, он автоматом 2 раза в сутки (при смене тарифа) и при каждой перезагрузки меняет ip?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 09, 2019, 05:35:08 AM
#24
member
Activity: 264
Merit: 13
December 09, 2019, 05:30:02 AM
#23
Кстити, а как вы собрались привязывать кошельки к ип адресу? Формулу для приватного ключа в вашем алгоритме покажите пожалуйста?
А какая проблема сделать хэш от приватного ключа + IP и проверять его при генерации каждого блока? Для этого что - нужна специальная формула? Smiley
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 09, 2019, 05:24:23 AM
#22
Кстити, а как вы собрались привязывать кошельки к ип адресу? Формулу для приватного ключа в вашем алгоритме покажите пожалуйста?

member
Activity: 264
Merit: 13
December 09, 2019, 05:15:16 AM
#21
Мой пул будет искать блоки так быстро, что сложность сети возрастет и соломайнеры будут находить блок раз в тыщу лет... Ну пусть ищут ))
За счет чего? Smiley

Например мы имеем сеть из 1000 компьютеров. 900 компьютеров у других участников сети и 100 в Вашем пуле.
Общая вероятность нахождения блока для любого участника сети = 1/1000
Следовательно на 1000 блоков 900 подписей найдут другие участники, а 100 Ваш пул.
Вычисляем Вашу награду - 100 найденных подписей / 100 человек в пуле = 1 награда/1000 блоков, что в свою очередь = вероятности 1/1000...

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

Давайте элементарно посчитаем.
Допустим, что у нас есть блок каждые 2 минуты. Это значит, что награду смогут получить 30 майнеров в час, или 720 майнеров в сутки, или 262800 майнеров в год. То есть, если у нас сеть вырастет всего до 300 тысяч участников, то каждый из них УЖЕ вынужден будет ждать МИНИМУМ 1 год постоянного майнинга до получения вознаграждения. А учитывая, что на его шансы будет влиять постоянно растущее количество участников, то это может растянуться и на большее время. А что делать, если участников станет 10 млн? А это всего лишь небольшая страна...

Соответственно, ПУЛирование майнинга в условиях, когда выполняется завещание Satoshi Nakamoto "one-CPU-one-vote" является НЕОБХОДИМОСТЬЮ, для того, чтобы равномизировать и стабилизировать получение вознаграждения всеми участниками сети. В идеале вообще вся сеть должна работать как ОДИН БОЛЬШОЙ ПУЛ.
Но, нужно ведь понимать, что ПУЛы не увеличивают производительность вычислений. Ни отдельного майнера, ни даже группы майнеров. НИКАК! (ну, если речь идет именно о применении моего алгоритма).
newbie
Activity: 50
Merit: 0
December 09, 2019, 05:07:41 AM
#20
Мой пул будет искать блоки так быстро, что сложность сети возрастет и соломайнеры будут находить блок раз в тыщу лет... Ну пусть ищут ))
Если все монеты будут находиться в одних руках - окажется, что они ничего не стОят Smiley
Но если любой сможет создать пул - то получится, что все будут майнить только на пулах, как это и обстоит сейчас с основными криптовалютами
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 09, 2019, 05:02:32 AM
#19
Мой пул будет искать блоки так быстро, что сложность сети возрастет и соломайнеры будут находить блок раз в тыщу лет... Ну пусть ищут ))
member
Activity: 264
Merit: 13
December 09, 2019, 05:02:16 AM
#18
Есть такая монета - ZettelKasten - https://bitcointalksearch.org/topic/ann-zettelkasten-zttl-new-algo-burgerhash-v6-cpu-solo-mineable-3207356
Майнится только кошельком; автор имплементировал автоматическую функцию изменения алгоритма
Защищена не только от GPU-майнинга, но и от майнинга на пулах
Ок. Посмотрел.
Автор честно указывает, что это не решение, которое сможет защитить POW от всех специализированных устройств, а только способ "держать их подальше". То есть, алгоритм, который усложняет применение этих устройств, НО не исключает возможность их применения.

На самом деле в данном алгоритме нет принципиальных изменений, которые бы могли препятствовать применению специализированных устройств. Он сделан на базе двух последовательных хэширований по алгоритму Keccak, до, между и после которых происходят дополнительные преобразования. Как известно Keccak прекрасно поддается аппаратной реализации и даже является одним из лидеров, по ускорению вычислений на аппаратном уровне, в результате чего он и был принят в качестве нового стандарта SHA3. Что же касается тех небольших изменений, которые происходят между процессами хэширования по Keccak, то их легко решить путем элементарного IP-ядра.

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

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

Проблема при CPU-майнинге на пулах - Ботнеты
Хакер заражает несколько тысяч компов, и все они по команде начинают майнить в его кошелек
Этот вопрос применительно к другим криптовалютам я уже рассматривал.
Однако применительно к моему алгоритму - это не актуально. Я буду привязывать каждый кошелек к IP с которым идет обмен данными между майнером и сетью, поэтому Хаккеру придется не только заразить комп жертвы, но и перехватить управление ее кошельком. Не сказать, что это сделать невозможно, но эту возможность легко перекрыть с помощью аппаратных ключей доступа к кошельку. Так что грамотные люди всегда смогут защититься от бот-нет-паразитов.
newbie
Activity: 50
Merit: 0
December 09, 2019, 04:57:52 AM
#17
Проблема при CPU-майнинге на пулах - Ботнеты
Хакер заражает несколько тысяч компов, и все они по команде начинают майнить в его кошелек
member
Activity: 264
Merit: 13
December 09, 2019, 04:38:48 AM
#16

Однако прежде, чем покупать 10 компьютеров и подключать их к 10 разным IP адресам, Вам нужно учесть еще один момент...


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

Вознаграждение будет привязано исключительно к тому АДРЕСУ кошелька, который найдет требуемый хэш. Поэтому, чтобы "делить награду пропорционально", Вам нужно будет гарантировать, что каждый из Ваших друзей будет вести себя честно. То есть - когда он найдет нужный блок, он не положит его в свой карман, а будет делить его между всеми участниками пула.
Технически это можно реализовать, но единственное, чего вы этим добьетесь - это более равномерного получения вознаграждения.
То есть, скажем обычный майнер будет получать 1 вознаграждение в месяц в размере 30 коинов, а Вы со своими друзьями будете получать по 1 коину каждый день.

Конечно же, в конечном итоге для улучшения стабильности получения вознаграждений в конечном итоге так и придется делать. НО! Это не отнимет возможность добывать коины у других. Понимаете в чем суть дела? То есть - сколько бы Вы с друзьями в пулы не объединялись, Вы НЕ ПОДНИМИТЕ свою общую производительность больше, чем она есть у каждого отдельного майнера.

Есть такая монета - ZettelKasten - https://bitcointalksearch.org/topic/ann-zettelkasten-zttl-new-algo-burgerhash-v6-cpu-solo-mineable-3207356
Майнится только кошельком; автор имплементировал автоматическую функцию изменения алгоритма
Защищена не только от GPU-майнинга, но и от майнинга на пулах
Щас посмотрим...
newbie
Activity: 50
Merit: 0
December 09, 2019, 04:28:50 AM
#15
Есть такая монета - ZettelKasten - https://bitcointalksearch.org/topic/ann-zettelkasten-zttl-new-algo-burgerhash-v6-cpu-solo-mineable-3207356
Майнится только кошельком; автор имплементировал автоматическую функцию изменения алгоритма
Защищена не только от GPU-майнинга, но и от майнинга на пулах
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 09, 2019, 04:13:43 AM
#14

Однако прежде, чем покупать 10 компьютеров и подключать их к 10 разным IP адресам, Вам нужно учесть еще один момент...


Зачем?
Я создам пул, к которому будут подключаться мои друзья и куда они будут посылать свои решения. Награду за блоки будем делить пропорционально между собой.
member
Activity: 264
Merit: 13
December 09, 2019, 04:06:59 AM
#13
Чем 10 майнеров с одним одноядерным процессором отличаются от 10 ядер на процессоре у одного майнера. Расскажите пожалуйста!
Не вопрос...
Каждый майнер привязан к Адресу кошелька. Каждый кошелек привязан к IP. Следовательно на 10 одноядерных майнерах, которые установлены на 10 разных IP, Вы будете получать 10 шансов получить вознаграждение. Если же у Вас будет 1 процессор с 10 ядрами, который привязан к одному IP, то Ваши шансы получить вознаграждение будут = 1, потому что из всех 10 ядер Вы сможете задействовать ТОЛЬКО 1.

Однако прежде, чем покупать 10 компьютеров и подключать их к 10 разным IP адресам, Вам нужно учесть еще один момент...
Один компьютер есть уже у каждого. Он есть сам по себе, его не нужно окупать, а значит стоимость Крипты, которая будет выпущена на этом компьютере будет зависеть ТОЛЬКО от затраченной электроэнергии.
А вот если Вы купите 10 компьютеров и подключите их к 10 разным соединениям интернета, то, чтобы окупить эти затраты Вам придется выставлять намайненную Вами крипту на продажу по более дорогой цене. Как Вы думаете - ее купят, если на рынке будет полно более дешевой крипты?
В общем, в этой ситуации у Вас будет только один выход, если Вы захотите на этом сильно заработать - скупать дешевые б/у-шные компы за копейки и подключать их через дешевые интернет-сервисы. Однако в этом случае исключается ситуация, когда другие участники сети НЕ СМОГУТ заниматься майнингом только потому, что Ваше оборудование превосходит по производительности их компьютеры в сотни тысяч раз, как это происходит сейчас с ASIC-ами.
То есть, даже если Вы купите много компов, я со своим одним компом все-равно смогу майнить крипту. А сейчас, без майнеров на ASIC или GPU мне с моим обычным компьютером в майнинге делать нечего...
Понимаете?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
December 09, 2019, 03:31:09 AM
#12
Чем 10 майнеров с одним одноядерным процессором отличаются от 10 ядер на процессоре у одного майнера. Расскажите пожалуйста!
member
Activity: 264
Merit: 13
December 09, 2019, 03:14:34 AM
#11
   как я понимаю у вас есть только сама идея, но нет ни готового майнера, ни кошелька?
У меня есть рабочий код, написанный на C++. Чтобы получить "майнер" или "кошелек" нужно создать НОВУЮ КРИПТОВАЛЮТУ! А это кусок работы, если Вы понимаете...

Допустим, что асики для Неуловимого Джо никто создавать не будет. Но на GPU - то кто помешает многопоточно майнить?
НЕВОЗМОЖНОСТЬ МНОГОПОТОЧНОСТИ!!!!
Алгоритм последовательный, его нельзя выполнить многопоточно...

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

Давайте заменим ХЭШирование СУММированием. Представим, что нам нужно найти сумму = 10. Это будет наш "красивый" хэш, где в конце 1 нолик.

Параллельный вариант:
Берем в качестве стартового числа 0. Прибавляем к нему 1 = 1. 1 = 10? Нет. Значит пробуем другой вариант.
К 0 прибавляем 2. Равно 2. 2 = 10? Нет. Значит - идем дальше.
0 + 3 = 3.    3 =/= 10...
0 + 4 = 4.    4 =/= 10...
...
0 + 9 = 9.    9 =/= 10...
0 + 10 = 10.   10 == 10. БИНГО!!! Мы нашли наш "красивый хэш".

Как нам ускорить вычисления в этом случае? Очень просто - делать их ОДНОВРЕМЕННО на параллельных ядрах. Тогда получится так:
0 + 1 = 1. 1 =/= 10      0 + 2 = 2. 2 =/= 10    ...    0 + 9 = 9. 9 =/= 10     0 + 10 = 10. 10 == 10.
БИНГО - мы получили наш результат за 1 раунд вычислений.

Теперь рассмотрим последовательный подход:
0 + 1 = 1.    1 =/= 10...
1 + 2 = 3.    3 =/= 10...
3 + 3 = 6.    6 =/= 10...
6 + 4 = 10.   10 == 10!!! НАШЛИ!

А теперь скажите мне - как распараллелить эти вычисления, если для каждого нового раунда нужно знать результат предыдущего?
Например раунд номер 3.
Допустим, что вы знаете, что на 3-ем раунде Вы будете прибавлять 3. Но к чему Вы будете ее прибавлять? К 5? К 7? Как Вы можете узнать - какое будет использоваться стартовое число, если Вы его еще не получили... если Вы не знаете результатов предыдущих расчетов? Huh

Ну, не знаю, господа, если Вы и этого примера не поймете - Вам лучше вообще не пытаться разобраться ни в чем, что называется "алгоритмом".
Pages:
Jump to: