Pages:
Author

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

full member
Activity: 411
Merit: 139
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
В крипте с системой отсечек точкой отсчёта будет блок с балансами. Атакующий может
записать туда любую лабуду, например увеличить свой баланс. Точно такой же трюк можно
проделать с генезис блоком, если он не захардкожен в клиент.

Ну зачем ты подсказываешь? Сам человек может додуматься. А так ты подсказал - и
теперь будут искать пути обхода.

Пардон, молчу. Понаблюдаю с тобой за изысканиями страждущих. Smiley
sr. member
Activity: 770
Merit: 305
В крипте с системой отсечек точкой отсчёта будет блок с балансами. Атакующий может
записать туда любую лабуду, например увеличить свой баланс. Точно такой же трюк можно
проделать с генезис блоком, если он не захардкожен в клиент.

Ну зачем ты подсказываешь? Сам человек может додуматься. А так ты подсказал - и
теперь будут искать пути обхода.

Что если "прунится" (то бишь отрезается) не полностью голова, а только транзакции?
То есть генезис-блок можно оставить, а при "обрезании" мы удаляем только транзакции,
а 80-байтные заголовки блоков оставляем. Плюс к этому, разумеется, в алгоритм вносится
что каждый (допустим) 50000-ый блок имеет специфический формат, содержащий не
транзакции, а "балансы"?

Вопрос мой с подвохом. То есть я вижу проблемы и подводные камни с этим связанные,
но найти их предлагаю самостоятельно. Если я буду вам все разжевывать и с ложечки в
рот класть - то для вас толку не будет, одно сплошное несогласие. И мне оно нахер не надо.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Хм, а как ты собираешься рассчитывать хеш 1-го блока, если нет предыдущего? Считать предыдущий хеш = нулю, но это тоже получается будет "захардкоден".
Генезис блок, это тупо точка отсчета ну и монеты иногда туда сыпят при премайне.

В крипте с системой отсечек точкой отсчёта будет блок с балансами. Атакующий может записать туда любую лабуду, например увеличить свой баланс. Точно такой же трюк можно проделать с генезис блоком, если он не захардкожен в клиент.
sr. member
Activity: 770
Merit: 305
Хм, а как ты собираешься рассчитывать хеш 1-го блока, если нет предыдущего?
Считать предыдущий хеш = нулю, но это тоже получается будет "захардкоден".
Генезис блок, это тупо точка отсчета ну и монеты иногда туда сыпят при премайне.

Не совсем то, что я имел в виду. Да и кому вопрос адресован? Мы говорили о блокчейне
с системой отсечек, когда база данных начинает в какой-то момент стираться с головы.

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

Самый лучший способ разобраться в проблеме - объяснить другому человеку. Вот и объясните
мне почему так никто не делает.

Даю подсказку.
Итак. Я запускаю клиента и коннекчусь к двум пирам.
Первый пир мне может предоставить цепочку блоков от 100000 до 200000 со сложностью N
Второй пир мне может предоставить цепочку блоков от 300000 до 400000 со сложностью M

Учитывайте, что у нас в первой цепочке неизвестны блоки с 0 по 99999 так что ничего об
их сложности мы не знаем, а число записанное в блоке 100000 (если вы вдруг в блок отсечки
решите туда записать сумму) может быть поддельное. А во второй цепочке неизвестны блоки
с 0 по 299999.

Какая цепочка является mainchain? Рассмотрите два варианта, M > N и M < N

full member
Activity: 411
Merit: 139
Верить наиболее сложной цепочке из имеющихся.
Рекомендую задуматься над вопросом - почему во всех известных криптах
генезис-блок фактически захардкоден в клиенте. Можно ведь типа отказаться
от этого правила? Клиенты качают блокчейн у пиров и автоматически переключаются
на самую длинную (не только по длине, а по суммарной сложности) цепочку?


Хм, а как ты собираешься рассчитывать хеш 1-го блока, если нет предыдущего? Считать предыдущий хеш = нулю, но это тоже получается будет "захардкоден".
Генезис блок, это тупо точка отсчета ну и монеты иногда туда сыпят при премайне.
sr. member
Activity: 770
Merit: 305
Верить наиболее сложной цепочке из имеющихся.
Рекомендую задуматься над вопросом - почему во всех известных криптах
генезис-блок фактически захардкоден в клиенте. Можно ведь типа отказаться
от этого правила? Клиенты качают блокчейн у пиров и автоматически переключаются
на самую длинную (не только по длине, а по суммарной сложности) цепочку?
full member
Activity: 411
Merit: 139
В остальном это должен быть обычный CPU-only форк спредкоина, типа zillioncoin, чтобы майнился только на CPU и без пулов и никаких видеокарт.

Интересно а в чем заключается идея защиты от GPU?

И кстати  на сайте http://www.zillioncoin.com
Написано:
New GPU miner coming soon

member
Activity: 60
Merit: 10
sr. member
Activity: 770
Merit: 305
member
Activity: 280
Merit: 26
Это типичный паттерн мышления лохчейноголовых: если алгоритм запутать достаточно, чтобы самим перестать его понимать - то оно волшебным образом как-то само заработает именно так, как задумывалось.
member
Activity: 60
Merit: 10
Коммунистический механизм распределения награды среди шарорешателей туда добавить и будет то о чем я писал.
Наша песня хороша - начинай сначала. Какой алгоритм, МММ?
Есть в эфире такое понятие как uncle блоки (дядя - брат отеческого блока), это орфаны которые монетизируются на уровне алгоритма, добавляются в блокчейн и повышают его надежность, за счет вложенных в них вычислений. Uncle включенные в блок, получают 7/8 статической награды блока.
Я предлагаю распространить этот механизм не только на орфаны (идеальные альтернативные решения блока) но и на шары (неидеальные альтернативные решения блока) и выплачивать им награду пропорционально степени идеальности шары, от 7/8 за идеальную и вниз до предельной нижней сложности принятия шар, она задается фиксировано при создании алгоритма и соответствует работе средестатистического хомячкового процессора за сутки.

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

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

В остальном это должен быть обычный CPU-only форк спредкоина, типа zillioncoin, чтобы майнился только на CPU и без пулов и никаких видеокарт.
Почему именно на CPU без GPU и без пулов? - для повышения децентрализации, чтобы действовал (насколько это возможно)  принцип одна нода- один голос - равные возможности для нахождения блока. GPU, ASIC и пулы этому принципу противоречат, так как делают систему централизованной за счет концентрации мощностей в одних руках, что противоречит изначальной концепции крипты - распределенные децентрализованные деньги.
 
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Коммунистический механизм распределения награды среди шарорешателей туда добавить и будет то о чем я писал.

Наша песня хороша - начинай сначала. Какой алгоритм, МММ?
member
Activity: 60
Merit: 10
Пошарился по английскому разделу альткоинов и нашел монетку Zillioncoin (форк Spreadcoin) - CPU-Only, Антипул механизм из Spredcoin
https://bitcointalksearch.org/topic/ann-zillioncoin-zln-supporting-the-zilliongrid-blockchain-infrastructure-1818945

Только на процах и строго без пулов.
А также пристуствует элемент непредсказуемости - случайной генерации задания на майнинг:
POW состоит из щести последовательно выполняемых алгоритмов:
Spread-Blake-Keccak_shavite-JH-ECHO
При этом алгоритмы 3,4,5, в случайном порядке меняются местами от блока к блоку.
В GUI кошелька есть инфографика красиво отображающая этот процесс.

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

Бирж нету, биржевого курса нету. Но монетка децентрализована воистину.
И разрабу до фонаря что нет листинга на биржах с 2017 года. Он походу как Перельман в своем мирке живет. Прикрутил к кошельку какие то бегущие строки с курсами основных валют.
Так что денег не будет, можно держаться (HODL).
Можно форкнуть. Коммунистический механизм распределения награды среди шарорешателей туда добавить и будет то о чем я писал.
600 000 блоков добыто  и все с minersignature и hashwholeblock (то есть ни как у спрэдкоина 43000 первых блоков были без них)
Но разраб экспериментатор тот еще, он где то на 500 000 блоке заменил алгоритм майнинга x11 на вышеуказанный ЦПУшный вырвимозг. Хардфорк провел.
Видимо поэтому на биржи  и не листит, чтобы лепить что душе угодно.

Несмотря на отсутствие биржевой цены, у монеты хороший коннект. Есть куча чудиков которые ее зачем то добывают. Несмотря на дикий премайн и явное отсутствие биржевых перспектив если ее все таки залистят.
i5 2400 сраненький проц выдает, 17 килохешей на этом вырвиглазном алгоритме, хешрейт сети 3 мегахеша. Блок моим процыком добывается 3 часа, хотя частота блоков по алгоритму раз в минуту. 180 минут - то есть грубо 180 идиотов с такими же процами за каким то хреном его добывают, что явно подтверждает тезис Маклина о немеренном количестве хомяков даже в ситуации полного бесперспективняка.

Еще имхо. Такая монета, при отсутствии пулов, а также при равенстве вычислительной вооруженности хомяков (CPU-Only), а также при отсутствии описанного мною коммунистического распределения, никогда не сделает иксов и не покажет туземун, потому-что увеличение времени угадайки будет всегда сокращать численность хомяков до определенного равновесного уровня. Сложность добычи и цена такой монеты также всегда будет держаться у определенного равновесного уровня. В определенном смысле это означает появление своего рода стейблкоина, и может быть даже это и хорошо. Такой принудительно законсервированный доисторический период существования биткоина.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
Моя цель концептуально выразить мысль о том, что средний процессор среднего хомяка должен получать награду от одного раза в сутки, до одного раза в неделю, чтобы он держал ноду (возможно даже работая на половину мощности). Это должен быть медианный процессор.

Кроме того, ваша "концептуальная идея" бредовая в смысле того, что никак не учитывается количество хомяков, коим уже сегодня несть числа. Если награду раздавать раз в 10 минут, а хомяков с процессорами будет миллион, то очевидно, что ни при каком алгоритме "раз в неделю получать значимую прибавку к стипендии" не получится.

Хомяки считают это несправедливым и требуют, чтобы все животные были равны и всем всё платилось. Имхо, их вводит в заблуждение наличие в алгоритме консенсуса слова работа. На самом же деле понятие работа не ограничивается определением — деятельность, результаты которой имеют материальное выражение и могут быть реализованы для удовлетворения потребностей организации и (или) физических лиц. В данном случае наиболее подходящим определением понятия работа я считаю — функционирование какой-либо системы — механизма, биоценоза, организма или общности, — а также её части. Награда за блок это всего лишь поощрение, оно же стимул. Странно что эти же хомяки не требуют от казино и организаторов лотерей покрыть все их расходы на игру и приплатить сверху за "труды".
sr. member
Activity: 770
Merit: 305
Моя цель концептуально выразить мысль о том, что средний процессор среднего хомяка должен получать награду от одного раза в сутки, до одного раза в неделю, чтобы он держал ноду (возможно даже работая на половину мощности). Это должен быть медианный процессор.

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

Кроме того, ваша "концептуальная идея" бредовая в смысле того, что никак не учитывается количество хомяков, коим уже сегодня несть числа. Если награду раздавать раз в 10 минут, а хомяков с процессорами будет миллион, то очевидно, что ни при каком алгоритме "раз в неделю получать значимую прибавку к стипендии" не получится.

Хомяка с CPU уделывают не другие хомяки с более производительными устройствами, а пулы.

Это я согласен, но для адептов поясню что, хомяка с одним процессорным ядром уделывает хомяк с двумя ядрами - потому что считалочек у него вдвое больше, а сетевая карта одна. Но его уделывает хомяк с четырьмя процессорными ядрами, которого в свою очередь уделывет владелец восьмиядерной системы. И так далее. Пул майнеров - по сути дела продолжение этого ряда - одна "нода" с блокчейном и много-много "процессорных ядер", которые просто территориально разнесены.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
У тестовой сети отдельный лохчейн, а у них этот пиздец в основном.

Претензия к идее "всем всё платится". С каких пор джекпот лотереи положено выплачивать каждому лудоману, а не только выигравшему? Вероятность смайнить обратно пропорциональна сложности, которая зависит от количества хомяков. Любой алгоритм на более производительном устройстве будет выполняться быстрее. Что значит невозможность включения в майнинг GPU? Есть алгоритмы выполняющиеся на GPU не на порядки быстрее чем на CPU и этого достаточно. Хомяка с CPU уделывают не другие хомяки с более производительными устройствами, а пулы.
member
Activity: 60
Merit: 10
По поводу 43000 блоков без полей minersignature и minerwholeblock:
Действительно в блокчейне ровно 43000 блоков без этих полей, далее идут блоки с подписями.
Я порылся в исходном коде спредкоина на гитхабе.
В файле main.cpp нашел вот это.

// Get hardfork blocks
unsigned int getFirstHardforkBlock()
{
    return fTestNet? 0 : 2200;
}

unsigned int getSecondHardforkBlock()
{
    return fTestNet? 0 : 43000;
}
Как я понял это старт сети так происходил, с условием что первые 43000 блоков майнились без этих полей, то есть наверное могли быть намайнены теоретически в пуле. Затем антипул механизм был включен на блоке 43001. По времени это один месяц.
Зачем они это сделали непонятно. Видимо это была тестовая сеть. И судя по дате первого блока в сети 29.07.2014., а также датам размещения кода на Гитхабе 24.01.2015 и анонса на биткоинтолк 10.10.2014, это был премайн в тихаря.

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

По поводу нерезиновости блокчейна, Сатоши завещал отрубать хвост блокчейна.
Я представляю себе это так, каждые 25 гигов майнится контрольный блок со списком всех ненулевых кошельков в блокчейне и их балансами. А каждые 100 гигов, отрубается самый старый 25 гиговый хвостик.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
member
Activity: 60
Merit: 10
Продолжим дискуссию.
Вобщем что имеем:
1)Антипуловый алгоритм, основанный на подписях владельца кошелька получателя награды в каждой итерации майнинга, вроде бы существует. Spreadcoin, хоть и мудацкий.
2)Процессорный алгоритм для которого даже для видях майнеров нет тоже существует. 1GB-AES и тому подобное.
3)Цель я вижу следующим образом – скрестить п.1 и п.2 (для обеспечения максимальной децентрализации), а также найти решение проблемы длительной угадайки. Иначе говоря, нужно чтобы майнеры получали строго периодическую (хотя и уменьшающуюся) награду вне зависимости от роста сложности. Иначе говоря, нужно воспроизвести систему выплат характерную для работы пулов.
Нужно платить награды шарорешателям – неидеально решившим блок. Записывая их решения в следующий блок, и взимая с них комиссию за монетизацию шар.
Механизм распределения награды:
Вводится понятие «доли трудового участия» для создателя блока он равен -1, для решившего предыдущий блок полностью но не успевшего опубликовать его -0,9,  для нерешившего но подобравшегося близко к решению – 0,8 и.тд. пропорционально степени идеальности решения и вплоть до предельной идеальности принятия шары (установленной раз и навсегда при создании алгоритма)- она должна быть такая чтобы процессор i7 получал награду раз в сутки.
Далее суммируем эти дольки – 1+0,9+0,8+0,7 = 3,4
Делим награду 50 монет на 3,4 = 14,7 монет на единицу доли трудового участия.
Соответственно тот кто имеет коэффициент 0,9 получает 14,7*0,9 = 13,2 и так далее.
Вышеуказанная награда на единицу – 14,7 действует только для следующего блока.
Если блок № 1 решил майнер без шарорешателей и получил 50 монет, то в блоке № 2 создавший блок получит также 50 монет, а шарорешатель допустим с коэффициентом 0,9 получит 45 монет. Всего в блоке будет создано 95 монет.
Но в следующем блоке № 3 будет уже 50/(1+0,9) = 26,3 монет на единицу коэффициента трудового участия.  Таким образом мы стимулируем создателей блоков включать максимальное количество шар в блок.

Сомнения усиливаются от наличия 43000 блоков с пустыми minersignature и hashwholeblock.
А как вы это смотрели, в каком блок-эксплорере и какие номера блоков, хотя бы для примера.





Pages:
Jump to: