Jump to content
Sign in to follow this  
polym0rph

Обсуждение статьи: Атака double-spending в системе Bitcoin

Recommended Posts

Если я правильно понял, то владельцы фпга и асиков, могут с вероятностью успеха до 50% атаковать других майнеров с фермами или целые пулы?

Edited by Yablya

Share this post


Link to post
Share on other sites

,

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

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

Share this post


Link to post
Share on other sites

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

Или я что-то упустил/непонял ?

 

 

Я вообще новичек в этом деле, но массивно пытаюсь вникнуть в нее. Посему у меня в голове некий бардак из-за объема получаемой инфы. Учитывая тот-же хваленый 50BTC, который только на разнице курсов забирает 15%. Желаю идти дальше, но пока только вникаю. Так что не обессудьте, если мои вопросы - откровенно глупые.

 

Edited by Yablya

Share this post


Link to post
Share on other sites

,

Откуда цифра в 15Гхэш? В таблицах минимальная мощность - 2%, это на данный момент 21,31*1000/100*2 = 426,2 Гхэш на минуточку, при которых есть 4% вероятности совершить атаку на 1 подтверждении, при увеличении подтверждений вероятность стремится к нулю.

Share this post


Link to post
Share on other sites

15 - свободная цифра как единица отсчета.

21,31*1000/100*2 = 426,2 Гхэш

Теперь понятней! Спасибо.

Я рассчитывал, как атаку большей мощности на меньшую в соло, а не мощность всей сети. В этом и ошибка.

Share this post


Link to post
Share on other sites

Что-то не въезжаю местами вообще. Как например понимать следующее:

 

"Рис 5. Зависимость числа подтверждающих блоков от уровня соотношения мощности майнинга атакующего q. Цветами выделены следующие вероятности успешности атаки: 10% - желтый, 1% - фиолетовый и 0,1% - синий."

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

 

"az- вероятность, что злоумышленник догонит сеть, при отставании в z блоков. Очевидно, что если z < 0 то az= 1, то есть атака удалась. az+1 – вероятность az-1

а сие что означает?

 

Функция вероятности от числа успехов отыскания блоков злоумышленником перед тем, как будет найдено n блоков в честной сети:

Нет такого понятия. То, что написано ниже это просто "вероятность".

 

Но это не 100% точные цифры, так как было сделано много допущений при моделировании системы.

ээ.. Каких?

 

А вообще статейка занятная. Жаль что о многом приходится догадываться и домысливать.

Share this post


Link to post
Share on other sites

Нет такого понятия. То, что написано ниже это просто "вероятность".

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

Share this post


Link to post
Share on other sites

Нет такого понятия. То, что написано ниже это просто "вероятность".

Наверное можно написать так: Функция зависимости вероятности от числа успехов...

 

Что такое "подтверждающий блок"? Почему два различных графика?

 

Понятие подтверждающие блоки, они же подтверждения введены в статье:

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

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

 

2 графика, потому что на одном показан пример успеха атаки, а на другом - провала.

 

 

Но это не 100% точные цифры, так как было сделано много допущений при моделировании системы.

ээ.. Каких?

Цитирую:

Для моделирования ситуации сделаем несколько упрощающий допущений, которые будем использовать в последующем анализе:

  1. Общая скорость майнинга в общей сети и у атакующего остается постоянной. Суммарная скорость майнинга будет H, из которой часть pH относится к честным майнерам, а qH – к злоумышленнику. При этом: p + q = 1. То есть вероятность, что блок найдет честная сеть равна p, а что злоумышленник – q.
  2. Сложность майнинга остается постоянной.

Share this post


Link to post
Share on other sites

Спасибо за указание на ошибку! Там часть текста пропала.

Исправлено на

az- вероятность, что злоумышленник обгонит сеть, при отставании в z блоков. Очевидно, что если z < 0 то az = 1, то есть атака удалась.

az+1 – вероятность обогнать сеть на следующем шаге, когда новый блок был найден честной сетью, что возможно с вероятностью p.

az-1 – вероятность обогнать сеть на следующем шаге, когда новый блок был найден злоумышленником, что возможно с вероятностью q.

Share this post


Link to post
Share on other sites

@polym0rph,ситуация - любая транзакция подписывается только владельцем pubkey,

любая транзакция проверяется на конфликтность.

 

условие - все транзакции кроме генезисных принимаются сетью без блоков + установлено правило удалять любые utxo замеченные в конфликтных транзакциях в течении часа с момента получения транзакции, а после часа только вторую и последующие конфликтные транзакции

 

вопрос: чем будет отличаться ожидание 6 подверждений через блоки в биткоин от просто ожидания конфликтных транзакций  после рассылки покупателем первой транзакции в течении часа ?

Share this post


Link to post
Share on other sites

 

 

вопрос: чем будет отличаться ожидание 6 подверждений через блоки в биткоин от просто ожидания конфликтных транзакций  после рассылки покупателем первой транзакции в течении часа ?

Например абсолютно чистая безконфликтная транзакция не включена в блок (низкая комиссия). Её по-прежнему можно дабс-спендить.

Share this post


Link to post
Share on other sites
Например абсолютно чистая безконфликтная транзакция не включена в блок (низкая комиссия). Её по-прежнему можно дабс-спендить.

 

я имел ввиду 2 разные системы

 

1 обычный биткоин

2 система где в блоки кладуться только генезисные транзакции а все остальное фильтруется по алгоритму и записывается в utxo без блоков:

 

правило для всех нод сети:

1)  принимаем транзакцию

2)  сравниваем с эталонным utxo и если нет конфликта то записываем ее как первую в utxo и ждем час(аналог примерно 6 подтверждений биткоин),

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

4) если по истечении часа приходит даблспенд конфликтная транзакция, то просто отклоняем ее, сид приславший данную транзакцию отправляем в баню.

 

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

 

какие в таком остаются уязвимости?

Edited by infoman

Share this post


Link to post
Share on other sites

@infoman,

 

представь, что на полтора часа пропадает связь между китаем и остальным миром; сеть временно распадается на две части; в каждой из частей делаем по транзакции так, чтобы они конфликтовали между собой; каждая из сетей принимает "свою" транзакцию. Что произойдёт дальше при восстановлении связи в твоей схеме? Половинки навсегда забанят друг друга?

Edited by sankopolo

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@nikmakken,

 

если ты про обычный биткоин, то одна из половинок победит (у кого цепочка блоков длиннее) - все её транзакции останутся

 

а в схеме предлагаемой @infoman, по-моему, срабатывает правило 4

Share this post


Link to post
Share on other sites

 

 

чем будет отличаться ожидание 6 подверждений через блоки в биткоин от просто ожидания конфликтных транзакций

 

Тем, что отсутствует защита от злонамеренных узлов и от флуда. Единственный механизм защиты сети - большинство узлов. Или непонятно, на чем основан консенсус "принятия сетью".

Share this post


Link to post
Share on other sites

@sankopolo,можно убрать правило бана сидов, тогда сеть не разделится, но злоумышленник все равно не вернет себе денег, кроме того если китай отвалится на 1.5 часа то биткоин тоже не защищен, сеть может в итоге принять блоки китая, и продавец останется без денег и товара, да и злоумышленник не сможет отправлять в китай транзакции если тот отвалится от сети, это надо быть 1000% уверенным что только ты(злоумышленник) имеешь доступ к подсетке китая иначе лишится своих utxo как 2 пальца об асфальт

Edited by infoman

Share this post


Link to post
Share on other sites

@infoman,

 

А что делать с тем, что у одной половины сети записано одно в utxo, а у другой половины - другое? Даже если не банить друг друга?

 

В (оригинальном) биткоине пострадают те, чьи транзакции попадут в отклоненные блоки (+ вероятно потом они будут включены в блоки) и один из адресатов double spending транзакции, но сама сеть продолжит нормально существовать - т е примет одну из этих двух транзакций и "обнулит' другую.

Share this post


Link to post
Share on other sites

 

 

А что делать с тем, что у одной половины сети записано одно в utxo, а у другой половины - другое?

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

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

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

тут даже можно обыграть правило банить только выходы более слабой сети.

это будет выглядеть как сращивание utxo

 

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

 

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

 

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

Edited by infoman

Share this post


Link to post
Share on other sites

Мне кажется, что для успешной атаки double-spending нужно иметь пул для майнинга, который превосходит по мощности самый сильный пул сети.

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

Злоумышленник создает пул, который подтверждает блок за 5 минут в среднем.

Т.е. злоумышленник имеет всего 2% вычислительных возможностей сети.

                                                                                                                                               

Злоумышленник формирует транзакцию по оплате каких-то товаров.

Затем ждет пока сформируются 6 блоков и начинает атаку double-spending.

В течении часа он сформирует 12 блоков и превзойдет по длине основную ветку блокчейна.

Сеть должна принять более длинный вариант цепочки.

В течении двух часов атака состоялась. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...