Bitcoin Forum
December 14, 2024, 09:01:35 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Опастность доминирующего пула.  (Read 1262 times)
gunnar (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
April 02, 2013, 03:58:57 PM
 #1

Здравствуйте, верно ли я понимаю что доминирующий пул(имеющий скажем 40%, но при этом в разы больший любого из остальных участников) может при незначительнйо модификации ПО фактически захватить процесс генерации новых монет.
Для этого необходимо обеспечить приоритет на все транзакции своих участников в пуле и задержку на всех остальных, тогда с большой вероятностью новые блоки будут подверждаться своими, из своего пула, чем новые блоки чужих. И при это вероятность порождения более длиной цепочки блоков станет выше внутри пула, для этого следует минимизировать пинг всех участников пула и ввсести задержки на общение со всеми чужими. И данная модификация является выгодной для всех участников этого пула так как позволит им получать больше вознаграждения.
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 02, 2013, 04:16:46 PM
Last edit: April 02, 2013, 04:49:59 PM by Storan
 #2

Упрощая, можно сказать что генерация монет проиходит во время "верификации" блока, и от количества/объёма транзакций внутри него никак не зависит.
То есть генерацию с 40% захватить нереально.

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

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

Да, и только при условии эффективного "переключения" цепочки, вы эту альтернативную генерацию подавляете. Но мощности нужны таковы, чтобы почти гарантировано, обгонять и альтернативные цепочки из 2-4 блоков.

gunnar (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
April 02, 2013, 05:45:24 PM
 #3

я сейчас говорю не о полном захвате, а о получении доли сгенеренных блоков большей чем доля выч. мощности.
Примерно так:
в пуле сгенерился новый блок
почти одновременно новый блок сгенерился вне пула
ВСЕ в пуле подхватывают генерацию блоков далее от своего блока игнорируя чужой
поскольку в пуле 40% мошности есть вероятность что второй такой же блок появится внутри пула немного раньше чем на альтернативный блок вне пула.(поскольку в пуле все общаются с минимальным пингом а на все запросы вне пула отвечают скажем с 5 минутной задержкой, игнорируя задержку только в том случае если сгенерили свой 2-3 покрывающий блок).
То есть генерация в пуле может быть приоритетна к своим блокам что позволит увеличить долю генеренных блоков выше доли от общей выч мощности.

или коротко не проводим валидацию чужих блоков несколько минут при этом мгновенно рассылая на все другие майнеры свои блоки по мере генерации. обмен информации внутри пула будет происходит максимально быстро и "покрывать" свои блоки искуственно затягивая подверждение и генерацию блоков на чужих цепочках.
Думаю для этого не обязательно владеть 51% мощности, достаточно быть самым крупным пулом и чтобы внутри него пинг у всех участников был минимален.
Если это не так прошу ответить максимально подробно почему по такой схеме имея 40% выч. мощности всей сети нельзя получить скажем 44% награды от всех блоков в сутки. Хотя бы просто за счет того что свои блоки будут максимально быстро подтверждатся и максимально быстро посылатся далее а чужие будут затягиватся.

при наличии использования СВОЕГО модифицированного ПО.
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 02, 2013, 06:42:18 PM
 #4

время генерации блока несопоставимо с задержками пинга.

А чтобы парализовывать "общение" внутри сети - нужно не 40% вычислительных мощностей майнинга контролировать, а 60% (условно) узлов сети. р2р до биткоина придумали, и как децентрализованая и устойчивая система оно себя закоремендовало гораздо раньше.
Т.е. как говаривал ВВП мухи отдельно, котлеты отдельно.
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
April 03, 2013, 04:16:15 PM
 #5

Настоятельно рекомендую к прочтению http://btcsec.com/double-spending/

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 03, 2013, 11:37:26 PM
 #6

Показывайте ошибку в методике, иначе мы ещё увидим войны пулов  Shocked

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

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

на псевдокоде реализация выглядит так
Code:
	q = 0.55; // (% мощности которую мы контролируем, соответсвенно и шанс появления блока у нас)
alien_chain = 0;
alien_block = 0;
friend_chain = 0;
friend_block = 0;
for (;;){
if (rand() < (1.0-q)/600){
alien_chain++;
if (alien_chain > 4){
alien_block += alien_chain;
alien_chain = 0;
friend_chain = 0;
}
}
if (rand() < q/600){
friend_chain++
if (friend_chain > alien_chain){
friend_block += friend_chain;
friend_chain = 0;
alien_chain = 0;
}
}
}
// friend_block, alien_block - число намайненных блоков своими, и соответсвенно всё-таки доставшиеся чужакам
Проверка на улов блока раз в секунду с уменьшеной вероятностью 1/600, выдаёт вполне правдоподобные результаты при честной игре. имеешь 80% мощности (q=0.8 ), получаешь ~800 блоков из 1000.

Но вот тестируем включение мухлежа:
Code:
реальная	получаемый	повышение
мощность % блоков дохода в:
40,0% 31,0% 0,775
50,0% 49,0% 0,98
55,0% 60,0% 1,09(09)
60,0% 70,0% 1,16(6)
66,7% 82,0% 1,23
75,0% 93,0% 1,24
80,0% 97,0% 1,2125
90,0% 99,9% 1,1094(4)
Правда стоит отметить, что число своих генерируемых блоков естественно не увеличивается, в краткосрочной перспективе. Просто определённая часть работы "конкурентов" пропадает, и для системы это выглядит как снижение генерирующих мощностей
Но если такой прессинг будет долгосрочным (т.е. дольше чем один пересчёт мощности), то соотвественно искуственно повышенная сложность позволит получать действительно "лишние" блоки и награду за них.
При мощностях ниже 50%, таким мухлежом естественно заниматься невыгодно, но из этого есть ещё одно следствие - и противостоять нечесному большинству, меньшинство по этому алгоритму не сможет. Продолжать свою цепочку из 2-3 блоков, не переключаясь на цепочку монополии, которая "незаконно" обогнала - гарантировано терять ещё больше блоков.
FAN
Legendary
*
Offline Offline

Activity: 2730
Merit: 1021



View Profile
April 05, 2013, 04:15:29 AM
 #7

а тем временем гильда имеет 50%, пора их закрывать Smiley

██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
[
Vicus
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
April 05, 2013, 04:22:08 AM
 #8

а тем временем гильда имеет 50%, пора их закрывать Smiley
Кто ж виноват, что у них такие стабильные сервера...
blackbird
Full Member
***
Offline Offline

Activity: 199
Merit: 102


View Profile
April 05, 2013, 11:22:27 AM
 #9

а тем временем гильда имеет 50%, пора их закрывать Smiley
Кто ж виноват, что у них такие стабильные сервера...

Да, надо как-то привлечь к этому внимание майнеров, а то так и до 51 не далеко...к слову сейчас у нах 47%, если верить блокчейну.
bOberr
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
April 05, 2013, 07:35:22 PM
 #10

К слову, некоторые пулы используют при майнинге протоколы, не позволяющие им манипулировать содержимым блоков. То есть гадости, описанные в топике не провернуть без согласия всех, кто майнит на этом пуле, одного желания администратора недостаточно.
https://bitcointalk.org/index.php?topic=152250.0
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 05, 2013, 08:52:12 PM
Last edit: April 05, 2013, 09:50:35 PM by Storan
 #11

Повторюсь - манипулировать содержимым они не будут. Они генерируют абсолютно легальные с точки зрения семантики/синтаксиса блоки, которые являются просто rophan'aми. Но, пользуясь тем что в среднем их скорость генерации выше чем таковая у остальной сети - часто их цепочка будет становится основной, а до этого существовавший кусок из 1-3 блоков - orphan'ом.

И така-да, майнинг - это давно уже бизнес, причём бизнес для многих серьёзный по деньгам, и самое главное - бизнес анонимный. Дилемма то будет: получить 15% - 20% к доходу, или жалеть неудачников с мощностями меньше 40%...

Вот месяц назад разделилась цепочка 0.7 <->  0.8 - много вы видели тем от "победителей" в стиле, давайте подумаем о том как награды за блоки по-справедливости разделить, после анулирования "новоправильной" цепи?)
bOberr
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
April 06, 2013, 08:26:11 AM
 #12

Повторюсь - манипулировать содержимым они не будут. Они генерируют абсолютно легальные с точки зрения семантики/синтаксиса блоки, которые являются просто rophan'aми. Но, пользуясь тем что в среднем их скорость генерации выше чем таковая у остальной сети - часто их цепочка будет становится основной, а до этого существовавший кусок из 1-3 блоков - orphan'ом.
При использовании современного протокола майнинга содержимое блока определяется майнерами, а не пулом. Обычная логика майнеров - нужно следовать за самой длинной цепочкой. Пул, может, и захочет, чтобы майнеры работали над "его" блоками, иногда превращая "чужие" блоки в orphan'ы, но навязать такое поведение не сможет (без согласия майнеров).
Storan
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
April 06, 2013, 10:51:56 AM
Last edit: April 06, 2013, 11:03:16 AM by Storan
 #13

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

Что будет с этой сетью, если запустить зловреда, который по этому протоколу будет рассылать инфу о существовании блоков на 2-3 № выше, чем реально рассчитывает сеть. Майнеры объявят забастовку своим пулам, считая что тех их orphan'ы заставляют считать?


============
Развивая предыдущий пост - "награда" получаемая нечестным пулом, в этой схеме - распределяется-то между всеми его майнерами.
Это не так, что за время Х майнили 100 блоков, админ включил хак, и в дополнение к 100 блокам для майнеров, по 15 блоков стало падать ему в карман; а наоборот - за время Х майнили 100 блоков, админ включил хак, стали майнить 115 блоков, распределяемых по-прежнему между всеми майнерами. Администрация имеет только соответсвующее увеличение с комиссии. Т.е. выступает эдакими "робин гадами".
И вопрос тут не только, сможет ли программа-майнер определить такую подтасовку у этого пула, а захочет ли пользователь-майнер данного пула этому противодействовать.
FAN
Legendary
*
Offline Offline

Activity: 2730
Merit: 1021



View Profile
April 06, 2013, 11:58:10 AM
 #14

пора тушить доминирующий пул пора пока не поздно Smiley

██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
[
rPman
Legendary
*
Offline Offline

Activity: 1120
Merit: 1069


View Profile WWW
April 06, 2013, 03:49:22 PM
 #15

Вот месяц назад разделилась цепочка 0.7 <->  0.8 - много вы видели тем от "победителей" в стиле, давайте подумаем о том как награды за блоки по-справедливости разделить, после анулирования "новоправильной" цепи?)
Пулы, выплачивающие награды по схеме PPS платят майнерам вне зависимости существования таких orphan блоков, по уму это пока самый честный способ выплат для майнеров (но почти самый неудобный для пулов), есть конечно ньюанс, PPS не предполагает выплату майнерам комиссий с транзакций... вот если пул будет платить PPS + TXFee Proporcional (а кто-нибудь так делает?), вот тогда будет совсем честно.

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

По уму, майнеру нет никаких проблем подключиться к сети bitcoin самостоятельно и собирать информацию о текущих блоках.

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

Здесь не может находиться ваша реклама Smiley
Protect a future of bitcoin, use p2pool
Donation in BTC: 19fv5yYtfWZ9jQNjx2ncmu1TTrvg5CczZe
z0rr0
Sr. Member
****
Offline Offline

Activity: 303
Merit: 250


View Profile
April 06, 2013, 06:08:27 PM
 #16

Администрация самого мощного на данный момент пула BTCguild осознает опасность приближения к 51% и собирается принимать ограничительные меры при росте мощности пула - такие как ограничение в регистрации новых пользователей.
FAN
Legendary
*
Offline Offline

Activity: 2730
Merit: 1021



View Profile
April 06, 2013, 07:39:32 PM
 #17

значит пойдут перепродажи старых акков Smiley

██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
[
Pages: [1]
  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!