Bitcoin Forum
November 19, 2024, 08:47:08 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 »
  Print  
Author Topic: Асикостойкий алгоритм PoW  (Read 6255 times)
poddubnuy
Full Member
***
Offline Offline

Activity: 154
Merit: 100

ICP forever and ever


View Profile
January 05, 2018, 06:22:16 AM
 #41

Но нужно сделать так, чтобы преимущество у богатого человека пару лишних тысяч долларов не давало ему преимущества в миллион раз. А именно такие цифры получаются на Асиках.

А почему вы решили, что если вложил на пару тысяч долларов больше, то получишь преимущество значительно превосходящее остальных? Мне кажется наоборот, профит прямо пропорционален вложенным средствам.
Хотите майнить? Покупайте асики, кто же вам мешает?
Под простым человеком я понимал не майнера, по сути профессионала, а обывателя, у которого есть только компьютер дома. Поэтому создание алгортма работающего только на ЦПУ сделает его более равноправным с профессионалом. Да, профессионал/инвестор может купить суперкомпьютер, но разница будет уже на несколько порядков меньше, чем в случае фермы асиков и компьютера...

Да, в случае алгоритма для CPU в общем,  крипта получиться "с человеческим лицом"




honesty- guarantee stability!
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
January 05, 2018, 06:25:21 AM
 #42

Зачем это нужно: чтобы выполнить более широкое и равномерное распространение криптовалюты. В идеале - среди обычных граждан. Есть такое утверждение: ценность валюты как средства платежа пропорционально квадрата числа людей ею пользующиеся.
Встречный вопрос, а смысл майнинга разве в распределении криптомонет? майнинг это проверка транзакций сети. выпуск новых монет - стимул для добровольной (распределённой) проверки. Т.е. вопрос - чем плохи асики и gpu для сети - или они не выполняют проверки а только хэши отправляют?
amaclin1
Sr. Member
****
Offline Offline

Activity: 938
Merit: 368


View Profile
January 05, 2018, 06:39:23 AM
 #43

Т.е. вопрос - чем плохи асики и gpu для сети - или они не выполняют проверки а только хэши отправляют?
Тут такое дело.
Под словом "майнинг" разные люди понимают разные вещи.

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

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

Так что отвечаю на процитированный вопрос: да, асики, гпу и даже любые майнинг-программы
зацепленные к пулу не выполняют проверки транзакций, а только отправляют хэши. Это не проблема,
потому что на кой хер проверять 100500 раз то, что и так один раз проверено?
ShDenis
Full Member
***
Offline Offline

Activity: 313
Merit: 103



View Profile
January 05, 2018, 10:03:56 AM
Last edit: January 05, 2018, 10:18:28 AM by ShDenis
 #44

я так понимаю, что от всей этой кипы оборудования нет проблем для сети. Т.е. никакая криптомонета не будет хуже работать, если её можно майнить асиками, хотя все гордятся устойчивостью к ним. Есть косвенные проблемы для экологии, для геймеров, для вхождения в майнинг (последнее дело добровольное), но не для сети. Т.е. мне не понятно в чём преимущество самой монеты которая работает с проверкой майнингом устойчивым к асикам  над монетой с обычным PoW. Это какой-то маркетинговый ход для новых монет для созыва первых майнеров? Заботитесь об экологии - PoS есть, или смешанный PoW + PoS.
fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
January 05, 2018, 11:48:16 AM
Last edit: January 05, 2018, 02:48:53 PM by fxpc
 #45

Зачем это нужно: чтобы выполнить более широкое и равномерное распространение криптовалюты. В идеале - среди обычных граждан. Есть такое утверждение: ценность валюты как средства платежа пропорционально квадрата числа людей ею пользующиеся.
Встречный вопрос, а смысл майнинга разве в распределении криптомонет? майнинг это проверка транзакций сети. выпуск новых монет - стимул для добровольной (распределённой) проверки. Т.е. вопрос - чем плохи асики и gpu для сети - или они не выполняют проверки а только хэши отправляют?
Майнинг это по сути программа лояльности поставщиков электричества и производителей железа, все издержки которой перенесены на плечи влошенцев.

HackBTC
Newbie
*
Offline Offline

Activity: 52
Merit: 0


View Profile
January 06, 2018, 08:25:01 AM
 #46

Зачем это нужно: чтобы выполнить более широкое и равномерное распространение криптовалюты. В идеале - среди обычных граждан. Есть такое утверждение: ценность валюты как средства платежа пропорционально квадрата числа людей ею пользующиеся.
Встречный вопрос, а смысл майнинга разве в распределении криптомонет? майнинг это проверка транзакций сети. выпуск новых монет - стимул для добровольной (распределённой) проверки. Т.е. вопрос - чем плохи асики и gpu для сети - или они не выполняют проверки а только хэши отправляют?
Майнинг это по сути программа лояльности поставщиков электричества и производителей железа, все издержки которой перенесены на плечи влошенцев.
Однако) Грамотно сказано! Да и вообще крипту придумали, чтобы электричество продавать больше
Coin-1
Legendary
*
Offline Offline

Activity: 2632
Merit: 2304



View Profile
January 07, 2018, 11:58:30 PM
 #47

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

Отсюда вывод: чтобы сделать алгоритм, который будет выгодно считать только на связке CPU + RAM, нужно подобрать такой класс задач, который:
1. очень хреново параллелится (это поможет только от щёлканья одной задачи параллельно на GPU, но не поможет от того, чтобы запустить их тысячу параллельно),
2. очень сложный по логике работы (чтобы шейдерам GPU была не по зубам эта сложность и создание ASIC'а превратилось в разработку CPU),
3. и требующий для своей работы очень много памяти (скажем 32 или 64 Gb RAM).
Третий пункт - лишний.
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 139


View Profile WWW
January 08, 2018, 12:52:47 PM
 #48

Отсюда вывод: чтобы сделать алгоритм, который будет выгодно считать только на связке CPU + RAM, нужно подобрать такой класс задач, который:
1. очень хреново параллелится (это поможет только от щёлканья одной задачи параллельно на GPU, но не поможет от того, чтобы запустить их тысячу параллельно),

По первому пункту большой вопрос - а существует ли такой?
Очень хотелось бы чтобы он был. Однако особенность PoW в том, что нужно большое время в работе и очень маленькое время при проверке. Поэтому в обычном понимании "плохо распараллеливаемые алгоритмы" нам не подходят. Например, такой алгоритм PoW как расчет хэша SHA-256 я думаю, что тоже не распараллеливаемый алгоритм, но его просто запускают параллельно с разными параметрами nonce.



Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
crazyer1976
Member
**
Offline Offline

Activity: 434
Merit: 19


View Profile
January 15, 2018, 05:08:14 AM
 #49

По первому пункту большой вопрос - а существует ли такой?
Очень хотелось бы чтобы он был. Однако особенность PoW в том, что нужно большое время в работе и очень маленькое время при проверке. Поэтому в обычном понимании "плохо распараллеливаемые алгоритмы" нам не подходят. Например, такой алгоритм PoW как расчет хэша SHA-256 я думаю, что тоже не распараллеливаемый алгоритм, но его просто запускают параллельно с разными параметрами nonce.
Если алгорит будет выполнятся только на ЦПУ, то более богатые (или продвинутые) товарищи скупят Дэдики. Ну...или вообще построят датацентр (что точно уже не по карману никому из простых смертных). Если уж мы упираемся в обычный комп (как символ "простого человека" в крипте), нужно, чтобы участвовало все) проц, память, видео, жесткий диск.
PS. чел в одной теме еще предлагал участие оператора, но я лично думаю - это лишнее.
FoxyCrypsy
Newbie
*
Offline Offline

Activity: 84
Merit: 0


View Profile
January 15, 2018, 07:25:06 PM
 #50

Посмотрите в сторону капч , это сложные очень сложные задачи для компьютера  по сути нужен аналог только легко создаваемый компьютером но без возможности решить эту самую задачу этим же компьютером. Но даже если  маинить монеты сможет только человек,  будут заводы на которых будут сидеть сотни людей и майнить маинить монету принося счасть капиталисту)  От централизации ни куда...
Coin-1
Legendary
*
Offline Offline

Activity: 2632
Merit: 2304



View Profile
January 16, 2018, 03:45:48 AM
 #51

Отсюда вывод: чтобы сделать алгоритм, который будет выгодно считать только на связке CPU + RAM, нужно подобрать такой класс задач, который:
1. очень хреново параллелится (это поможет только от щёлканья одной задачи параллельно на GPU, но не поможет от того, чтобы запустить их тысячу параллельно),

По первому пункту большой вопрос - а существует ли такой?
Очень хотелось бы чтобы он был. Однако особенность PoW в том, что нужно большое время в работе и очень маленькое время при проверке. Поэтому в обычном понимании "плохо распараллеливаемые алгоритмы" нам не подходят. Например, такой алгоритм PoW как расчет хэша SHA-256 я думаю, что тоже не распараллеливаемый алгоритм, но его просто запускают параллельно с разными параметрами nonce.
В общем-то, успешный подбор/угадывание нонса и определяет "удачливость" майнинга. Полагаю, Вы говорили именно о создании PoW-алгоритма, для которого будет достаточно сложно/невыгодно сконструировать ASIC. Вы предложили использовать некий интерпретатор, вот это хорошая идея. Вычислительные операции алгоритма должны быть заранее неизвестны и задаваться, например, исходя из хеша предыдущего блока.
amaclin1
Sr. Member
****
Offline Offline

Activity: 938
Merit: 368


View Profile
January 16, 2018, 06:19:47 AM
 #52

Вычислительные операции алгоритма должны быть заранее неизвестны и задаваться, например, исходя из хеша предыдущего блока.
Во-первых, это не помешает сделать асик.
Во-вторых, я буду дропать (не отдавать свой подсчет в сеть) блок N если после
него блок для блока N+1 будет выпадать неудобный мне алгоритм.
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 139


View Profile WWW
January 16, 2018, 04:18:42 PM
Last edit: January 16, 2018, 04:33:32 PM by Vtools
 #53

Вычислительные операции алгоритма должны быть заранее неизвестны и задаваться, например, исходя из хеша предыдущего блока.
Во-первых, это не помешает сделать асик.
Во-вторых, я буду дропать (не отдавать свой подсчет в сеть) блок N если после
него блок для блока N+1 будет выпадать неудобный мне алгоритм.

Ниже я привожу такой алгоритм, как он Вам, теперь всегда будете дропать?


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

Давайте подумаем как реализовать интерпретатор, можно например так:
1. Берем хеш предыдущего блока, его длина 32 байта
2. Считаем его программой из 32 строк
3. Каждый байт - это отдельная команда
4. Выполняем программу, ограниченное количество тактов (например 1000)

Состав АЛУ (регистры 2 байтовые):
Регистры:
00-Аккумулятор
01-03 - общего назначения

Память: 32 байта (собственно это входящий хеш, который нужно перемешать). Вся память разбита на 16 ячеек по 2 байта.
Все значения - это целые положительные числа длиной 16 бит.

Примеры команд (цифры в 16-м коде):
RM - загрузить в регистр R двухбайтовое число из ячейки M (memory)
4R - сложить значение из аккумулятора со значением из регистра R (registr) и поместить результат в аккумулятор
5R - аналогично вычитание
6R - аналогично умножение
7R - аналогично деление
8R - аналогично побитовое OR
9R - аналогично побитовое AND
AR - аналогично побитовое XOR
BR - аналогично SIN (!)
CL,DL - переход на строку L (label) если значение в аккумуляторе меньше 1^15 (C-переход на строки: 0-15, D-переход 16-31)
EL,FL - переход на строку L (label) если значение в аккумуляторе больше 1^15 (E-переход на строки: 0-15, F-переход 16-31)
Все остальные значения (4R-AR где значения R>3) приводят к перемешиванию памяти кратно значению в аккумуляторе.
где:
R-номер регистра 0-3
M-номер ячейки памяти (0-15)
L-номер строки программы (0-15)

Итого:
¼  всех случайных команд приводит к условному переходу
примерно ⅓ команд - к случайному наполнению аккумулятора
примерно ⅓ команд - к перемешиванию хеша

Можно убрать все арифметические операции (команды 4R-AR), а ввести только сложные тригонометрические функции, как например команда BR, чтобы затруднить работу на GPU

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
amaclin1
Sr. Member
****
Offline Offline

Activity: 938
Merit: 368


View Profile
January 16, 2018, 06:50:48 PM
 #54

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

kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
January 16, 2018, 07:14:35 PM
Merited by chimk (3)
 #55

Прочитал всю тему, думал кто-то уже что-то предложил стоящее. Пока только в последних постах вижу конкретные предложения, но это уже радует. Есть что обсуждать.
Я интересовался вопросом асикостойких алгоритмов и сейчас интересуюсь. Так что тема интересная если обсуждать конкретные вещи.
Конкретно, что я нарыл: начиная с лайткоина с асиками пробуют бороться захерачивая в алгоритм большие объемы памяти. Не вдавался в технические подробности че-каво, но в принципе понятно как это в программе на си делать.
А еще вот сейчас на взлете Монеро с алгоритмом криптонайт. Они говорят, что это типа там используют что-то ну вообще специфичное только для х86 архитектуры. Я пробовал ковырять исходники, но по честному нифига не понял - что там специфичного. Вот интересно, может тут кто подскажет?

OpenTrade - Open Source Cryptocurrency Exchange
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 139


View Profile WWW
January 17, 2018, 10:56:43 AM
 #56

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

Ничего не мешает, но формально это будет не асик, а процессор - см размышления в моем первом посте.


Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
amaclin1
Sr. Member
****
Offline Offline

Activity: 938
Merit: 368


View Profile
January 17, 2018, 11:37:11 AM
 #57

Ничего не мешает, но формально это будет не асик, а процессор - см размышления в моем первом посте.
Вы как-то странно определили для себя понятие асик:
Quote
ASIC - микросхема которая умеет вычислять только хэши (на несколько порядков быстрее CPU/GPU)
каюсь, я как-то не обратил сразу на это внимание.

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

Я не готов сейчас обсуждать достоинства и недостатки вашей хэш-функции. Просто не обладаю
достаточными знаниями в этом вопросе. Моих знаний не хватит на то, чтобы сказать, насколько
эта хэш-функция будет криптографически строгой. Но знаний хватит, чтобы сказать, что по своей
алгоритмической сложности она не будет сложнее sha256 и соответственно ни о какой "асикостойкости"
речь идти не может.
sic57005
Full Member
***
Offline Offline

Activity: 182
Merit: 100


View Profile
January 17, 2018, 11:53:43 AM
 #58

Никакой разницы нет, что на асиках, что на видеокартах будут майнить. Все равно огромный перекос в сторону тех, кто имеет возможность вложить капиталы. Нужно искать какой-то другой консенсус, а не алгоритмы для PoW. Все имхо.
Майнить это хорошо. Я не считаю что это плохо. Наличие богатых и бедных людей это данность мира. Это константа. Но нужно сделать так, чтобы преимущество у богатого человека пару лишних тысяч долларов не давало ему преимущества в миллион раз. А именно такие цифры получаются на Асиках.
Богатые люди никуда не денутся, если человек хочет инвестировать миллион долларов, то пусть он получит преимущество в тысячу раз, а не больше. Если сделать способность алгоритмов эффективно работать только на ЦПУ, то именно так и получится.


PoW это единственный объективный способ защиты сети. 


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

С асиками борятся не поэтому.

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



Ну и идея придумать хитров*банный алгоритм, веря, что раз он довольно хитрый, то его сложно будет реализовать в асиках наивна. Пока монетой полтора человека пользуется, конечно да, отличная защита от несуществующей угрозы, но потом... Разница ЦПУ от асика в первую очередь в том, что ЦПУ нужно поддерживать не только арифметику, но и ввод-вывод, защиту памяти, прерывания, устаревший набор инструкций х86 и дикие костыли, с этим связанные, и жирный жирный аппарат спекулятивной оптимизации инструкций и доступа к памяти. Ну и огромный кеш, да. Выкинув все это, мы уже получим кусок кремния раз в 10-100 дешевле (в первую очередь за счет более простого тестирования). Запихиваем сотню таких на одну плату и получаем, собственно, асик. Другое дело, что разработка этого добра обойдется в приличные $$$ и ради монеты капитализацией пару мегабаксов никто этого делать не будет.
Coin-1
Legendary
*
Offline Offline

Activity: 2632
Merit: 2304



View Profile
January 18, 2018, 05:18:23 AM
 #59

Вычислительные операции алгоритма должны быть заранее неизвестны и задаваться, например, исходя из хеша предыдущего блока.
Во-первых, это не помешает сделать асик.
Во-вторых, я буду дропать (не отдавать свой подсчет в сеть) блок N если после
него блок для блока N+1 будет выпадать неудобный мне алгоритм.
Смысл? Вы хотите майнить абсолютно все блоки подряд?
Coin-1
Legendary
*
Offline Offline

Activity: 2632
Merit: 2304



View Profile
January 18, 2018, 05:20:12 AM
 #60

Ниже я привожу такой алгоритм, как он Вам, теперь всегда будете дропать?
Что помешает сделать асик использующий именно такой алгоритм?
Вы думаете в SHA256 нет операций побитовых сдвигов и условных переходов?
Смотрю исходный код SHA256. Есть побитовые сдвиги, условных переходов нет.
Pages: « 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!