Author

Topic: В каком блокчейне - вот такой POW ? (Read 375 times)

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

По-моему, в Вашем утверждении имеется противоречие. "Выполнение работы" подразумевает некую сложность для решения математической задачи, которое и является в данном случае работой.

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

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

В общем, я считаю подобную схему неприменимой для криптовалют, основанных на базе алгоритма Proof-of-Work.
jr. member
Activity: 131
Merit: 4


В заголовке блока есть меркль-хэш транзакций этого блока.
То есть мы сперва формируем список того, над чем работаем, а потом начинаем работу по существу.
Делать работу "просто так ниачём", а потом за нее получить какое-то вознаграждение? На хуй, на хуй, к терапевту!

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

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

А вот смысл, что на майнинг крипты нужно тратить ресурсы - он сам по себе ценен.  И вполне реально (теоретически) обеспечить защиту главной и честной ветки и хэшами блоков без каких либо требований к сложности их нахождения. Но вот право захэшировать предоставляетстя только стоящим в очереди, а очередь формируется через валидаторов, которые проверяют выполнение работы
sr. member
Activity: 770
Merit: 305
просто дает право подписать любой блок в очереди?
Нет. Такой хуйни еще не придумали.
В заголовке блока есть меркль-хэш транзакций этого блока.
То есть мы сперва формируем список того, над чем работаем, а потом начинаем работу по существу.
Делать работу "просто так ниачём", а потом за нее получить какое-то вознаграждение? На хуй, на хуй, к терапевту!
legendary
Activity: 2314
Merit: 2300
При этом работа выполняется не над содержимым блока.

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

Quote
Смысл тогда устраивать соревновательные раунды: "кто вперед сделает" ?  

Конкуренция среди майнеров заключается не в том: "кто вперед сделает", а в в том: "кто сделает больше блоков в месяц". Если Петя владеет 80% мощности сети, а Вася - 20%, то Петя в среднем будет находить в 4 раза больше блоков чем Вася. То есть, количество найденных блоков в единицу времени пропорционально доле майнера в общей мощности. Таким образом, вознаграждение от выполненной работы распределяется пропорционально вкладу в общую мощность. По-моему, всё справедливо без всяких очередей.

jr. member
Activity: 131
Merit: 4
Например неужели нельзя как то надежно фиксировать в блоках, что он захеширован именно майнером из единственно правильной очереди, в которую попадает через валидацию (процесс проверки выполнения работы)  ?

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

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

!!!  ага, вот уже ближе.  Так как все таки децентрализация - это круто и один из главных смыслов, то конечно интересно продумать-создать схему "децентрализованного валидатора"  собственно POW битка практически и является уже вариантом реализации такого "децентрализованного валидатора", но наверняка же не единственным.

И особое спасибо жесткой критике от знающих в этом топике.  Очень наглядно показали мне, что если что то в этой теме хочется получить серьезное, надо глубоко погружаться в тему, а не на уровне "обзорных описаний технологий"
jr. member
Activity: 131
Merit: 4

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

Спасибо!

Вот какую "проблему" пытаюсь решить:  Есть "работа",  объем выполнения работы которой также можно доказать "математически".  При этом работа выполняется не над содержимым блока. Смысл тогда устраивать соревновательные раунды: "кто вперед сделает" ?  Почему не найти тогда способ "выстраивания в очередь на формирование цепи и получение награды тех, кто работу выполнил? " ?

При этом конечно же хочется получить честный POW, когда "крипта" не просто "рисуется" а является продуктом, на генерацию которого действительно расходуются ресурсы и тем самым формируется какое то рациональное основание (обоснование) стоимости-ценности.
legendary
Activity: 2422
Merit: 2166
Например неужели нельзя как то надежно фиксировать в блоках, что он захеширован именно майнером из единственно правильной очереди, в которую попадает через валидацию (процесс проверки выполнения работы)  ?

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

Описанную Вами схему можно реализовать, но для этого потребуется централизованный валидатор, с которым будут контактировать все майнеры и который будет согласно вычисляемой очерёдности давать разрешение на подпись и добавление блока в реестр транзакций, исходя из затраченных ресурсов и доказуемо проделанной ими работы.
legendary
Activity: 2314
Merit: 2300
Поэтому в приватных блокчейнах скорость то формирования блоков на порядки больше чем в пабликах - там не надо тратиться на поиск "красивого" хэша.  (Или опять тут прогнал я? )

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

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

Вы исходите из ошибочного представления о том, что если майнер Петя нашёл подходящий хеш, то вся работа майнера Васи до момента нахождения хеша Петей пошла коту под хвост. А ведь это не так. Событие нахождения хеша Петей никак не влияет на вероятность нахождения подходящего хеша Васей. Поэтому пытаетесь придумать какие-то обходные пути в виде очереди. А зачем? Какую проблему вы пытаетесь решить таким образом? 
jr. member
Activity: 131
Merit: 4
В битке блоки содержат "красивые хэши" предыдущих блоков.

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

Спасибо за эмоциональное и неравнодушное участие в теме!   

Как раз и хочется понять, где "хуйня" Smiley

давай так, я понимаю тему на очень конечно профанском уровне, но вот смотри.

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

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

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

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

Ты бы сначала узнал как там есть, прежде чем свои "инновации" впаривать. Ничего в PoS не определяется, те кто хочет ищут "красивый хеш" многократно хешируя хеши своих выходов с заголовками нового блока. Чем больше монет на твоём выходе, тем больше раз его хеш можно перехешировать для того чтобы подставить в заголовки нового блока, то есть твой хешрейт это целое количество монет на всех твоих выходах.
jr. member
Activity: 131
Merit: 4

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

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

Но я говорю про другой POW.  В битке блоки содержат "красивые хэши" предыдущих блоков.  Вот сама "красивость" - нужна лишь для определения победителя в борьбе за право блок в цепочку вставить и награду получить.  Допустим нашли "математический способ" доказать другой тип работы - ну вот предложены были приседания Smiley
Тогда совершенно необязательно соревноваться, кто первый присядет 100 раз.  Есть очередь из транзакций, они пакуются в блоки, блоки встают в очередь на валидацию и хэширование (без всякого поиска красивого хэша, просто хэшится также первым в очереди, кто уже сделал работу, присел 100 раз).

Похожая схема вообще то могла бы быть реализована в POS.  Там также могла бы формироваться очередь "валидаторов-майнеров" (может там так и есть?)  Там же нет такого, что каждый "раунд" случайно на основе суммы владения определяется тот, кто вставит блок в цепочку?
legendary
Activity: 2422
Merit: 2166
Правда, думал что на практике, это уже в каком то блокчейне внедрено.  И основная фишка - это то, что "работа не пропадает" а всегда будет вознаграждена.  То, что Вам бросилось в глаза - как это очередь будет выглядеть для "майнеров" с разным или кардинально разным "хешрейтом" - это вообще то не главное совсем, да и вполне логично что с меньшим хэшрейтом будут меньшее число раз в очередь за наградой попадать.

В общем-то, схема, которую выше описал kzv, является обычным PoW (доказательством работы), реализованным в Bitcoin ещё в самом начале зарождения криптовалют. У Вас же, я так понимаю, блокчейн будет являться основой для другого реестра транзакций, в котором блоки будут подписываться, допустим, приватным ключом COINBASE-транзакции блока, уже добавленного в основной блокчейн.

Проделанная работа по поиску подходящего хеша, на которую затрачены ресурсы, может сгореть и пропасть в никуда, если определённому неудачливому майнеру, генерирующему достаточное (по сравнению с другими майнерами) количество хешей, просто и банально в течение длительного времени не будет везти с созданием нового блока и добавлением его в блокчейн. Поэтому с точки зрения теории вероятности всё написано и вычислено верно, но на практике так случается не всегда.
jr. member
Activity: 131
Merit: 4
Вася в очередь на то, чтобы блок из очереди блоков захешировать и награду получить - попадет через 100 минут
Петя в эту очередь будет мгновенно попадать, но правда после первого раза, второй или какой раз он в эту очередь уже попадет после тех, кто уже в очереди
Дима в очередь попадет через неделю (если к тому времени не увеличится требование для работы, достаточной для попадания в очередь)

Ну хорошо. Допустим три майнера.
1. Вася, Петя и Дима начинают приседать. Первым в очередь пустят суперскоростного Петю. Петя получает награду.
2. Вася, Петя и Дима продолжают приседать. Петя опять приседает быстрее всех. Петя получает награду.
...
Прошло 100 минут.
3. Вася, Петя и Дима продолжают приседать. Васю наконец пустили в очередь. Вася получает награду.
Дальше опять все награды Пете, а каждуе 100 минут - Васе.
...
Прошла неделя
4. Вася, Петя и Дима продолжают приседать. Диму наконец пустили в очередь. Дима получает награду.
Дальше опять по кругу.

Правильно я понял вашу идею?

В общем, да.  Спасибо что вникли Smiley   Правда, думал что на практике, это уже в каком то блокчейне внедрено.  И основная фишка - это то, что "работа не пропадает" а всегда будет вознаграждена.  То, что Вам бросилось в глаза - как это очередь будет выглядеть для "майнеров" с разным или кардинально разным "хешрейтом" - это вообще то не главное совсем, да и вполне логично что с меньшим хэшрейтом будут меньшее число раз в очередь за наградой попадать.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Вася в очередь на то, чтобы блок из очереди блоков захешировать и награду получить - попадет через 100 минут
Петя в эту очередь будет мгновенно попадать, но правда после первого раза, второй или какой раз он в эту очередь уже попадет после тех, кто уже в очереди
Дима в очередь попадет через неделю (если к тому времени не увеличится требование для работы, достаточной для попадания в очередь)

Ну хорошо. Допустим три майнера.
1. Вася, Петя и Дима начинают приседать. Первым в очередь пустят суперскоростного Петю. Петя получает награду.
2. Вася, Петя и Дима продолжают приседать. Петя опять приседает быстрее всех. Петя получает награду.
...
Прошло 100 минут.
3. Вася, Петя и Дима продолжают приседать. Васю наконец пустили в очередь. Вася получает награду.
Дальше опять все награды Пете, а каждуе 100 минут - Васе.
...
Прошла неделя
4. Вася, Петя и Дима продолжают приседать. Диму наконец пустили в очередь. Дима получает награду.
Дальше опять по кругу.

Правильно я понял вашу идею?
jr. member
Activity: 131
Merit: 4
в данном (интересном мне) случае блоки не ищутся, они формируются транзакциями, а потом просто на них напускается хеширование хоть "смартфоном", так как сама работа - не в поиске "хэша с нужным кол-вом" ведущих нулей...  

"Тут помню, тут не помню... Так не бывает!" (с)
Если вы говорите про POW, значит вы собираетесь выполнять работу. Как эту работу доказывать (нулями, единицами, рублями, золотом и т.д) - вопрос вторичный.

как присел 100 раз - имеешь право в цепочку блоков добавить очередной блок и получить вознаграждение.  

Ну вот я и говорю. Допустим при ваших условиях (сложность = 100 приседаний), в очереди три майнера

Майнер Вася имеет 1 мегахэш (умеет делать работу = 1 приседание в минуту)
Майнер Петя имеет 1 терахэш (умеет делать работу = 1 000 000 приседаний в минуту)
Майнер Дима имеет 1 килохэш (умеет делать работу = 0.001 приседаний в минуту)

Блок 1 Вася найдет за 100 минут
Блок 2 Петя найдет мгновенно
Блок 3 Дима будет искать неделю.



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

"Тут помню, тут не помню... Так не бывает!" (с)
Если вы говорите про POW, значит вы собираетесь выполнять работу. Как эту работу доказывать (нулями, единицами, рублями, золотом и т.д) - вопрос вторичный.

как присел 100 раз - имеешь право в цепочку блоков добавить очередной блок и получить вознаграждение. 

Ну вот я и говорю. Допустим при ваших условиях (сложность = 100 приседаний), в очереди три майнера

Майнер Вася имеет 1 мегахэш (умеет делать работу = 1 приседание в минуту)
Майнер Петя имеет 1 терахэш (умеет делать работу = 1 000 000 приседаний в минуту)
Майнер Дима имеет 1 килохэш (умеет делать работу = 0.001 приседаний в минуту)

Блок 1 Вася найдет за 100 минут
Блок 2 Петя найдет мгновенно
Блок 3 Дима будет искать неделю.

jr. member
Activity: 131
Merit: 4
выстраивать в очередь майнеров, который будут формировать блоки согласно этой очереди?

Как вы себе это представляете?
Майнер Вася имеет 1 мегахэш (совершает работу = 1 000 000 приседаний в минуту)
Майнер Петя имеет 1 терахэш (совершает работу = 1 000 000 000 000 приседаний в минуту)
Майнер Дима имеет 1 килохэш (совершает работу = 1 000 приседаний в минуту)

Допустим сложность = 10 000 000 приседаний терахешей
Поставим этих майнеров в очередь и что дальше?
Блок 1 нашел Вася за 10 минут
Блок 2 нашел Петя мгновенно
Блок 3 будет искать Петя одну неделю.



в данном (интересном мне) случае блоки не ищутся, они формируются транзакциями, а потом просто на них напускается хеширование хоть "смартфоном", так как сама работа - не в поиске "хэша с нужным кол-вом" ведущих нулей...  Ну допустим, есть возможность фиксить точное кол-во приседаний Smiley  и как присел 100 раз - имеешь право в цепочку блоков добавить очередной блок и получить вознаграждение.  И вот все "присевшие 100 раз" помещаются в очередь... как только очередь стала сильно длинной,  начинаем её размер корректировать увеличением необходимого кол-ва "приседаний"
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
выстраивать в очередь майнеров, который будут формировать блоки согласно этой очереди?

Как вы себе это представляете?
Майнер Вася имеет 1 мегахэш (совершает работу = 1 000 000 приседаний в минуту)
Майнер Петя имеет 1 терахэш (совершает работу = 1 000 000 000 000 приседаний в минуту)
Майнер Дима имеет 1 килохэш (совершает работу = 1 000 приседаний в минуту)

Допустим сложность = 10 000 000 приседаний терахешей
Поставим этих майнеров в очередь и что дальше?
Блок 1 нашел Вася за 10 минут
Блок 2 нашел Петя мгновенно
Блок 3 будет искать Петя одну неделю.

jr. member
Activity: 131
Merit: 4
Есть ли вариант реализации POW  (доказательство работы) при котором доказательство сделанной работы не связано с одним, текущим блоком, который надо подписать (как в биткойне) и просто дает право подписать любой блок в очереди?

В Биткойне нет у блоков никаких подписей.

Спасибо за справедливое замечание.  Нахождение хэша конечно называть словом "подписать" совершенно неправильно.

Тогда переформулирую вопрос.

Есть ли вариант реализации POW  (доказательство работы) при котором доказательство сделанной работы не связано с одним, текущим блоком, хэш с определенным числом ведущих нулей которого нужно найти (как в биткойне) и следовательно это доказательство просто позволяет выстраивать в очередь майнеров, который будут формировать блоки согласно этой очереди?
legendary
Activity: 2314
Merit: 2300
Есть ли вариант реализации POW  (доказательство работы) при котором доказательство сделанной работы не связано с одним, текущим блоком, который надо подписать (как в биткойне) и просто дает право подписать любой блок в очереди?

В Биткойне нет у блоков никаких подписей.
jr. member
Activity: 131
Merit: 4
Подскажите.

Есть ли вариант реализации POW  (доказательство работы) при котором доказательство сделанной работы не связано с одним, текущим блоком, который надо подписать (как в биткойне) и просто дает право подписать любой блок в очереди?

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

Есть ли уже реализованное такое?
Или в самой идеи есть какая то сложность или скрытая (от меня в данном случае Smiley Smiley Smiley ) абсурдность и ошибочность?

Jump to: