Bitcoin Forum
May 08, 2024, 12:39:06 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: Атака 51%. Почему бы и да?  (Read 4019 times)
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 12, 2016, 03:34:29 PM
 #21

Атака 51% это длящийся процесс, то есть она может длиться 1 сутки, 1 месяц, но рано или поздно она закончится. Чем дольше тем дороже атакующему.
Украсть биткойны через атаку 51% НЕВОЗМОЖНО. Твоя пенсия останется на месте.

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

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

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

Побочным явлением будет просадка курса и массовый уход майнеров, так как никому не будет охота жечь электричество
и получать меньше денег, чем потрачено. И пенсионные накопления пострадают, так как бетховены вы покупали по 600
баксов за штуку, а продать сможете (если сможете) по 10. Не лучше ли в баксах хранить?
1715128746
Hero Member
*
Offline Offline

Posts: 1715128746

View Profile Personal Message (Offline)

Ignore
1715128746
Reply with quote  #2

1715128746
Report to moderator
1715128746
Hero Member
*
Offline Offline

Posts: 1715128746

View Profile Personal Message (Offline)

Ignore
1715128746
Reply with quote  #2

1715128746
Report to moderator
1715128746
Hero Member
*
Offline Offline

Posts: 1715128746

View Profile Personal Message (Offline)

Ignore
1715128746
Reply with quote  #2

1715128746
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715128746
Hero Member
*
Offline Offline

Posts: 1715128746

View Profile Personal Message (Offline)

Ignore
1715128746
Reply with quote  #2

1715128746
Report to moderator
1715128746
Hero Member
*
Offline Offline

Posts: 1715128746

View Profile Personal Message (Offline)

Ignore
1715128746
Reply with quote  #2

1715128746
Report to moderator
WhiteManWhite
Legendary
*
Offline Offline

Activity: 2016
Merit: 1118



View Profile
October 12, 2016, 04:07:42 PM
 #22

Не лучше ли в баксах хранить?

Имхо, в баксах, рублях, биткоинах только адепты того или иного направления хранят. Умные строят заводы, мутят технологические проекты и т.д, скупают недвижимость наконец и сдают ее в аренду. Это все в этой жизни. А в другой картины Рембрандта на кило картошки меняли. Все в жизни относительно, смотря под каким углом рассматривать.
Sex Video Chat VKcams.com
Sr. Member
****
Offline Offline

Activity: 490
Merit: 252


http://VKcams.com/


View Profile
October 12, 2016, 07:56:10 PM
 #23

А в другой картины Рембрандта на кило картошки меняли.

Ну конечно, на мешок картофельных очисток.

http://VKcams.com/ - FREE Sex Video BITCOIN Chat
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 13, 2016, 06:34:27 AM
 #24

amaclin ты не прав.
1. В коде битка есть чекпоинты. Последний датируется 9 апреля 2014 года. Транзакции которые были раньше уже никогда не пропадут из блокчейна.
2. Синхронизированные пиры принимают только те блоки, внутри которых есть правильный хэш предыдущего блока. Если кто-то упорно начнет присылать неправильные блоки (из альтернативной цепочки), то его пошлют нахуй и вдобавок забанят по IP.

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

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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 06: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 блоков, а свою из двух блоков заорфанить
WhiteManWhite
Legendary
*
Offline Offline

Activity: 2016
Merit: 1118



View Profile
October 13, 2016, 09:30:43 AM
 #26

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

Я так понимаю, что при таком сценарии сразу будет виден отвал большого процента майнинговых мощностей от текущей цепочки с соответствующим уменьшением сложности?
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 09:46:28 AM
 #27

Я так понимаю, что при таком сценарии сразу будет виден отвал большого процента
майнинговых мощностей от текущей цепочки с соответствующим уменьшением сложности?
Отвал мощности - да.
Уменьшение сложности - не обязательно, ведь пересчет сложности происходит раз в две недели.
Пул, который "встает на темную сторону" (или несколько пулов) могут до последнего момента
вести себя "честно". Потом в какой-то момент начинают майнить альтернативную цепочку блоков
и через несколько часов её публикуют. В эти несколько часов "люфта" хэшрейт сети падает в два раза.
В целом - это не так-то просто заметить, ведь флуктации бывают.
Кто, как и когда это проделает - я не знаю.
Я лишь уверен, что относительно скоро это кто-то провернет.
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 13, 2016, 12:25:24 PM
 #28

Quote
Иначе представьте себе - какой-нибудь Кипр или Исландия отваливаются от интернета на 1 час.
Исландская нода за это время майнит 2 блока, а весь остальной мир шесть.
Исландские блоки расходятся по всем исландским клиентам.
Потом связь восстанавливается.
Все исландские ноды обязаны перейти на более длинную цепочку из 6 блоков, а свою из двух блоков заорфанить

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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 12:33:44 PM
 #29

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

Quote
Так что придется либо всему миру либо Исландии сделать реиндекс в таком случае.
Это шутка, да?
Реорганизация в 1 блок происходит у части клиентов каждый раз, когда им приходится орфанить
блок. Орфаны раз в сутки пролетают как правило. Так что реорганизация проходит незаметно.
Никто никаких реиндеков не делает.
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 13, 2016, 12:43:47 PM
 #30

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

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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 01:36:15 PM
 #31

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

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

Ты путаешь майнинг и просто поддержку цепи. Честный майнинг происходит от последнего блока в основной цепи.
Но это никак не запрещает реорганизовывать основную цепочку на любую глубину в прошлое.
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 13, 2016, 02:08:51 PM
 #32


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


Вот этот код? https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L5445

OpenTrade - Open Source Cryptocurrency Exchange
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 02:25:29 PM
 #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
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 13, 2016, 07: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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 08:26:04 PM
 #35

Ну хорошо, а как насчет такой проверки?
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L3534
Это не то, что ты думаешь.
Таймстамп блока не может быть меньше медианного значения нескольких предыдущих блоков.
(Но вообще говоря блок N + 1 может иметь таймстамп меньше чем блок N - не у всех нод часы
синхронизированы по атомному времени, да и процесс перебора nonce не мгновенный)

То есть сравнивается не с текущим временем, а с записанным в уже проверенных блоках.
Xtc
Legendary
*
Offline Offline

Activity: 1972
Merit: 1028


;u


View Profile WWW
October 13, 2016, 09:03:51 PM
 #36

Побочным явлением будет просадка курса и массовый уход майнеров, так как никому не будет охота жечь электричество
и получать меньше денег, чем потрачено. И пенсионные накопления пострадают, так как бетховены вы покупали по 600
баксов за штуку, а продать сможете (если сможете) по 10. Не лучше ли в баксах хранить?
Всё так для форков, но не для биткойна Wink
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 13, 2016, 09:05:41 PM
 #37

Всё так для форков, но не для биткойна Wink
А в чем отличие-то?
Xtc
Legendary
*
Offline Offline

Activity: 1972
Merit: 1028


;u


View Profile WWW
October 13, 2016, 11:34:06 PM
 #38

Всё так для форков, но не для биткойна Wink
А в чем отличие-то?
Фаундэйшн не даст навредить биткойну. Даже алгоритм менять не придется.
Майнеры никуда не уйдут. Это то же самое что сказать об уходе нефтяников с месторождений нефти. Ну станут чуть меньше зарабатывать. Падение 600-10 это бредомечты тех, кто не успел купить.
kzv
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
October 14, 2016, 06:09:36 AM
 #39

Ну хорошо, а как насчет такой проверки?
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L3534
Это не то, что ты думаешь.
Таймстамп блока не может быть меньше медианного значения нескольких предыдущих блоков.
(Но вообще говоря блок N + 1 может иметь таймстамп меньше чем блок N - не у всех нод часы
синхронизированы по атомному времени, да и процесс перебора nonce не мгновенный)

То есть сравнивается не с текущим временем, а с записанным в уже проверенных блоках.


Ну в примере с Исландией: как Исландцы автоматически перестроят свою цепочку, если клиент не будет принимать блоки которые хоть и относятся к главной, но которые слишком старые?

OpenTrade - Open Source Cryptocurrency Exchange
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
October 14, 2016, 06:18:51 AM
 #40

Ну в примере с Исландией: как Исландцы автоматически перестроят свою цепочку,
если клиент не будет принимать блоки которые хоть и относятся к главной, но которые слишком старые?
А кто сказал что клиент не принимает слишком старые блоки?
Я такого не говорил. Наоборот, я сказал, что он их принимает.

Пример.
Допустим, есть блоки
h=111111   2016-05-10 15:10
h=111112   2016-05-10 15:20
h=111113   2016-05-10 15:30
h=111114   2016-05-10 15:40
h=111115   2016-05-10 15:50

сегодня уже не май, а октябрь, то есть прошло 5 месяцев и у нас уже в цепочке номера блоков 222222, 222223...
тут вдруг клиенту присылают еще один блок 111115+
клиент сравнивает таймстамп блока 111115+ не с текущим временем, а со средним временем блоков 111111..111114
и если это время больше - то аццептит этот блок у себя. Потом то же самое рекурсивно делаем для блока 111116+
и так далее. Какая цепочка блоков окажется длинее - ту клиент в любой момент времени и считает основной.

Почему такого не происходит? Почему по сети вечно не гуляют орфан-блоки?
Да потому что пир тебе пришлёт блок 111115+ только в том случае, если этот
пир сам убедился что цепочка блоков с плюсиком сложнее. Иначе зачем тратить трафик?

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!