Vtools (OP)
|
|
May 16, 2018, 09:59:20 AM |
|
Чтобы несколько вернуть беседу в реальное техническое русло...
Алгоритм майнинга, на котором я остановился сейчас. Используется хеш-функция sha3, но в качестве nonce требуется подобрать не число, а адрес кошелька на который уйдет награда. Таким образом нужно выполнить следующие вычисления: 1. Сгенерировать приватный ключ 2. Вычислить от него публичный ключ 3. Вставить в хеш функцию (вместе с остальным хешем блока) 4. Если значение полученного хеша имеет недостаточно "мощности" перейти к пункту 1 5. Если достаточно - запомнить секретный ключ шага 1 для получения награды, если сеть примет блок
Самый затратный по времени это шаг 2 - алгоритм получения публичного ключа. Можно произвести оптимизацию, за счет сохранения пула адресов в памяти. Т.к. публичный ключ можно применить и к следующему блоку. В этом случае будут выигрывать устройства с быстрой памятью и быстрым расчетом функции sha3.
В дальнейшем в качестве дополнительно защиты от асиков планирую добавить пункт 2.5, который будет включать в себя немного перестановок, зависящих от данных для проверки что алгоритм исполняется на вычислительной машине, способной интерпретировать команды (о них я писал в самом начале этой ветки).
P.S. Дополнительная плюшка в алгоритме - защита от создания пулов. Не выгодно майнить пулами, т.к. секретный ключ будет известен всем.
|
• Restart of the TERA project in 2022 •
|
|
|
amaclin1
|
|
May 16, 2018, 12:31:12 PM |
|
Используется хеш-функция sha3, но в качестве nonce требуется подобрать не число, а адрес кошелька на который уйдет награда. Ни и толку? Берем свой адрес. Записываем его в заголовок блока. А потом меняем extranonce в coinbase-транзакции.
|
|
|
|
Vtools (OP)
|
|
May 16, 2018, 03:24:14 PM |
|
Используется хеш-функция 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 •
|
|
|
amaclin1
|
|
May 16, 2018, 05:56:48 PM |
|
Вы к чему - к тому что нет защиты от объединения в майнинг пул? Нет, я не про пул. Возможно я неправильно понял, но мне показалось что самую трудоемкую операцию из вашего алгоритма (по тому как вы его описали) можно сделать 1 раз. А потом перебирать другие значения. Алгоритм состоит из двух частей: 1. Сначала ищется блок (одинаковый для всех нод) 2. Потом он подписывается нодами Та нода, которая имеет лучший хеш побеждает Ой-ёй. Всё. Приехали. Или приплыли. Дальше даже читать не стану. Вот эти два пункта - это у вас две строчки и вроде как просто. А на самом деле это невозможно. Что значит "ищется блок одинаковый для всех нод?" Как вы себе это технически представляете хотя бы? Вот стоят 1000 компьютеров. Допустим даже, что каждый с каждым связан и никто не выпадает, и не проваливается в пинге. Как им договориться о едином общем блоке? Пока они будут договариваться, прибегут еще десять нод в эту сеть и скажут "ой, мы не согласные, давайте договоримся про другой блок"
|
|
|
|
Vtools (OP)
|
|
May 16, 2018, 06:54:40 PM |
|
Что значит "ищется блок одинаковый для всех нод?" Как вы себе это технически представляете хотя бы? Вот стоят 1000 компьютеров. Допустим даже, что каждый с каждым связан и никто не выпадает, и не проваливается в пинге. Как им договориться о едином общем блоке? Пока они будут договариваться, прибегут еще десять нод в эту сеть и скажут "ой, мы не согласные, давайте договоримся про другой блок"
Дык тот текст, который вы не читали это описывает. Если в двух словах, то создается упорядоченная сеть, несмотря на случайность связей. Вот представьте что это ваши 1000 компьютеров, сможете вы организовать упорядоченную сеть, такую чтобы число соединений каждой ноды с друг дружкой было не более 10 (двоичный логарифм от 1000), а данные передавались только в виде изменений. Если немного подумать, то это сделать легко. Усложняем задачу - ноды случайные, но с уникальными идентификаторами. Очевидно, что это тоже возможно, но только сложнее. И вот в тексте, который вы не читали я описал этот способ. Все отлично работает, проверял на компьютерной модели для 10 тысяч нод... Ой-ёй. Всё. Приехали. Или приплыли. Дальше даже читать не стану.
Ну что тут поделаешь, наверно сложно это. Я не в обиде.
|
• Restart of the TERA project in 2022 •
|
|
|
amaclin1
|
|
May 16, 2018, 07:17:33 PM |
|
Вот представьте что это ваши 1000 компьютеров, сможете вы организовать упорядоченную сеть, такую чтобы число соединений каждой ноды с друг дружкой было не более 10 И кто будет в децентрализованной сети следить за выполнением этого условия? (двоичный логарифм от 1000), а данные передавались только в виде изменений. Если немного подумать, то это сделать легко. Усложняем задачу - ноды случайные, но с уникальными идентификаторами. Очевидно, что это тоже возможно, но только сложнее. Очевидно, что это невозможно. Вот я говорю "Я Алистер Маклин". Потом приходите вы и говорите "Нет, я - Алистер Маклин". Как разрешить противоречие? Проводим голосование. Подводим итоги. Я говорю "Я Алистер Маклин, потому что 86% сказали что я Алистер Маклин". Вы говорите: "Ну, таки да, 86% сказали что я - Алистер Маклин, а ты самозванец". Мы в тупике. Кто будет решать кто из нас Алистер Маклин, а кто самозванец?
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 16, 2018, 08:50:27 PM |
|
По-моему, автор вот прямо сейчас на наших глазах изобретает велосипед с квадратными колёсами DHT.
|
|
|
|
Vtools (OP)
|
|
May 16, 2018, 08:58:25 PM |
|
Вот представьте что это ваши 1000 компьютеров, сможете вы организовать упорядоченную сеть, такую чтобы число соединений каждой ноды с друг дружкой было не более 10 И кто будет в децентрализованной сети следить за выполнением этого условия? (двоичный логарифм от 1000), а данные передавались только в виде изменений. Если немного подумать, то это сделать легко. Усложняем задачу - ноды случайные, но с уникальными идентификаторами. Очевидно, что это тоже возможно, но только сложнее. Очевидно, что это невозможно. Вот я говорю "Я Алистер Маклин". Потом приходите вы и говорите "Нет, я - Алистер Маклин". Как разрешить противоречие? Проводим голосование. Подводим итоги. Я говорю "Я Алистер Маклин, потому что 86% сказали что я Алистер Маклин". Вы говорите: "Ну, таки да, 86% сказали что я - Алистер Маклин, а ты самозванец". Мы в тупике. Кто будет решать кто из нас Алистер Маклин, а кто самозванец? Погодите, то Алистера Маклина мы еще не дошли Мы еще находимся на стадии формирования сети. Мы еще не говорим про консенсус, тем более что он нам неинтересен, т.к. по сути используется классический. Мы говорим про оптимальную организацию сети, такую, чтобы ноды были соединены с друг другом оптимальным способом. Это даст нам быстрое формирование блока, с минимальным трафиком (в идеале только диффы транзакций), причем формирование одинакового блока для всех нод!!! Вы, я так понял, согласились, что несложно создать сеть если компьютеры вами полностью контролируются (т.е. принадлежат вам и заранее известны их характеристики). Но как вы это сделали? Наверно вы их сначала пронумеровали от 1 до 1024, а потом сказали - эй компьютеры расчитайтесь на 1,2-й и соединитесь с друг другом в пары, далее - каждая пара рассчитайтесь между собой на 1-й и соединитесь между собой в пары пар и т.д. пока не будет объединение 512+512 Теперь нужно сделать шаг 2, предположим, что компьютеры неизвестны, но состоят из большинства честных нод. Хотя нет, давайте пусть на этом шаге все будут честные, а на следующем шаге подумаем как бороться с нечестным поведением. Итак в сети есть примерно 1000 компьютеров, которые управляются нашей одинаковой программой (единым протоколом). Сначала мы не знаем их ip-адреса и уникальные адреса (имена). Но через некоторое время (путем простого протокола обмена списков нод) все ноды узнают друг о друге. Дальше они также делятся на пары, но тут сложность в том, что сами по себе компьютеры не пронумерованы. И сделать это невозможно. Поэтому нужно использовать другое свойство для соединения их в пары, пары с друг другом и т.д. Таким свойством может служить мера близости их адресов между друг другом. Это свойство будет уникальным и стабильным для случайно взятой пары нод. Это проистекает из того, что публичные адреса относительно постоянны в течении сессий обменов. Здесь я прервусь для получения обратной связи....
|
• Restart of the TERA project in 2022 •
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 16, 2018, 10:18:03 PM |
|
Ну вот, опять зачем-то усложнять всё начал.
|
|
|
|
amaclin1
|
|
May 17, 2018, 04:29:15 AM |
|
...Вы, я так понял, согласились, что несложно создать сеть если компьютеры вами полностью контролируются... ...Теперь нужно сделать шаг 2, предположим, что... Ваши два шага это полная аналогия с "как нарисовать сову" (надеюсь все знают этот интернет-мем) На самом деле ситуация хуже: вы делаете предположение о возможности решения задачи в централизованной системе (то есть с наличием third-party), после чего пытаетесь это плавно перенести в децентрализованную. Что вообще говоря удалось (если считать эксперимент с биткойном удачным) только Сатоши на основе PoW. Вам не кажется, что у вас возникла рекурсия? Чтобы сделать асикостойкий алгоритм PoW вам надо переупорядочить вашу сеть используя какой-то другой неасикостойкий алгоритм PoW
|
|
|
|
Vtools (OP)
|
|
May 17, 2018, 06:26:46 AM |
|
...Вы, я так понял, согласились, что несложно создать сеть если компьютеры вами полностью контролируются... ...Теперь нужно сделать шаг 2, предположим, что... Ваши два шага это полная аналогия с "как нарисовать сову" (надеюсь все знают этот интернет-мем) На самом деле ситуация хуже: вы делаете предположение о возможности решения задачи в централизованной системе (то есть с наличием third-party), после чего пытаетесь это плавно перенести в децентрализованную. Что вообще говоря удалось (если считать эксперимент с биткойном удачным) только Сатоши на основе PoW. Вам не кажется, что у вас возникла рекурсия? Чтобы сделать асикостойкий алгоритм PoW вам надо переупорядочить вашу сеть используя какой-то другой неасикостойкий алгоритм PoWАсикостойкий алгоритм здесь не причем. Извините, что вы меня не поняли.
|
• Restart of the TERA project in 2022 •
|
|
|
amaclin1
|
|
May 17, 2018, 06:50:30 AM |
|
Асикостойкий алгоритм здесь не причем. Извините, что вы меня не поняли. Извиняю. Нам бы всем было бы значительно проще, если бы вы свои рассуждения подкрепляли бы каким-то программным кодом. Я не говорю что надо тут публиковать куски. Можно ссылку на минимально-рабочий-проект.
|
|
|
|
fxpc
Sr. Member
Offline
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
|
|
May 21, 2018, 06:39:39 PM |
|
Хотя нет, давайте пусть на этом шаге все будут честные, а на следующем шаге подумаем как бороться с нечестным поведением.
Хуй все будут честными, децентрализация это по-умолчанию недоверенное окружение где каждый может творить что хочет, для избежания этого придуманы алгоритмы консенсуса PoW и PoS, творить хуйню они конечно не запрещают, а лишь препятствуют внесению невалидных изменений в данные. Если у тебя централизованная система, то никакие блохчейны не нужны, если децентрализованная, то из коробки должен быть относительно стойкий алгоритм консенсуса, а не "потом подумаем как бороться с нечестным поведением".
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 22, 2018, 09:45:56 AM |
|
Блохчейноголовые, даже если и топят, что они не блохчейноголовые, но всё равно продолжают уныло бубнить свои блохчейновые мантры про консенсус, отсосенсус и прочий пов, пос тос, передос, нихуя не отдупляя своей бестолковкой, что весь их поцв работает точно так же только тогда, когда большинство участников идиоты честные, и честно "мойнят" в общий блохчейн. Как только каждый решит, что он-то самый умненький, и будет майнить свой блохченй, чтобы все шиткойны себе зохапать (google: selfish mining) - начнётся в точности тот же самый трэш, угар и содомия, которой блохчейноголовые так пугают. Мир держится на полезных идиотах, так-то.
|
|
|
|
ice_shadow
Member
Offline
Activity: 86
Merit: 10
|
|
May 24, 2018, 09:51:12 PM |
|
Если "ASIC стойкий" алгоритм еще на практике реален то GPU стойкий - в теории сложный как и на CPU в основном это алгоритмы использующие большое кол-во RAM в вычислениях такие как CRYPTONITE ( но как показало время не стойкие долгое время ) но универсальных алгоритмов вы не найдете как совет можно предложить комбинацию двух алгоритмов использующих гигантское число памяти для вычислений и перебора с случайной генерацией массива промежуточного результата напри ( X1, X2, Xn) , а потом на последних этапах этих промежуточных вычислений выбор одного из этих результатов определяется в зависимости от номера текущего блока по опр ф-ле ( + какая-то динамическая соль) но рано или поздно асик будет создан ( если не асик то FPGA - уж точно)
|
|
|
|
ice_shadow
Member
Offline
Activity: 86
Merit: 10
|
|
May 24, 2018, 10:00:08 PM |
|
Еще если не секрет , чем плох PoS или DPoS ? Если с целью майнинга самому то не вижу проблемы в DPOS и логические майнеры типа совместных пулов на смарт-контрактах в который все скидываются на стейк скоро дойдут до хайпа и IMHO перебьют основной майнинг. чем плохо вложил денюжки не в Железяку , которая тратит попросту электричество и подтверждает 1 транзакцию в год суммарно а то уже и в 10 лет(прим. биток ) , а в смарт-контракт , который еще и пользу людям скоро будет приносить. Считаю, что вскоре системы облачного хостинг типа амазон(AWS) станут чем-то блокчейн-гибридным напр. операционными системами типа EOS хотя некие реализации уже есть и на эфире , но пока не продакшн версии.
|
|
|
|
|
DevilOper
Member
Offline
Activity: 280
Merit: 26
|
|
May 25, 2018, 08:36:58 AM |
|
Для измерения ценности как эквивалента работы Типичная ошибка совковых (не имеющих ничего общего с теорией трудовой стоимости Маркса) "икономиздов" - измерять ценность (стоимость) продукта по количеству затраченой "роботы".
|
|
|
|
amaclin1
|
|
May 25, 2018, 10:01:49 AM |
|
Типичная ошибка совковых (не имеющих ничего общего с теорией трудовой стоимости Маркса) "икономиздов" - измерять ценность (стоимость) продукта по количеству затраченой "роботы". Браво! Я это им три года пытаюсь втолковать. А они думают, что если биткойн после уполовинивания добывать в два раза сложнее (дороже), то он и стоить будет в два раза больше. Но это не признак совковости. Этой поебенью во всех частях мира заразились.
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
May 25, 2018, 10:12:50 AM |
|
Для измерения ценности как эквивалента работы Типичная ошибка совковых (не имеющих ничего общего с теорией трудовой стоимости Маркса) "икономиздов" - измерять ценность (стоимость) продукта по количеству затраченой "роботы". Философские камни, амулеты, хрустальные шары, священные писания(и Маркса в том числе), иконы и прочие религиозные ценность, и даже сам блокчейн, в подобных прецизионных измерениях конечно же не нуждаются. Всё это имеет только два измерения: либо - true, либо - false.
|
|
|
|
|