Bitcoin Forum
November 05, 2024, 11:06:57 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Анти-пул алгоритм PoW  (Read 18536 times)
Coin-1 (OP)
Legendary
*
Offline Offline

Activity: 2618
Merit: 2304



View Profile
December 22, 2018, 03:57:00 AM
Last edit: July 29, 2019, 03:40:48 AM by Coin-1
Merited by chimk (4), Symmetrick (2)
 #1

Примечание: Основная тема создана в английском разделе Technical Discussion.



Введение

Исходя из описания Bitcoin, технология Blockchain изначально была разработана Сатоши Накамото как децентрализованное решение на базе алгоритма доказательства работы Proof-of-Work. Пользователи системы могут в недоверенном окружении отправлять безопасные платежи без возможности цензурирования транзакций третьими сторонами.

Однако, использование в этой технологии достаточно простых алгоритмов майнинга часто приводит к разработке специализированного оборудования и, как результат, получения некоторыми майнерами многократного превосходства над другими майнерами, не имеющими ASIC. Кроме этого, в такой ситуации майнеры объединяют свои вычислительные мощности в майнинг-пулы, администраторы которых раздают задания по протоколу STRATUM и получают награду за блок, добавленный в блокчейн.

В итоге, отсутствие защиты против создания крупных майнинг-пулов приводит, по сути, к централизации майнинга и к возможности цензурирования транзакций узким кругом людей.



Анти-пул алгоритм PoW - Версия 1.0

Для решения таких проблем предлагается использовать следущий анти-пул алгоритм PoW. Основная идея заключается в том, что каждая итерация майнинга подписывается приватным ключом COINBASE-транзакции. Следует учитывать, что эта транзакция должна иметь только один выход P2PK или P2PKH.

Структура заголовка блока содержит 7 полей:
  • 1) block_version (4 байта)
  • 2) previous_block_header_hash (32 байта)
  • 3) block_timestamp (8 байт)
  • 4) transaction_count (4 байта)
  • 5) merkle_root (32 байта)
  • 6) block_difficulty (8 байт)
  • 7) block_nonce (8 байт)

Затем записывается подпись block_header_hash_sign (64 байта).

Далее в блоке следуют COINBASE-транзакция и остальные транзакции.


Цикл майнинга состоит из 4 этапов:

1) В заголовке блока изменяется число block_nonce (8 байт).

2) Заголовок блока хешируется желательно ASIC-устойчивым или CPU-ONLY алгоритмом.

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

3) Получившийся хеш заголовка блока (32 байта) подписывается приватным ключом (K) COINBASE-транзакции при помощи асимметричного шифра ECDSA secp256k1.

Code:
sign_nonce = mod(random256bit(), N)
R = X of mulPoint(sign_nonce, G)
S = mod(invert(sign_nonce, N) * (block_header_hash + (K * R)), N)

4) В подписи хеша заголовка блока RS (64 байта) проверяется, например, количество младших нулевых битов (LSB числа S). Если это количество меньше таргетированной сложности, то число block_nonce (8 байт) опять изменяется и цикл майнинга повторяется.


Если цикл майнинга успешен, то майнер изменяет в блоке подпись RS block_header_hash_sign (64 байта) и как можно быстрее броадкастит этот смайненный блок в сеть.



Заключение

При такой схеме майнеры будут объединять свои вычислительные мощности, но в границах серверной комнаты или узкой доверенной группы участников, иначе монеты с адреса COINBASE-тракзакции могут быть сразу похищены недоверенным майнером.

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

Если майнеры будут отправлять хеши на подпись майнинг-пулу по сети, то это будет огромный трафик с радикальным снижением эффективности майнинга. Однако, майнеры смогут изменять число sign_nonce (32 байта) и подбирать подпись RS, которая подходит требованиям, асимметричным шифром ECDSA secp256k1 вместо хеширования заголовка блока ASIC-устойчивым алгоритмом.

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

Смотрите также анти-пул алгоритм PoW версии 2.0 в следующем сообщении.

Этот пост был отредактирован 28 июля 2019 года.
Coin-1 (OP)
Legendary
*
Offline Offline

Activity: 2618
Merit: 2304



View Profile
December 22, 2018, 03:57:31 AM
 #2

Зарезервировано.
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
December 22, 2018, 04:27:17 AM
Last edit: December 22, 2018, 04:37:55 AM by bitaps
 #3

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

investgroup
Full Member
***
Offline Offline

Activity: 644
Merit: 135


View Profile
December 22, 2018, 06:58:29 AM
 #4

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

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

Вот тока работать не будет:

1.  пулы и так работают на доверии

2.  пулы нужны, тк иначе владельцы мелких мощностей фактически выпадут в осадок...

3.  как реализовать плавность выплат, как это сегодня делают пулы? (что кстати и облегчает проверку честности пула!)


PS  давайте лучше поразмышляем вот над этой идеей - это бы более кардинально решило как технические проблемы мощности ASIC, так и социальные!..
https://bitcointalk.org/index.php?topic=5088242
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
December 22, 2018, 07:02:43 AM
 #5

1.  пулы и так работают на доверии

Да майнеры доверяют пулам, но не на оборот

В данной модели доверие должно быть со стороны пула майнерам

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

fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
December 22, 2018, 10:47:30 AM
Last edit: December 22, 2018, 05:10:36 PM by fxpc
 #6

Цикл майнинга состоит из 4 этапов:

1) В заголовке блока изменяется число block_nonce (8 байт).

2) Заголовок блока хешируется желательно ASIC-устойчивым или CPU-ONLY алгоритмом.

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

3) Получившийся хеш заголовка блока (32 байта) подписывается приватным ключом (K) COINBASE-транзакции при помощи асимметричного шифра ECDSA secp256k1.

Code:
sign_nonce = mod(random256bit(), N)
R = X of mulPoint(sign_nonce, G)
S = mod(invert(sign_nonce, N) * (block_header_hash + (K * R)), N)

4) В подписи хеша заголовка блока RS (64 байта) проверяется, например, количество младших нулевых битов (LSB числа S). Если это количество меньше таргетированной сложности, то число block_nonce (8 байт) опять изменяется и цикл майнинга повторяется.

Я же тебе писал что block_nonce не нужен, потому что ECDSA secp256k подпись можно и будут перебирать не меняя его. В англоязычном топике смотрю возмущаются тем, что не все участники лотереи получат награду. Клоуны бля.

imhoneer
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 22, 2018, 12:45:53 PM
 #7

Цикл майнинга состоит из 4 этапов:

1) В заголовке блока изменяется число block_nonce (8 байт).

2) Заголовок блока хешируется желательно ASIC-устойчивым или CPU-ONLY алгоритмом.

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

3) Получившийся хеш заголовка блока (32 байта) подписывается приватным ключом (K) COINBASE-транзакции при помощи асимметричного шифра ECDSA secp256k1.

Code:
sign_nonce = mod(random256bit(), N)
R = X of mulPoint(sign_nonce, G)
S = mod(invert(sign_nonce, N) * (block_header_hash + (K * R)), N)

4) В подписи хеша заголовка блока RS (64 байта) проверяется, например, количество младших нулевых битов (LSB числа S). Если это количество меньше таргетированной сложности, то число block_nonce (8 байт) опять изменяется и цикл майнинга повторяется.

Я же тебе писал, что block_nonce не нужен, потому что ECDSA secp256k подпись можно и будут перебирать не меняя его. В англоязычном топике смотрю возмущаются тем, что не все участники лотереи получат награду. Клоуны бля.

Так это будет идея работать или нет, а то я в майнинге не особо понимаю.




         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
December 22, 2018, 01:14:47 PM
 #8

Будет, майнеры будут перебирать не sha256 а ECDSA подписи

amaclin1
Sr. Member
****
Offline Offline

Activity: 924
Merit: 351


View Profile
December 22, 2018, 04:07:18 PM
 #9

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

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

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

В результате мы получили ту же самую архитектуру.

Да, залог должен быть больше награды за блок. Может даже больше двух наград.
Если вы скажете - а вот в биткойне 50 btc награда за блок и цена одного btc 10килобаксов,
никто такой залог не сможет оставить! То я скажу - это как раз и будет централизация.
Те, кто в такую архитектуру пула внесут залог - те будут получать профит. А остальные
нищеброды не смогут никаким образом на этот рынок попасть, так как издержки на содержание
майнинг-ноды они не отобьют.

fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
December 22, 2018, 04:48:33 PM
 #10

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


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

amaclin1
Sr. Member
****
Offline Offline

Activity: 924
Merit: 351


View Profile
December 22, 2018, 05:00:13 PM
Last edit: December 22, 2018, 05:12:52 PM by amaclin1
 #11

Если подпись с адреса выплаты coinbase поместить в sigScript coinbase транзакции, то предложенную инициативу можно реализовать в виде софтфорка к битку. И даже особо не менять текущую картину вещей. И казалось бы бесполезное поле куда сейчас пишут сообщения, становится на свое место как  и положенно. Предлагаю вам переработать идею в этом ключе и можно создавать полноценный BIP для битка.
Теоретически можно. Есть две проблемы. Большая и маленькая. Начну с маленькой.

В scriptSig coinbase-транзакции не так уж много места. Там ограничение на 100 байт, а запихивается
туда уже много что другое. Места для подписи (а это 64 байта) уже нет или впритирку. Это маленькая
проблема. Ещё надо как-то определиться c выходами coinbase-транзакции - их ведь может быть существенно
больше одного. Что толку "палить" приватный ключ, если на адрес этого приватного ключа ничего не посылать?
Это все ещё маленькая проблема.

А большая проблема состоит в том, что пчелы не выступают против мёда пулы не станут голосовать
за антипул-механизм. А никаким другим способом вы софт-форк в битке не проведёте. Майнеры с sha256d
асиками тоже не будут агитировать за такое предложение (голосовать они не могут, так как не имеют для этого
технологической составляющей), потому что в этом случае асик превращается в кучу металла. Он подписывать
не умеет. Так что владельцы васиков тоже будут против.
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
December 22, 2018, 06:25:38 PM
 #12

sigScripte там реально занято только первые 4-6 байт куда пишется высота блока, для предотвращения проблем с транзакциями с одинаковым хешем, что случились на 90к блоков. остальное это подпись пула ну и 2 экстранонса. Так что 64 байта там как раз для подписи найдутся после того как выкинуть весь технически бесполезный хлам оттуда. Выходы коинбейз транзакции можно строго лимитировать. 1 для награды (причем PAY TO PUBKEY) второй для witness  комитмента. Ну и обязательно соотвествие подписи и публичного ключа + подписью покрыть не только хеш блока но и саму коинбейз транзу.  Так что технически можно костылей нагородить скотчем примотать и выкрутиться Smiley

Но вот проблема с владельцами асиков это основная. Но без изменений не будет развития все таки биткоин это не про владельцев  асиков и олигополию из пулов это про децентрализацию. Так что если что-то предпринимать сообществу то надо думать о децентрализации а не асико-владельцах.

investgroup
Full Member
***
Offline Offline

Activity: 644
Merit: 135


View Profile
December 23, 2018, 01:01:38 AM
 #13

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

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


PS  можно даже 2-в-1 замутить - сразу 2 линии в одном блокчейне - в общем стянуть историю битка до какого-то блока + 2 линия транз это с нуля еще один коин...

PPS   плодитесь и размножайтесь, дарю идею Wink)
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
December 23, 2018, 03:24:54 AM
 #14

Форки битка это ерунда все, тут либо надо апгрейдить биток либо делать сайдчейн к битку. Форки это от лукавого.

amaclin1
Sr. Member
****
Offline Offline

Activity: 924
Merit: 351


View Profile
December 23, 2018, 06:13:54 AM
 #15

Форки битка это ерунда все, тут либо надо апгрейдить биток либо делать сайдчейн к битку. Форки это от лукавого.
Теоретически можно. Есть две проблемы. Большая и маленькая. Начну с маленькой.

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

А большая проблема состоит в том, чтобы убедить население пользоваться вашей поделкой.
На фоне 100500 других говнофорков вы затеряетесь, потому как никого не волнует антипул-механизмы,
все ищут какая монета даст больше прибыли в фиате.
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
December 23, 2018, 08:06:58 AM
Merited by chimk (4), neiros (1)
 #16

все ищут какая монета даст больше прибыли в фиате.

Те кто ищут чтобы биток или говнофорк какойнить дал большую прибыль в фиате, люди есть не далекие. Настанут времена и они будут искать какой фиат даст больше прибыли в битке Smiley)

investgroup
Full Member
***
Offline Offline

Activity: 644
Merit: 135


View Profile
December 23, 2018, 10:20:56 AM
 #17

Форки битка это ерунда все, тут либо надо апгрейдить биток либо делать сайдчейн к битку. Форки это от лукавого.
Теоретически можно. Есть две проблемы. Большая и маленькая. Начну с маленькой.

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

во, классная идея - только это не проблема, а решение!


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


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

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


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

PPS  а чтобы уж совсем круто, можно и ОС пересобрать за одно...
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
December 23, 2018, 12:16:18 PM
 #18


Киньте клич переписать сорцы битка на чем-нить более приличном чем Цэ (ну чтобы потом сами могли допиливать его дальше) - к вам и программисты даже потянуться...


Да, надо на хаскеле переписать код битка, тогда точно от желающих программистов отбоя не будет ))

OpenTrade - Open Source Cryptocurrency Exchange
neiros
Legendary
*
Offline Offline

Activity: 3556
Merit: 1100



View Profile WWW
December 23, 2018, 01:23:32 PM
 #19


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





все ищут какая монета даст больше прибыли в фиате.

Те кто ищут чтобы биток или говнофорк какойнить дал большую прибыль в фиате, люди есть не далекие. Настанут времена и они будут искать какой фиат даст больше прибыли в битке Smiley)

На счет битка я бы немного поспорил, но в целом направление мысли очень понравилось. Cool

fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
December 23, 2018, 01:45:30 PM
Last edit: December 23, 2018, 02:39:15 PM by fxpc
 #20

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

Зря ты его путаешь. Мы же с тобой знаем что криптой никто не пользуется, так как трудно даже с большой натяжкой назвать использованием обмен байтов из лохчейна на фиат. Убедить потребителя пользоваться тем что помогает удовлетворить его потребности в принципе не слишком сложно и существует масса вполне действенных техник для упрощения этой задачи. Убедить что он должен платить за то что на каждом углу раздают бесплатно - уже сложнее, но всё ещё реально. А вот сделать что-то с низкой пропускной способностью и прочими ограничениями лохчейна, чтобы он перестал быть бухгалтерской книгой с костылями - неверноятно сложно вплоть до нереально.

Те кто ищут чтобы биток или говнофорк какойнить дал большую прибыль в фиате, люди есть не далекие. Настанут времена и они будут искать какой фиат даст больше прибыли в битке Smiley)

На счет битка я бы немного поспорил, но в целом направление мысли очень понравилось. Cool

Блажен кто верует. Таких фантазёров полный форум, хуй знает чем ты так впечатлился.

Pages: [1] 2 3 »  All
  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!