Bitcoin Forum
May 12, 2024, 11:57:32 PM *
News: Latest Bitcoin Core release: 27.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 6066 times)
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 16, 2018, 09:59:20 AM
 #421

Чтобы несколько вернуть беседу в реальное техническое русло...

Алгоритм майнинга, на котором я остановился сейчас.
Используется хеш-функция sha3, но в качестве nonce требуется подобрать не число, а адрес кошелька на который уйдет награда.
Таким образом нужно выполнить следующие вычисления:
1. Сгенерировать приватный ключ
2. Вычислить от него публичный ключ
3. Вставить в хеш функцию (вместе с остальным хешем блока)
4. Если значение полученного хеша имеет недостаточно "мощности" перейти к пункту 1
5. Если достаточно - запомнить секретный ключ шага 1 для получения награды, если сеть примет блок

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

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

P.S.
Дополнительная плюшка в алгоритме - защита от создания пулов. Не выгодно майнить пулами, т.к. секретный ключ будет известен всем.




Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715558252
Hero Member
*
Offline Offline

Posts: 1715558252

View Profile Personal Message (Offline)

Ignore
1715558252
Reply with quote  #2

1715558252
Report to moderator
1715558252
Hero Member
*
Offline Offline

Posts: 1715558252

View Profile Personal Message (Offline)

Ignore
1715558252
Reply with quote  #2

1715558252
Report to moderator
1715558252
Hero Member
*
Offline Offline

Posts: 1715558252

View Profile Personal Message (Offline)

Ignore
1715558252
Reply with quote  #2

1715558252
Report to moderator
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
May 16, 2018, 12:31:12 PM
 #422

Используется хеш-функция sha3, но в качестве nonce требуется подобрать
не число, а адрес кошелька на который уйдет награда.
Ни и толку?
Берем свой адрес. Записываем его в заголовок блока.
А потом меняем extranonce в coinbase-транзакции.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 16, 2018, 03:24:14 PM
 #423

Используется хеш-функция sha3, но в качестве nonce требуется подобрать
не число, а адрес кошелька на который уйдет награда.
Ни и толку?
Берем свой адрес. Записываем его в заголовок блока.
А потом меняем extranonce в coinbase-транзакции.

Вы к  чему - к тому что нет защиты от объединения в майнинг пул?

Алгоритм состоит из двух частей:
1. Сначала ищется блок (одинаковый для всех нод)
2. Потом он подписывается нодами
Та нода, которая имеет лучший хеш побеждает

Все шаги делаются параллельно, т.е. выполняется конвейерная обработка блоков
тайминг по секундам:
1 сек - ожидание активации по времени
2 сек - синхронизация блока
3 сек - синхронизация блока
4 сек - синхронизация блока
5 сек - создание подписи POW
6 сек - синхронизация POW
7 сек - синхронизация POW
8 сек - синхронизация POW

Т.е. через 8 сек блок записывается в базу данных

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



Таким образом extranonce не прокатит, потому что блоки у всех одинаковые будут...



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

Activity: 770
Merit: 305


View Profile
May 16, 2018, 05:56:48 PM
 #424

Вы к  чему - к тому что нет защиты от объединения в майнинг пул?
Нет, я не про пул. Возможно я неправильно понял, но мне показалось что самую
трудоемкую операцию из вашего алгоритма (по тому как вы его описали) можно
сделать 1 раз. А потом перебирать другие значения.

Quote
Алгоритм состоит из двух частей:
1. Сначала ищется блок (одинаковый для всех нод)
2. Потом он подписывается нодами
Та нода, которая имеет лучший хеш побеждает

Ой-ёй. Всё. Приехали. Или приплыли. Дальше даже читать не стану.

Вот эти два пункта - это у вас две строчки и вроде как просто. А на самом деле
это невозможно. Что значит "ищется блок одинаковый для всех нод?" Как вы себе это
технически представляете хотя бы? Вот стоят 1000 компьютеров. Допустим даже, что
каждый с каждым связан и никто не выпадает, и не проваливается в пинге. Как им
договориться о едином общем блоке? Пока они будут договариваться, прибегут еще
десять нод в эту сеть и скажут "ой, мы не согласные, давайте договоримся про другой блок"

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 16, 2018, 06:54:40 PM
 #425

Что значит "ищется блок одинаковый для всех нод?" Как вы себе это
технически представляете хотя бы? Вот стоят 1000 компьютеров. Допустим даже, что
каждый с каждым связан и никто не выпадает, и не проваливается в пинге. Как им
договориться о едином общем блоке? Пока они будут договариваться, прибегут еще
десять нод в эту сеть и скажут "ой, мы не согласные, давайте договоримся про другой блок"

Дык тот текст, который вы не читали это описывает. Если в двух словах, то создается упорядоченная сеть, несмотря на случайность связей.
Вот представьте что это ваши 1000 компьютеров, сможете вы организовать упорядоченную сеть, такую чтобы число соединений каждой ноды с друг дружкой было не более 10 (двоичный логарифм от 1000), а данные передавались только в виде изменений. Если немного подумать, то это сделать легко. Усложняем задачу - ноды случайные, но с уникальными идентификаторами. Очевидно, что это тоже возможно, но только сложнее. И вот в тексте, который вы не читали я описал этот способ. Все отлично работает, проверял на компьютерной модели для 10 тысяч нод...


Quote
Ой-ёй. Всё. Приехали. Или приплыли. Дальше даже читать не стану.

Ну что тут поделаешь, наверно сложно это. Я не в обиде.




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

Activity: 770
Merit: 305


View Profile
May 16, 2018, 07:17:33 PM
 #426

Вот представьте что это ваши 1000 компьютеров, сможете вы организовать упорядоченную
сеть, такую чтобы число соединений каждой ноды с друг дружкой было не более 10
И кто будет в децентрализованной сети следить за выполнением этого условия?

Quote
(двоичный логарифм от 1000), а данные передавались только в виде изменений.
Если немного подумать, то это сделать легко. Усложняем задачу - ноды случайные,
но с уникальными идентификаторами. Очевидно, что это тоже возможно, но только сложнее.

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

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
DevilOper
Member
**
Offline Offline

Activity: 280
Merit: 26


View Profile
May 16, 2018, 08:50:27 PM
 #427

По-моему, автор вот прямо сейчас на наших глазах изобретает велосипед с квадратными колёсами DHT.
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 16, 2018, 08:58:25 PM
 #428

Вот представьте что это ваши 1000 компьютеров, сможете вы организовать упорядоченную
сеть, такую чтобы число соединений каждой ноды с друг дружкой было не более 10
И кто будет в децентрализованной сети следить за выполнением этого условия?

Quote
(двоичный логарифм от 1000), а данные передавались только в виде изменений.
Если немного подумать, то это сделать легко. Усложняем задачу - ноды случайные,
но с уникальными идентификаторами. Очевидно, что это тоже возможно, но только сложнее.

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

Погодите, то Алистера Маклина мы еще не дошли Smiley Мы еще находимся на стадии формирования сети. Мы еще не говорим про консенсус, тем более что он нам неинтересен, т.к. по сути используется классический. Мы говорим про оптимальную организацию сети, такую, чтобы ноды были соединены с друг другом оптимальным способом. Это даст нам быстрое формирование блока, с минимальным трафиком (в идеале только диффы транзакций), причем формирование одинакового блока для всех нод!!!

Вы, я так понял, согласились, что несложно создать сеть если компьютеры вами полностью контролируются (т.е. принадлежат вам и заранее известны их характеристики).
Но как вы это сделали? Наверно вы их сначала пронумеровали от 1 до 1024, а потом сказали - эй компьютеры расчитайтесь на 1,2-й и соединитесь с друг другом в пары, далее - каждая пара рассчитайтесь между собой на 1-й и соединитесь между собой в пары пар и т.д. пока не будет объединение 512+512

Теперь нужно сделать шаг 2, предположим, что компьютеры неизвестны, но состоят из большинства честных нод. Хотя нет, давайте пусть на этом шаге все будут честные, а на следующем шаге подумаем как бороться с нечестным поведением. Итак в сети есть примерно 1000 компьютеров, которые управляются нашей одинаковой программой (единым протоколом). Сначала мы не знаем их ip-адреса и уникальные адреса (имена). Но через некоторое время (путем простого протокола обмена списков нод) все ноды узнают друг о друге. Дальше они также делятся на пары, но тут сложность в том, что сами по себе компьютеры не пронумерованы. И сделать это невозможно. Поэтому нужно использовать другое свойство для соединения их в пары, пары с друг другом и т.д. Таким свойством может служить мера близости их адресов между друг другом. Это свойство будет уникальным и стабильным для случайно взятой пары нод. Это проистекает из того, что публичные адреса относительно постоянны в течении сессий обменов.

Здесь я прервусь для получения обратной связи....

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

Activity: 280
Merit: 26


View Profile
May 16, 2018, 10:18:03 PM
 #429

Ну вот, опять зачем-то усложнять всё начал.
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
May 17, 2018, 04:29:15 AM
 #430

...Вы, я так понял, согласились, что несложно создать сеть если компьютеры вами полностью контролируются...
...Теперь нужно сделать шаг 2, предположим, что...

Ваши два шага это полная аналогия с "как нарисовать сову" (надеюсь все знают этот интернет-мем)

На самом деле ситуация хуже: вы делаете предположение о возможности решения задачи в централизованной
системе (то есть с наличием third-party), после чего пытаетесь это плавно перенести в децентрализованную.
Что вообще говоря удалось (если считать эксперимент с биткойном удачным) только Сатоши на основе PoW.

Вам не кажется, что у вас возникла рекурсия? Чтобы сделать асикостойкий алгоритм PoW вам
надо переупорядочить вашу сеть используя какой-то другой неасикостойкий алгоритм PoW

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 17, 2018, 06:26:46 AM
 #431

...Вы, я так понял, согласились, что несложно создать сеть если компьютеры вами полностью контролируются...
...Теперь нужно сделать шаг 2, предположим, что...

Ваши два шага это полная аналогия с "как нарисовать сову" (надеюсь все знают этот интернет-мем)

На самом деле ситуация хуже: вы делаете предположение о возможности решения задачи в централизованной
системе (то есть с наличием third-party), после чего пытаетесь это плавно перенести в децентрализованную.
Что вообще говоря удалось (если считать эксперимент с биткойном удачным) только Сатоши на основе PoW.

Вам не кажется, что у вас возникла рекурсия? Чтобы сделать асикостойкий алгоритм PoW вам
надо переупорядочить вашу сеть используя какой-то другой неасикостойкий алгоритм PoW

Асикостойкий алгоритм здесь не причем. Извините, что вы меня не поняли.

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

Activity: 770
Merit: 305


View Profile
May 17, 2018, 06:50:30 AM
 #432

Асикостойкий алгоритм здесь не причем. Извините, что вы меня не поняли.

Извиняю.
Нам бы всем было бы значительно проще, если бы вы свои рассуждения подкрепляли
бы каким-то программным кодом. Я не говорю что надо тут публиковать куски. Можно
ссылку на минимально-рабочий-проект.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
May 21, 2018, 06:39:39 PM
 #433

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

DevilOper
Member
**
Offline Offline

Activity: 280
Merit: 26


View Profile
May 22, 2018, 09:45:56 AM
 #434

Блохчейноголовые, даже если и топят, что они не блохчейноголовые, но всё равно продолжают уныло бубнить свои блохчейновые мантры про консенсус, отсосенсус и прочий пов, пос тос, передос, нихуя не отдупляя своей бестолковкой, что весь их поцв работает точно так же только тогда, когда большинство участников идиоты честные, и честно "мойнят" в общий блохчейн.
Как только каждый решит, что он-то самый умненький, и будет майнить свой блохченй, чтобы все шиткойны себе зохапать (google: selfish mining) - начнётся в точности тот же самый трэш, угар и содомия, которой блохчейноголовые так пугают.
Мир держится на полезных идиотах, так-то.
ice_shadow
Member
**
Offline Offline

Activity: 86
Merit: 10


View Profile
May 24, 2018, 09:51:12 PM
 #435

Если "ASIC стойкий" алгоритм еще на практике реален
то GPU  стойкий - в теории сложный
как и на CPU
в основном это алгоритмы использующие большое кол-во RAM в вычислениях такие как CRYPTONITE ( но как показало время не стойкие долгое время )
но универсальных алгоритмов вы не найдете
как совет можно предложить комбинацию двух алгоритмов использующих гигантское число памяти для вычислений и перебора
с случайной генерацией массива промежуточного результата   напри ( X1, X2, Xn) , а потом на последних этапах этих промежуточных вычислений выбор одного из этих результатов определяется в зависимости от номера текущего блока по опр ф-ле ( + какая-то динамическая соль)
но рано или поздно асик будет создан ( если не асик то FPGA - уж точно)
ice_shadow
Member
**
Offline Offline

Activity: 86
Merit: 10


View Profile
May 24, 2018, 10:00:08 PM
 #436

Еще если не секрет , чем плох PoS или DPoS  ?
Если с целью майнинга самому то не вижу проблемы в DPOS
и  логические майнеры типа совместных пулов на смарт-контрактах в который все скидываются на стейк скоро дойдут до хайпа
и IMHO перебьют основной майнинг.
чем плохо вложил денюжки не в Железяку , которая тратит попросту электричество и подтверждает 1 транзакцию в год суммарно а то уже и в 10 лет(прим. биток ) , а в смарт-контракт , который еще и пользу людям скоро будет приносить.
Считаю, что вскоре системы облачного хостинг типа амазон(AWS) станут чем-то  блокчейн-гибридным напр. операционными системами типа EOS
хотя некие реализации уже есть и на эфире , но пока не продакшн версии.
neiros
Legendary
*
Offline Offline

Activity: 3514
Merit: 1100



View Profile WWW
May 25, 2018, 03:34:58 AM
 #437

Еще если не секрет , чем плох PoS или DPoS  ?

https://bitcointalk.org/index.php?topic=2666995.msg28747609#msg28747609

Для измерения ценности как эквивалента работы PoS или DPoS бесполезны.

DevilOper
Member
**
Offline Offline

Activity: 280
Merit: 26


View Profile
May 25, 2018, 08:36:58 AM
 #438

Для измерения ценности как эквивалента работы

Типичная ошибка совковых (не имеющих ничего общего с теорией трудовой стоимости Маркса) "икономиздов" - измерять ценность (стоимость) продукта по количеству затраченой "роботы".
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
May 25, 2018, 10:01:49 AM
 #439

Типичная ошибка совковых (не имеющих ничего общего с теорией трудовой
стоимости Маркса) "икономиздов" - измерять ценность (стоимость) продукта по количеству
затраченой "роботы".

Браво! Я это им три года пытаюсь втолковать. А они думают, что если биткойн после
уполовинивания добывать в два раза сложнее (дороже), то он и стоить будет в два раза больше.

Но это не признак совковости. Этой поебенью во всех частях мира заразились.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
neiros
Legendary
*
Offline Offline

Activity: 3514
Merit: 1100



View Profile WWW
May 25, 2018, 10:12:50 AM
 #440

Для измерения ценности как эквивалента работы

Типичная ошибка совковых (не имеющих ничего общего с теорией трудовой стоимости Маркса) "икономиздов" - измерять ценность (стоимость) продукта по количеству затраченой "роботы".

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

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!