Author

Topic: PoW как эстафета, возможно ли? (Read 229 times)

full member
Activity: 322
Merit: 102
Quote
В конце темы автор признал уязвимость своего алгоритма к атакам.

Об этот краеугольный камень разбиваются многие алгоритмы, но на самом деле менее энергозатратные чем PoW алгоритмы, уже существуют, правда с поправкой на то, что "отец" криптовалют BitCoin не отдает своего первенства, толку от этого не очень много, но будем наблюдать. Я например со своей благотворительной платформой решил податься в Stellar, дёшево, "сердито" и не столь энергозатратно.

Вообще, мое субъктивное мнение, что первенство возьмет та криптовалюта, которая сумеет добится "идеального" компромиса, между постулатами крипты и стремлениями регуляторов, только такой компромис позволит крипте по полной влится в реальную экономику - а это как раз то, что сможет сделать эту крипту самой популярной.
legendary
Activity: 2618
Merit: 2304
И возникла у меня мысль, а почему бы нам, не запрягать майнеров всех сразу, а давать им, в совершенно случайном порядке, эдакую эстафету, дающую право попробовать разгадать загадку, но не перебирая весь диапазон хешей, а только часть его

Примерно такую же идею в этом разделе не так давно выдвигал imhoneer:
https://bitcointalksearch.org/topic/--2767711

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



В начале хэша должно быть как можно больше нулей. Чем больше нулей - тем сложнее такой хэш найти.

Здесь нужно отметить, что на самом деле как можно больше нулевых битов должно быть в конце хеша. Дело в том, что в блокчейне Bitcoin данные записываются в Little Endian Byte Order, а не в Big Endian, поэтому согласно этому порядку в хеше младшие байты идут в начале, а старшие байты в конце.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Честно говоря первый раз слышу про extranonce (
В коде битка перебирается nonce, если решение не найдено, меняется timestamp блока.
full member
Activity: 322
Merit: 102
Спасибо большое, что потратили время на разъяснения, я понял что идея утопична Smiley
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange

- именно красивый? или конкретный хеш который как то связан с прошлым блоком? я думал что именно конкретный хеш

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

- вот как раз диапазон из которого может быть выбрано это число я и собирался делить и раздавать), но естественно это не сработает если первая часть из которой будем делать хеш у каждого своя, то и пройтись нужно все таки по всему диапазону подбирая это случайное число.
Да, причем если сделать костыль в виде "все заголовки блока обязаны у всех быть одинаковы пока не найдем решение", то есть нехилый шанс этого решения вообще никогда не найти перебрав всю соль и не получив требуемую сложность ))
full member
Activity: 322
Merit: 102

Quote
Массив данных это заголовок нового блока.
- новый и каждого майнера свой, это я понял

Quote
Ищется красивый хэш этого заголовка

- именно красивый? или конкретный хеш который как то связан с прошлым блоком? я думал что именно конкретный хеш

 
Quote
путем подстановки в заголовок случайного числа.


- вот как раз диапазон из которого может быть выбрано это число я и собирался делить и раздавать), но естественно это не сработает если первая часть из которой будем делать хеш у каждого своя, то и пройтись нужно все таки по всему диапазону подбирая это случайное число.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Пошел учить матчасть, что бы дурные мысли в голову не лезли)

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

Массив данных это заголовок нового блока.
Ищется красивый хэш этого заголовка путем подстановки в заголовок случайного числа.
full member
Activity: 322
Merit: 102
Пошел учить матчасть, что бы дурные мысли в голову не лезли)

Quote
Нет как такового диапазона хешей.
- не те маны курил)) я думал что поиск нужного хеша проходит на основании перебора хешей некоего массива данных, который можно разбить на части и скармливать майнерам частями и поочереди...
legendary
Activity: 3556
Merit: 1100

Хорошо написано, но не более.

Если майнер будет обладать даже мизерной частью мощности сети, он с среднем будет находить блоки пропорционально этой своей части мощности.
т.е.
при 100% - каждый первый блок
при 50% - условно говоря, каждый второй блок
при 0,0001% - условно говоря, каждый десятитысячный блок
(думаю всем понятно, что означает: условно говоря)

Блок у каждого майнера индивидуален. Нет как такового диапазона хешей. Есть диапазоны множества изменяемых параметров в блоке.

Вы запустили один майнер, а я, или кто-то другой, миллион майнеров.
В каком месте и когда в этом случае наступит коммунизм?
full member
Activity: 322
Merit: 102
Всем привет) Собственный блокчейн пока не разрабатываю, моих познаний в этой области на данный момент явно не достаточно, но программерский "МоЗг))" время от времени, нагружает различными фантазиями, которые занимают ресурсы и так перегруженного организма))) Дабы избавится от своих идиотских мыслей, решил опубликовать их здесь, тая непримеримую надежду "а вдруг в этот раз мысля не идиотская))".

Насколько мне хватило моих знаний, алгоритм консенсуса Proof of Work предлагает майнерам , коллективно, всем сразу и без прогулов, от души поработать над разгадыванием некой загадки, которая вполне себе разгадывается перебором хешей. Того же кто окажется самым усердным в своей работе и сумеет первее остальных отгадать поставленную загадку, сделают немного багаче и дадут попробовать немножко власти дав возможность выпустить новый блок. Честные соревнования (как и выборы) хотят все, но не всем дают в таковых поучаствовать, в результате наших соревнований конено же победит сильнейший (привет фермерам) или хитрейший (привет пулам), а остальные просто сожгут вагончик, другой угольку, что бы попыхтеть за общее дело без малейшего шанса на победу. Блин, суровая картинка вышла какая то, надеюся я ни где не ошибься?

Я конечно сам ещё тот трудоголик и прям люблю поработать за "спасибо", но временами как говорил товарищь Сухов)) "За державу обидно".

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

Что бы дал такой алгоритм?

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

А 51% ?

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

Ну вот как то так, что скажете?
Jump to: