Pages:
Author

Topic: Атака 51%. Почему бы и да? - page 2. (Read 4066 times)

Xtc
legendary
Activity: 1973
Merit: 1028
;u
October 13, 2016, 04:03:51 PM
#36
Побочным явлением будет просадка курса и массовый уход майнеров, так как никому не будет охота жечь электричество
и получать меньше денег, чем потрачено. И пенсионные накопления пострадают, так как бетховены вы покупали по 600
баксов за штуку, а продать сможете (если сможете) по 10. Не лучше ли в баксах хранить?
Всё так для форков, но не для биткойна Wink
legendary
Activity: 1260
Merit: 1019
October 13, 2016, 03:26:04 PM
#35
Ну хорошо, а как насчет такой проверки?
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L3534
Это не то, что ты думаешь.
Таймстамп блока не может быть меньше медианного значения нескольких предыдущих блоков.
(Но вообще говоря блок N + 1 может иметь таймстамп меньше чем блок N - не у всех нод часы
синхронизированы по атомному времени, да и процесс перебора nonce не мгновенный)

То есть сравнивается не с текущим временем, а с записанным в уже проверенных блоках.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
October 13, 2016, 02:53:12 PM
#34
Скорее уж вот это:
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L5796
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L5961

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

Ну хорошо, а как насчет такой проверки?
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L3534
legendary
Activity: 1260
Merit: 1019
October 13, 2016, 09:25:29 AM
#33
Скорее уж вот это:
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L5796
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L5961

Дальше идем смотреть что делает метод ProcessNewBlock
который в свою очередь вызывает ActivateBestChain
На этот код мне больно смотреть - у меня другой стиль программирования,
поэтому комментировать не буду. Ищите и отлаживайте сами. Простите.
Я чем мог - помог, но не заставляйте меня объяснять этот код построчно.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
October 13, 2016, 09:08:51 AM
#32

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


Вот этот код? https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L5445
legendary
Activity: 1260
Merit: 1019
October 13, 2016, 08:36:15 AM
#31
Реорганизация проходит незаметно, потому что пиры строят одновременно две цепочки.
Они их строят до тех пор, пока для обоих блоки находятся одновременно. Как только одна
цепочка становится длиннее, об другой сразу забывают.
Если кто-то присылает пиру блоки для цепочки, которую пир не строит, то пир эти блоки не принимает.
Принимает. Куда ж он денется? Иначе бы сеть сплитилась постоянно.

И что значит "присылает пиру блоки для цепочки, которую пир не строит"?
Вот есть у тебя нода. На ней блоки идут 0, 1, 2,.... 434150, 434151, 434152
И тут тебе присылают блок который тоже 434150+, только другой, не такой как у тебя.
Причем валидный, то есть оба из них честно построены от одного и того же блока 434149
Твои действия?
Ты можешь считать что твоя цепочка является mainchain, но гарантий этому у тебя нет.
Так что клиент акцептирует у себя этот блок и хранит. Пусть даже не записывает в базу, но хранит.
(Надо смотреть по коду, я не помню точно где это в коде)
Потому что ему могут тут же прийти блоки 434151+, 434152+, 434153+, 434154+ и он в этом случае
сделает реорганизацию.

Ты путаешь майнинг и просто поддержку цепи. Честный майнинг происходит от последнего блока в основной цепи.
Но это никак не запрещает реорганизовывать основную цепочку на любую глубину в прошлое.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
October 13, 2016, 07:43:47 AM
#30
Реорганизация в 1 блок происходит у части клиентов каждый раз, когда им приходится орфанить
блок. Орфаны раз в сутки пролетают как правило. Так что реорганизация проходит незаметно.
Никто никаких реиндеков не делает.

Реорганизация проходит незаметно, потому что пиры строят одновременно две цепочки. Они их строят до тех пор, пока для обоих блоки находятся одновременно. Как только одна цепочка становится длиннее, об другой сразу забывают.
Если кто-то присылает пиру блоки для цепочки, которую пир не строит, то пир эти блоки не принимает.
legendary
Activity: 1260
Merit: 1019
October 13, 2016, 07:33:44 AM
#29
Ну в теории вроде все верно, на практике я пробовал в тестовой сети запустить параллельно
двух клиентов, которые предварительно намайнили каждый свою цепочку. Итог был печален:
они друг друга забанили и продолжали майнить каждый свое...
Это у тебя глюк какой-то. То ли что-то ты неправильно сделал, то ли неправильно понял.
По идее они должны были оба переключиться на одну цепочку, как только одна из них
стала бы существенно сложнее другой. Может это связано с особенностями расчета сложности
в тестовой сети или глюками если в сети всего две ноды.

Quote
Так что придется либо всему миру либо Исландии сделать реиндекс в таком случае.
Это шутка, да?
Реорганизация в 1 блок происходит у части клиентов каждый раз, когда им приходится орфанить
блок. Орфаны раз в сутки пролетают как правило. Так что реорганизация проходит незаметно.
Никто никаких реиндеков не делает.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
October 13, 2016, 07:25:24 AM
#28
Quote
Иначе представьте себе - какой-нибудь Кипр или Исландия отваливаются от интернета на 1 час.
Исландская нода за это время майнит 2 блока, а весь остальной мир шесть.
Исландские блоки расходятся по всем исландским клиентам.
Потом связь восстанавливается.
Все исландские ноды обязаны перейти на более длинную цепочку из 6 блоков, а свою из двух блоков заорфанить

Ну в теории вроде все верно, на практике я пробовал в тестовой сети запустить параллельно двух клиентов, которые предварительно намайнили каждый свою цепочку. Итог был печален: они друг друга забанили и продолжали майнить каждый свое...
Так что придется либо всему миру либо Исландии сделать реиндекс в таком случае.
legendary
Activity: 1260
Merit: 1019
October 13, 2016, 04:46:28 AM
#27
Я так понимаю, что при таком сценарии сразу будет виден отвал большого процента
майнинговых мощностей от текущей цепочки с соответствующим уменьшением сложности?
Отвал мощности - да.
Уменьшение сложности - не обязательно, ведь пересчет сложности происходит раз в две недели.
Пул, который "встает на темную сторону" (или несколько пулов) могут до последнего момента
вести себя "честно". Потом в какой-то момент начинают майнить альтернативную цепочку блоков
и через несколько часов её публикуют. В эти несколько часов "люфта" хэшрейт сети падает в два раза.
В целом - это не так-то просто заметить, ведь флуктации бывают.
Кто, как и когда это проделает - я не знаю.
Я лишь уверен, что относительно скоро это кто-то провернет.
legendary
Activity: 2016
Merit: 1118
October 13, 2016, 04:30:43 AM
#26
Quote
А если серьезно, то единственный реальный сценарий атаки 51 это строить альтернативную цепочку СРАЗУ после своей транзакции и при этом не держать свои блоки в тайне, а отдавать их в сеть. Тогда НЕКОТОРЫЕ пиры тоже будут строить одновременно две цепочки до тех пор, пока ветка атакующего не станет длиннее.
Бред. Никто не строит одновременно две цепочки. Это крипто-шизофрения какая-то. Smiley
Правильный сценарий атаки я описал.

Я так понимаю, что при таком сценарии сразу будет виден отвал большого процента майнинговых мощностей от текущей цепочки с соответствующим уменьшением сложности?
legendary
Activity: 1260
Merit: 1019
October 13, 2016, 01:53:59 AM
#25
amaclin ты не прав.
1. В коде битка есть чекпоинты. Последний датируется 9 апреля 2014 года. Транзакции которые были раньше уже никогда не пропадут из блокчейна.
1) Для успешной и профитной атаки-51 не нужно переписывать блокчейн с 2014 года.
Надо переписать за несколько часов, ну максимум за несколько дней.
2) Чекпойнты не для этого в коде битка. Биткойн не проверяет транзакции (я сейчас точно не могу сказать, не помню)
до последнего чекпойнта при начальной синхронизации блокчейна, чтобы не заниматься пустой работой и сэкономить
время пользователю. Гипотетически построить альтернативную цепочку можно и от генезис-блока и при большей
сложности клиент её схавает.

Quote
2. Синхронизированные пиры принимают только те блоки, внутри которых есть правильный хэш предыдущего блока. Если кто-то упорно начнет присылать неправильные блоки (из альтернативной цепочки), то его пошлют нахуй и вдобавок забанят по IP.
В альтернативной цепочке это правило будет выполняться.
Вы про орфан-блоки знаете? Орфан-блок - это альтернативная цепочка из одного блока.
А атака-51 - это публикация альтернативной цепочки из N блоков причем сложность этой альтернативной
ветки должна быть больше, чтобы произошел переход.

Quote
Так что у построившего альтернативную цепочку одна надежда - на то, что его цепочку примут новые пиры когда начнут синхронизацию причем среди таких пиров должна оказаться нужная ему биржа ))
Нет-нет. Тут вы ошибаетесь.
Вспомните, почему сервисы требуют 3 или 6 подтверждений, а не одно?
Потому что любая глубина цепи может быть переписана.
Формально блоки с вашего диска никуда не денутся, просто клиент перейдет на альтернативную цепь.

Quote
А если серьезно, то единственный реальный сценарий атаки 51 это строить альтернативную цепочку СРАЗУ после своей транзакции и при этом не держать свои блоки в тайне, а отдавать их в сеть. Тогда НЕКОТОРЫЕ пиры тоже будут строить одновременно две цепочки до тех пор, пока ветка атакующего не станет длиннее.
Бред. Никто не строит одновременно две цепочки. Это крипто-шизофрения какая-то. Smiley
Правильный сценарий атаки я описал.

Quote
При этом опять же, те пиры которые успели сделать хоть одно подтверждение транзакции атакующего, будут считать блоки атакующего неправильными со всеми вытекающими из этого последствиями.
В этом ваша ошибка.
Я повторюсь - клиент принимает все валидные блоки, сравнивает общую сложность цепочек и выбирает ту, в которой больше сложность вне зависимости от того, на какую глубину придется реорганизовать цепь.
Иначе представьте себе - какой-нибудь Кипр или Исландия отваливаются от интернета на 1 час.
Исландская нода за это время майнит 2 блока, а весь остальной мир шесть.
Исландские блоки расходятся по всем исландским клиентам.
Потом связь восстанавливается.
Все исландские ноды обязаны перейти на более длинную цепочку из 6 блоков, а свою из двух блоков заорфанить
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
October 13, 2016, 01:34:27 AM
#24
amaclin ты не прав.
1. В коде битка есть чекпоинты. Последний датируется 9 апреля 2014 года. Транзакции которые были раньше уже никогда не пропадут из блокчейна.
2. Синхронизированные пиры принимают только те блоки, внутри которых есть правильный хэш предыдущего блока. Если кто-то упорно начнет присылать неправильные блоки (из альтернативной цепочки), то его пошлют нахуй и вдобавок забанят по IP.

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

А если серьезно, то единственный реальный сценарий атаки 51 это строить альтернативную цепочку СРАЗУ после своей транзакции и при этом не держать свои блоки в тайне, а отдавать их в сеть. Тогда НЕКОТОРЫЕ пиры тоже будут строить одновременно две цепочки до тех пор, пока ветка атакующего не станет длиннее.
При этом опять же, те пиры которые успели сделать хоть одно подтверждение транзакции атакующего, будут считать блоки атакующего неправильными со всеми вытекающими из этого последствиями.
sr. member
Activity: 490
Merit: 252
http://VKcams.com/
October 12, 2016, 02:56:10 PM
#23
А в другой картины Рембрандта на кило картошки меняли.

Ну конечно, на мешок картофельных очисток.
legendary
Activity: 2016
Merit: 1118
October 12, 2016, 11:07:42 AM
#22
Не лучше ли в баксах хранить?

Имхо, в баксах, рублях, биткоинах только адепты того или иного направления хранят. Умные строят заводы, мутят технологические проекты и т.д, скупают недвижимость наконец и сдают ее в аренду. Это все в этой жизни. А в другой картины Рембрандта на кило картошки меняли. Все в жизни относительно, смотря под каким углом рассматривать.
legendary
Activity: 1260
Merit: 1019
October 12, 2016, 10:34:29 AM
#21
Атака 51% это длящийся процесс, то есть она может длиться 1 сутки, 1 месяц, но рано или поздно она закончится. Чем дольше тем дороже атакующему.
Украсть биткойны через атаку 51% НЕВОЗМОЖНО. Твоя пенсия останется на месте.

Всё неправильно.

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

Для атакующего, который является админом пула, то есть использует чужие майнинговые мощности стоимость атаки
не особо велика. Он же не будет железо покупать? А с майнерами он и так биткойнами расплатится, но уже после атаки.
Если захочет, конечно.

Побочным явлением будет просадка курса и массовый уход майнеров, так как никому не будет охота жечь электричество
и получать меньше денег, чем потрачено. И пенсионные накопления пострадают, так как бетховены вы покупали по 600
баксов за штуку, а продать сможете (если сможете) по 10. Не лучше ли в баксах хранить?
sr. member
Activity: 490
Merit: 252
http://VKcams.com/
October 12, 2016, 04:52:21 AM
#20
А курс битка как просыпется, так и вернется потом на место. Сколько раз уже по разным причинам падал ниже плинтуса,
и что мы сейчас видим?

Вот написали правду матку, а курс вон как заштормило!
sr. member
Activity: 868
Merit: 259
CryptoTalk.Org - Get Paid for every Post!
October 11, 2016, 01:27:26 PM
#19
Блин, интересный вопрос и интересная дискуссия!

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

Так что переживать наверное не о чем, во всяком случае пока)
sr. member
Activity: 490
Merit: 252
http://VKcams.com/
October 11, 2016, 04:50:19 AM
#18
ну вообще то мне биткоин нужен а даром тем более)

Сколько биткоинов тебе принесла твоя подпись?
legendary
Activity: 2436
Merit: 1187
October 10, 2016, 12:29:09 PM
#17
Народ, подскажите плиз новичку ответ:

какой-нибудь крупный майнер проведет атаку 51%, которая обвалит всю систему!
Даже угроза подобной атаки сильно повлияет на курс биткойна!




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

ну вообще то мне биткоин нужен а даром тем более)

так и интернет нельзя применять без интернета)
Pages:
Jump to: