Bitcoin Forum

Local => Кодеры => Topic started by: Crystral IP on March 17, 2015, 05:16:38 AM



Title: Отмена транзакции btc до 1-го подтверждения
Post by: Crystral IP on March 17, 2015, 05:16:38 AM
Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Wi-Fu on March 17, 2015, 05:53:01 AM
Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.
Словосочетание "отменить транзакцию" неприменимо для биткоина и сети. Об отмене транзакции можно говорить лишь в рамках работы сервиса, т.е. обработчика транзакции.

Транзакция отправленная в сеть разлетается по клиентам и доходят до майнеров. Включение транзакции в блок майнерами даст подтверждение.

Схема атаки должна быть примерно такой: отправляем транзакцию которая доходит до обработчика транзакции в сервисе приема платежей (одна "подсеть") и почти одновременно отправляем еще одну транзакцию которая использует те же входы что и первая на узлы майнеров (другая "подсеть").

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

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

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

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


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Negotiant on March 17, 2015, 07:33:58 AM
А почему тогда многие биржи и другие сервисы используют политику нескольких подтверждений? Вплоть до 5-6?
Или это очередные их "перехваты" в пользование наших средств? Что думаете по этому поводу?


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: svetoch on March 17, 2015, 08:02:34 AM
это как раз защита от двойной траты


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Wi-Fu on March 17, 2015, 10:24:03 AM
А почему тогда многие биржи и другие сервисы используют политику нескольких подтверждений? Вплоть до 5-6?
Или это очередные их "перехваты" в пользование наших средств? Что думаете по этому поводу?
Вы где-то не совсем корретно поняли. Вообще говоря, абсолютной защиты от двойной траты нет -  уже был прецедент хард-форка цепи биткоина. Вся защита от двойной траты строится на сложности поиска блоков, поэтому чем длинее цепь, тем сложнее ее перебить более длинной цепочкой блоков. Поэтому логично что чем больше блоков в подтверждении, тем она надежнее (считается что 6 достаточно, но многие некоторые сервисы уже обрабатывают с 3-х подтверждении, а некоторые даже с 1).


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: King Kod on March 17, 2015, 12:03:15 PM
Да что вы распинаетесь, объясняете :) Время тратите только... Кто понимает, тот понимает чуть работы...


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Wi-Fu on March 17, 2015, 12:43:56 PM
Да что вы распинаетесь, объясняете :) Время тратите только... Кто понимает, тот понимает чуть работы...
Бывает что из неотесанных и малопонимающих новичков получаются очень достойные люди если им помочь. Мне в жизни помогали казалось бы случайные люди, и теперь я возвращаю долг обществу.


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Negotiant on March 17, 2015, 05:05:53 PM
Да что вы распинаетесь, объясняете :) Время тратите только... Кто понимает, тот понимает чуть работы...
Бывает что из неотесанных и малопонимающих новичков получаются очень достойные люди если им помочь. Мне в жизни помогали казалось бы случайные люди, и теперь я возвращаю долг обществу.
Согласен. Главное интересные примеры давать чтобы заинтересовать. Практическое применение. Ну как в школе, помните треды с учителями: "Где мне эта алгебра в жизни пригодится?!"  ;)


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: icreator on March 17, 2015, 08:21:39 PM
Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.

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

наверно так


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: ari100tel on March 17, 2015, 09:17:52 PM
Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.

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

наверно так

Неплохая идея... Проверим опытным путем?


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Wi-Fu on March 18, 2015, 02:08:05 AM
Бывает что из неотесанных и малопонимающих новичков получаются очень достойные люди если им помочь. Мне в жизни помогали казалось бы случайные люди, и теперь я возвращаю долг обществу.
Согласен. Главное интересные примеры давать чтобы заинтересовать. Практическое применение. Ну как в школе, помните треды с учителями: "Где мне эта алгебра в жизни пригодится?!"  ;)
Если раскрыть практическое применение, то придется раскрыть схему захвата контроля управленя над узлом. Но что-то мне подсказывает что не стоит это делать, т.к. среди пользователей встречается откровенный сброд.


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: daddybios on March 22, 2015, 12:21:22 PM
А почему тогда многие биржи и другие сервисы используют политику нескольких подтверждений? Вплоть до 5-6?
Или это очередные их "перехваты" в пользование наших средств? Что думаете по этому поводу?

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


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: leadcorp on April 07, 2015, 08:15:51 AM
если иметь доступ к фильтрации трафика у какого-нибудь крупного Интернет-провайдера и оборудования по майнингу на 30 миллионов долларов, можно сфабриковать цепочку блоков для таргетингового клиента находящегося в подсети Интернет-провайдера, т.е. например сделать так чтобы жертва подумала что к ней пришли деньги, хотя по-настоящему вся цепь сфабрикована в изоляции пре-майнингом.

Но в этой схеме мы как-то расчитывали что на премайн фальшивой цепи уйдёт достаточно много времени (где-то за 14 дней оборудованием для майнинга за 30 миллионов долларов можно создать около 3-х фальшивых блоков).

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


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: Xtc on April 07, 2015, 11:10:48 AM
Quote
можно:
послать в сеть транзакцию использующую те же входы монет на свой адрес + добавить к ней еще 1 биткоин например, и ++ добавить комиссию побольше - ее первой схватит любой пул сразу - а первая транзакция будет признана ошибочной

наверно так
Я думаю вторая просто не будет принята


Title: Re: Отмена транзакции btc до 1-го подтверждения
Post by: amaclin on April 07, 2015, 02:29:49 PM
Я думаю вторая просто не будет принята
Это вообще-то на совести владельца ноды/пула.
Референсный клиент не принимает транакцию, если её входы уже потрачены другой транзакцией.
Но есть и модификации, например https://github.com/bitcoinxt/bitcoinxt который передаёт транзакцию своим пирам, даже если она конфликтует по входам.
Есть модификации "replace-by-fee", когда нода оставляет у себя ту транзакцию из двух, которая имеет большую майнерскую комиссию.
Но это очень мало кто поддерживает (может и никто вообще), так как определить какая цепочка из транзакций даст майнеру больше вознаграждения достаточно муторно. Ради 0.0001 лишней комсы никто не парится.
Да, и не забывайте, что ноды не хранят вечно транзакции которые не подтверждены в блоках.
Рано или поздно нода забывает про первую транзакцию и принимает вторую.